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

Indique si une suppression peut être acceptée et, le cas échéant, l’effet de la suppression.

Syntaxe

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

Paramètres

[in] pDataObj

Pointeur vers l’interface IDataObject sur l’objet de données. Cet objet de données contient les données transférées lors de l'opération glisser-déplacer. Si la suppression se produit, cet objet de données est incorporé dans la cible.

[in] grfKeyState

État actuel des touches de modification du clavier. Les valeurs possibles peuvent être une combinaison des indicateurs MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON et MK_RBUTTON.

[in] pt

Structure POINTL contenant les coordonnées de curseur actuelles dans les coordonnées de l’écran.

[in, out] pdwEffect

Lors de l’entrée, pointeur vers la valeur du paramètre pdwEffect de la fonction DoDragDrop . Au retour, doit contenir l’un des indicateurs DROPEFFECT , qui indique le résultat de l’opération de suppression.

Valeur retournée

Cette méthode retourne S_OK en cas de réussite. Les autres valeurs possibles sont les suivantes.

Code de retour Description
E_UNEXPECTED
Une erreur inattendue s’est produite.
E_INVALIDARG
Le paramètre pdwEffect a la valeur NULL lors de l’entrée.
E_OUTOFMEMORY
La mémoire disponible était insuffisante pour cette opération.

Remarques

Vous n’appelez pas DragEnter directement ; au lieu de cela, la fonction DoDragDrop l’appelle pour déterminer l’effet d’une suppression la première fois que l’utilisateur fait glisser la souris dans la fenêtre inscrite d’une cible de déplacement.

Pour implémenter DragEnter, vous devez déterminer si la cible peut utiliser les données de l’objet de données source en vérifiant trois éléments :

  • Format et support spécifiés par l’objet de données
  • Valeur d’entrée de pdwEffect
  • État des touches de modification
Pour case activée le format et le support, utilisez le pointeur IDataObject passé dans le paramètre pDataObject pour appeler IDataObject ::EnumFormatEtc afin de pouvoir énumérer les structures FORMATETC que l’objet de données source prend en charge. Appelez ensuite IDataObject ::QueryGetData pour déterminer si l’objet de données peut restituer les données sur la cible en examinant les formats et le support spécifiés pour l’objet de données.

Lors de l’entrée dans IDropTarget ::D ragEnter, le paramètre pdwEffect est défini sur les effets donnés au paramètre pdwOkEffect de la fonction DoDragDrop . La méthode IDropTarget ::D ragEnter doit choisir l’un de ces effets ou désactiver la suppression.

Les touches de modification suivantes affectent le résultat de la suppression.

Combinaison de touches User-Visible Commentaires Drop Effect
Ctrl +Maj = DROPEFFECT_LINK
CTRL + DROPEFFECT_COPY
Aucune touche ou MAJ None DROPEFFECT_MOVE
 

Lors du retour, la méthode doit écrire l’effet, l’un des indicateurs DROPEFFECT, dans le paramètre pdwEffect . DoDragDrop prend ensuite ce paramètre et l’écrit dans son paramètre pdwEffect . Vous communiquez l’effet de la suppression à la source via DoDragDrop dans le paramètre pdwEffect . La fonction DoDragDrop appelle ensuite IDropSource ::GiveFeedback afin que l’application source puisse afficher les commentaires visuels appropriés à l’utilisateur via la fenêtre cible.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête oleidl.h

Voir aussi

DragEnter

IDropSource

IDropSourceNotify

IDropTarget

RegisterDragDrop

RevokeDragDrop