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 |