Partager via


RegisterDragDrop, fonction (ole2.h)

Inscrit la fenêtre spécifiée en tant que cible d’une opération de glisser-déplacer OLE et spécifie l’instance IDropTarget à utiliser pour les opérations de déplacement.

Syntaxe

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

Paramètres

[in] hwnd

Gérez 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 les informations de glisser-déplacer OLE pour cette fenêtre.

Valeur de retour

Cette fonction retourne S_OK sur la réussite. Les autres valeurs possibles sont les suivantes.

Retourner le code 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 suppression.
E_OUTOFMEMORY
Mémoire insuffisante pour l’opération.
 
Remarque Si vous utilisez CoInitialize ou CoInitializeEx au lieu de OleInitialize pour initialiser COM, RegisterDragDrop retourne 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 que l’une de vos fenêtres d’application est disponible en tant que cible de suppression potentielle ; autrement dit, lorsque la fenêtre apparaît non visible à l’écran.

Le thread d’application qui appelle la fonction RegisterDragDrop doit être de pomper des messages, probablement en appelant la fonction GetMessage avec un paramètre NULLhWnd, car OLE crée des fenêtres sur le thread qui a besoin de messages traités. 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 enregistre une seule 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 .

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête ole2.h
bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

RevokeDragDrop