WM_DDE_DATA Nachricht

Eine DDE-Serveranwendung (Dynamic Data Exchange) sendet eine WM_DDE_DATA Nachricht an eine DDE-Clientanwendung, um ein Datenelement an den Client zu übergeben oder den Client über die Verfügbarkeit eines Datenelements zu benachrichtigen.

Um diese Nachricht zu posten, rufen Sie die PostMessage-Funktion mit den folgenden Parametern auf.

#define WM_DDE_DATA        0x03E05

Parameter

wParam

Ein Handle für das Serverfenster, das die Nachricht ausgibt.

lParam

Das Wort mit niedriger Reihenfolge ist ein Handle für ein globales Speicherobjekt, das eine DDEDATA-Struktur mit den Daten und zusätzlichen Informationen enthält. Das Handle sollte auf NULL festgelegt werden, wenn der Server den Client benachrichtigt, dass sich der Wert des Datenelements während einer warmen Datenverbindung geändert hat. Ein warmer Link wird hergestellt, indem der Client eine WM_DDE_ADVISE Nachricht mit dem Bitsatz fDeferUpd sendet.

Das Wort mit hoher Ordnung enthält ein Atom, das das Datenelement identifiziert, für das die Daten oder Benachrichtigungen gesendet werden.

Bemerkungen

Entsendung

Die Serveranwendung weist das globale Speicherobjekt mithilfe der GlobalAlloc-Funktion zu. Das Atom wird mithilfe der GlobalAddAtom-Funktion zugeordnet.

Der Server muss den WM_DDE_DATAlParam-Parameter durch Aufrufen der PackDDElParam-Funktion oder der ReuseDDElParam-Funktion erstellen oder wiederverwenden.

Wenn die empfangende (Client-)Anwendung mit einer negativen WM_DDE_ACK-Nachricht antwortet, muss die Postenanwendung (Server) das globale Speicherobjekt löschen. Andernfalls muss der Client das Objekt löschen, nachdem er seinen Inhalt extrahiert hat, indem er die UnpackDDElParam-Funktion aufruft .

Wenn die Serveranwendung das fRelease-Element der DDEDATA-Struktur auf FALSE festlegt, ist der Server für das Löschen des Objekts verantwortlich, nachdem er entweder eine positive oder eine negative Bestätigung erhalten hat.

Die Serveranwendung sollte sowohl das fAckReq - als auch das fRelease-Element der DDEDATA-Struktur nicht auf FALSE festlegen. Wenn beide Elemente auf FALSE festgelegt sind, kann der Server nicht bestimmen, wann das Objekt gelöscht werden soll.

Empfangen

Wenn fAckReqTRUE ist, sollte die Clientanwendung die WM_DDE_ACK Nachricht veröffentlichen, um positiv oder negativ zu reagieren. Beim Veröffentlichen WM_DDE_ACK kann der Client das Atom entweder wiederverwenden oder es löschen und ein neues erstellen.

Der Client muss den WM_DDE_ACKlParam-Parameter erstellen oder wiederverwenden, indem er die PackDDElParam-Funktion oder die ReuseDDElParam-Funktion aufruft .

Wenn fAckReqFALSE ist, sollte die Clientanwendung das Atom löschen.

Wenn die Buchungsanwendung das globale Speicherobjekt als NULL angegeben hat, kann die empfangende Anwendung den Server anfordern, die Daten zu senden, indem sie eine WM_DDE_REQUEST Nachricht sendet.

Nach der Verarbeitung einer WM_DDE_DATA Nachricht, in der das globale Speicherobjekt nicht NULL ist, sollte der Client das Objekt freigeben, es sei denn, eine der folgenden Bedingungen ist zutrifft:

  • Das fRelease-Element ist FALSE.
  • Der fRelease-Member ist TRUE, aber die Clientanwendung antwortet mit einer negativen WM_DDE_ACK Nachricht.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Dde.h (einschließlich Windows.h)

Siehe auch

Referenz

DDEDATA

FreeDDElParam

GlobalAddAtom

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

EntpackDDElParam

WM_DDE_ACK

WM_DDE_ADVISE

WM_DDE_POKE

WM_DDE_REQUEST

Konzept

Informationen zum dynamischen Datenaustausch