IPropertySetStorage::Open  23HS6.E

Opens a property set contained in the property set storage object.

HRESULT Open(

    REFFMTID  fmtid,

//The format identifier of the property set to be opened

    DWORD grfMode,

//Storage mode in which property set is to be opened

    IPropertyStorage**  ppPropStg

//Indirect pointer to property storage object

   );

 

 

Parameters

fmtid

[in] Format identifier of the property set to be opened.

grfMode

[in] Access mode in which the newly created property set is to be opened. These flags are taken from the STGM enumeration. Flags that may be used and their meanings in the context of this method are described in the Remarks.

ppPropStg

[in] Indirect pointer to the IPropertyStorage interface on the requested property storage sub-object.

 

Return Values

This method supports the standard return value E_UNEXPECTED, as well as the following:

S_OK

Success.

STG_E_FILENOTFOUND

A property set of the indicated name does not exist.

STG_E_ACCESSDENIED

The requested access to the property storage object has been denied, or the property set is corrupted.

STG_E_INSUFFICIENTMEMORY

There is not sufficient memory to perform this operation.

STG_E_INVALIDPARAMETER

A parameter is invalid.

 

Remarks

The mode in which the property set is to be opened is specified in the parameter grfMode. These flags are taken from the STGM enumeration, but, for this method, legal values and their meanings are as follows (only certain combinations of these flag values are legal).

Value

Meaning

STGM_DIRECT

Open the property set without an additional level of transaction nesting. This is the default (the behavior if neither STGM_DIRECT nor STGM_TRANSACTED is specified).

STGM_TRANSACTED

Open the property set with an additional level of transaction nesting (beyond the transaction, if any, on this property set storage object). Transacted mode is available only on non-simple property sets, because they use an IStorage with a contents stream. Changes in the property set must be committed with a call to IPropertyStorage::Commit before they are visible to the transaction on this property set storage.

STGM_READ

Open the property set with read access. Read permission is required on the property set storage.

STGM_WRITE

Open the property set with write access. Write permission is not required on the IPropertySetStorage; however, such write permission is required for changes in the storage to be committed.

STGM_READWRITE

Open the property set with read-write access. Note that this flag is not the binary OR of the values STGM_READ and STGM_WRITE.

STGM_SHARE_DENY_NONE

Subsequent openings of the property set are not denied read or write access. Not available in compound file implementation.

STGM_SHARE_DENY_READ

Subsequent openings of the property set in are denied read access. Not available in compound file implementation.

STGM_SHARE_DENY_WRITE

Subsequent openings of the property set are denied write access. This value is typically used to prevent making unnecessary copies of an object opened by multiple users. If this value is not specified, a snapshot is made, whether there are subsequent openings or not. Thus, you can improve performance by specifying this value. Not available in compound file implementation.

STGM_SHARE_EXCLUSIVE

The combination of STGM_SHARE_DENY_READ and STGM_SHARE_DENY_WRITE.