Método IDropTarget::D ragEnter (oleidl.h)

Indica si se puede aceptar una colocación y, si es así, el efecto de la colocación.

Sintaxis

HRESULT DragEnter(
  [in]      IDataObject *pDataObj,
  [in]      DWORD       grfKeyState,
  [in]      POINTL      pt,
  [in, out] DWORD       *pdwEffect
);

Parámetros

[in] pDataObj

Puntero a la interfaz IDataObject del objeto de datos. Este objeto de datos contiene los datos que se transfieren en la operación de arrastrar y colocar. Si se produce la eliminación, este objeto de datos se incorporará al destino.

[in] grfKeyState

Estado actual de las teclas modificadoras de teclado en el teclado. Los valores posibles pueden ser una combinación de cualquiera de las marcas MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON y MK_RBUTTON.

[in] pt

Estructura POINTL que contiene las coordenadas del cursor actuales en coordenadas de pantalla.

[in, out] pdwEffect

En la entrada, puntero al valor del parámetro pdwEffect de la función DoDragDrop . Al devolver, debe contener una de las marcas DROPEFFECT , que indica cuál sería el resultado de la operación de colocación.

Valor devuelto

Este método devuelve S_OK cuando funciona correctamente. Otros valores posibles incluyen lo siguiente.

Código devuelto Descripción
E_UNEXPECTED
Se produjo un error inesperado.
E_INVALIDARG
El parámetro pdwEffect es NULL en la entrada.
E_OUTOFMEMORY
No había memoria suficiente disponible para esta operación.

Comentarios

No llamas a DragEnter directamente; en su lugar, la función DoDragDrop la llama para determinar el efecto de una colocación la primera vez que el usuario arrastra el mouse a la ventana registrada de un destino de colocación.

Para implementar DragEnter, debe determinar si el destino puede usar los datos en el objeto de datos de origen comprobando tres cosas:

  • Formato y medio especificados por el objeto de datos
  • Valor de entrada de pdwEffect
  • Estado de las claves modificadoras
Para comprobar el formato y el medio, use el puntero IDataObject pasado en el parámetro pDataObject para llamar a IDataObject::EnumFormatEtc para poder enumerar las estructuras FORMATETC que admite el objeto de datos de origen. A continuación, llame a IDataObject::QueryGetData para determinar si el objeto de datos puede representar los datos en el destino examinando los formatos y el medio especificados para el objeto de datos.

Al entrar a IDropTarget::D ragEnter, el parámetro pdwEffect se establece en los efectos proporcionados al parámetro pdwOkEffect de la función DoDragDrop . El método IDropTarget::D ragEnter debe elegir uno de estos efectos o deshabilitar la colocación.

Las siguientes claves modificadoras afectan al resultado de la colocación.

Combinación de teclas comentarios de User-Visible Efecto Drop
CTRL + MAYÚS = DROPEFFECT_LINK
CTRL + DROPEFFECT_COPY
Sin teclas ni MAYÚS None DROPEFFECT_MOVE
 

Al devolver, el método debe escribir el efecto, una de las marcas DROPEFFECT, en el parámetro pdwEffect . DoDragDrop toma este parámetro y lo escribe en su parámetro pdwEffect . Se comunica el efecto de la devolución al origen a través de DoDragDrop en el parámetro pdwEffect . A continuación, la función DoDragDrop llama a IDropSource::GiveFeedback para que la aplicación de origen pueda mostrar los comentarios visuales adecuados al usuario a través de la ventana de destino.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleidl.h

Consulte también

DragEnter

IDropSource

IDropSourceNotify

IDropTarget

RegisterDragDrop

RevokeDragDrop