IPropertySetStorage-Compound-Dateiimplementierung
Die Com-Verbunddateispeicherobjektimplementierung umfasst eine Implementierung von IPropertyStorage, der Schnittstelle, die einen einzelnen persistenten Eigenschaftensatz verwaltet, und IPropertySetStorage, der Schnittstelle, die Gruppen persistenter Eigenschaftensätze verwaltet.
Um einen Zeiger auf die Verbunddateiimplementierung von IPropertySetStorage abzurufen, geben Sie den vom Header definierten 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 kann auch im Fall von StgOpenStorageEx angegeben werden.) Geben Sie außerdem den vom Header definierten Namen für den Schnittstellenbezeichner (Interface Identifier, IID) IID_IPropertySetStorage als riid-Parameter an. Beide Funktionen stellen einen Zeiger auf die IPropertySetStorage-Schnittstelle des Objekts bereit.
Eine andere Möglichkeit, einen Zeiger auf die Verbunddateiimplementierung abzurufen, besteht darin, den headerdefinierte Namen für den Bezeichner IID_IStorage als riid-Parameter anzugeben oder die Funktionen StgCreateDocfile oder StgOpenStorage zu verwenden. Dadurch wird ein Zeiger auf die IStorage-Objektschnittstelle bereitgestellt. Wenn Sie persistente Eigenschaftensätze behandeln möchten, rufen Sie IStorage::QueryInterface für die IPropertySetStorage-Schnittstelle auf.
Verwendung von IPropertySetStorage
Rufen Sie die Methoden von IPropertySetStorage auf, um Eigenschaftssätze im aktuellen Verbunddatei-Eigenschaftensatzspeicher zu erstellen, zu öffnen oder zu löschen. Es gibt auch die Methode IPropertySetStorage::Enum, die einen Zeiger auf einen Enumerator bereitstellt, der zum Aufzählen der Eigenschaftssätze im Speicher verwendet werden kann.
Methoden
Erstellt einen neuen Eigenschaftssatz im aktuellen Verbunddateispeicher und stellt bei der Rückgabe einen Schnittstellenzeiger auf die IPropertyStorage-Verbunddateiimplementierung bereit. In dieser Implementierung können Eigenschaftssätze nur ausgeführt werden, wenn PROPSETFLAG_NONSIMPLE angegeben ist. Diese Methode erfordert, dass der im grfMode-Parameter angegebene Freigabemodus STGM_SHARE_EXCLUSIVE ist und dass der Zugriffsmodus entweder STGM_READ oder STGM_READWRITE ist (STGM_WRITE Modus wird nicht unterstützt).
Öffnet einen vorhandenen Eigenschaftensatz im aktuellen Eigenschaftenspeicher. Bei der Rückgabe wird ein Schnittstellenzeiger auf die Verbunddateiimplementierung von IPropertyStorage bereitgestellt. Diese Methode erfordert, dass der im grfMode-Parameter angegebene Freigabemodus STGM_SHARE_EXCLUSIVE ist und dass der Zugriffsmodus entweder STGM_READ oder STGM_READWRITE ist (STGM_WRITE wird nicht unterstützt).
Löscht einen Eigenschaftssatz in diesem Eigenschaftenspeicher.
Erstellt ein -Objekt, das zum Aufzählen von STATPROPSETSTG-Strukturen verwendet wird. Jede STATPROPSETSTG-Struktur stellt Daten zu einem einzelnen Eigenschaftensatz bereit.
Bemerkungen
Ab Windows 2000 unterstützt die Verbunddateiimplementierung von IPropertySetStorage den einfachen Modus. Der einfache Modus wird durch Angabe des STGM_SIMPLE-Flags für die Funktionen StgCreateStorageEx und StgOpenStorageEx angegeben. Wenn die Verbunddatei im einfachen Modus geöffnet wird, ist die zugehörige IPropertySetStorage-Implementierung wie folgt eingeschränkt:
- Es können nur einfache Eigenschaftensätze erstellt werden. Das heißt, die Angabe 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 und Abfragen für die IPropertySetStorage-Schnittstelle erstellt haben, können Sie IPropertySetStorage::Create nur einmal 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 Eigenschaftssatz 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 jeweils eine Eigenschaft öffnen, die jeweils mit IPropertySetStorage::Open festgelegt ist. Außerdem ist es möglicherweise nicht möglich, dass die Gesamtgröße des Eigenschaftssatzes erhöht wird, während der Eigenschaftensatz geöffnet ist.
Einfache Eigenschaftssätze können nicht abgewickelt werden. Sie können STGM_TRANSACTED nicht im grfmode-Parameter der Create - und Open-Methoden angeben, es sei denn, Sie geben auch PROPSETFLAG_NONSIMPLE im grfFlags-Parameter an. Beachten Sie, dass einfache und nicht einfache Eigenschaftssätze nicht mit den oben beschriebenen Eigenschaftensätzen im einfachen Modus zusammenhängen. Weitere Informationen zu einfachen und nicht einfachen Eigenschaftensätzen finden Sie unter Speicher- und Streamobjekte für einen Eigenschaftensatz.
Hinweis
Die Eigenschaftssätze DocumentSummaryInformation und UserDefined sind eindeutig, da sie über zwei Eigenschaftensatzabschnitte verfügen können. Weitere Informationen finden Sie unter The DocumentSummaryInformation and UserDefined Property Sets.For more information, see The DocumentSummaryInformation and UserDefined Property Sets.
Zugehörige Themen