如何使用 ATL 创建匿名 IDispatch 函数?

发布于 2024-10-16 03:03:46 字数 258 浏览 4 评论 0原文

有没有一种简单的方法来创建一个从 IDispatch 派生的类,并且可以像这样传递给 API(这是 C++ ):

pDOM2->attachEvent(CComBSTR("event"), new DispatchFunction);

我知道如何创建一个 C++ 对象来处理 dispid 值为 0 的调用,但它总是手动实现所有 IDispatch 有点痛苦。我想知道 ATL 是否有一些标准的方法来做到这一点,因为它相当常见。

Is there an easy way to create a class that is derived from IDispatch and that can be passed to API like this (this is C++ ):

pDOM2->attachEvent(CComBSTR("event"), new DispatchFunction);

I know how to create a C++ object that handle an invoke with a dispid of value 0 but it's always a bit painful to implement all IDispatch by hand. I was wondering if ATL has some standard way of doing it as it is fairly common.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏见 2024-10-23 03:03:46

默认情况下,ATL 创建“自动双重”COM 类。它们支持早期绑定 IDispatch。您将看到 IDispatchImpl<>在他们的继承名单中。您在 IDL 中声明 dispid。不需要额外的工作。

By default ATL creates "auto-dual" COM classes. They support both early binding and IDispatch. You'll see IDispatchImpl<> in their inheritance list. You declare the dispid in the IDL. No extra work is required.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文