IDropTarget::D ragEnter-Methode (oleidl.h)

Gibt an, ob ein Drop akzeptiert werden kann, und, falls ja, die Auswirkung des Drops.

Syntax

HRESULT DragEnter(
  [in]      IDataObject *pDataObj,
  [in]      DWORD       grfKeyState,
  [in]      POINTL      pt,
  [in, out] DWORD       *pdwEffect
);

Parameter

[in] pDataObj

Ein Zeiger auf die IDataObject-Schnittstelle für das Datenobjekt. Dieses Datenobjekt enthält die Daten, die im Drag-and-Drop-Vorgang übertragen werden. Wenn der Drop auftritt, wird dieses Datenobjekt in das Ziel integriert.

[in] grfKeyState

Der aktuelle Status der Tastaturmodifizierertasten auf der Tastatur. Mögliche Werte können eine Kombination aus flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON und MK_RBUTTON sein.

[in] pt

Eine POINTL-Struktur , die die aktuellen Cursorkoordinaten in Bildschirmkoordinaten enthält.

[in, out] pdwEffect

Zeigen Sie bei der Eingabe auf den Wert des pdwEffect-Parameters der DoDragDrop-Funktion . Bei der Rückgabe muss eines der DROPEFFECT-Flags enthalten sein, das angibt, was das Ergebnis des Löschvorgangs wäre.

Rückgabewert

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

Rückgabecode Beschreibung
E_UNEXPECTED
Ein unerwarteter Fehler ist aufgetreten.
E_INVALIDARG
Der pdwEffect-Parameter ist bei der Eingabe NULL .
E_OUTOFMEMORY
Für diesen Vorgang war nicht genügend Arbeitsspeicher verfügbar.

Hinweise

Sie rufen DragEnter nicht direkt auf. Stattdessen ruft die DoDragDrop-Funktion sie auf, um die Auswirkung eines Drops zu bestimmen, wenn der Benutzer die Maus zum ersten Mal in das registrierte Fenster eines Ablageziels zieht.

Um DragEnter zu implementieren, müssen Sie bestimmen, ob das Ziel die Daten im Quelldatenobjekt verwenden kann, indem Sie drei Dinge überprüfen:

  • Das vom Datenobjekt angegebene Format und Medium
  • Der Eingabewert von pdwEffect
  • Der Status der Modifiziererschlüssel
Um das Format und medium zu überprüfen, verwenden Sie den IDataObject-Zeiger , der im pDataObject-Parameter übergeben wurde, um IDataObject::EnumFormatEtc aufzurufen, damit Sie die FORMATETC-Strukturen auflisten können, die das Quelldatenobjekt unterstützt. Rufen Sie dann IDataObject::QueryGetData auf, um zu bestimmen, ob das Datenobjekt die Daten auf dem Ziel rendern kann, indem Sie die für das Datenobjekt angegebenen Formate und Medien untersuchen.

Beim Eintrag zu IDropTarget::D ragEnter wird der pdwEffect-Parameter auf die Effekte festgelegt, die dem pdwOkEffect-Parameter der DoDragDrop-Funktion zugewiesen werden. Die IDropTarget::D ragEnter-Methode muss einen dieser Effekte auswählen oder den Drop deaktivieren.

Die folgenden Modifizierertasten wirken sich auf das Ergebnis der Ablage aus.

Tastenkombination feedback User-Visible Drop-Effekt
STRG+UMSCHALT = DROPEFFECT_LINK
STRG + DROPEFFECT_COPY
Keine Tasten oder UMSCHALTTASTE Keine DROPEFFECT_MOVE
 

Bei der Rückgabe muss die Methode den Effekt( eines der DROPEFFECT-Flags) in den pdwEffect-Parameter schreiben. DoDragDrop verwendet dann diesen Parameter und schreibt ihn in den pdwEffect-Parameter . Sie kommunizieren die Auswirkungen des Dropbacks an die Quelle über DoDragDrop im pdwEffect-Parameter . Die DoDragDrop-Funktion ruft dann IDropSource::GiveFeedback auf, damit die Quellanwendung dem Benutzer das entsprechende visuelle Feedback über das Zielfenster anzeigen kann.

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 oleidl.h

Weitere Informationen

DragEnter

IDropSource

IDropSourceNotify

Idroptarget

RegisterDragDrop

RevokeDragDrop