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 的值都是可以接受的。

注意 0 和 1 的值是保留的,不应使用。
 

返回值

备注

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 中提到的命名冲突。
使用宏而不包括 Initguid.h 且未引用库文件将引发LNK2001链接器错误。

要求

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