COM中的可连接对象与连接点机制及其MFC程序实现(4)
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();
}
}
- 上一篇:在存储过程中调用外部的动态连接库
- 下一篇:在VC++6.0中用MFC进行COM编程