DEFINE_PROPERTYKEY宏 (propkeydef.h)
用于将格式标识符 (FMTID) 和属性标识符 (PID) 打包到表示属性键的 PROPERTYKEY 结构中。
语法
void DEFINE_PROPERTYKEY(
name,
l,
w1,
w2,
b1,
b2,
b3,
b4,
b5,
b6,
b7,
b8,
pid
);
参数
name
表示属性键的 PROPERTYKEY 结构的名称。
l
PROPERTYKEY 结构的 fmtid 成员的 Data1 成员的值。
w1
PROPERTYKEY 结构的 fmtid 成员的 Data2 成员的值。
w2
PROPERTYKEY 结构的 fmtid 成员的 Data3 成员的值。
b1
PROPERTYKEY 结构的 fmtid 成员的 Data4[0] 成员的值。
b2
PROPERTYKEY 结构的 fmtid 成员的 Data4[1] 成员的值。
b3
PROPERTYKEY 结构的 fmtid 成员的 Data4[2] 成员的值。
b4
PROPERTYKEY 结构的 fmtid 成员的 Data4[3] 成员的值。
b5
PROPERTYKEY 结构的 fmtid 成员的 Data4[4] 成员的值。
b6
PROPERTYKEY 结构的 fmtid 成员的 Data4[5] 成员的值。
b7
PROPERTYKEY 结构的 fmtid 成员的 Data4[6] 成员的值。
b8
PROPERTYKEY 结构的 fmtid 成员的 Data4[7] 成员的值。
pid
属性标识符 (PID) 。 建议将此值设置为 PID_FIRST_USABLE。 任何大于或等于 2 的值都是可以接受的。
返回值
无
备注
DEFINE_PROPERTYKEY宏的定义如下。
#ifdef INITGUID
#define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
EXTERN_C const PROPERTYKEY DECLSPEC_SELECTANY name = \
{ { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }, pid }
#else
#define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
EXTERN_C const PROPERTYKEY name
#endif // INITGUID
使用此宏时,有两个选项:
- 在项目中包括 Initguid.h。 在本例中,宏声明属性键名称并定义属性键。 此方法在大多数情况下有效,但在大型复杂项目中可能会导致命名冲突。
- 请勿包含 Initguid.h。 相反,请将定义编译为具有 .lib 文件扩展名的静态库文件。 在这种情况下,宏声明编译器要使用的属性键名称,但必须在项目的链接器设置中引用 .lib 文件。 此方法最适合使用多个模块的大型项目,因为它可避免选项 1 中提到的命名冲突。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | propkeydef.h |