Freigeben über


RegisterDragDrop-Funktion (ole2.h)

Registriert das angegebene Fenster als eines, das das Ziel eines OLE-Drag-and-Drop-Vorgangs sein kann, und gibt die IDropTarget- Instanz an, die für Drop-Vorgänge verwendet werden soll.

Syntax

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

Parameter

[in] hwnd

Behandeln eines Fensters, das ein Ziel für einen OLE-Drag-and-Drop-Vorgang sein kann.

[in] pDropTarget

Zeigen Sie auf die IDropTarget Schnittstelle des Objekts, das das Ziel eines Drag-and-Drop-Vorgangs in einem angegebenen Fenster sein soll. Diese Schnittstelle wird verwendet, um OLE-Drag-and-Drop-Informationen für dieses Fenster zu kommunizieren.

Rückgabewert

Diese Funktion gibt S_OK bei Erfolg zurück. Weitere mögliche Werte sind:

Rückgabecode Beschreibung
DRAGDROP_E_INVALIDHWND
Ungültiges Handle, das im hwnd-Parameter zurückgegeben wird.
DRAGDROP_E_ALREADYREGISTERED
Das angegebene Fenster wurde bereits als Drop-Ziel registriert.
E_OUTOFMEMORY
Nicht genügend Arbeitsspeicher für den Vorgang.
 
Hinweis Wenn Sie CoInitialize oder CoInitializeEx anstelle von OleInitialize zum Initialisieren von COM verwenden, gibt RegisterDragDrop- immer einen E_OUTOFMEMORY Fehler zurück.
 

Bemerkungen

Wenn Ihre Anwendung verworfene Objekte während OLE-Drag-and-Drop-Vorgängen akzeptieren kann, müssen Sie die RegisterDragDrop--Funktion aufrufen. Führen Sie dies aus, wenn eines Ihrer Anwendungsfenster als potenzielles Dropziel verfügbar ist. das heißt, wenn das Fenster auf dem Bildschirm nicht angezeigt wird.

Der Anwendungsthread, der die RegisterDragDrop--Funktion aufruft, muss Nachrichten pumpen, vermutlich durch Aufrufen der GetMessage--Funktion mit einem NULL-hWnd--Parameter, da OLE Fenster im Thread erstellt, die verarbeitete Nachrichten benötigen. Wenn diese Anforderung nicht erfüllt ist, hängt jede Anwendung, die ein Objekt über das Fenster zieht, das als Ablageziel registriert ist, bis die Zielanwendung geschlossen wird.

Die RegisterDragDrop--Funktion registriert jeweils nur ein Fenster, sodass Sie es für jedes Anwendungsfenster aufrufen müssen, in dem gelöschte Objekte akzeptiert werden können.

Wenn die Maus während eines OLE-Drag-and-Drop-Vorgangs über ungeöffentliche Teile des Zielfensters übergeht, ruft die DoDragDrop--Funktion die angegebene IDropTarget::D ragOver--Methode für das aktuelle Fenster auf. Wenn ein Ablagevorgang tatsächlich in einem bestimmten Fenster auftritt, ruft die DoDragDrop Funktion IDropTarget::D ropauf.

Die RegisterDragDrop--Funktion ruft auch die IUnknown::AddRef-Methode für den IDropTarget Zeiger auf.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- ole2.h
Library Ole32.lib
DLL- Ole32.dll

Siehe auch

RevokeDragDrop-