COM连接点 - 最简单的例子 (1)

连接点,connection point,在COM里面也是挺重要的。简单讲,COM里面的连接点就好像是C语言的回调函数,只不过它是基于面向对象实现的。连接点的作用也就是COM对象将一些事件通知客户(调用者)。


先来做一个简单的连接点例子吧,之后再慢慢探讨。

用ATL创建一个工程(DLL COM),取名MyCom,

然后创建一个COM接口,IMyCar. 在options那里选上connection points。

然后在class view那里找到_IMyCarEvents(在MyComLib下面),右键点击Add Method.如图,增加一个方法OnStop。

增加完之后,可以看到IDL文件里面多了个方法,如下图:

library MyComLib
{
	importlib("stdole2.tlb");
	[
		uuid(2CF347A8-63ED-4CE0-8A6D-F98D60C98B8C)		
	]
	dispinterface _IMyCarEvents
	{
		properties:
		methods:
            
            [id(1)] HRESULT OnStop([in] FLOAT Distance);
    };
	[
		uuid(DA6770F3-CBB6-4F34-A137-2B02A27AB219)		
	]
	coclass MyCar
	{
		[default] interface IMyCar;
		[default, source] dispinterface _IMyCarEvents;
	};
};

之后在CMyCar上点击右键,选择Add Connection Point。

选择_IMyCarEvents,点击>按钮。然后Finish.

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值