1
我有一個公開COM對象的ATL項目。我希望我的COM對象隨時調用消費者指定的函數,或者通過其他方式不時地通知消費者。COM對象中的回調
我已經嘗試在CerberusNative.idl
中添加一個方法,以便使用void函數指針,我想從COM實例端調用它,以便消費者在初始化時只需告訴COM對象它的回調是什麼:
interface ICerberusSession : IDispatch {
[id(5)] HRESULT SetCallbacks([in] void(*userExit)(int, char *), [in] void(*userAttemptingReconnection)(), [in] void(*userReconnected)());
};
然而,也有一些問題,我的空函數指針:
嚴重性代碼說明項目文件的線路抑制狀態 錯誤MIDL2269程序中的對象接口必須重新把一個 HRESULT:[(參數 'USEREXIT')]錯誤MIDL2131參數必須 不會是一個函數:[步驟 'SetCallbacks' 的參數 'USEREXIT'(接口 'ICerberusSession')]
以什麼方式我可以得到一個客戶端應用程序來訂閱我的COM對象中的回調函數嗎?
後續問題,如果有人能幫助或有興趣:HTTP ://stackoverflow.com/questions/43006702/setting-up-my-atl-com-callback-functions – Alexandru