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

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

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
5.在CConnObject::CConnObject()中写入: EnableConnections(); 6.实现IEventServer接口 IEventServer接口是基于IUnknown接口的,实现IUnknown接口的方法这里不在赘述.在实现文件中写

  5.在CConnObject::CConnObject()中写入:

EnableConnections(); 

  6.实现IEventServer接口

  IEventServer接口是基于IUnknown接口的,实现IUnknown接口的方法这里不在赘述.在实现文件中写入:

STDMETHODIMP

CConnObject::XEventServer::DoSomething()

{

//DoSomething

METHOD_PROLOGUE(CConnObject,EventServer)

pThis->FireEvent();

return S_OK;

}

DoSomething()方法可以为客户提供需要的服务.这里着重的是可连接对象在此处触发客户事件接收器的事件,FireEvent()函数是ConnObject类实现的专门触发事件的的函数,代码如下:

void CConnObject::FireEvent()

{

//获取连接点上的连接指针队列

const CPtrArray* pConnections = m_xSampleConnPoint.GetConnections();

ASSERT(pConnections!=NULL);

int cConnections = pConnections->GetSize();

IEventSink* pIEventSink;

//对每一个连接触发事件

for(int i = 0; i < cConnections; i++)

{

//获取客户事件接收器接口指针

pIEventSink = (IEventSink*)(pConnections->GetAt(i));

ASSERT(pIEventSink!=NULL);

//调用客户事件接受器事件处理函数

//此函数是出接口定义,由客户事件接收器实现的

pIEventSink->EventHandle();

}

}

精彩图集

赞助商链接