別のスレッドでも質問したのですが、
はかばかしい回答が得られなかったので、
こちらに書かせていただきます。

C#とCOM(C++)の相互運用について質問です。

void SomeClass::AAA(VARIANT FAR* var);
というCOMの関数を、VS.netにインポートすると
void AAA(ref Object obj)という関数になります。

これを以下のように使用したのですが、
「種類が一致しません」という例外が発生して、
プログラムが中断してしまいます。

Byte b; // 上記のVARIANT型はchar型として使われているので、
Object obj = b;
AAA(ref obj); // ここで例外が発生します。

この関数はVARIANT型のポインタを渡して値を取得する関数です。
同じことをしている関数が複数あり、対処法がわからないため
大変困っています。どうかよろしくお願いします。