IPropertySetStorage::Open-Methode (propidl.h)

Die Open-Methode öffnet einen Eigenschaftensatz, der im Eigenschaftensatzspeicherobjekt enthalten ist.

Syntax

HRESULT Open(
  [in]  REFFMTID         rfmtid,
  [in]  DWORD            grfMode,
  [out] IPropertyStorage **ppprstg
);

Parameter

[in] rfmtid

Der Formatbezeichner (FMTID) der zu öffnenden Eigenschaft. Weitere Informationen zu bekannten und vordefinierten FMTIDs im Platform SDK finden Sie unter Vordefinierte Eigenschaftensatzformatbezeichner.

[in] grfMode

Der Zugriffsmodus, in dem der neu erstellte Eigenschaftensatz geöffnet werden soll. Diese Flags stammen aus STGM-Konstanten. Flags, die im Kontext dieser Methode verwendet werden können, und ihre Bedeutungen werden im folgenden Abschnitt hinweise beschrieben.

[out] ppprstg

Ein Zeiger auf die Zeigervariable IPropertyStorage , die den Schnittstellenzeiger auf das angeforderte Eigenschaftenspeicherunterobjekt empfängt.

Rückgabewert

Diese Methode unterstützt zusätzlich zu Folgendem den Standardrückgabewert E_UNEXPECTED:

Hinweise

Der Modus, in dem der Eigenschaftensatz geöffnet werden soll, wird im Parameter grfMode angegeben. Diese Flags stammen aus STGM-Konstanten, aber für diese Methode sind die rechtlichen Werte und ihre Bedeutung wie folgt (nur bestimmte Kombinationen dieser Flagwerte sind zulässig).

Wert Bedeutung
STGM_DIRECT Öffnet den Eigenschaftensatz ohne zusätzliche Transaktionsschachtelungsebene. Dies ist die Standardeinstellung (das Verhalten, wenn weder STGM_DIRECT noch STGM_TRANSACTED angegeben wird).
STGM_TRANSACTED Öffnet den Eigenschaftssatz mit einer zusätzlichen Transaktionsschachtelungsebene (über die Transaktion hinaus, falls vorhanden, für dieses Eigenschaftssatzspeicherobjekt). Der Transacted-Modus ist nur für nicht einfache Eigenschaftssätze verfügbar. Änderungen im Eigenschaftensatz müssen mit einem Aufruf von IPropertyStorage::Commit committet werden, bevor sie für die Transaktion in diesem Eigenschaftensatzspeicher sichtbar sind.
STGM_READ Öffnet den Eigenschaftensatz mit Lesezugriff. Leseberechtigung ist für den Eigenschaftensatzspeicher erforderlich.
STGM_WRITE Öffnet den Eigenschaftensatz mit Schreibzugriff. Nicht alle Implementierungen von IPropertyStorage unterstützen diesen Modus.
STGM_READWRITE Öffnet den Eigenschaftensatz mit Lese- und Schreibzugriff. Beachten Sie, dass dieses Flag nicht das binäre OR der Werte STGM_READ und STGM_WRITE ist.
STGM_SHARE_DENY_NONE Nachfolgende Öffnungen des Eigenschaftssatzes aus diesem Eigenschaftensatzspeicher werden nicht lese- oder schreibzugriff verweigert. (Nicht in allen Implementierungen verfügbar.)
STGM_SHARE_DENY_READ Nachfolgende Öffnungen des Eigenschaftensatzes aus diesem Eigenschaftensatzspeicher werden lesezugriff verweigert. Nicht in allen Implementierungen verfügbar.
STGM_SHARE_DENY_WRITE Nachfolgende Öffnungen des Eigenschaftensatzes aus diesem Eigenschaftensatzspeicher werden schreibzugriff verweigert. Dieser Wert wird in der Regel im Transaktionsmodus verwendet, um zu verhindern, dass unnötige Kopien eines Objekts erstellt werden, das von mehreren Benutzern geöffnet wird. Das heißt, wenn STGM_TRANSACTED angegeben ist, aber dieser Wert nicht angegeben wird, wird eine Momentaufnahme erstellt, unabhängig davon, ob nachfolgende Öffnungen vorhanden sind oder nicht. Daher können Sie die Leistung verbessern, indem Sie diesen Wert angeben. Nicht in allen Implementierungen verfügbar.
STGM_SHARE_EXCLUSIVE Nachfolgende Öffnungen des Eigenschaftensatzes aus diesem Eigenschaftensatzspeicher sind nicht möglich. Beachten Sie, dass es sich bei diesem Wert nicht um ein einfaches binäres OR der elemente STGM_SHARE_DENY_READ und STGM_SHARE_DENY_WRITE handelt.
 

Diese Methode unterliegt den Einschränkungen des zugrunde liegenden IStorage::OpenStream (für einfache Eigenschaftssätze) oder IStorage::OpenStorage (für nicht einfache Eigenschaftssätze). Weitere Informationen zu einfachen und nicht einfachen Eigenschaftensätzen finden Sie unter Storage and Stream Objects for a Property Set. Wenn Sie beispielsweise die IPropertySetStorage-Verbunddateiimplementierung verwenden, müssen Sie STGM_SHARE_EXCLUSIVE im grfMode-Parameter für IPropertySetStorage::Open angeben. Umgekehrt unterliegt IPropertySetStorage-Eigenständige ImplementierungIPropertySetStorage::Open Einschränkungen, die für das vom Aufrufer angegebene IStorage gelten.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile propidl.h (include Objbase.h)
Bibliothek Uuid.lib
DLL Ole32.dll

Weitere Informationen

EnumAll-Beispiel

IPropertySetStorage

IPropertySetStorage::Create

PROPVARIANT

Beispiele

WriteRead-Beispiel