Função StgCreatePropSetStg (coml2api.h)

A função StgCreatePropSetStg cria um objeto de armazenamento do conjunto de propriedades de um objeto de armazenamento especificado. O objeto de armazenamento do conjunto de propriedades fornece a implementação autônoma fornecida pelo sistema da interface IPropertySetStorage .

Sintaxe

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

Parâmetros

[in] pStorage

Um ponteiro para o objeto de armazenamento que contém ou conterá um ou mais conjuntos de propriedades.

dwReserved

Reservado para uso futuro; deve ser zero.

[out] ppPropSetStg

Um ponteiro para a variável de ponteiro IPropertySetStorage* que recebe o ponteiro de interface para o objeto de armazenamento do conjunto de propriedades.

Retornar valor

Essa função dá suporte ao valor retornado padrão E_INVALIDARG , bem como ao seguinte:

Comentários

A função StgCreatePropSetStg cria uma interface IPropertySetStorage que atuará na interface IStorage especificada pelo parâmetro pStorage . Essa função não modifica esse IStorage por si só, embora chamadas subsequentes para a interface IPropertySetStorage possam.

StgCreatePropSetStg chama IUnknown::AddRef no objeto de armazenamento especificado por pStorage. O chamador deve liberar o objeto quando ele não for mais necessário chamando Release.

Exemplos

O código de exemplo a seguir mostra como essa função cria um conjunto de propriedades dentro de um objeto de armazenamento.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho coml2api.h (inclua Propidl.h)
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

Implementação autônoma de IPropertySetStorage

Amostras

Exemplo de StgCreatePropSetStg