2009-03-30 5 views
0

私はATLを使用してCOMオブジェクトを作成しました。メソッドから返され、パラメータとして渡される新しいオブジェクトを作成したいと思います。私はコクラスを作成しましたが、パラメータとして受け入れるメソッドを追加する方法を理解できません。ATL:クラスのメソッドのパラメータとして使用できるコクラスを作成したいと思います。なぜ私はこれを動作させることができないのですか?

エラーはMIDL2025です:構文エラー: "IgBrush"の近くでタイプ指定が必要です。私はVisual Studio 2008を使用しています。

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

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

答えて

1

使用しているIDLを置くと役立ちます。

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

interface IMyFactory:IDispatch 
{ 
    ... 
}; 

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

しかし、私は(彼らはappropiateある場合)あなたがたIUnknown *またはIDispach *のようなそれらのパラメータを渡すことをお勧めします、そして最後のリソースをパラメータとして* VOIDを使用するようになります。

関連する問題