Compartir a través de


Función RegisterDragDrop (ole2.h)

Registra la ventana especificada como una que puede ser el destino de una operación de arrastrar y colocar OLE y especifica la instancia de IDropTarget que se va a usar para las operaciones de colocación.

Sintaxis

HRESULT RegisterDragDrop(
  [in] HWND         hwnd,
  [in] LPDROPTARGET pDropTarget
);

Parámetros

[in] hwnd

Identificador de una ventana que puede ser un destino para una operación de arrastrar y colocar OLE.

[in] pDropTarget

Puntero a la interfaz IDropTarget en el objeto que va a ser el destino de una operación de arrastrar y colocar en una ventana especificada. Esta interfaz se usa para comunicar información de arrastrar y colocar OLE para esa ventana.

Valor devuelto

Esta función devuelve S_OK si se ejecuta correctamente. Otros valores posibles son los siguientes.

Código devuelto Descripción
DRAGDROP_E_INVALIDHWND
Identificador no válido devuelto en el parámetro hwnd.
DRAGDROP_E_ALREADYREGISTERED
La ventana especificada ya se ha registrado como destino de colocación.
E_OUTOFMEMORY
Memoria insuficiente para la operación.
 
Nota Si usa CoInitialize o CoInitializeEx en lugar de OleInitialize para inicializar COM, RegisterDragDrop devolverá siempre un error de E_OUTOFMEMORY.
 

Observaciones

Si la aplicación puede aceptar objetos quitados durante las operaciones de arrastrar y colocar OLE, debe llamar a la función RegisterDragDrop. Haga esto cada vez que una de las ventanas de la aplicación esté disponible como destino de eliminación potencial; es decir, cuando la ventana aparece sin proteger en la pantalla.

El subproceso de la aplicación que llama a la función RegisterDragDrop debe estar bombeando mensajes, presumiblemente llamando a la función GetMessage con un parámetro hWnd NULL, ya que OLE crea ventanas en el subproceso que necesitan mensajes procesados. Si no se cumple este requisito, cualquier aplicación que arrastre un objeto a través de la ventana registrada como destino de colocación se bloqueará hasta que se cierre la aplicación de destino.

La función RegisterDragDrop solo registra una ventana cada vez, por lo que debe llamarla para cada ventana de aplicación capaz de aceptar objetos descartados.

A medida que el mouse pasa por partes no protegidas de la ventana de destino durante una operación de arrastrar y colocar OLE, la función DoDragDrop llama al método IDropTarget::D rag Over especificado para la ventana actual. Cuando se produce realmente una operación de colocación en una ventana determinada, la función DoDragDrop llama a IDropTarget::D rop.

La función RegisterDragDrop también llama al método IUnknown::AddRef en el puntero IDropTarget de .

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de ole2.h
biblioteca de Ole32.lib
DLL de Ole32.dll

Consulte también

RevokeDragDrop