Metodo IPropertySetStorage::Open (propidl.h)

Il metodo Open apre un set di proprietà contenuto nell'oggetto di archiviazione del set di proprietà.

Sintassi

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

Parametri

[in] rfmtid

Identificatore di formato (FMTID) della proprietà impostata per l'apertura. Per altre informazioni su FMTID noti e predefiniti in Platform SDK, vedere Identificatori di formato set di proprietà predefiniti.

[in] grfMode

Modalità di accesso in cui è necessario aprire il set di proprietà appena creato. Questi flag vengono presi da costanti STGM. I flag che possono essere usati e i relativi significati nel contesto di questo metodo sono descritti nella sezione Osservazioni seguenti.

[out] ppprstg

Puntatore alla variabile puntatore IPropertyStorage che riceve il puntatore dell'interfaccia al subobject dell'archiviazione delle proprietà richiesta.

Valore restituito

Questo metodo supporta il valore restituito standard E_UNEXPECTED, oltre al seguente:

Commenti

La modalità in cui il set di proprietà deve essere aperto viene specificato nel parametro grfMode. Questi flag vengono presi da costanti STGM, ma, per questo metodo, i valori legali e i relativi significati sono i seguenti (solo alcune combinazioni di questi valori di flag sono legali).

Valore Significato
STGM_DIRECT Apre il set di proprietà senza un livello aggiuntivo di annidamento delle transazioni. Questo è il valore predefinito (il comportamento se non è specificato né STGM_DIRECT né STGM_TRANSACTED).
STGM_TRANSACTED Apre il set di proprietà con un livello aggiuntivo di annidamento delle transazioni (oltre la transazione, se presente, su questo oggetto di archiviazione impostato sulla proprietà). La modalità transacted è disponibile solo per i set di proprietà nonsimple. Le modifiche nel set di proprietà devono essere eseguite con una chiamata a IPropertyStorage::Commit prima che siano visibili alla transazione nell'archiviazione del set di proprietà.
STGM_READ Apre il set di proprietà con accesso in lettura. Per l'archiviazione del set di proprietà è necessaria l'autorizzazione di lettura.
STGM_WRITE Apre il set di proprietà con accesso in scrittura. Non tutte le implementazioni di IPropertyStorage supportano questa modalità.
STGM_READWRITE Apre il set di proprietà con accesso in lettura e scrittura. Tenere presente che questo flag non è l'OR binario dei valori STGM_READ e STGM_WRITE.
STGM_SHARE_DENY_NONE Le aperture successive del set di proprietà da questa risorsa di archiviazione del set di proprietà non vengono negate l'accesso in lettura o scrittura. (Non disponibile in tutte le implementazioni).
STGM_SHARE_DENY_READ Le successive aperture del set di proprietà da questa risorsa di archiviazione del set di proprietà vengono negate l'accesso in lettura. Non disponibile in tutte le implementazioni.
STGM_SHARE_DENY_WRITE Le successive aperture del set di proprietà da questa risorsa di archiviazione del set di proprietà vengono negate l'accesso in scrittura. Questo valore viene in genere usato nella modalità transazionata per impedire di eseguire copie non necessarie di un oggetto aperto da più utenti. Ovvero, se viene specificato STGM_TRANSACTED, ma questo valore non viene specificato, viene eseguito uno snapshot, indipendentemente dal fatto che siano presenti aperture successive o meno. È quindi possibile migliorare le prestazioni specificando questo valore. Non disponibile in tutte le implementazioni.
STGM_SHARE_EXCLUSIVE Le aperture successive del set di proprietà da questa risorsa di archiviazione del set di proprietà non sono possibili. Tenere presente che questo valore non è un semplice OR binario degli elementi STGM_SHARE_DENY_READ e STGM_SHARE_DENY_WRITE.
 

Questo metodo è soggetto ai vincoli dei set di proprietà IStorage::OpenStream sottostanti (per set di proprietà semplici) o IStorage::OpenStorage (per i set di proprietà nonsimple). Per altre informazioni sui set di proprietà semplici e nonsimple, vedere Archiviazione e oggetti Stream per un set di proprietà. Ad esempio, quando si usa l'implementazione di file IPropertySetStorage-Compound, è necessario specificare STGM_SHARE_EXCLUSIVE nel parametro grfMode su IPropertySetStorage::Open. Al contrario, se si usa l'implementazione autonoma di IPropertySetStorage, IPropertySetStorage::Open è soggetto a vincoli che si applicano al chiamante specificato da IStorage.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione propidl.h (include Objbase.h)
Libreria Uuid.lib
DLL Ole32.dll

Vedi anche

Esempio EnumAll

IPropertySetStorage

IPropertySetStorage::Create

PROPVARIANT

Esempi

Esempio WriteRead