Freigeben über


IEnumSTATPROPSETSTG-Compound Dateiimplementierung

Die Zusammengesetzte Dateiimplementierung der IEnumSTATPROPSETSTG-Schnittstelle wird verwendet, um ein Array von STATPROPSETSTG-Strukturen aufzulisten, die statistische Eigenschaftendaten enthalten. Die IPropertySetStorage-Implementierung verwaltet die statistischen Daten und ist einem aktuellen Speicherobjekt für zusammengesetzte Dateien zugeordnet.

Einsatzgebiet

Rufen Sie die Methoden von IEnumSTATPROPSETSTG auf, um STATPROPSETSTG-Strukturen aufzulisten, von denen jede Daten zu einer der Eigenschaftensätze bereitstellt, die dem Zusammengesetzten Dateispeicherobjekt zugeordnet sind.

Bemerkungen

IEnumSTATPROPSETSTG::Weiter

Ruft die nächsten mindestens eine STATPROPSETSTG-Struktur ab (die Zahl wird durch den celt-Parameter angegeben). Die STATPROPSETSTG-Elemente , die über einen Aufruf der Zusammengesetzten Dateiimplementierung von IEnumSTATPROPSETSTG::Weiter bereitgestellt werden, befolgen Sie die folgenden Regeln:

  • Wenn IEnumSTATPROPSETSTG::Next STATPROPSETSTG.fmtid nicht bereitstellen kann, werden Nullen in dieses Element geschrieben. Dies tritt auf, wenn der Eigenschaftssatz 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 Eigenschaftssatz wird im Abschnitt DocumentSummaryInformation und UserDefined Property Sets beschrieben. Der zweite Abschnitt wird als User-Defined Eigenschaften bezeichnet. Jeder Abschnitt wird mit einem eindeutigen Formatbezeichner (FMTID) identifiziert. Wenn IPropertySetStorage::Enum zum Auflisten von Eigenschaftssätzen verwendet wird, wird der User-Defined Eigenschaftensatz nicht aufgelistet.

Hinweis

Wenn Sie immer einen Eigenschaftssatz mit IPropertySetStorage::Create erstellen, gibt IEnumSTATPROPSETSTG::Next einen nichtzero gültigen FMTID für den Eigenschaftensatz [STATPROPSETSTG.fmtid] zurück, da eine "Character GUID" für den Speichernamen erstellt wird.

 

  • Der Member "STATPROPSETSTG.grfFlags" gibt nicht unbedingt an, ob der Eigenschaftssatz ANSI ist oder nicht. Wenn PROPSETFLAG_ANSI festgelegt ist, ist der Eigenschaftssatz definitiv ANSI. Wenn PROPSETFLAG_ANSI klar ist, kann der Eigenschaftssatz entweder Unicode oder Nicht-Unicode sein, da es nicht möglich ist, festzustellen, ob es sich um ANSI handelt, ohne sie zu öffnen.
  • Der Member STATPROPSETSTG.grfFlags gibt an, ob der Eigenschaftssatz einfach ist oder nicht, sodass die Einstellung des PROPSETFLAG_NONSIMPLE Flags immer gültig ist.
  • Wenn IEnumSTATPROPSETSTG::Next STATPROPSETSTG.clsid nicht bereitstellen kann, wird es auf alle Nullen (CLSID_NULL) festgelegt. In der COM-Verbunddateiimplementierung tritt dies auf, wenn der Eigenschaftssatz einfach ist (das PROPSETFLAG_NONSIMPLE Flag ist nicht festgelegt) oder nicht einfach ist, die CLSID jedoch nicht explizit festgelegt wurde. Bei nicht einfachen Eigenschaftssätzen ist die empfangene CLSID diejenige, die vom zugrunde liegenden IStorage verwaltet wird.
  • Wenn IEnumSTATPROPSETSTG::Next die Zeitfelder [ctime, mtime, atime] nicht 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 celt angegebenen Elemente. Gibt S_OK zurück, wenn die angegebene Anzahl von Elementen übersprungen wird, gibt S_FALSE zurück, wenn weniger Elemente als angefordert übersprungen werden. In jedem anderen Fall gibt den entsprechenden Fehler zurück.

IEnumSTATPROPSETSTG::Reset

Legt den Cursor auf den Anfang der Enumeration fest. Bei erfolgreicher Ausführung wird S_OK zurückgegeben, andernfalls wird STG_E_INVALIDHANDLE zurückgegeben.

IEnumSTATPROPSETSTG::Clone

Kopiert den aktuellen Enumerationsstatus dieses Enumerators.