Share via


PSFormatForDisplay-Funktion (propsys.h)

Ruft eine formatierte Unicode-Zeichenfolgendarstellung eines Eigenschaftswerts ab, der in einer PROPVARIANT-Struktur gespeichert ist. Der Aufrufer ist für die Zuweisung des Ausgabepuffers verantwortlich.

Syntax

PSSTDAPI PSFormatForDisplay(
  [in]  REFPROPERTYKEY        propkey,
  [in]  REFPROPVARIANT        propvar,
  [in]  PROPDESC_FORMAT_FLAGS pdfFlags,
  [out] LPWSTR                pwszText,
  [in]  DWORD                 cchText
);

Parameter

[in] propkey

Typ: REFPROPERTYKEY

Verweis auf einen PROPERTYKEY , der die Eigenschaft benennt, deren Wert abgerufen wird.

[in] propvar

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Struktur , die den Typ und den Wert der Eigenschaft enthält.

[in] pdfFlags

Typ: PROPDESC_FORMAT_FLAGS

Ein Flag, das das Format angibt, das auf die Eigenschaftenzeichenfolge angewendet werden soll. Mögliche Werte finden Sie unter PROPDESC_FORMAT_FLAGS .

[out] pwszText

Typ: LPWSTR

Wenn die Funktion zurückgibt, enthält einen Zeiger auf den formatierten Wert als null-endende Unicode-Zeichenfolge. Die aufrufende Anwendung ist für die Zuweisung von Arbeitsspeicher für den Puffer verantwortlich, bevor sie PSFormatForDisplay aufruft.

[in] cchText

Art: DWORD

Gibt die Länge des Puffers bei pwszText in WCHAR s an, einschließlich des abschließenden NULL-Zeichens.

Rückgabewert

Typ: HRESULT

Gibt einen der folgenden Werte zurück.

Rückgabecode BESCHREIBUNG
S_OK
Die formatierte Zeichenfolge wurde erfolgreich erstellt.
S_FALSE
Die formatierte Zeichenfolge wurde nicht erstellt. S_FALSE gibt an, dass eine leere Zeichenfolge aus einer VT_EMPTY resultiert.
E_OUTOFMEMORY
Gibt an, dass bei der Zuordnung ein Fehler aufgetreten ist.

Hinweise

Diese Funktion ruft die Implementierung von IPropertySystem::FormatForDisplay im Schemasubsystem auf. Dieser Aufruf stellt eine Unicode-Zeichenfolgendarstellung eines Eigenschaftswerts mit zusätzlicher Formatierung basierend auf einem oder mehreren PROPDESC_FORMAT_FLAGS bereit. Wenn PROPERTYKEY vom Schemasubsystem nicht erkannt wird, versucht IPropertySystem::FormatForDisplay , den Wert entsprechend dem VARTYPE des Werts zu formatieren.

Sie müssen das Component Object Model (COM) mit CoInitialize oder OleInitialize initialisieren, bevor Sie PSFormatPropertyValue aufrufen.

Der Zweck dieser Funktion besteht darin, Daten in eine Zeichenfolge zu konvertieren, die für die Anzeige für den Benutzer geeignet ist. Der Wert wird entsprechend dem aktuellen Gebietsschema, der Sprache des Benutzers, dem PROPDESC_FORMAT_FLAGS und der durch den Eigenschaftenschlüssel angegebenen Eigenschaftenbeschreibung formatiert. Informationen dazu, wie das Eigenschaftenbeschreibungsschema die Formatierung des Werts beeinflusst, finden Sie in den folgenden Themen:

In der Regel werden die PROPDESC_FORMAT_FLAGS verwendet, um das in der Eigenschaftenbeschreibung vorgeschriebene Format zu ändern.

Die Ausgabezeichenfolge kann Unicode-Richtungszeichen enthalten. Diese zeichenfreien Zeichen beeinflussen den bidirektionalen Unicode-Algorithmus, sodass die Werte korrekt angezeigt werden, wenn eine Sprache von links nach rechts (LTR) in einem RECHTS-nach-links-Fenster (RTL) gezeichnet wird oder ein RTL in einem LTR-Fenster gezeichnet wird. Diese Zeichen enthalten Folgendes: "\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".

Die folgenden Eigenschaften verwenden spezielle Formate und sind vom PROPDESC_FORMAT_FLAGS nicht betroffen. Beachten Sie, dass die genannten Beispiele für Zeichenfolgen gelten, deren aktuelles Gebietsschema auf Englisch festgelegt ist. in der Regel wird die Ausgabe lokalisiert, es sei denn, es wird angegeben.

Eigenschaft Format
System.FileAttributes Die folgenden Dateiattribute werden in Buchstaben konvertiert und angefügt, um eine Zeichenfolge zu erstellen (z. B. wird der Wert 0x1801 in "RCO" konvertiert):
  FILE_ATTRIBUTE_READONLY- "R"
  FILE_ATTRIBUTE_SYSTEM : "S"
  FILE_ATTRIBUTE_ARCHIVE -'A'
  FILE_ATTRIBUTE_COMPRESSED : "C"
  FILE_ATTRIBUTE_ENCRYPTED – "E"
  FILE_ATTRIBUTE_OFFLINE – "O"
  FILE_ATTRIBUTE_NOT_CONTENT_INDEXED - "I"
System.Photo.ISOSpeed Beispiel: "ISO-400".
System.Photo.ShutterSpeed Der APEX-Wert wird mit dieser Formel in eine Belichtungszeit konvertiert:

Exposure_time = 2^(-APEX_value)

Beispiel: "2 Sekunden". oder "1/125 Sek.".

System.Photo.ExposureTime Beispiel: "2 Sekunden". oder "1/125 Sekunde".
System.Photo.Aperture Der APEX-Wert wird mithilfe dieser Formel in eine F-Zahl konvertiert:

F_Number = 2^(APEX_Value / 2)

Beispiel: "f/5.6".

System.Photo.FNumber Beispiel: "f/5.6".
System.Photo.SubjectDistance Beispiel: "15 m" oder "250 mm".
System.Photo.FocalLength Beispiel: "50 mm".
System.Photo.FlashEnergy Beispiel: "500 bpcs".
System.Photo.ExposureBias Beispiel: "-2 Schritt", "0 Schritt" oder "+3 Schritt".
System.Computer.DecoratedFreeSpace Beispiel: "105 MB frei von 13,2 GB".
System.ItemType Beispiel: "Anwendung" oder "JPEG-Bild".
System.ControlPanel.Category Beispiel: "Darstellung und Personalisierung".
System.ComputerName Beispiel: "LITWARE05 (dieser Computer)" oder "testbox07".
 

Wenn der Eigenschaftenschlüssel keiner Eigenschaftenbeschreibung in einem der registrierten Eigenschaftenschemas entspricht, wählt diese Funktion ein Format basierend auf dem Typ des Werts aus.

Typ des Werts Format
VT_BOOLEAN Wird nicht unterstützt.
VT_FILETIME Datums-/Uhrzeitzeichenfolge, wie durch PROPDESC_FORMAT_FLAGS und das aktuelle Gebietsschema angegeben. PDFF_SHORTTIME und PDFF_SHORTDATE sind die Standardeinstellung. Beispiel: "13.11.2006 15:22".
Numerischer VARTYPE Dezimalzeichenfolge im aktuellen Gebietsschema. Beispiel: "42".
VT_LPWSTR oder andere In eine Zeichenfolge konvertiert. Sequenzen von "\r", "\t" oder "\n" werden durch ein einzelnes Leerzeichen ersetzt.
VT_VECTOR | Etwas Durch Semikolons getrennte Werte. Ein Semikolon wird unabhängig vom Gebietsschema verwendet.
 

Beispiele

Im folgenden Beispiel, das als Teil eines größeren Programms enthalten sein soll, wird veranschaulicht, wie Sie PSFormatForDisplay zum Formatieren eines Bewertungswerts verwenden.

PROPVARIANT propvar;

HRESULT hr = InitPropVariantFromUInt32(RATING_THREE_STARS_SET, &propvar);

if (SUCCEEDED(hr))
{
    WCHAR szValue[100];

    hr = PSFormatForDisplay(PKEY_Rating, propvar, PDFF_DEFAULT, szValue, ARRAYSIZE(szValue));

    if (SUCCEEDED(hr))
    {
        // szValue contains a formatted string similar to "3 stars".
    }
    PropVariantClear(&propvar);
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile propsys.h
Bibliothek Propsys.lib
DLL Propsys.dll (Version 6.0 oder höher)
Verteilbare Komponente Windows Desktop Search (WDS) 3.0

Weitere Informationen

PSFormatForDisplayAlloc

PSFormatPropertyValue

Eigenschaftenbeschreibungsschema