我有一个公开COM对象的ATL项目。 我想我的COM对象调用由消费者不时指定的功能时,或通过从时间通知消费者时间的一些其他手段。
我曾尝试添加一个方法CerberusNative.idl
以便采取空函数指针,我想从事物的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对象?