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)

Confira também

Ishellfolder

IShellFolder2