Compartilhar via


Função PSGetItemPropertyHandlerWithCreateObject (propsys.h)

Recupera um manipulador de propriedades para um item do Shell.

Sintaxe

PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(
  [in]  IUnknown *punkItem,
  [in]  BOOL     fReadWrite,
  [in]  IUnknown *punkCreateObject,
  [in]  REFIID   riid,
  [out] void     **ppv
);

Parâmetros

[in] punkItem

Tipo: IUnknown*

Um ponteiro para a interface IUnknown de um item shell que dá suporte a IShellItem.

Windows XP: Use SHCreateShellItem para criar o item shell.

Windows Vista: Use SHCreateItemFromIDList, SHCreateItemFromParsingName, SHCreateItemFromRelativeName, SHCreateItemInKnownFolder ou SHCreateItemWithParent para criar o item shell.

[in] fReadWrite

Tipo: BOOL

TRUE para recuperar um manipulador de propriedades de leitura/gravação. FALSE para recuperar um manipulador de propriedades somente leitura.

[in] punkCreateObject

Tipo: IUnknown*

Ponteiro para a interface IUnknown de um objeto de fábrica de classe que dá suporte a ICreateObject.

[in] riid

Tipo: REFIID

Uma referência ao IID da interface a ser recuperada por meio de ppv.

[out] ppv

Tipo: void**

Quando essa função retorna com êxito, contém o ponteiro de interface solicitado em riid. Normalmente, isso é IPropertyStore ou IPropertyStoreCapabilities.

Retornar valor

Tipo: PSSTDAPI

Retorna S_OK se tiver êxito ou um valor de erro caso contrário.

Comentários

Essa função tem suporte no Windows XP como parte do pacote redistribuível da Pesquisa de Área de Trabalho do Microsoft Windows (WDS), que inclui IPropertyStore e interfaces de suporte. Para aplicativos com suporte apenas no Windows Vista ou posterior, recomendamos que você use IShellItem2::GetPropertyStoreWithCreateObject em vez de PSGetItemPropertyHandlerWithCreateObject porque IShellItem2::GetPropertyStoreWithCreateObject fornece um conjunto mais rico de propriedades no repositório de propriedades retornado.

Essa função é aproximadamente equivalente a passar o sinalizador GPS_HANDLERPROPERTIESONLY para IShellItem2::GetPropertyStoreWithCreateObject.

O parâmetro punkCreateObject permite a criação de um repositório de propriedades em um contexto diferente daquele do chamador. Por exemplo, a implementação de ICreateObject pode fazer com que o repositório de propriedades seja criado em outro processo. Esse parâmetro é usado apenas para manipuladores de propriedade que dão suporte a ele e que são registrados em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers.

Você deve inicializar o COM (Component Object Model) com CoInitialize ou OleInitialize antes de chamar PSGetItemPropertyHandlerWithCreateObject. O COM deve permanecer inicializado durante o tempo de vida desse objeto.

Exemplos

O exemplo a seguir, a ser incluído como parte de um programa maior, demonstra como usar PSGetItemPropertyHandlerWithCreateObject para obter um manipulador de propriedades para um item.

// IShellItem *psi;
// ICreateObject *pco;
// Assume variables pco and psi are valid and initialized.
IPropertyStore *pStore;

HRESULT hr = PSGetItemPropertyHandlerWithCreateObject(psi, FALSE, pco, IID_PPV_ARGS(&pStore));

if (SUCCEEDED(hr))
{
    // pStore is now valid and contains properties exposed through the 
    // property handler for the item.
 
    pStore->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

IShellItem2::GetPropertyStoreWithCreateObject

Inicializando manipuladores de propriedade