0

ATLを使用してCOMオブジェクトを作成しました。メソッドから返され、パラメーターとして渡される新しいオブジェクトを作成したいと思います。コクラスを作成しましたが、それをパラメーターとして受け入れるメソッドを追加する方法がわかりません。

私が得ているエラーはMIDL2025です:構文エラー:「IgBrush」の近くの型指定を期待しています。VisualStudio2008を使用しています。

列挙型を追加したとき、IDLをかなりいじってみたのを思い出し、最終的には列挙型をパラメーターとして受け入れるようになりました。コクラスにはそのような運はありません。

ATLウィザードが提供するデフォルトで生成されたコードから、これを機能させるために必要な手順は何ですか?(つまり、何をどこに、なぜ移動するのですか?)

4

1 に答える 1

1

使用しているIDLを配置すると便利です。

MIDLで型を使用するには、最初に型を宣言する必要があります。

interface IMyFactory:IDispatch
{
  ...
};

interface IMyObject:IDispatch
{
  HRESULT SetFactory([in] IMyFactory * state);
}

ただし、IUnknown*やIDispach*などのパラメーターを渡すことをお勧めします(適切な場合)。最後のリソースは、パラメーターとしてVOID*を使用することです。

于 2009-03-30T18:41:46.673 に答える