Compartir a través de


Función SHDoDragDrop (shlobj_core.h)

Ejecuta una operación de arrastrar y colocar. Admite la creación de origen de arrastre a petición, así como imágenes de arrastrar.

Sintaxis

SHSTDAPI SHDoDragDrop(
  [in]  HWND        hwnd,
  [in]  IDataObject *pdata,
  [in]  IDropSource *pdsrc,
  [in]  DWORD       dwEffect,
  [out] DWORD       *pdwEffect
);

Parámetros

[in] hwnd

Tipo: HWND

Identificador de la ventana utilizada para obtener la imagen de arrastre. Este valor puede ser NULL. Consulte Comentarios para obtener más detalles.

[in] pdata

Tipo: IDataObject*

Puntero a la interfaz IDataObject de un objeto de datos que contiene los datos que se arrastran.

[in] pdsrc

Tipo: IDropSource*

Puntero a una implementación de la interfaz IDropSource , que se usa para comunicarse con el origen durante la operación de arrastre.

A partir de Windows Vista, si este valor es NULL, shell crea un objeto de origen de colocación automáticamente.

[in] dwEffect

Tipo: DWORD

Los efectos que el origen permite en la operación de arrastrar y colocar. El efecto más significativo es si la operación de arrastrar y colocar permite un movimiento. Para obtener una lista de los valores posibles, consulte DROPEFFECT.

[out] pdwEffect

Tipo: DWORD*

Puntero a un valor que indica cómo la operación de arrastrar y colocar afecta a los datos de origen. El parámetro pdwEffect solo se establece si la operación no se cancela. Para obtener una lista de los valores posibles, consulte DROPEFFECT.

Valor devuelto

Tipo: HRESULT

Esta función admite el valor devuelto estándar E_OUTOFMEMORY, así como los siguientes valores:

Código devuelto Descripción
DRAGDROP_S_DROP
La operación de arrastrar y colocar se realizó correctamente.
DRAGDROP_S_CANCEL
Se canceló la operación de arrastrar y colocar.
E_UNSPEC
Se ha producido un error inesperado.

Comentarios

A partir de Windows Vista, si aún no se almacena una imagen de arrastre en el objeto de datos pdtobj y no se puede obtener una imagen de arrastre de la ventana especificada por hwnd, shell proporciona una imagen de arrastre genérica. No se puede obtener una imagen de arrastre desde la ventana especificada, ya sea porque hwnd es NULL o la ventana especificada no admite el mensaje de DI_GETDRAGIMAGE.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlobj_core.h (incluya Shlobj.h)
Library Shell32.lib
Archivo DLL Shell32.dll (versión 6.0 o posterior)
Conjunto de API ext-ms-win-shell-shell32-l1-2-1 (introducido en Windows 10, versión 10.0.10240)