COM中的可连接对象与连接点机制及其MFC程序实现(2)
2、编程实例
现在用MFC实现一个可连接对象,然后写一个极为简单的客户和时间接收器。
需要说明的是,MFC通过CCmdTarget类实现了IConnectionPointContainer和IEnumConnectionPoints接口,此外,通过CConnectionPoint类实现了IConnectionPoint接口
1.可连接对象ConnObject
在这个对象中,实现一个一般的COM接口IEventServer,客户可以使用此接口的方法DoSomething()作一些事情,但主要的是对象将在此处触发事件。SampleConnPoint实现连接点对象。
(1)在GUIDs.h中写入:
// {EE888B01-EA9C-11d3-97B5-5254AB191930}
static const IID CLSID_ConnObject = //组件ID
{ 0xee888b01, 0xea9c, 0x11d3, { 0x97, 0xb5, 0x52, 0x54, 0xab, 0x19, 0x19, 0x30 } };
// {EE888B02-EA9C-11d3-97B5-5254AB191930}
static const IID IID_IEventServer = //一般的COM接口,客户使用此接口的方法
//DoSomething()
{ 0xee888b02, 0xea9c, 0x11d3, { 0x97, 0xb5, 0x52, 0x54, 0xab, 0x19, 0x19, 0x30 } };
//// {EE888B03-EA9C-11d3-97B5-5254AB191930}
static const IID IID_IEventSink = //连接点对象所实现的连接点接口ID
{ 0xee888b03, 0xea9c, 0x11d3, { 0x97, 0xb5, 0x52, 0x54, 0xab, 0x19, 0x19, 0x30 } };
2. 在IConnObject.h中写入
#include "GUIDs.h"
//声明IEventServer接口
DECLARE_INTERFACE_(IEventServer,IUnknown)
{
STDMETHOD(DoSomething)()PURE;
};
//声明出接口,此出接口将由客户的事件接收器实现
DECLARE_INTERFACE_(IEventSink,IUnknown)
{
STDMETHOD(EventHandle)()PURE;
};
- 上一篇:在存储过程中调用外部的动态连接库
- 下一篇:在VC++6.0中用MFC进行COM编程