Metodo IPropertySystem::FormatForDisplayAlloc (propsys.h)
Ottiene una rappresentazione di stringa di un valore di proprietà in un buffer di memoria allocato.
Sintassi
HRESULT FormatForDisplayAlloc(
[in] REFPROPERTYKEY key,
[in] REFPROPVARIANT propvar,
[in] PROPDESC_FORMAT_FLAGS pdff,
[out] LPWSTR *ppszDisplay
);
Parametri
[in] key
Tipo: REFPROPERTYKEY
Riferimento all'oggetto PROPERTYKEY desiderato.
[in] propvar
Tipo: REFPROPVARIANT
Riferimento a una struttura PROPVARIANT che contiene il tipo e il valore della proprietà.
[in] pdff
Tipo: PROPDESC_FORMAT_FLAGS
Formato della stringa di proprietà. Vedere PROPDESC_FORMAT_FLAGS.
[out] ppszDisplay
Tipo: LPWSTR*
Quando termina, questo metodo contiene un puntatore al valore formattato come stringa Unicode con terminazione Null.
Valore restituito
Tipo: HRESULT
Restituisce uno dei valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Viene creata una stringa formattata. Questa stringa può essere restituita vuota a causa di una stringa di input vuota o da un valore non vuoto formattato come stringa vuota. |
|
La stringa formattata non viene creata. Indica che la stringa vuota è stata generata da un VT_EMPTY. |
|
Indica che l'allocazione non è riuscita. |
Commenti
È necessario inizializzare Component Object Model (COM) con CoInitialize o OleInitialize prima di chiamare IPropertySystem::FormatForDisplayAlloc.
In caso di esito positivo, questo metodo ottiene una rappresentazione di stringa Unicode formattata di un valore di proprietà per una proprietà PROPERTYKEY specificata e una o più PROPDESC_FORMAT_FLAGS. Se PROPERTYKEY non viene riconosciuto dal sottosistema dello schema, IPropertySystem::FormatForDisplayAlloc tenta di formattare il valore in base al valore VARTYPE.
Questo metodo alloca la memoria per il buffer e restituisce un puntatore a esso in ppszDisplay. L'applicazione chiamante deve usare CoTaskMemFree per rilasciare la stringa specificata da ppszDisplay quando non è più necessaria.
Lo scopo di questo metodo è convertire i dati in una stringa adatta per la visualizzazione all'utente. Il valore viene formattato in base alle impostazioni locali correnti, alla lingua dell'utente, al PROPDESC_FORMAT_FLAGS e alla descrizione della proprietà specificata dalla chiave della proprietà. Per informazioni su come lo schema della descrizione della proprietà influisce sulla formattazione del valore, vedere displayInfo, stringFormat, booleanFormat, numberFormat, NMDATETIMEFORMAT e enumeratedList. In genere, il PROPDESC_FORMAT_FLAGS viene usato per modificare il formato prescritto dalla descrizione della proprietà.
La stringa di output può contenere caratteri direzionali Unicode. Questi caratteri non inpacing influenzano l'algoritmo bidirezionale Unicode in modo che i valori vengano visualizzati correttamente quando viene disegnato un linguaggio da sinistra a destra (LTR) su una finestra da destra a sinistra (RTL) e viceversa. Questi caratteri includono i seguenti: "\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".
Le proprietà seguenti usano formati speciali e non sono interessate dalla PROPDESC_FORMAT_FLAGS (esempi citati sono per stringhe con impostazioni locali correnti impostate su inglese; in genere, l'output viene localizzato tranne dove indicato).
Proprietà | Format |
---|---|
System.FileAttributes | Gli attributi di file seguenti vengono convertiti in lettere e aggiunti per creare una stringa (ad esempio, un valore di 0x1801 (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_OFFLINE) viene convertito in "RCO"):
|
System.Photo.ISOSpeed | Ad esempio, "ISO-400". |
System.Photo.ShutterSpeed |
Il valore APEX viene convertito in un tempo di esposizione usando questa formula:
Ad esempio, "2 sec". o "1/125 sec.". |
System.Photo.ExposureTime | Ad esempio, "2 sec". o "1/125 sec". |
System.Photo.Aperture |
Il valore APEX viene convertito in un numero F usando questa formula:
Ad esempio, "f/5.6". |
System.Photo.FNumber | Ad esempio, "f/5.6". |
System.Photo.SubjectDistance | Ad esempio, "15 m"o "250 mm". |
System.Photo.FocalLength | Ad esempio, "50 mm". |
System.Photo.Flash Dottorato | Ad esempio, "500 bpcs". |
System.Photo.ExposureBias | Ad esempio, "-2 step", " 0 step" o "+3 step". |
System.Computer.DecoratedFreeSpace | Ad esempio, "105 MB gratuito di 13,2 GB". |
System.ItemType | Ad esempio, "Application" o "JPEG Image". |
System.ControlPanel.Category | Ad esempio, "Aspetto e personalizzazione". |
System.ComputerName | Ad esempio, "LITWARE05 (questo computer)" o "testbox07". |
Se la chiave della proprietà non corrisponde a una descrizione di proprietà in uno degli schemi di proprietà registrati, questo metodo sceglie un formato in base al tipo del valore.
Tipo del valore | Formato |
---|---|
VT_BOOLEAN | Non supportato. |
VT_FILETIME | Stringa di data/ora come specificato da PROPDESC_FORMAT_FLAGS e dalle impostazioni locali correnti. PDFF_SHORTTIME e PDFF_SHORTDATE sono l'impostazione predefinita. Ad esempio, "13/11/2006 13:22". |
VARTYPE numerico | Stringa decimale nelle impostazioni locali correnti. Ad esempio, "42". |
VT_LPWSTR o altro | Convertito in una stringa. Le sequenze di "\r", "\t" o "\n" vengono sostituite con un singolo spazio. |
VT_VECTOR | Nulla | Valori separati da punto e virgola: viene usato un punto e virgola indipendentemente dalle impostazioni locali. |
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 | propsys.h |
Componente ridistribuibile | Windows Desktop Search (WDS) 3.0 |