Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As propriedades reais seguem a tabela de valores do conjunto de propriedades Identificadores de Propriedade/Pares de Deslocamento. Cada propriedade é armazenada como um DWORD, seguido pelo valor do tipo de dados.
Indicadores de tipo e seus valores associados são descritos na estrutura dePROPVARIANT.
Todos os pares Tipo/Valor devem começar em um limite de 32 bits. Portanto, os valores podem ser seguidos com bytes nulos para alinhar o par subsequente em um limite de 32 bits.
O código de exemplo a seguir calcula quantos bytes são necessários para se alinhar em um limite de 32 bits, considerando uma contagem de bytes.
cbAdd = (((cbCurrent + 3) >> 2) << 2) - cbCurrent ;
Dentro de um vetor de valores, cada repetição de um valor escalar simples menor que 32 bits deve se alinhar com seu alinhamento natural em vez de com um alinhamento de 32 bits. Na prática, isso só é significativo para os tipos VT_UI1, VT_UI2, VT_I2e VT_BOOL (que têm alinhamento natural de um byte ou dois bytes). Todos os outros tipos têm alinhamento natural de quatro bytes. Alguns tipos, por exemplo, VT_R8, na verdade têm alinhamento natural de 8 bytes, mas são armazenados como se tivessem alinhamento de quatro bytes.
Um valor de propriedade com VT_I2 | VT_VECTOR de indicador de tipo incluiria:
- Uma contagem de elementos DWORD.
- Uma sequência de inteiros de dois bytes empacotados sem preenchimento nulo entre eles.
Importante
Quaisquer contagens de 32 bits ou tipos de propriedade armazenados como parte de um elemento de propriedade de vetor também devem estar alinhados de 32 bits.
Um valor de propriedade do identificador de tipo VT_LPSTR | VT_VECTOR incluiria:
- Uma contagem de elementos DWORD (DWORDcElems).
- Uma sequência de cadeias de caracteres (charrgch[]), cada uma precedida por uma contagem de comprimento DWORD e possivelmente seguida pelo preenchimento nulo para arredondar para um limite de 32 bits.