IID_PPV_ARGS宏 (combaseapi.h)

用于检索接口指针,根据使用的接口指针的类型自动提供所请求接口的 IID 值。 这可以通过检查编译时传递的值的类型来避免常见的编码错误。

语法

void IID_PPV_ARGS(
   ppType
);

参数

ppType

接口指针的地址,其类型 T 用于确定所请求的对象类型。 宏通过此参数返回接口指针。

返回值

备注

检索接口指针的方法中的常用语法 (最明显的 QueryInterfaceCoCreateInstance) 包括两个参数:

  • [in] 参数,通常为 REFIID 类型,用于指定要检索的接口的 IID。
  • [out] 参数,通常为 void 类型,用于接收接口指针。
此宏基于接口指针的类型计算 IID,防止出现 IID 和接口指针类型不匹配的编码错误。 Windows 开发人员应始终将此宏用于需要单独的 IID 和接口指针参数的任何方法。

虽然 Windows 7 是第一个将此宏包含在公共标头中,但它可以通过在项目标头或源代码中手动定义它在旧系统上使用。

以下示例演示如何使用 IID_PPV_ARGS 通过 IPropertyStore 创建内存属性存储对象。

IPropertyStore *pPropertyStore;

CoCreateInstance(CLSID_PropertyStore, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pPropertyStore));

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 combaseapi.h