私はCOMオブジェクトを公開するATLプロジェクトを持っています。 COMオブジェクトは、時々、消費者によって指定された関数を呼び出すことができますか、または時々消費者に通知する他の手段を介して呼び出すことができます。COMオブジェクト内のコールバック
私はCerberusNative.idl
にメソッドを追加しようとしましたが、コールバックが何であるかをコンシューマがCOMオブジェクトに通知する必要があるように、COMインスタンス側から呼び出すvoidポインタを使用します。 :再しなければならないオブジェクトのインタフェースで
重大度コード説明プロジェクトファイルの行抑制状態 エラーMIDL2269手順:
interface ICerberusSession : IDispatch { [id(5)] HRESULT SetCallbacks([in] void(*userExit)(int, char *), [in] void(*userAttemptingReconnection)(), [in] void(*userReconnected)()); };
しかし、私の空関数ポインタといくつかの問題があります HRESULT回す:[(パラメータ 'ユーザー出口を')]エラーMIDL2131パラメータは 機能であってはならない:[プロシージャ 'SetCallbacks' (インターフェース 'ICerberusSession')のパラメータ 'ユーザー出口']
どのような方法でCOMオブジェクト内のコールバック関数を購読するクライアントアプリケーションを取得できますか?
フォローアップの質問を誰が助けるか、興味を持っていることができるかどうます。http ://stackoverflow.com/questions/43006702/setting-up-my-atl-com-callback-functions – Alexandru