采用DCOM的连接点机制,发现速度慢,要延迟30-50s,看资料说采用回调方式很快,谁能给个例子?

解决方案 »

  1.   

    在组件方 的idl接口里定义一个 “设置回调接口”的 方法。
    HRESULT SetCallBack(
      [in] ICallBack* pCallBack,
    [out] UINT* pID //提供给应用程序,记录当前ID   (如果有多个客户端的话,增加这个参数,并在组件里维护好)
    );
    //释放指定回调接口,(如果有多个客户端的话,增加该方法,做释放回调接口有关的工作)
    HRESULT ReleaseCallBack(
    [in] UINT uiID
    );调用组件方 实现回调接口
    class CSink :
    public ICallBack
    {
    protected:
    ULONG               m_cRef;
    public:
    CSink(void);
    ~CSink(void);
    STDMETHOD(QueryInterface)(const struct _GUID &iid,void ** ppv);
    ULONG __stdcall CSink::AddRef(void);
    ULONG __stdcall CSink::Release(void);};