私はLinuxプログラマーであり、COMプログラミングには新しく、私は今修正しようとしているプログラムを継承しました。私は、次のdispinterfaceとIDLファイルを持っていると私はC + +でコールバックを設定しようとしている。私はウェブを検索していて、接続ポイントがあるものを見つけましたが、私が従うことができる簡単な例は見当たらないので、誰かが私を助けてくれるのだろうかと思っていました。Visual C++で単純なコールバック
ディスパッチ:
[
helpstring("Event interface"),
helpcontext(0x00000006)
]
dispinterface _DEvents {
properties:
methods:
[id(0x00000001), helpstring("Occurs when about to begin."), helpcontext(0x0000000d)]
void Starting();
[id(0x00000002), helpstring("Occurs at the beginning."), helpcontext(0x00000011)]
void Begin();
[id(0x00000003), helpstring("Occurs at the end."), helpcontext(0x00000012)]
void End();
};
コクラス:
[
helpstring("C Class"),
helpcontext(0x0000009e)
]
coclass C {
[default] interface IE;
[default, source] dispinterface _DEvents;
};
シンクインターフェイス:
[
odl
]
interface INotifySink : IUnknown {
HRESULT _stdcall Starting();
HRESULT _stdcall Begin();
HRESULT _stdcall End();
};
私は、これら二つの記事を見つけたが、私は頭を作ることができませんまたはそれらの尾:
- http://www.codeproject.com/KB/COM/TEventHandler.aspx
- http://www.codeproject.com/KB/COM/com_in_c5.aspx
私はINotifySinkを拡張する新しいクラスを作成する必要があり、かつ機能を実装していますが、その後、私は後に何をしますか想像?
おかげで、 Jayen
P.S.私がもっと情報を提供する必要があるかどうか教えてください。私はこの質問を編集します。ありがとう。
http://www.codeproject.com/KB/COM/intro_connectionpoints.aspx –
をご覧ください。それはあまり役に立ちません。 1)私はすでにコクラスを持っています(私は今質問に追加しました)。 2)VS2008が私に 'Implementing Connection Point ...'オプションを表示していない – Jayen
コクラスを実装するために何を使用していますか? MFC? ATL? MFCとATLにはIConnectionPointContainerとIConnectionPointの実装を行うための機能があります。 –