我有一个 ATL/COM 项目,在 VC++ 6 中。我想要一个现有的类,它以前从未被定义为引发事件,引发事件。为此,该类必须实现一个“连接点”。
这些事件属于以前没有任何类引发过的类型,因此我将不得不创建一个新的连接点,而不是重用现有的连接点。
我知道如何让一个类实现一个连接点——右键单击类视图中的类,选择“实现连接点”,然后从它显示的列表中选择适当的连接点。
我知道如何创建一个新的连接点,只要它与一个新的 ATL 类相关联来实现它 - 在创建类时检查“支持连接点”。
但是我不知道如何在不创建实现它的新 ATL 类的情况下创建新连接点。
我修改了 IDL 以包含类似于现有连接点定义的内容:
[
uuid(*blah blah blah*),
helpstring("_IBlahEvents Interface")
]
dispinterface _IBlahEvents
{
properties:
methods:
[id(1), helpstring("method BlahChanged")] HRESULT BlahChanged();
};
(显然我有一个真正的 uuid,而不是“ blah blah blah ”)。
完成此操作后,_IBlahEvents 界面将显示在类视图中。但是当我右键单击要实现 _IBlahEvents 的 ATL 类并选择“实现连接点”时,_IBlahEvents 不会显示在现有连接点列表中。
我已经重新编译,包括清理和重建所有内容。
我错过了什么?
谢谢。