IShellItemArray::GetPropertyStore-Methode (shobjidl_core.h)

Ruft einen Eigenschaftenspeicher ab.

Syntax

HRESULT GetPropertyStore(
  [in]  GETPROPERTYSTOREFLAGS flags,
  [in]  REFIID                riid,
  [out] void                  **ppv
);

Parameter

[in] flags

Typ: GETPROPERTYSTOREFLAGS

Eine der GETPROPERTYSTOREFLAGS-Konstanten .

[in] riid

Typ: REFIID

Die IID des abzurufenden Objekttyps.

[out] ppv

Typ: void**

Wenn diese Methode zurückgibt, enthält den in riid angeforderten Schnittstellenzeiger. Dies ist in der Regel IPropertyStore oder IPropertyStoreCapabilities.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Diese Methode wird verwendet, um einen schreibgeschützten Eigenschaftenspeicher abzurufen, der Eigenschaften aggregiert, die aus allen Elementen im Shellelementarray gesammelt wurden.

Wenn mehr als ein Element im Shellelementarray vorhanden ist, aggregiert der resultierende Eigenschaftenspeicher die Werte aus jedem Element gemäß einem Satz von Regeln, die von jeder Eigenschaft bestimmt werden. Werte, die aus dem Eigenschaftenspeicher gelesen werden, werden vor der Aggregation in eine kanonische Form umgewandelt, wie unter CoerceToCanonicalValue erläutert. Die Ausgabe eines Aufrufs von IPropertyStore::GetValue wird wie folgt berechnet:

  • Einwertige Eigenschaften folgen der Regel, die durch die Aggregationstypzeichenfolge im Eigenschaftenbeschreibungsschema angegeben wird.
    • Wenn der Aggregationstyp "DateRange" ist und der Eigenschaftstyp ein filetime ist, wird ein VT_VECTOR | VT_FILETIME von zwei Werten oder ein VT_FILETIME Wert, wenn die Werte identisch waren.
    • Wenn der Aggregationstyp "First" lautet, wird der erste nicht leere Wert zurückgegeben.
    • Wenn der Aggregationstyp "Sum" lautet, gibt die Summe zurück.
    • Wenn der Aggregationstyp "Average" lautet, wird der Durchschnitt aller nicht leeren Werte zurückgegeben.
    • Wenn der Aggregationstyp "Minimum" lautet, wird der Mindestwert zurückgegeben.
    • Wenn der Aggregationstyp "Union" ist und der Eigenschaftstyp eine Zeichenfolge ist, wird ein VT_VECTOR | VT_LPWSTR, die die Union der Werte enthält. Die Reihenfolge der Werte ist nicht angegeben.
    • Wenn der Aggregationstyp nicht angegeben, inkompatibel oder "Standard" ist, gibt entweder einen einzelnen Wert zurück, wenn er für alle Elemente im Array identisch ist, oder einen speziellen Wert, mit dem angegeben wird, dass sich die Werte zwischen einigen Elementen unterscheiden. Der besondere Wert ist eine VT_VECTOR | VT_LPWSTR mit zwei Zeichenfolgen: "Multiple" und "Values". Aufrufende Anwendungen sollten diesen besonderen Wert überprüfen, indem sie auf VT_VECTOR | VT_LPWSTR, wenn GetTypeFlags angibt, dass die Eigenschaft einwertig ist.
  • Mehrwertige Zeichenfolgeneigenschaften geben eine Schnittmenge ihrer Zeichenfolgen zurück. Die Reihenfolge ist nicht angegeben.
Aufrufe von IsPropertyWritable geben nur dann S_FALSE zurück, wenn alle Elemente über Eigenschaftenhandler verfügen, die IPropertyStoreCapabilities implementieren und alle Eigenschaftenspeicher angeben, dass sie das Schreiben der Eigenschaft nicht unterstützen.

Das Aufrufen von Anwendungen kann andere Aggregationsverhalten erzielen, indem direkt auf die einzelnen Shellelemente und deren Eigenschaftenspeicher zugegriffen wird. Siehe IPropertyStore::GetCount, IPropertyStore::GetAt und GetPropertyStore.

Das Schreiben in ein Array von Shellelementen wird über die IFileOperation-API unterstützt.

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 shobjidl_core.h (shobjidl.h einschließen)