Verwalten von Eigenschaftensätzen

Ein persistenter Eigenschaftensatz enthält verwandte Daten als Eigenschaften. Jeder Eigenschaftssatz wird mit einem FMTID und einem global eindeutigen Bezeichner (GUID) identifiziert, mit dem Anwendungen, die auf den Eigenschaftensatz zugreifen, den Eigenschaftensatz identifizieren können. Durch diese Identifizierung interpretiert die Anwendung die Eigenschaften, die die Gruppe enthält.

Beispielsweise sind die Zeichenformatierungseigenschaften in einer Textverarbeitung oder die Renderingattribute eines Elements in einem Zeichenprogramm Eigenschaftensätze.

COM definiert die IPropertySetStorage-Schnittstelle , um die Verwaltung von Eigenschaftssätzen zu erleichtern. Mithilfe der Methoden dieser Schnittstelle können Sie einen neuen Eigenschaftensatz erstellen oder einen vorhandenen Eigenschaftensatz öffnen oder löschen. Darüber hinaus stellt es eine Methode bereit, die einen Enumerator erstellt und einen Zeiger auf die IEnumSTATPROPSETSTG-Schnittstelle bereitstellt. Sie können die Methoden dieser Schnittstelle aufrufen, um STATPROPSETSTG-Strukturen für Ihr Objekt aufzulisten, wodurch Informationen zu allen Eigenschaftensätzen für das Objekt bereitgestellt werden.

Wenn Sie eine instance von IPropertyStorage erstellen oder öffnen, ähnelt dies dem Öffnen eines Objekts, das IStorage oder IStream unterstützt, da Sie den Speichermodus angeben müssen, in dem Sie die Schnittstelle öffnen. Dazu gehören für IStorage der Transaktionsmodus, der Lese-/Schreibmodus und der Freigabemodus.

Wenn Sie einen Eigenschaftensatz mit einem Aufruf von IPropertySetStorage::Create erstellen, geben Sie an, ob der Eigenschaftensatz einfach oder nicht einfach sein soll. Ein einfacher Eigenschaftensatz enthält Typen, die vollständig innerhalb des Eigenschaftensatzdatenstroms geschrieben werden können, der in der Größe begrenzt sein soll, und darf in Windows NT 4.0 und früher nicht größer als 256 KB oder 1 MB in Windows 2000, Windows XP und Windows Server 2003 sein. Wenn Sie jedoch eine größere Menge an Informationen im Eigenschaftensatz speichern müssen, können Sie angeben, dass der Eigenschaftensatz nicht einfach ist. Dadurch können Sie mindestens einen der Typen verwenden, die nur einen Zeiger auf ein Speicher- oder Streamobjekt angeben. Diese Typen sind VT_STREAM, VT_STREAMED OBJECT, VT_STORAGE und VT_STORED_OBJECT.

Daten, die in diesen Eigenschaften gespeichert sind, werden nicht mit dem Größenlimit von 256 KB in Windows NT 4.0 oder früher oder dem Grenzwert von 1 MB in Windows 2000, Windows XP und Windows Server 2003 gezählt. Es gelten jedoch Daten zur Eigenschaft, z. B. ihr Name. Wenn Sie ein transaktionsiertes Update benötigen, muss der Eigenschaftssatz außerdem nicht einfach sein. Es gibt natürlich eine bestimmte Leistungsstrafe für das Öffnen dieser Typen, da dies das Öffnen des Datenstroms oder Speicherobjekts erfordert, auf das Sie den Zeiger haben.

Wenn Ihre Anwendung zusammengesetzte Dateien verwendet, können Sie die von COM bereitgestellte Implementierung dieser Schnittstellen verwenden, die im COM-Verbunddateispeicherobjekt implementiert werden.

Jeder Eigenschaftensatz besteht hauptsächlich aus einer logisch verbundenen Gruppe von Eigenschaften, wie unter Verwalten von Eigenschaften beschrieben.

Weitere Informationen zu Eigenschaftensätzen in COM finden Sie unter: