macro DEFINE_PROPERTYKEY (propkeydef.h)
Se usa para empaquetar un identificador de formato (FMTID) y un identificador de propiedad (PID) en una estructura PROPERTYKEY que representa una clave de propiedad.
Sintaxis
void DEFINE_PROPERTYKEY(
name,
l,
w1,
w2,
b1,
b2,
b3,
b4,
b5,
b6,
b7,
b8,
pid
);
Parámetros
name
Nombre de una estructura PROPERTYKEY que representa una clave de propiedad.
l
Valor del miembro Data1 del miembro fmtid de la estructura PROPERTYKEY .
w1
Valor del miembro Data2 del miembro fmtid de la estructura PROPERTYKEY .
w2
Valor del miembro Data3 del miembro fmtid de la estructura PROPERTYKEY .
b1
Valor del miembro Data4[0] del miembro fmtid de la estructura PROPERTYKEY .
b2
Valor del miembro Data4[1] del miembro fmtid de la estructura PROPERTYKEY .
b3
Valor del miembro Data4[2] del miembro fmtid de la estructura PROPERTYKEY .
b4
Valor del miembro Data4[3] del miembro fmtid de la estructura PROPERTYKEY .
b5
Valor del miembro Data4[4] del miembro fmtid de la estructura PROPERTYKEY .
b6
Valor del miembro Data4[5] del miembro fmtid de la estructura PROPERTYKEY .
b7
Valor del miembro Data4[6] del miembro fmtid de la estructura PROPERTYKEY .
b8
Valor del miembro Data4[7] del miembro fmtid de la estructura PROPERTYKEY .
pid
Identificador de propiedad (PID). Se recomienda establecer este valor en PID_FIRST_USABLE. Cualquier valor mayor o igual que 2 es aceptable.
Valor devuelto
None
Observaciones
La macro DEFINE_PROPERTYKEY se define de la siguiente manera.
#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
Al usar esta macro, tiene dos opciones:
- Incluya Initguid.h en el proyecto. En este caso, la macro declara los nombres de clave de propiedad y define las claves de propiedad automáticamente. Este enfoque funciona en la mayoría de los casos, pero puede provocar colisiones de nombres en proyectos grandes y complejos.
- No incluya Initguid.h. En su lugar, compile las definiciones en un archivo de biblioteca estático que tenga la extensión de nombre de archivo .lib. En este caso, la macro declara los nombres de clave de propiedad que el compilador va a usar, pero debe hacer referencia al archivo .lib en la configuración del enlazador para el proyecto. Este enfoque funciona mejor en proyectos grandes que usan varios módulos porque evita las colisiones de nomenclatura mencionadas en la opción 1.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | propkeydef.h |