Partager via


StgCreatePropSetStg, fonction (coml2api.h)

La fonction StgCreatePropSetStg crée un objet de stockage de jeu de propriétés à partir d’un objet de stockage spécifié. L’objet de stockage du jeu de propriétés fournit l’implémentation autonome fournie par le système de l’interface IPropertySetStorage .

Syntaxe

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

Paramètres

[in] pStorage

Pointeur vers l’objet de stockage qui contient ou contiendra un ou plusieurs jeux de propriétés.

dwReserved

Réservé pour une future utilisation ; doit être nul.

[out] ppPropSetStg

Pointeur vers la variable de pointeur IPropertySetStorage* qui reçoit le pointeur d’interface vers l’objet de stockage de jeu de propriétés.

Valeur retournée

Cette fonction prend en charge la valeur de retour standard E_INVALIDARG ainsi que les éléments suivants :

Remarques

La fonction StgCreatePropSetStg crée une interface IPropertySetStorage qui agit sur l’interface IStorage spécifiée par le paramètre pStorage . Cette fonction ne modifie pas cet IStorage d’elle-même, bien que les appels suivants à l’interface IPropertySetStorage puissent le faire.

StgCreatePropSetStg appelle IUnknown ::AddRef sur l’objet de stockage spécifié par pStorage. L’appelant doit libérer l’objet lorsqu’il n’est plus nécessaire en appelant Release.

Exemples

L’exemple de code suivant montre comment cette fonction crée un jeu de propriétés dans un objet de stockage.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête coml2api.h (include Propidl.h)
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

Implémentation autonome IPropertySetStorage

Exemples

Exemple StgCreatePropSetStg