RegisterDragDrop-Funktion (ole2.h)

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

Syntax

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

Parameter

[in] hwnd

Handle mit einem Fenster, das ein Ziel für einen OLE-Drag-and-Drop-Vorgang sein kann.

[in] pDropTarget

Zeiger auf die IDropTarget-Schnittstelle für das Objekt, 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 bei Erfolg S_OK 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 Ablageziel registriert.
E_OUTOFMEMORY
Unzureichender Arbeitsspeicher für den Vorgang.
 
Hinweis Wenn Sie CoInitialize oder CoInitializeEx anstelle von OleInitialize verwenden, um COM zu initialisieren, gibt RegisterDragDrop immer einen E_OUTOFMEMORY Fehler zurück.
 

Hinweise

Wenn Ihre Anwendung gelöschte Objekte während OLE-Drag-and-Drop-Vorgängen akzeptieren kann, müssen Sie die RegisterDragDrop-Funktion aufrufen. Gehen Sie dazu immer dann vor, 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, für die Nachrichten verarbeitet werden müssen. Wenn diese Anforderung nicht erfüllt ist, wird jede Anwendung, die ein Objekt über das Fenster zieht, das als Ablageziel registriert ist, hängen, bis die Zielanwendung geschlossen wird.

Die RegisterDragDrop-Funktion registriert nur jeweils ein Fenster, sodass Sie es für jedes Anwendungsfenster aufrufen müssen, das gelöschte Objekte akzeptieren kann.

Wenn die Maus während eines OLE-Drag-and-Drop-Vorgangs ungeöffnete Teile des Zielfensters überläuft, ruft die DoDragDrop-Funktion die angegebene IDropTarget::D ragOver-Methode für das aktuelle Fenster auf. Wenn ein Drop-Vorgang tatsächlich in einem bestimmten Fenster stattfindet, ruft die DoDragDrop-FunktionIDropTarget::D rop auf.

Die RegisterDragDrop-Funktion ruft auch die IUnknown::AddRef-Methode auf dem IDropTarget-Zeiger auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ole2.h
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

RevokeDragDrop