макрос 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
Значение элемента Data1 элемента fmtid структуры PROPERTYKEY .
w1
Значение элемента Data2 элемента fmtid структуры PROPERTYKEY .
w2
Значение элемента Data3 элемента fmtid структуры PROPERTYKEY .
b1
Значение элемента Data4[0] элемента fmtid структуры PROPERTYKEY .
b2
Значение элемента Data4[1] элемента fmtid структуры PROPERTYKEY .
b3
Значение элемента Data4[2] элемента fmtid структуры PROPERTYKEY .
b4
Значение элемента Data4[3] элемента fmtid структуры PROPERTYKEY .
b5
Значение элемента Data4[4] элемента fmtid структуры PROPERTYKEY .
b6
Значение элемента Data4[5] элемента fmtid структуры PROPERTYKEY .
b7
Значение элемента Data4[6] элемента fmtid структуры PROPERTYKEY .
b8
Значение элемента Data4[7] элемента fmtid структуры PROPERTYKEY .
pid
Идентификатор свойства (PID). Рекомендуется задать для этого значения значение PID_FIRST_USABLE. Допустимо любое значение, большее или равное 2.
Возвращаемое значение
None
Remarks
Макрос 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 |
Header | propkeydef.h |