RegisterDragDrop, fonction (ole2.h)

Inscrit la fenêtre spécifiée sous la forme d’une fenêtre pouvant être la cible d’une opération de glisser-déplacer OLE et spécifie le instance IDropTarget à utiliser pour les opérations de déplacement.

Syntaxe

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

Paramètres

[in] hwnd

Handle vers une fenêtre qui peut être une cible pour une opération de glisser-déplacer OLE.

[in] pDropTarget

Pointeur vers l’interface IDropTarget sur l’objet qui doit être la cible d’une opération de glisser-déplacer dans une fenêtre spécifiée. Cette interface est utilisée pour communiquer des informations de glisser-déplacer OLE pour cette fenêtre.

Valeur retournée

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

Code de retour Description
DRAGDROP_E_INVALIDHWND
Handle non valide retourné dans le paramètre hwnd.
DRAGDROP_E_ALREADYREGISTERED
La fenêtre spécifiée a déjà été inscrite en tant que cible de déplacement.
E_OUTOFMEMORY
Mémoire insuffisante pour l’opération.
 
Note Si vous utilisez CoInitialize ou CoInitializeEx au lieu d’OleInitialize pour initialiser COM, RegisterDragDrop renvoie toujours une erreur E_OUTOFMEMORY.
 

Remarques

Si votre application peut accepter des objets supprimés pendant les opérations de glisser-déplacer OLE, vous devez appeler la fonction RegisterDragDrop . Effectuez cette opération chaque fois qu’une de vos fenêtres d’application est disponible en tant que cible de déplacement potentielle ; autrement dit, lorsque la fenêtre n’apparaît pas affichée à l’écran.

Le thread d’application qui appelle la fonction RegisterDragDrop doit pomper les messages, sans doute en appelant la fonction GetMessage avec un paramètre hWndNULL, car OLE crée des fenêtres sur le thread qui nécessitent le traitement des messages. Si cette exigence n’est pas remplie, toute application qui fait glisser un objet sur la fenêtre inscrite en tant que cible de déplacement se bloque jusqu’à ce que l’application cible se ferme.

La fonction RegisterDragDrop n’inscrit qu’une fenêtre à la fois. Vous devez donc l’appeler pour chaque fenêtre d’application capable d’accepter des objets supprimés.

Lorsque la souris passe sur des parties non observées de la fenêtre cible pendant une opération de glisser-déplacer OLE, la fonction DoDragDrop appelle la méthode IDropTarget ::D ragOver spécifiée pour la fenêtre active. Lorsqu’une opération de suppression se produit réellement dans une fenêtre donnée, la fonction DoDragDrop appelle IDropTarget ::D rop.

La fonction RegisterDragDrop appelle également la méthode IUnknown ::AddRef sur le pointeur IDropTarget .

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 ole2.h
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

RevokeDragDrop