龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

COM中的可连接对象与连接点机制及其MFC程序实现(5)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
3、客户事件接收器(Sink) 事件接收器也是COM对象,也可以用嵌套类来实现,但是它只是客户的一个内部对象,所以可以没有CLSID和类厂.下面示例是一个对话框程

  3、客户事件接收器(Sink)

  事件接收器也是COM对象,也可以用嵌套类来实现,但是它只是客户的一个内部对象,所以可以没有CLSID和类厂.下面示例是一个对话框程序,对话框有三个按钮:”连接”(IDC_CONNECT),”断开”(IDC_DISCONNECT),”事件”(IDC_EVENT).

  1.创建一个基于对话框的工程:ConnClient.

  2.在CConnClientDlg中首先加入#include “IConnObject.h”,然后在对话框类声明中声明事件接收器嵌套类:

BEGIN_INTERFACE_PART(EventSink,IEventSink)

STDMETHOD(EventHandle)();

END_INTERFACE_PART(EventSink)

同时声明几个私有变量:

private:

LPCONNECTIONPOINTCONTAINER pConnPtCont;//记录组件对象

//IConnectionPointContainer接口指针

LPCONNECTIONPOINT pConnPt;//记录连接点接口指针

DWORD m_dwCookie;//记录连接标识

IUnknown* m_pIUnknown;//用以记录组件对象IUnknown接口指针 

  3.实现事件接收器:

STDMETHODIMP_(ULONG)

CConnClientDlg::XEventSink::AddRef()

{

return 1;

}

STDMETHODIMP_(ULONG)

CConnClientDlg::XEventSink::Release()

{

return 0;

}

精彩图集

赞助商链接