我有一个VC ++ 6中的ATL / COM项目。我想要一个以前没有定义过的现有类来引发事件和引发事件。为此,该类将必须实现“连接点”。
这些事件的类型是以前从未有过的,所以我将不得不创建一个新的连接点,而不是重用现有的连接点。
我知道如何使类实现连接点-在“类视图”中右键单击该类,选择“实现连接点”,然后从显示的列表中选择适当的连接点。
我知道如何创建一个新的连接点,只要它与一个新的ATL类相关联即可实现-创建类时请检查“支持连接点”。
但是我不知道如何创建一个新的连接点而不创建一个新的实现它的ATL类。
我修改了IDL,使其包含与现有连接点的定义类似的内容:
[
uuid(*blah blah blah*),
helpstring("_IBlahEvents Interface")
]
dispinterface _IBlahEvents
{
properties:
methods:
[id(1), helpstring("method BlahChanged")] HRESULT BlahChanged();
};
(显然,我有一个真正的uuid,而不是“等等等等”)。
完成此操作后,_IBlahEvents界面将显示在“类视图”中。但是,当我右键单击要实现_IBlahEvents的ATL类并选择“实现连接点”时,_IBlahEvents不会显示在现有连接点列表中。
我已经重新编译,包括清理和重建所有内容。
我想念什么?
谢谢。
最佳答案
您是否添加了此基类?
public IConnectionPointContainerImpl<CYOUR_CLASS_HERE>
如果不是,请从头开始创建一个与此项目匹配的新项目,但请选中“支持连接点”复选框。
确保使用相同的名称。然后,将其与原始项目进行比较以了解缺少的内容。
关于visual-c++ - 在VC++ 6中创建新的连接点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1161183/