Funzione StgCreatePropSetStg (coml2api.h)

La funzione StgCreatePropSetStg crea un oggetto di archiviazione del set di proprietà da un oggetto di archiviazione specificato. L'oggetto di archiviazione del set di proprietà fornisce l'implementazione autonoma fornita dal sistema dell'interfaccia IPropertySetStorage .

Sintassi

HRESULT StgCreatePropSetStg(
  [in]  IStorage            *pStorage,
        DWORD               dwReserved,
  [out] IPropertySetStorage **ppPropSetStg
);

Parametri

[in] pStorage

Puntatore all'oggetto di archiviazione che contiene o conterrà uno o più set di proprietà.

dwReserved

Riservato per utilizzi futuri; deve essere zero.

[out] ppPropSetStg

Puntatore alla variabile puntatore IPropertySetStorage* che riceve il puntatore dell'interfaccia all'oggetto di archiviazione del set di proprietà.

Valore restituito

Questa funzione supporta il valore restituito standard E_INVALIDARG nonché quanto segue:

Commenti

La funzione StgCreatePropSetStg crea un'interfaccia IPropertySetStorage che agisce sull'interfaccia IStorage specificata dal parametro pStorage . Questa funzione non modifica questo IStorage da solo, anche se le chiamate successive all'interfaccia IPropertySetStorage potrebbero essere.

StgCreatePropSetStg chiama IUnknown::AddRef nell'oggetto di archiviazione specificato da pStorage. Il chiamante deve rilasciare l'oggetto quando non è più richiesto chiamando Release.

Esempio

Nel codice di esempio seguente viene illustrato come questa funzione crea un set di proprietà all'interno di un oggetto di archiviazione.

IPropertyStorage*
CreatePropertySetInStorage( IStorage *pStg, const FMTID &fmtid )
{
    HRESULT hr = S_OK;
    IPropertySetStorage *pPropSetStg = NULL;
    IPropertyStorage *pPropStg = NULL;
 
    try
    {
        hr = StgCreatePropSetStg( pStg, 0, &pPropSetStg );
        if( FAILED(hr) ) throw L"Failed StgCreatePropSetStg (%08x)";
 
        hr = pPropSetStg->Create( fmtid, NULL,
            PROPSETFLAG_DEFAULT,
            STGM_CREATE | STGM_READWRITE | STGM_SHARE_EXCLUSIVE,
            &pPropStg );
        if( FAILED(hr) ) 
            throw L"Failed IPropertySetStorage::Create (%08x)";
 
        // Success. The caller must now call Release on both
        // pPropSetStg and pStg.
 
    }
    catch( const WCHAR *pwszError )
    {
        wprintf( L"Error: %s (%08x)\n", pwszError, hr );
    }
 
    if( NULL != pPropSetStg )
        pPropSetStg->Release();
 
    return( pPropStg );
}

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 coml2api.h (include Propidl.h)
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

Implementazione autonoma di IPropertySetStorage-Stand-alone

Esempi

Esempio stgCreatePropSetStg