Función StgCreatePropSetStg (coml2api.h)
La función StgCreatePropSetStg crea un objeto de almacenamiento de conjunto de propiedades a partir de un objeto de almacenamiento especificado. El objeto de almacenamiento del conjunto de propiedades proporciona la implementación independiente proporcionada por el sistema de la interfaz IPropertySetStorage .
Sintaxis
HRESULT StgCreatePropSetStg(
[in] IStorage *pStorage,
DWORD dwReserved,
[out] IPropertySetStorage **ppPropSetStg
);
Parámetros
[in] pStorage
Puntero al objeto de almacenamiento que contiene o contendrá uno o varios conjuntos de propiedades.
dwReserved
Reservado para uso futuro; debe ser cero.
[out] ppPropSetStg
Puntero a la variable de puntero IPropertySetStorage* que recibe el puntero de interfaz al objeto de almacenamiento del conjunto de propiedades.
Valor devuelto
Esta función admite el valor devuelto estándar E_INVALIDARG , así como lo siguiente:
Comentarios
La función StgCreatePropSetStg crea una interfaz IPropertySetStorage que actuará en la interfaz IStorage especificada por el parámetro pStorage . Esta función no modifica este IStorage por sí mismo, aunque es posible que las llamadas posteriores a la interfaz IPropertySetStorage .
StgCreatePropSetStg llama a IUnknown::AddRef en el objeto de almacenamiento especificado por pStorage. El autor de la llamada debe liberar el objeto cuando ya no sea necesario mediante una llamada a Release.
Ejemplos
En el código de ejemplo siguiente se muestra cómo esta función crea un conjunto de propiedades dentro de un objeto de almacenamiento.
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 | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | coml2api.h (include Propidl.h) |
Library | Ole32.lib |
Archivo DLL | Ole32.dll |