macro DEFINE_PROPERTYKEY (propkeydef.h)
Usato per comprimere un identificatore di formato (FMTID) e un identificatore di proprietà (PID) in una struttura PROPERTYKEY che rappresenta una chiave di proprietà.
Sintassi
void DEFINE_PROPERTYKEY(
name,
l,
w1,
w2,
b1,
b2,
b3,
b4,
b5,
b6,
b7,
b8,
pid
);
Parametri
name
Nome di una struttura PROPERTYKEY che rappresenta una chiave di proprietà.
l
Valore del membro Data1 del membro fmtid della struttura PROPERTYKEY .
w1
Valore del membro Data2 del membro fmtid della struttura PROPERTYKEY .
w2
Valore del membro Data3 del membro fmtid della struttura PROPERTYKEY .
b1
Valore del membro Data4[0] del membro fmtid della struttura PROPERTYKEY .
b2
Valore del membro Data4[1] del membro fmtid della struttura PROPERTYKEY .
b3
Valore del membro Data4[2] del membro fmtid della struttura PROPERTYKEY .
b4
Valore del membro Data4[3] del membro fmtid della struttura PROPERTYKEY .
b5
Valore del membro Data4[4] del membro fmtid della struttura PROPERTYKEY .
b6
Valore del membro Data4[5] del membro fmtid della struttura PROPERTYKEY .
b7
Valore del membro Data4[6] del membro fmtid della struttura PROPERTYKEY .
b8
Valore del membro Data4[7] del membro fmtid della struttura PROPERTYKEY .
pid
Identificatore di proprietà (PID). È consigliabile impostare questo valore su PID_FIRST_USABLE. Qualsiasi valore maggiore o uguale a 2 è accettabile.
Valore restituito
nessuno
Osservazioni
La macro DEFINE_PROPERTYKEY è definita come segue.
#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
Quando si usa questa macro, sono disponibili due opzioni:
- Includere Initguid.h nel progetto. In questo caso, la macro dichiara i nomi delle chiavi di proprietà e definisce automaticamente le chiavi di proprietà. Questo approccio funziona nella maggior parte dei casi, ma può causare conflitti di denominazione in progetti complessi di grandi dimensioni.
- Non includere Initguid.h. Compilare invece le definizioni in un file di libreria statica con estensione lib. In questo caso, la macro dichiara i nomi delle chiavi di proprietà da usare per il compilatore, ma è necessario fare riferimento al file lib nelle impostazioni del linker per il progetto. Questo approccio funziona meglio nei progetti di grandi dimensioni che usano più moduli perché evita le collisioni di denominazione indicate nell'opzione 1.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | propkeydef.h |