之前讲到一个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