Freigeben über


StgCreatePropSetStg-Funktion (coml2api.h)

Die StgCreatePropSetStg-Funktion erstellt ein Eigenschaftensatzspeicherobjekt aus einem angegebenen Speicherobjekt. Das Eigenschaftssatzspeicherobjekt stellt die vom System bereitgestellte eigenständige Implementierung der IPropertySetStorage-Schnittstelle bereit.

Syntax

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

Parameter

[in] pStorage

Ein Zeiger auf das Speicherobjekt, das einen oder mehrere Eigenschaftssätze enthält oder enthalten wird.

dwReserved

Für die zukünftige Verwendung reserviert. Muss 0 (null) sein.

[out] ppPropSetStg

Ein Zeiger auf die IPropertySetStorage*-Zeigervariable, die den Schnittstellenzeiger auf das Eigenschaftssatzspeicherobjekt empfängt.

Rückgabewert

Diese Funktion unterstützt den Standardrückgabewert E_INVALIDARG sowie Folgendes:

Hinweise

Die StgCreatePropSetStg-Funktion erstellt eine IPropertySetStorage-Schnittstelle, die auf die vom pStorage-Parameter angegebene IStorage-Schnittstelle wirkt. Diese Funktion ändert diese IStorage nicht selbst, obwohl nachfolgende Aufrufe der IPropertySetStorage-Schnittstelle möglicherweise auftreten.

StgCreatePropSetStg ruft IUnknown::AddRef für das von pStorage angegebene Speicherobjekt auf. Der Aufrufer muss das Objekt freigeben, wenn es nicht mehr benötigt wird, indem Er Release aufruft.

Beispiele

Der folgende Beispielcode zeigt, wie diese Funktion einen Eigenschaftssatz in einem Speicherobjekt erstellt.

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 );
}

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 coml2api.h (einschließlich Propidl.h)
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

IPropertySetStorage-Eigenständige Implementierung

Beispiele

StgCreatePropSetStg-Beispiel