COM连接点 - 一个COM接口实现多个连接点(3)

本文通过实例详细讲解如何在COM接口中实现多个连接点,包括在IDL文件中增加新接口、修改COM类以支持新连接点、客户端如何创建新的sink类并挂载。同时指出一个sink类无法处理两个连接点,尝试这样做会导致编译错误。
摘要由CSDN通过智能技术生成

之前讲到一个COM接口可以实现多个连接点。我们就来写个例子。

其实,我还真不知道怎么用ATL向导来实现多个连接点,我们这次就手工改吧。我觉得手工来修改还可以提高对COM的理解,多用用手工还是有好处的。

IDL中增加一个接口_IMyCarEvents2

打开IDL文件,增加以下代码(guid是用windows自带的生成器生成的)

        [
		uuid(5A745470-8950-4a9b-B624-5D76F1BB28C9)		
	]
	dispinterface _IMyCarEvents2
	{
		properties:
		methods:
            [id(1)] HRESULT NeedMoreGas();
        };

现在就变成了

library MyComLib
{
	importlib("stdole2.tlb");
	[
		uuid(2CF347A8-63ED-4CE0-8A6D-F98D60C98B8C)		
	]
	dispinterface _IMyCarEvents
	{
		properties:
		methods:
            
            [id(1)] HRESULT OnStop([in] FLOAT Distance);
    };
    [
		uuid(5A745470-8950-4a9b-B624-5D76F1BB28C9)		
	]
	dispinterface _IMyCarEvents2
	{
		properties:
		methods:
            [id(1)] HRESULT NeedMoreGas();
    };
	[
		uuid(DA6770F3-CBB6-4F34-A137-2B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值