IDropTarget ::D ragOver, méthode (oleidl.h)
Fournit des commentaires cibles à l’utilisateur et communique l’effet de la chute à la fonction DoDragDrop afin qu’elle puisse communiquer l’effet de la suppression à la source.
Syntaxe
HRESULT DragOver(
[in] DWORD grfKeyState,
[in] POINTL pt,
[in, out] DWORD *pdwEffect
);
Paramètres
[in] grfKeyState
État actuel des touches de modification du clavier. Les valeurs valides 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 |
---|---|
|
Une erreur inattendue s’est produite. |
|
La valeur pdwEffect n’est pas valide. |
|
La mémoire disponible était insuffisante pour cette opération. |
Remarques
Vous n’appelez pas DragOver directement. La fonction DoDragDrop appelle cette méthode chaque fois que l’utilisateur déplace la souris sur une fenêtre cible donnée. DoDragDrop quitte la boucle si l’opération glisser-déplacer est annulée, si l’utilisateur fait glisser la souris hors de la fenêtre cible ou si la suppression est terminée.
Lors de l’implémentation de IDropTarget ::D ragOver, vous devez fournir des fonctionnalités similaires à celles de IDropTarget ::D ragEnter. Vous devez déterminer l’effet de la suppression des données sur la cible en examinant le FORMATETC définissant les formats et le support de l’objet de données, ainsi que l’état des touches de modification. La position de la souris peut également jouer un rôle dans la détermination de l’effet d’une chute. 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 |
Vous communiquez l’effet de la suppression à la source via DoDragDrop dans pdwEffect. La fonction DoDragDrop appelle ensuite IDropSource ::GiveFeedback afin que l’application source puisse afficher les commentaires visuels appropriés à l’utilisateur.
Lors de l’entrée dans IDropTarget ::D ragOver, le paramètre pdwEffect doit être défini sur les effets autorisés passés au paramètre pdwOkEffect de la fonction DoDragDrop . La méthode IDropTarget ::D ragOver doit pouvoir choisir l’un de ces effets ou désactiver la suppression.
Lors du retour, pdwEffect est défini sur l’un des indicateurs DROPEFFECT. Cette valeur est ensuite passée au paramètre pdwEffect de DoDragDrop. Des valeurs raisonnables sont DROPEFFECT_COPY pour copier les données déplacées vers la cible, DROPEFFECT_LINK créer un lien vers les données sources ou DROPEFFECT_MOVE pour permettre le déplacement permanent des données déplacées de l’application source vers la cible.
Vous pouvez également fournir des commentaires visuels appropriés dans la fenêtre cible. Il se peut que certains commentaires de cible soient déjà affichés à partir d’un appel précédent à IDropTarget ::D ragOver ou à partir du IDropTarget ::D ragEnter initial. Si ces commentaires ne sont plus appropriés, vous devez les supprimer.
Pour des raisons d’efficacité, un objet de données n’est pas passé dans IDropTarget ::D ragOver. L’objet de données passé dans l’appel le plus récent à IDropTarget ::D ragEnter est disponible et peut être utilisé.
Lorsque IDropTarget ::D ragOver a terminé son opération, la fonction DoDragDrop appelle IDropSource ::GiveFeedback afin que l’application source puisse afficher les commentaires visuels appropriés à l’utilisateur.
Remarques aux implémenteurs
Cette fonction est fréquemment appelée pendant la boucle DoDragDrop . Il est donc judicieux d’optimiser autant que possible votre implémentation de la méthode DragOver .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 |