Freigeben über


Speicher- und Streamobjekte für einen Eigenschaftensatz

Der Programmierer gibt an, ob ein Eigenschaftensatz in einem Speicher oder Stream gespeichert wird, wenn der Eigenschaftensatz erstellt wird. Der PROPSETFLAG_NONSIMPLE-Enumerationswert, der im grfFlags-Parameter an die IPropertySetStorage::Create-Methode übergeben wird, gibt dies an. Wenn Sie festlegen, wo der Eigenschaftssatz gespeichert wird, können Sie die richtigen Anwendungssteuerelemente vollständig über die IPropertySetStorage-Schnittstelle mit dem COM-Eigenschaftssatz ineinandergreifen.

Wenn das PROPSETFLAG_NONSIMPLE-Flag festgelegt ist, wird der Eigenschaftensatz in einem Speicherobjekt gespeichert, und nicht einfache Eigenschaftswerte können in ihn geschrieben werden. Nicht einfache Werte enthalten Werte mit einem VARTYPE-Wert von VT_STORAGE, VT_STREAM, VT_STORED_OBJECT oder VT_STREAMED_OBJECT. Weitere Informationen zu VARTYPE-Werten und deren Verwendung finden Sie in der PROPVARIANT-Struktur .

Wenn das PROPSETFLAG_NONSIMPLE-Flag nicht festgelegt ist, können nur einfache Werte in den Eigenschaftensatz geschrieben werden.

Im Speicherobjekt eines nicht einfachen Eigenschaftensatzes wird ein Stream mit dem Namen Contents erstellt. Dies ist der primäre Stream des Eigenschaftensatzes und enthält alle einfachen Eigenschaftswerte. Nicht einfache Eigenschaftswerte (Streams und Speicher) werden unter dem Standard Speicherobjekt der Eigenschaft gespeichert, die als Teilströme und Speicher festgelegt ist. Das heißt, diese nicht einfachen Werte werden als gleichgeordnete Werte des Inhaltsdatenstroms gespeichert. Der Name der gleichgeordneten Datenströme und Speicher wird von der Implementierung bestimmt und ähnlich wie eine einfache Zeichenfolgeneigenschaft im Contents-Stream gespeichert.