Metodo IDropTarget::D ragEnter (oleidl.h)

Indica se è possibile accettare un'eliminazione e, in caso affermativo, l'effetto dell'eliminazione.

Sintassi

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

Parametri

[in] pDataObj

Puntatore all'interfaccia IDataObject nell'oggetto dati. Questo oggetto dati contiene i dati che vengono spostati nell'operazione di trascinamento. Se si verifica l'eliminazione, questo oggetto dati verrà incorporato nella destinazione.

[in] grfKeyState

Stato corrente dei tasti di modifica della tastiera sulla tastiera. I valori possibili possono essere una combinazione di qualsiasi flag MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON e MK_RBUTTON.

[in] pt

Struttura POINTL contenente le coordinate del cursore correnti nelle coordinate dello schermo.

[in, out] pdwEffect

In input, puntatore al valore del parametro pdwEffect della funzione DoDragDrop . In caso di restituzione, deve contenere uno dei flag DROPEFFECT , che indica il risultato dell'operazione di eliminazione.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Altri valori possibili includono quanto segue.

Codice restituito Descrizione
E_UNEXPECTED
Si è verificato un errore imprevisto.
E_INVALIDARG
Il parametro pdwEffect è NULL nell'input.
E_OUTOFMEMORY
Memoria insufficiente disponibile per questa operazione.

Commenti

Non chiamare direttamente DragEnter ; invece la funzione DoDragDrop lo chiama per determinare l'effetto di un rilascio la prima volta che l'utente trascina il mouse nella finestra registrata di una destinazione di rilascio.

Per implementare DragEnter, è necessario determinare se la destinazione può usare i dati nell'oggetto dati di origine controllando tre elementi:

  • Formato e supporto specificato dall'oggetto dati
  • Valore di input di pdwEffect
  • Stato delle chiavi del modificatore
Per controllare il formato e il supporto, usare il puntatore IDataObject passato nel parametro pDataObject per chiamare IDataObject::EnumFormatEtc in modo da poter enumerare le strutture FORMATETC supportate dall'oggetto dati di origine. Chiamare quindi IDataObject::QueryGetData per determinare se l'oggetto dati può eseguire il rendering dei dati nella destinazione esaminando i formati e i supporti specificati per l'oggetto dati.

Nella voce di IDropTarget::D ragEnter, il parametro pdwEffect viene impostato sugli effetti specificati al parametro pdwOkEffect della funzione DoDragDrop. Il metodo IDropTarget::D ragEnter deve scegliere uno di questi effetti o disabilitare l'eliminazione.

Le chiavi del modificatore seguenti influiscono sul risultato dell'eliminazione.

Combinazione di tasti feedback User-Visible Effetto drop
CTRL + MAIUSC = DROPEFFECT_LINK
CTRL + DROPEFFECT_COPY
Nessun tasto o MAIUSC Nessuno DROPEFFECT_MOVE
 

Al ritorno, il metodo deve scrivere l'effetto, uno dei flag DROPEFFECT, al parametro pdwEffect . DoDragDrop accetta quindi questo parametro e lo scrive nel parametro pdwEffect . Si comunica l'effetto del dropback all'origine tramite DoDragDrop nel parametro pdwEffect . La funzione DoDragDrop chiama quindi IDropSource::GiveFeedback in modo che l'applicazione di origine possa visualizzare il feedback visivo appropriato all'utente tramite la finestra di destinazione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleidl.h

Vedi anche

DragEnter

IDropSource

IDropSourceNotify

Idroptarget

RegisterDragDrop

RevocaDragDrop