gpt4 book ai didi

visual-c++ - 在 VC++ 6 中创建新的连接点?

转载 作者:行者123 更新时间:2023-12-02 23:49:09 25 4
gpt4 key购买 nike

我有一个 VC++ 6 中的 ATL/COM 项目。我想要一个现有的类,以前从未定义过该类来引发事件。为此,类必须实现一个“连接点”。

这些事件属于以前没有类引发过的类型,因此我必须创建一个新的连接点,而不是重用现有的连接点。

我知道如何使类实现连接点 - 在“类 View ”中右键单击该类,选择“实现连接点”,然后从其显示的列表中选择适当的连接点。

我知道如何创建一个新的连接点,只要将其关联到一个新的 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 接口(interface)将显示在类 View 中。但是,当我右键单击要实现 _IBlahEvents 的 ATL 类并选择“实现连接点”时,_IBlahEvents 不会显示在现有连接点列表中。

我已经重新编译,包括清理和重建所有内容。

我错过了什么?

谢谢。

最佳答案

你添加了这个基类吗?

  public IConnectionPointContainerImpl<CYOUR_CLASS_HERE>

如果不是这样,请从头开始创建一个与此项目匹配的新项目,除非选中“支持连接点”复选框。

确保使用相同的名称。然后,将其与原始项目进行比较,看看缺少什么。

关于visual-c++ - 在 VC++ 6 中创建新的连接点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1161183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com