COM_INTERFACE_ENTRY宏

这些宏输入对象的接口其COM映射,以便它们可以由 QueryInterface访问。在 QueryInterface期间,条目的顺序在COM映射的是order接口将检查匹配的 IID

若要通过 QueryInterface 显示其接口中的每个对象都必须有其自己的COM映射。COM映射从macro BEGIN_COM_MAP启动。接口项添加与一个或多 COM_INTERFACE_ENTRY 宏,并且,映射完成与 END_COM_MAP 宏。例如:

BEGIN_COM_MAP(CMyObject)
   COM_INTERFACE_ENTRY(IMyObject)
   COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()

请注意在COM映射的第一次enter必须位于包含COM映射对象的接口。因此,您无法启动您的 COM_INTERFACE_ENTRY_CHAIN的COM映射项,使不同的对象COM映射中搜索该点 COM_INTERFACE_ENTRY_CHAIN(COtherObject) 显示在对象的COM映射。如果要首先搜索其他对象COM映射,请添加 IUnknown 的接口项到COM映射,则将另一个对象的COM映射。例如:

BEGIN_COM_MAP(CThisObject)
   COM_INTERFACE_ENTRY(IUnknown)
   COM_INTERFACE_ENTRY_CHAIN(CBase)
END_COM_MAP()
警告说明警告

基于3.0版中,ATL使用编译器关键字 __uuidof( class ) 获取给定选件类中相应的IID。由于在 COM_INTERFACE_ENTRY 宏中的更改活动在3.0版中,您现在包含接口的标头可以使用,而不是也链接到定义该接口的匹配IIDs的库。此更改会造成问题,如果标头由MIDL的旧版本之前生成,或者,如果它手动正确代码并且未标记。如果接口的说明。该标头未标记有一个关联的 __declspec( uuid ),则所有尝试为该接口中使用 __uuidof 关键字将失败。将数据库还原到早期(ATL为) COM_INTERFACE_ENTRY 宏通过定义在生成设置的 _ATL_NO_UUIDOF 在此新行为的任何问题。

COM映射项宏

下面是可用的项宏:

要求

Header: atlcom.h

请参见

其他资源

COM映射宏

ATL 宏