Método IShellFolder::GetUIObjectOf (shobjidl_core.h)
Obtém um objeto que pode ser usado para executar ações nos objetos ou pastas de arquivo especificados.
Sintaxe
HRESULT GetUIObjectOf(
[in] HWND hwndOwner,
[in] UINT cidl,
[in] PCUITEMID_CHILD_ARRAY apidl,
[in] REFIID riid,
[in, out] UINT *rgfReserved,
[out] void **ppv
);
Parâmetros
[in] hwndOwner
Digite: HWND
Um identificador para a janela do proprietário que o cliente deve especificar se ele exibir uma caixa de diálogo ou caixa de mensagem.
[in] cidl
Tipo: UINT
O número de objetos de arquivo ou subpastas especificados no parâmetro apidl .
[in] apidl
Tipo: PCUITEMID_CHILD_ARRAY
O endereço de uma matriz de ponteiros para estruturas ITEMIDLIST , cada uma das quais identifica exclusivamente um objeto de arquivo ou uma subpasta em relação à pasta pai. Cada lista de identificadores de item deve conter exatamente uma estrutura SHITEMID seguida por um zero de terminação.
[in] riid
Tipo: REFIID
Uma referência à IID da interface a ser recuperada por meio de ppv. Esse pode ser qualquer identificador de interface válido que possa ser criado para um item. Os identificadores mais comuns usados pelo Shell são listados nos comentários no final dessa referência.
[in, out] rgfReserved
Tipo: UINT*
Reservado.
[out] ppv
Tipo: void**
Quando esse método retorna com êxito, contém o ponteiro de interface solicitado em riid.
Retornar valor
Tipo: HRESULT
Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
Se cidl for maior que um, a implementação IShellFolder::GetUIObjectOf só deverá ter êxito se puder criar um objeto para todos os itens especificados em apidl. Se a implementação não puder criar um objeto para todos os itens, esse método falhará.
Veja a seguir os identificadores de interface mais comuns que o Shell usa ao solicitar uma interface desse método. A lista também indica se cidl pode ser maior que um para a interface solicitada.
Identificador de interface | Valor de cidl permitido |
---|---|
Icontextmenu | O parâmetro cidl pode ser maior ou igual a um. |
IContextMenu2 | O parâmetro cidl pode ser maior ou igual a um. |
Idataobject | O parâmetro cidl pode ser maior ou igual a um. |
Idroptarget | O parâmetro cidl só pode ser um. |
IExtractIcon | O parâmetro cidl só pode ser um. |
IQueryInfo | O parâmetro cidl só pode ser um. |
Recomendamos que você use a macro IID_PPV_ARGS , definida em Objbase.h, para empacotar os parâmetros riid e ppv . Essa macro fornece o IID correto com base na interface apontada pelo valor em ppv, o que elimina a possibilidade de um erro de codificação no riid que pode levar a resultados inesperados.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shobjidl_core.h (inclua Shobjidl.h) |
DLL | Shell32.dll (versão 4.0 ou posterior) |