Ziehquellenaufgaben

Die Ziehquelle ist für die folgenden Aufgaben zuständig:

  • Bereitstellen eines Datenübertragungsobjekts für das Absturzziel, das die Schnittstellen IDataObject und IDropSource verfügbar macht.
  • Generieren von Zeiger- und Quellfeedback.
  • Bestimmen, wann der Ziehvorgang abgebrochen wurde oder ein Abbruchvorgang aufgetreten ist.
  • Ausführen beliebiger Aktionen für die ursprünglichen Daten, die durch den Ablagevorgang verursacht werden, z. B. Löschen der Daten oder Erstellen eines Links zu diesen Daten.

Die Hauptaufgabe besteht darin, ein Datenübertragungsobjekt zu erstellen, das die Schnittstellen IDataObject und IDropSource verfügbar macht. Die Ziehquelle enthält möglicherweise eine Kopie der ausgewählten Daten. Dies ist zwar nicht zwingend erforderlich, trägt aber zum Schutz vor unbeabsichtigten Änderungen bei und ermöglicht, dass der Code der Zwischenablagevorgänge mit dem Drag & Drop-Code identisch ist.

Während ein Ziehvorgang durchgeführt wird, ist die Ziehquelle für das Festlegen des Mauszeigers und gegebenenfalls für die Bereitstellung von zusätzlichem Quellfeedback für den Benutzer verantwortlich. Die Ziehquelle kann kein Feedback bereitstellen, das die Mausposition verfolgt, außer durch festlegen des echten Zeigers (siehe SetCursor-Funktion). Diese Regel muss erzwungen werden, um Konflikte mit dem vom Abbruchziel bereitgestellten Feedback zu vermeiden. (Eine Ziehquelle kann auch ein Absturzziel sein. Wenn sie sich selbst verdringt, kann die Quelle/das Ziel natürlich Zielfeedback bereitstellen, um die Mausposition nachverfolgungen zu können. In diesem Fall ist es jedoch das Absturzziel, das die Maus nachverfolgt, nicht die Quelle.) Basierend auf dem Feedback, das vom Abbruchziel angeboten wird, legt die Quelle einen entsprechenden Zeiger fest.

Drag & Drop