Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft die IDropTarget-Schnittstelle für ein direktes aktives, fensterloses Objekt ab, das Drag and Drop unterstützt.
Syntax
HRESULT GetDropTarget(
[out] IDropTarget **ppDropTarget
);
Parameter
[out] ppDropTarget
Ein Zeiger auf eine IDropTarget-Zeigervariable , die den Schnittstellenzeiger auf das fensterlose Objekt empfängt.
Rückgabewert
Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Rückgabewerte:
| Rückgabecode | Beschreibung |
|---|---|
|
Das fensterlose Objekt unterstützt das Ziehen und Ablegen nicht. |
Hinweise
Ein Objekt mit Fenster registriert seine IDropTarget-Schnittstelle , indem es die RegisterDragDrop-Funktion aufruft und sein Fensterhandle als Parameter angibt. Durch die Registrierung der IDropTarget-Schnittstelle kann das Objekt an Drag and Drop-Vorgängen teilnehmen. Da es kein Fenster hat, wenn es aktiv ist, kann ein fensterloses Objekt seine IDropTarget-Schnittstelle nicht registrieren. Daher kann es nicht direkt an Drag-and-Drop-Vorgängen ohne Unterstützung aus seinem Container teilnehmen.
Die folgenden Ereignisse treten während eines Drag-and-Drop-Vorgangs mit fensterlosen Objekten auf:
- Der Container registriert seine eigene IDropTarget-Schnittstelle über die RegisterDragDrop-Funktion .
- In der Implementierung der eigenen IDropTarget::D ragEnter - oder IDropTarget::D ragOver-Methoden erkennt der Container, ob der Mauszeiger gerade ein eingebettetes Objekt eingegeben hat.
- Wenn das Objekt inaktiv ist, ruft der Container die IPointerInactive::GetActivationPolicy-Methode des Objekts auf. Das -Objekt gibt das POINTERINACTIVE_ACTIVATEONDRAG-Flag zurück. Der Container aktiviert dann das Objekt an Ort und Stelle. Wenn das Objekt bereits aktiv war, muss der Container diesen Schritt nicht ausführen.
- Nachdem das Objekt aktiv ist, muss der Container die IDropTarget-Schnittstelle des Objekts abrufen.
- Ein fensterloses Objekt, das ein Ablageziel sein möchte, implementiert weiterhin die IDropTarget-Schnittstelle , registriert sie jedoch nicht und gibt es nicht über Aufrufe von IUnknown::QueryInterface zurück. Stattdessen kann der Container diese Schnittstelle abrufen, indem er die IOleInPlaceObjectWindowless::GetDropTarget-Methode des Objekts aufruft . Das Objekt gibt einen Zeiger auf seine eigene IDropTarget-Schnittstelle zurück, wenn es an Drag and Drop-Vorgängen teilnehmen möchte. Der Container kann diesen Schnittstellenzeiger zur späteren Verwendung zwischenspeichern. Beispielsweise kann der Container bei nachfolgenden Aufrufen der Methoden IDropTarget::D ragEnter oder IDropTarget::D ragLeave den zwischengespeicherten Zeiger verwenden, anstatt die GetDropTarget-Methode des Objekts erneut aufzurufen.
- Der Container ruft dann die IDropTarget::D ragEnter-Methode des Objekts auf und übergibt den zurückgegebenen Wert für pdwEffect von seiner eigenen IDropTarget::D ragOver- oder IDropTarget::D ragEnter-Methode . Ab diesem Zeitpunkt leitet der Container alle nachfolgenden IDropTarget::D ragOver-Aufrufe an das fensterlose Objekt weiter, bis die Maus das Objekt verlässt oder ein Drop auf dem Objekt auftritt. Wenn die Maus das Objekt verlässt, ruft der Container die IDropTarget::D ragLeave des Objekts auf und gibt dann die IDropTarget-Schnittstelle des Objekts frei. Wenn der Drop auftritt, leitet der Container den IDropTarget::D rop-Aufruf an das -Objekt weiter.
- Schließlich deaktiviert der Container das Objekt.
Ein Objekt, das S_FALSE von IDropTarget::D ragEnter zurückgibt, sollte vorbereitet sein, um nachfolgende Aufrufe von IDropTarget::D ragEnter ohne IDropTarget::D ragLeave dazwischen zu empfangen. Wenn sich die Maus beim nächsten Aufruf des IDropTarget::D ragOver des Containers immer noch über demselben Objekt befindet, kann der Container versuchen, IDropTarget::D ragEnter erneut für das Objekt aufzurufen.
Hinweise für Anrufer
Ein Container kann den Zeiger auf die IDropTarget-Schnittstelle des Objekts zur späteren Verwendung zwischenspeichern.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 | ocidl.h |