Поделиться через


Функция 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

См. также раздел

Автономная реализация IPropertySetStorage

Примеры

Пример StgCreatePropSetStg