Método IPropertySystem::FormatForDisplayAlloc (propsys.h)
Obtém uma representação de cadeia de caracteres de um valor de propriedade para um buffer de memória alocado.
Sintaxe
HRESULT FormatForDisplayAlloc(
[in] REFPROPERTYKEY key,
[in] REFPROPVARIANT propvar,
[in] PROPDESC_FORMAT_FLAGS pdff,
[out] LPWSTR *ppszDisplay
);
Parâmetros
[in] key
Tipo: REFPROPERTYKEY
Uma referência à PROPERTYKEY desejada.
[in] propvar
Tipo: REFPROPVARIANT
Uma referência a uma estrutura PROPVARIANT que contém o tipo e o valor da propriedade.
[in] pdff
Tipo: PROPDESC_FORMAT_FLAGS
O formato da cadeia de caracteres de propriedade. Consulte PROPDESC_FORMAT_FLAGS.
[out] ppszDisplay
Tipo: LPWSTR*
Quando esse método retorna, contém um ponteiro para o valor formatado como uma cadeia de caracteres Unicode terminada em nulo.
Retornar valor
Tipo: HRESULT
Retorna um dos valores a seguir.
Código de retorno | Descrição |
---|---|
|
A cadeia de caracteres formatada é criada. Essa cadeia de caracteres pode ser retornada vazia devido a uma cadeia de caracteres de entrada vazia ou de um valor não vazio que foi formatado como uma cadeia de caracteres vazia. |
|
A cadeia de caracteres formatada não é criada. Indica que a cadeia de caracteres vazia resultou de um VT_EMPTY. |
|
Indica que a alocação falhou. |
Comentários
Você deve inicializar o COM (Component Object Model) com CoInitialize ou OleInitialize antes de chamar IPropertySystem::FormatForDisplayAlloc.
Com êxito, esse método obtém uma representação de cadeia de caracteres Unicode formatada de um valor de propriedade para um PROPERTYKEY especificado e um ou mais PROPDESC_FORMAT_FLAGS. Se PROPERTYKEY não for reconhecido pelo subsistema de esquema, IPropertySystem::FormatForDisplayAlloc tentará formatar o valor de acordo com seu VARTYPE.
Esse método aloca memória para o buffer e retorna um ponteiro para ele em ppszDisplay. O aplicativo de chamada deve usar CoTaskMemFree para liberar a cadeia de caracteres especificada por ppszDisplay quando ela não for mais necessária.
A finalidade desse método é converter dados em uma cadeia de caracteres adequada para exibição para o usuário. O valor é formatado de acordo com a localidade atual, o idioma do usuário, o PROPDESC_FORMAT_FLAGS e a descrição da propriedade especificada pela chave de propriedade. Para obter informações sobre como o esquema de descrição da propriedade influencia a formatação do valor, consulte displayInfo, stringFormat, booleanFormat, numberFormat, NMDATETIMEFORMAT e enumeratedList. Normalmente, os PROPDESC_FORMAT_FLAGS são usados para modificar o formato prescrito pela descrição da propriedade.
A cadeia de caracteres de saída pode conter caracteres direcionais Unicode. Esses caracteres sem espaçamento influenciam o algoritmo bidirecional Unicode para que os valores apareçam corretamente quando uma linguagem DA esquerda para a direita (LTR) é desenhada em uma janela da direita para a esquerda (RTL) e vice-versa. Esses caracteres incluem o seguinte: "\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".
As propriedades a seguir usam formatos especiais e não são afetadas pelo PROPDESC_FORMAT_FLAGS (exemplos citados são para cadeias de caracteres com uma localidade atual definida como inglês; normalmente, a saída é localizada, exceto quando indicada).
Propriedade | Formatar |
---|---|
System.FileAttributes | Os atributos de arquivo a seguir são convertidos em letras e acrescentados para criar uma cadeia de caracteres (por exemplo, um valor de 0x1801 (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_OFFLINE) é convertido em "RCO"):
|
System.Photo.ISOSpeed | Por exemplo, "ISO-400". |
System.Photo.ShutterSpeed |
O valor APEX é convertido em um tempo de exposição usando esta fórmula:
Por exemplo, "2 s". ou "1/125 s". |
System.Photo.ExposureTime | Por exemplo, "2 s". ou "1/125 s". |
System.Photo.Aperture |
O valor APEX é convertido em um número F usando esta fórmula:
Por exemplo, "f/5.6". |
System.Photo.FNumber | Por exemplo, "f/5.6". |
System.Photo.SubjectDistance | Por exemplo, "15 m" ou "250 mm". |
System.Photo.FocalLength | Por exemplo, "50 mm". |
System.Photo.FlashEnergy | Por exemplo, "500 bpcs". |
System.Photo.ExposureBias | Por exemplo, "-2 etapa", "0 etapa" ou "+3 etapa". |
System.Computer.DecoratedFreeSpace | Por exemplo, "105 MB livre de 13,2 GB". |
System.ItemType | Por exemplo, "Application" ou "JPEG Image". |
System.ControlPanel.Category | Por exemplo, "Aparência e Personalização". |
System.ComputerName | Por exemplo, "LITWARE05 (este computador)" ou "testbox07". |
Se a chave de propriedade não corresponder a uma descrição de propriedade em nenhum dos esquemas de propriedade registrados, esse método escolherá um formato com base no tipo do valor.
Tipo do valor | Formato |
---|---|
VT_BOOLEAN | Não há suporte. |
VT_FILETIME | Cadeia de caracteres de data/hora, conforme especificado por PROPDESC_FORMAT_FLAGS e a localidade atual. PDFF_SHORTTIME e PDFF_SHORTDATE são o padrão. Por exemplo, "13/11/2006 15:22". |
VARTYPE numérico | Cadeia de caracteres decimal na localidade atual. Por exemplo, "42". |
VT_LPWSTR ou outro | Convertido em uma cadeia de caracteres. Sequências de "\r", "\t" ou "\n" são substituídas por um único espaço. |
VT_VECTOR | Nada | Valores separados por ponto e vírgula — um ponto e vírgula é usado independentemente da localidade. |
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 | propsys.h |
Redistribuível | Pesquisa da Área de Trabalho do Windows (WDS) 3.0 |