macro DEFINE_PROPERTYKEY (propkeydef.h)
Usado para empacotar um FMTID (identificador de formato) e um PID (identificador de propriedade) em uma estrutura PROPERTYKEY que representa uma chave de propriedade.
Sintaxe
void DEFINE_PROPERTYKEY(
name,
l,
w1,
w2,
b1,
b2,
b3,
b4,
b5,
b6,
b7,
b8,
pid
);
Parâmetros
name
O nome de uma estrutura PROPERTYKEY que representa uma chave de propriedade.
l
O valor do membro Data1 do membro fmtid da estrutura PROPERTYKEY .
w1
O valor do membro Data2 do membro fmtid da estrutura PROPERTYKEY .
w2
O valor do membro Data3 do membro fmtid da estrutura PROPERTYKEY .
b1
O valor do membro Data4[0] do membro fmtid da estrutura PROPERTYKEY .
b2
O valor do membro Data4[1] do membro fmtid da estrutura PROPERTYKEY .
b3
O valor do membro Data4[2] do membro fmtid da estrutura PROPERTYKEY .
b4
O valor do membro Data4[3] do membro fmtid da estrutura PROPERTYKEY .
b5
O valor do membro Data4[4] do membro fmtid da estrutura PROPERTYKEY .
b6
O valor do membro Data4[5] do membro fmtid da estrutura PROPERTYKEY .
b7
O valor do membro Data4[6] do membro fmtid da estrutura PROPERTYKEY .
b8
O valor do membro Data4[7] do membro fmtid da estrutura PROPERTYKEY .
pid
Um PID (identificador de propriedade). É recomendável que você defina esse valor como PID_FIRST_USABLE. Qualquer valor maior ou igual a 2 é aceitável.
Retornar valor
Nenhum
Comentários
A macro DEFINE_PROPERTYKEY é definida da seguinte maneira.
#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
Ao usar essa macro, você tem duas opções:
- Inclua Initguid.h em seu projeto. Nesse caso, a macro declara os nomes de chave de propriedade e define as chaves de propriedade para você. Essa abordagem funciona na maioria dos casos, mas pode causar colisões de nomenclatura em projetos grandes e complexos.
- Não inclua Initguid.h. Em vez disso, compile suas definições em um arquivo de biblioteca estática que tenha a extensão de nome de arquivo .lib. Nesse caso, a macro declara os nomes de chave de propriedade para o compilador usar, mas você deve referenciar o arquivo .lib nas configurações do vinculador do projeto. Essa abordagem funciona melhor em projetos grandes que usam vários módulos porque evita as colisões de nomenclatura mencionadas na opção 1.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | propkeydef.h |