Compartilhar via


Função PSCreateAdapterFromPropertyStore (propsys.h)

Cria um adaptador de um IPropertyStore.

Sintaxe

PSSTDAPI PSCreateAdapterFromPropertyStore(
  [in]  IPropertyStore *pps,
  [in]  REFIID         riid,
  [out] void           **ppv
);

Parâmetros

[in] pps

Tipo: IPropertyStore*

Ponteiro para um objeto IPropertyStore que representa o repositório de propriedades.

[in] riid

Tipo: REFIID

Referência a um IID.

[out] ppv

Tipo: void**

Quando essa função retorna, contém o ponteiro de interface solicitado em riid.

Retornar valor

Tipo: HRESULT

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

O objeto do adaptador implementa IPropertySetStorage, IPropertyStore, IPropertyStoreCapabilities e IObjectProvider.

Use essa função se precisar de um objeto que implemente IPropertyStore com uma API que exija uma interface IPropertySetStorage . O objeto criado também pode ser útil para uma extensão de namespace que deseja fornecer suporte para associação a itens de namespace usando IPropertySetStorage. Os aplicativos devem chamar esse objeto de apenas um thread por vez.

O repositório de propriedades do adaptador criado por essa função mantém uma referência à interface IPropertyStore de origem. Portanto, o aplicativo de chamada é gratuito para liberar sua referência ao IPropertyStore de origem sempre que for conveniente depois de chamar essa função.

O repositório de propriedades do adaptador faz chamadas para métodos na interface IPropertyStore conforme apropriado. Portanto, se o aplicativo de chamada estiver gravando valores no repositório, ele deverá chamar o método IPropertyStore::Commit em apenas uma das interfaces.

Exemplos

O exemplo a seguir, a ser incluído como parte de um programa maior, demonstra como usar PSCreateAdapterFromPropertyStore para usar um repositório de propriedades do adaptador para converter uma interface IPropertyStore em uma interface IPropertySetStorage .

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
IPropertySetStorage *pSetStorage;

HRESULT hr = PSCreateadapterFromPropertyStore(ppropstore, IID_PPV_ARGS(&pSetStorage));

if (SUCCEEDED(hr))
{
    // pSetStorage is now valid and can be used to access the data in ppropstore.
    pSetStorage->Release();
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP com SP2, Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 com SP1 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho propsys.h
Biblioteca Propsys.lib
DLL Propsys.dll (versão 6.0 ou posterior)
Redistribuível Pesquisa da Área de Trabalho do Windows (WDS) 3.0

Confira também

IPropertySetStorage

Ipropertystore

PSCreatePropertyStoreFromPropertySetStorage