COM_A(ICalc/CCalc, ICalc::Add(INT,INT))是一个支持连接点(dispinterface _ICalcEvents, _ICalcEvents::AddFinished(INT))的COM组件,形式为EXE(COM_A_EXE)。
这种情况下,COM_A的客户程序CLIENT使用COM_A的过程是:
1. 注册_ICalcEvents SINK.
2. 获取ICalc接口。
3. 调用ICalc::Add() ---->由客户端主动发起调用
4. SINK收到AddFinished()事件。
这样的过程没有问题。现在想问的是:
如果不是客户端主动发起调用,即COM_A只是供客户端进行事件注册,然后COM_A在事件发生时(如另一个工作线程计算出敏感结果时),主动向已注册客户端发出事件通知。这种该如何实现?
即COM_A_EXE如何调用COM_A/CCalc从PROXY继承来的Fire_XXX()函数?我对COM_A_EXE自己使用COM_A的过程不是很清楚,请各位大侠指教啊!