Método IShellFolder::GetUIObjectOf (shobjidl_core.h)

Obtiene un objeto que se puede usar para llevar a cabo acciones en los objetos o carpetas de archivo especificados.

Sintaxis

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

Tipo: HWND

Identificador de la ventana de propietario que el cliente debe especificar si muestra un cuadro de diálogo o un cuadro de mensaje.

[in] cidl

Tipo: UINT

Número de objetos de archivo o subcarpetas especificados en el parámetro apidl .

[in] apidl

Tipo: PCUITEMID_CHILD_ARRAY

Dirección de una matriz de punteros a estructuras ITEMIDLIST , cada una de las cuales identifica de forma única un objeto de archivo o una subcarpeta en relación con la carpeta primaria. Cada lista de identificadores de elemento debe contener exactamente una estructura SHITEMID seguida de un cero de terminación.

[in] riid

Tipo: REFIID

Referencia al IID de la interfaz que se va a recuperar a través de ppv. Puede ser cualquier identificador de interfaz válido que se pueda crear para un elemento. Los identificadores más comunes usados por el Shell se muestran en los comentarios al final de esta referencia.

[in, out] rgfReserved

Tipo: UINT*

Reservado.

[out] ppv

Tipo: void**

Cuando este método se devuelve correctamente, contiene el puntero de interfaz solicitado en riid.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Si cidl es mayor que uno, la implementación de IShellFolder::GetUIObjectOf solo debe realizarse correctamente si puede crear un objeto para todos los elementos especificados en apidl. Si la implementación no puede crear un objeto para todos los elementos, se producirá un error en este método.

A continuación se muestran los identificadores de interfaz más comunes que usa shell al solicitar una interfaz de este método. La lista también indica si cidl puede ser mayor que una para la interfaz solicitada.

Identificador de interfaz Valor cidl permitido
IContextMenu El parámetro cidl puede ser mayor o igual que uno.
IContextMenu2 El parámetro cidl puede ser mayor o igual que uno.
IDataObject El parámetro cidl puede ser mayor o igual que uno.
IDropTarget El parámetro cidl solo puede ser uno.
IExtractIcon El parámetro cidl solo puede ser uno.
IQueryInfo El parámetro cidl solo puede ser uno.
 

Se recomienda usar la macro IID_PPV_ARGS , definida en Objbase.h, para empaquetar los parámetros riid y ppv . Esta macro proporciona el IID correcto basado en la interfaz a la que apunta el valor de ppv, lo que elimina la posibilidad de un error de codificación en riid que podría dar lugar a resultados inesperados.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shobjidl_core.h (include Shobjidl.h)
Archivo DLL Shell32.dll (versión 4.0 o posterior)

Consulte también

IShellFolder

IShellFolder2