Share via


Función SHCreateShellItemArrayFromDataObject (shobjidl_core.h)

Crea un objeto de matriz de elementos de Shell a partir de un objeto de datos.

Sintaxis

SHSTDAPI SHCreateShellItemArrayFromDataObject(
  [in]  IDataObject *pdo,
  [in]  REFIID      riid,
  [out] void        **ppv
);

Parámetros

[in] pdo

Tipo: IDataObject*

Puntero a la interfaz IDataObject .

[in] riid

Tipo: REFIID

Referencia al identificador de interfaz deseado.

[out] ppv

Tipo: void**

Cuando este método vuelve, contiene el puntero de interfaz solicitado en riid. Esto suele ser IShellItemArray.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Esta función es útil para las extensiones de Shell que implementan IShellExtInit y se pasan un objeto de datos al método IShellExtInit::Initialize ; por ejemplo, controladores de menú contextual.

Esta API permite convertir el objeto de datos en un elemento de Shell que el controlador puede consumir. Se recomienda que los controladores usen una matriz de elementos de Shell en lugar de formatos de Portapapeles como CF_HDROP y CFSTR_SHELLIDLIST (también conocidos como HIDA), ya que conduce a código más sencillo y permite algunas mejoras de rendimiento.

La matriz de elementos de shell resultante contiene una referencia al objeto de datos de origen. Por lo tanto, ese objeto de datos debe permanecer válido durante la vigencia de la matriz de elementos de shell. En concreto, los objetos de datos pasados a los métodos IDropTarget ya no son válidos una vez completada la operación de eliminación.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shobjidl_core.h (include Shobjidl.h)
Archivo DLL Shell32.dll
Conjunto de API ext-ms-win-shell-shell32-l1-2-2 (introducido en Windows 10, versión 10.0.14393)