- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在为我的类触发的事件实现连接点时,我声明了一个 dispinterface
在我的 IDL 中这样
[
uuid(123-MY-GENERATED-GUID)
]
dispinterface _IMyChangeEvents {
properties:
methods:
[id(1)] void ItemChanged([in] BSTR changeInformation);
};
根据多个来源,包括“ATL Internals”一书,这应该产生一个 DIID__IMyChangeEvents
然后我可以使用它从 ATL::IConnectionPointImpl<ImplClass, IID>
派生我的类.但它不存在,我也不能使用 __uuidof(_IMyChangeEvents)
在CONNECTION_POINT_ENTRY
文档中描述的宏,因为它提示“没有 GUID 与该对象相关联”。
实现它的正确方法是什么?
最佳答案
此代码片段是在 library{} block 内部还是外部? library{} 之外的所有内容都会进入生成的 .h 文件。 library{} 中定义或引用的所有内容都会进入生成的 .tlb 文件。
典型的 .IDL 文件看起来像这样:
interface IMyMainInterface {...};
dispinterface MyEvents {...};
library {
coclass MyCoClass {
[default] IMyMainInterface;
[default, source] MyEvents;
}
}
这样,为了方便客户,您将拥有 .h 和 .tlb 中的所有内容。
关于c++ - ATL/COM : MIDL compiler doesn't output UUID for dispinterface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17302922/
如何使用 MIDL 为 x86 和 x64 生成代码? 我在 Visual Studio 2010 中创建了一个 IDL 文件,当我在 x86 模式下编译产品时,然后在 x64 中编译产品时,我必须“
我用 linux 工具编译的 idl 文件很好,但是当我尝试使用 midl 编译时我得到一个错误 error MIDL2025 : syntax error : expecting a declara
我正在尝试继承和扩展 MIDL 中定义的结构。我使用了与接口(interface)继承相同的语法,即 typedef struct stDBIBinVarDataEx { float x;
我在自动化遗留产品的构建过程中遇到了困难... 我有一个在 VC++ 6.0 中编译的 .idl 文件,使用 midl 生成一个 .tlb、.h 和 .c 文件,其中包含要添加的手动构建步骤: str
我的项目(OCX)有问题:当我尝试在 Release模式下编译时,编译停止并显示以下消息: "1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V
MIDL 方法声明中没有常量引用吗???? 例如。 [id(1), helpstring("My Method")] HRESULT MyMethod( [in] IID & const rc
当我从另一个 Proxy Server 项目中定义的接口(interface)派生所述接口(interface)时,为什么我不能在 idl 文件中定义一个接口(interface),然后让 CoCla
我正在编写自定义 ATL ActiveX 组件,但我遇到了这个小问题:Visual Studio 坚持认为 *.idl 文件中定义的每个函数都必须具有 HRESULT 返回类型,即使我想要一个 ULO
我有一个简单的 IDL 文件,它只包含一个 enum。其中一个标识符是 cy。 [ uuid(2642345F-F2AB-3600-8926-26E823800902), version(1.
我有一个 COM dll,它由使用 COM Inter-op 的 .NET 应用程序使用。在其中一个 CoClasses 中,有一个名为 IT6TrackData 的接口(interface),它有一
我正在使用 IDL 文件开发一些 COM 接口(interface)。一些接口(interface)方法返回 HRESULT,但我检查了 MIDL language reference on MSDN
哪个MIDL数据类型等于VB6的Boolean类型? 最佳答案 根据 MSDN Boolean在 MIDL 中可用。 关于VB6 的 bool 数据类型在 MIDL 中等效,我们在Stack Over
我在vs 2008中遇到以下错误: midl : error MIDL9008 : internal compiler problem - See documentation for suggesti
如问题所述,MIDL Compiler 的默认路径是什么?在 Visual Studio 2013(或以前的版本)中,对于那些想要从命令行手动运行它来构建 IDL 文件的人来说? 最佳答案 这取决于您
ID2D1RenderTarget 是在d2d1.h 中定义的接口(interface)。我想像这样在我的 IDL 界面中使用它: interface IXXX : IUnknown { HR
我们确实有一个项目使用 MIDL 工具来创建特定的头文件/iid 和代理文件。这些文件使用调用 nmake 的构建后步骤进行编译并与项目的其余部分链接。 IDL 生成的文件可以使用预编译头文件吗?如何
我有一个简单的 .IDL 文件 (iface.idl),它描述了一个基于 IUnknown 的接口(interface): import "unknwn.idl"; [ uuid(80DFDD
我打算将 MIDL 编译器与 CMAKE 一起使用,但无法从 CmakeList 调用 MIDL 编译器 这是我用来实现目标的命令 add_custom_command( OUTPUT ${CMAKE
我有一堆对象继承了从 idl 文件生成的抽象接口(interface)。使用这些接口(interface)的每个对象都包含相同的文件 interfaces.h,其中包含映射到 idl 接口(inter
我正在尝试用 midl 编译我的 arith.idl 文件。我正在运行 Windows 7 专业版。 这是我在 powershell 提示符下启动的命令: PS> 'C:\Program Files
我是一名优秀的程序员,十分优秀!