Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
);
Parameters
[in] hwndOwner
Tipo: HWND
Um identificador para a janela do proprietário que o cliente deve especificar se ele exibe 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 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 do 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 no riid.
Valor de devolução
Tipo: HRESULT
Se esse método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Observações
Se cidl for maior que um, a implementação IShellFolder::GetUIObjectOf só deverá ser bem-sucedida se puder criar um objeto para todos os itens especificados no 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 o 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 pode ser apenas um. |
| IExtractIcon | O parâmetro cidl pode ser apenas um. |
| IExtractImage | O parâmetro cidl pode ser apenas um. |
| IQueryInfo | O parâmetro cidl pode ser apenas 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 a IID correta 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.
Requirements
| Requirement | Valor |
|---|---|
| Cliente mínimo suportado | Windows XP [somente aplicativos da área de trabalho] |
| Servidor mínimo compatível | Windows 2000 Server [somente aplicativos da área de trabalho] |
| da Plataforma de Destino | Windows |
| Cabeçalho | shobjidl_core.h (inclua Shobjidl.h) |
| de DLL | Shell32.dll (versão 4.0 ou posterior) |