Freigeben über


IEnumSTATPROPSETSTG-Compound Dateiimplementierung

Die zusammengesetzte Dateiimplementierung der IEnumSTATPROPSETSTG Schnittstelle wird verwendet, um ein Array von STATPROPSETSTG- Strukturen zu enumerieren, die statistische Eigenschaftsdaten enthalten. Die IPropertySetStorage Implementierung verwaltet die statistischen Daten und ist einem aktuellen zusammengesetzten Dateispeicherobjekt zugeordnet.

Wann verwendet werden soll

Rufen Sie die Methoden von IEnumSTATPROPSETSTG- auf, um STATPROPSETSTG- Strukturen auflisten, die jeweils Daten zu einem der Eigenschaftensätze bereitstellen, die dem zusammengesetzten Dateispeicherobjekt zugeordnet sind.

Bemerkungen

IEnumSTATPROPSETSTG::Next

Ruft die nächste oder mehrere STATPROPSETSTG Strukturen ab (die Zahl wird durch den Celt Parameter angegeben). Die STATPROPSETSTG- Elemente, die über einen Aufruf der zusammengesetzten Dateiimplementierung von IEnumSTATPROPSETSTG::Next folgenden Regeln bereitgestellt werden:

  • Wenn IEnumSTATPROPSETSTG::Next STATPROPSETSTG.fmtid nicht bereitstellen kann, werden Nullen in dieses Element geschrieben. Dies tritt auf, wenn der Eigenschaftensatz keinen vordefinierten Namen (z. B. \005SummaryInformation) aufweist und kein gesetzlicher Wert ist.
  • Der Eigenschaftssatz "DocumentSummaryInformation" und "UserDefined" ist besonders, da er zwei Eigenschaftensatzabschnitte aufweisen kann. Dieser Eigenschaftensatz wird im Abschnitt DocumentSummaryInformation und UserDefined Property Setsbeschrieben. Der zweite Abschnitt wird als User-Defined Eigenschaften bezeichnet. Jeder Abschnitt wird mit einem eindeutigen Formatbezeichner (FMTID) identifiziert. Wenn IPropertySetStorage::Enum zum Aufzählen von Eigenschaftensätzen verwendet wird, wird der User-Defined Eigenschaftensatz nicht aufgezählt.

Anmerkung

Wenn Sie immer einen Eigenschaftensatz mit IPropertySetStorage::Createerstellen, wird ein "Character GUID" für den Speichernamen erstellt, IEnumSTATPROPSETSTG::Next gibt einen nonzero, gültigen FMTID für den Eigenschaftensatz [STATPROPSETSTG.fmtid] zurück.

 

  • Das Element STATPROPSETSTG.grfFlags gibt nicht unbedingt an, ob der Eigenschaftensatz ANSI ist oder nicht. Wenn PROPSETFLAG_ANSI festgelegt ist, ist der Eigenschaftensatz definitiv ANSI. Wenn PROPSETFLAG_ANSI klar ist, kann der Eigenschaftensatz entweder Unicode oder Nicht-Unicode sein, da es nicht möglich ist, festzustellen, ob es sich um ANSI handelt, ohne sie zu öffnen.
  • Der STATPROPSETSTG.grfFlags-Member gibt an, ob der Eigenschaftensatz einfach ist oder nicht, sodass die Einstellung des PROPSETFLAG_NONSIMPLE Flags immer gültig ist.
  • Wenn IEnumSTATPROPSETSTG::Next STATPROPSETSTG.clsid nicht bereitstellen kann, wird sie auf alle Nullen (CLSID_NULL) festgelegt. In der COM-Verbunddateiimplementierung tritt dies auf, wenn der Eigenschaftensatz einfach ist (das flag PROPSETFLAG_NONSIMPLE nicht festgelegt ist) oder nicht unimplementiert ist, die CLSID jedoch nicht explizit festgelegt wurde. Bei Nichtimple-Eigenschaftssätzen ist die empfangene CLSID die vom zugrunde liegenden IStorageverwaltet wird.
  • Wenn IEnumSTATPROPSETSTG::Next die Zeitfelder [ctime, mtime, atimenicht bereitstellen kann ), wird jede nicht unterstützte Zeit auf Nullen festgelegt. In der COM-Verbunddateiimplementierung hängt das Abrufen dieser Werte von der zugrunde liegenden IStorage Implementierung ab.

IEnumSTATPROPSETSTG::Skip

Überspringt die Anzahl der in celtangegebenen Elemente. Gibt S_OK zurück, wenn die angegebene Anzahl von Elementen übersprungen wird, wird S_FALSE zurückgegeben, wenn weniger Elemente als angefordert übersprungen werden. Gibt in jedem anderen Fall den entsprechenden Fehler zurück.

IEnumSTATPROPSETSTG::Reset

Legt den Cursor auf den Anfang der Enumeration fest. Wenn dies erfolgreich ist, wird S_OK zurückgegeben, andernfalls wird STG_E_INVALIDHANDLE zurückgegeben.

IEnumSTATPROPSETSTG::Clone

Kopiert den aktuellen Enumerationsstatus dieses Enumerators.