Partager via


macro DEFINE_PROPERTYKEY (propkeydef.h)

Utilisé pour emballer un identificateur de format (FMTID) et un identificateur de propriété (PID) dans une structure PROPERTYKEY qui représente une clé de propriété.

Syntaxe

void DEFINE_PROPERTYKEY(
   name,
   l,
   w1,
   w2,
   b1,
   b2,
   b3,
   b4,
   b5,
   b6,
   b7,
   b8,
   pid
);

Paramètres

name

Nom d’une structure PROPERTYKEY qui représente une clé de propriété.

l

Valeur du membre Data1 du membre fmtid de la structure PROPERTYKEY .

w1

Valeur du membre Data2 du membre fmtid de la structure PROPERTYKEY .

w2

Valeur du membre Data3 du membre fmtid de la structure PROPERTYKEY .

b1

Valeur du membre Data4[0] du membre fmtid de la structure PROPERTYKEY .

b2

Valeur du membre Data4[1] du membre fmtid de la structure PROPERTYKEY .

b3

Valeur du membre Data4[2] du membre fmtid de la structure PROPERTYKEY .

b4

Valeur du membre Data4[3] du membre fmtid de la structure PROPERTYKEY .

b5

Valeur du membre Data4[4] du membre fmtid de la structure PROPERTYKEY .

b6

Valeur du membre Data4[5] du membre fmtid de la structure PROPERTYKEY .

b7

Valeur du membre Data4[6] du membre fmtid de la structure PROPERTYKEY .

b8

Valeur du membre Data4[7] du membre fmtid de la structure PROPERTYKEY .

pid

Identificateur de propriété (PID). Il est recommandé de définir cette valeur sur PID_FIRST_USABLE. Toute valeur supérieure ou égale à 2 est acceptable.

Note Les valeurs 0 et 1 sont réservées et ne doivent pas être utilisées.
 

Valeur de retour

None

Remarques

La macro DEFINE_PROPERTYKEY est définie comme suit.

#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 

Lorsque vous utilisez cette macro, vous disposez de deux options :

  • Incluez Initguid.h dans votre projet. Dans ce cas, la macro déclare les noms des clés de propriété et définit les clés de propriété pour vous. Cette approche fonctionne dans la plupart des cas, mais peut provoquer des collisions de noms dans des projets complexes et de grande envergure.
  • N’incluez pas Initguid.h. Au lieu de cela, compilez vos définitions dans un fichier de bibliothèque statique qui a l’extension de nom de fichier .lib. Dans ce cas, la macro déclare les noms de clés de propriété que le compilateur doit utiliser, mais vous devez référencer votre fichier .lib dans les paramètres de l’éditeur de liens pour votre projet. Cette approche fonctionne mieux dans les grands projets qui utilisent plusieurs modules, car elle évite les collisions de noms mentionnées dans l’option 1.
L’utilisation de la macro sans inclure Initguid.h et sans référencer un fichier de bibliothèque génère l’erreur de l’éditeur de liens LNK2001.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête propkeydef.h