Freigeben über


IPropertySetStorage-Compound Dateiimplementierung

Die Com-Verbunddateispeicherobjektimplementierung umfasst eine Implementierung von IPropertyStorage, der Schnittstelle, die einen einzelnen beständigen Eigenschaftensatz verwaltet, und IPropertySetStorage, der Schnittstelle, die Gruppen persistenter Eigenschaftensätze verwaltet.

Um einen Zeiger auf die zusammengesetzte Dateiimplementierung von IPropertySetStorageabzurufen, geben Sie den headerdefinierte Namen für den Bezeichner IID_IStorage als riid-Parameter an, oder verwenden Sie die funktionen StgCreateStorageEx oder StgOpenStorageEx. Geben Sie in beiden Fällen STGFMT_STORAGE als stgfmt Parameter an. (STGFMT_ANY können alternativ im Fall von StgOpenStorageExangegeben werden.) Geben Sie außerdem den headerdefinierten Namen für den Schnittstellenbezeichner (IID) IID_IPropertySetStorage als riid Parameter an. Beide Funktionen stellen einen Zeiger auf das Objekt IPropertySetStorage Schnittstelle bereit.

Eine weitere Möglichkeit zum Abrufen eines Zeigers auf die Verbunddateiimplementierung besteht darin, den headerdefinierte Namen für den Bezeichner anzugeben, IID_IStorage als riid--Parameter oder die StgCreateDocfile-- oder StgOpenStorage--Funktionen zu verwenden. Dadurch wird ein Zeiger auf das Objekt IStorage- Schnittstelle angezeigt. Wenn Sie sich mit persistenten Eigenschaftensätzen befassen möchten, rufen Sie IStorage::QueryInterface- für die IPropertySetStorage Schnittstelle auf.

Verwendung von IPropertySetStorage

Rufen Sie die Methoden von IPropertySetStorage auf, um Eigenschaftensätze im aktuellen Speicher für zusammengesetzte Dateien zu erstellen, zu öffnen oder zu löschen. Es gibt auch eine Methode, IPropertySetStorage::Enum, die einen Zeiger auf einen Enumerator bereitstellt, der zum Aufzählen der Eigenschaftensätze im Speicher verwendet werden kann.

Methodik

IPropertySetStorage::Create

Erstellt einen neuen Eigenschaftensatz im aktuellen Verbunddateispeicher und stellt im Gegenzug einen Schnittstellenzeiger auf die IPropertyStorage Implementierung zusammengesetzter Dateien bereit. In dieser Implementierung können Eigenschaftssätze nur durchgeführt werden, wenn PROPSETFLAG_NONSIMPLE angegeben ist. Für diese Methode muss der im grfMode Parameter angegebene Freigabemodus STGM_SHARE_EXCLUSIVE werden und der Zugriffsmodus entweder STGM_READ oder STGM_READWRITE sein (STGM_WRITE Modus wird nicht unterstützt).

IPropertySetStorage::Open

Öffnet einen vorhandenen Eigenschaftensatz im aktuellen Eigenschaftenspeicher. Im Gegenzug stellt sie einen Schnittstellenzeiger auf die zusammengesetzte Dateiimplementierung von IPropertyStoragebereit. Für diese Methode muss der im grfMode Parameter angegebene Freigabemodus STGM_SHARE_EXCLUSIVE werden und der Zugriffsmodus entweder STGM_READ oder STGM_READWRITE sein (STGM_WRITE wird nicht unterstützt).

IPropertySetStorage::D elete

Löscht einen Eigenschaftensatz in diesem Eigenschaftenspeicher.

IPropertySetStorage::Enum

Erstellt ein Objekt, das zum Aufzählen STATPROPSETSTG- Strukturen verwendet wird. Jede STATPROPSETSTG- Struktur stellt Daten zu einem einzelnen Eigenschaftensatz bereit.

Bemerkungen

Ab Windows 2000 unterstützt die zusammengesetzte Dateiimplementierung von IPropertySetStorage den einfachen Modus. Der einfache Modus wird durch Angeben des STGM_SIMPLE Flags für die funktionen StgCreateStorageEx und StgOpenStorageEx angegeben. Wenn die Verbunddatei im einfachen Modus geöffnet wird, ist die zugeordnete IPropertySetStorage Implementierung wie folgt beschränkt:

  • Es können nur einfache Eigenschaftensätze erstellt werden. Das heißt, das Angeben des PROPSETFLAG_NONSIMPLE Werts im grfFlags Parameter für die IPropertySetStorage::Create-Methode führt zu einem Fehler.
  • Nachdem Sie eine Verbunddatei mit StgCreateStorageEx mithilfe von STGM_SIMPLE erstellt und die IPropertySetStorage-schnittstelle abfragen, können Sie nur einmal IPropertySetStorage::Create aufrufen. Anschließend müssen Sie die IPropertyStorage Schnittstelle freigeben, bevor Sie die Create-Methode erneut aufrufen. Weitere Informationen zum einfachen Modus finden Sie unter STGM-Konstanten.
  • Sie können die IPropertySetStorage::Open-Methode nicht verwenden, um einen Eigenschaftensatz zu öffnen, nachdem Sie StgCreateStorageEx- zum Erstellen des Speicherobjekts verwendet haben. Stattdessen müssen Sie StgOpenStorageEx- verwenden, bevor Sie IPropertySetStorage- abfragen und die Open-Methode aufrufen.
  • Nachdem Sie eine Verbunddatei mit StgOpenStorageEx- mithilfe des STGM_SIMPLE Flags und der Abfrage für die IPropertySetStorage Schnittstelle geöffnet haben, können Sie eine Eigenschaft öffnen, die jeweils mit IPropertySetStorage::Openfestgelegt wurde. Außerdem ist es möglicherweise nicht möglich, dass die Gesamtgröße der Eigenschaft erhöht wird, während der Eigenschaftensatz geöffnet ist.

Einfache Eigenschaftensätze können nicht durchgeführt werden. Sie können STGM_TRANSACTED im grfmode Parameter der Methoden Create und Open nicht angeben, es sei denn, Sie geben auch PROPSETFLAG_NONSIMPLE im parameter grfFlags an. Beachten Sie, dass einfache und nicht einfache Eigenschaftensätze nicht mit den oben beschriebenen Eigenschaftensätzen im einfachen Modus zusammenhängen. Weitere Informationen zu einfachen und nicht unimplenten Eigenschaftensätzen finden Sie unter Storage- und Stream Objects for a Property Set.

Anmerkung

Die Eigenschaftensätze "DocumentSummaryInformation" und "UserDefined" sind eindeutig, da sie möglicherweise zwei Eigenschaftensatzabschnitte aufweisen. Weitere Informationen finden Sie unter DocumentSummaryInformation und UserDefined Property Sets.

 

IPropertyStorage - Zusammengesetzte Dateiimplementierung

IPropertySetStorage

IPropertyStorage-

IStorage::EnumElements

PROPSETFLAG-Konstanten

STATPROPSETSTG-