Функция StgCreatePropSetStg (coml2api.h)
Функция StgCreatePropSetStg создает объект хранения набора свойств из указанного объекта хранения. Объект хранилища набора свойств предоставляет предоставленную системой автономную реализацию интерфейса IPropertySetStorage .
Синтаксис
HRESULT StgCreatePropSetStg(
[in] IStorage *pStorage,
DWORD dwReserved,
[out] IPropertySetStorage **ppPropSetStg
);
Параметры
[in] pStorage
Указатель на объект хранилища, который содержит или будет содержать один или несколько наборов свойств.
dwReserved
Зарезервировано для будущего использования; должно иметь значение нуль.
[out] ppPropSetStg
Указатель на переменную указателя IPropertySetStorage*, которая получает указатель интерфейса на объект хранилища набора свойств.
Возвращаемое значение
Эта функция поддерживает стандартное возвращаемое значение E_INVALIDARG а также следующее:
Комментарии
Функция StgCreatePropSetStg создает интерфейс IPropertySetStorage , который будет действовать с заданным интерфейсом IStorage , заданным параметром pStorage . Эта функция сама по себе не изменяет этот IStorage , хотя последующие вызовы интерфейса IPropertySetStorage могут выполняться.
StgCreatePropSetStg вызывает IUnknown::AddRef для объекта хранилища, указанного pStorage. Вызывающий объект должен освободить объект , когда он больше не требуется, вызвав Release.
Примеры
В следующем примере кода показано, как эта функция создает набор свойств в объекте хранилища.
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 );
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | coml2api.h (включая Propidl.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |