Compartir a través de


mensaje de WM_DDE_DATA

Una aplicación de servidor de Intercambio dinámico de datos (DDE) envía un mensaje de WM_DDE_DATA a una aplicación cliente DDE para pasar un elemento de datos al cliente o notificar al cliente la disponibilidad de un elemento de datos.

Para publicar este mensaje, llame a la función PostMessage con los parámetros siguientes.

#define WM_DDE_DATA        0x03E05

Parámetros

wParam

Identificador de la ventana del servidor que publica el mensaje.

lParam

La palabra de orden bajo es un identificador de un objeto de memoria global que contiene una estructura DDEDATA con los datos e información adicional. El identificador debe establecerse en NULL si el servidor notifica al cliente que el valor del elemento de datos ha cambiado durante un vínculo de datos intermedio. El cliente establece un vínculo intermedio que envía un mensaje de WM_DDE_ADVISE con el conjunto de bits fDeferUpd .

La palabra de orden superior contiene un átomo que identifica el elemento de datos para el que se envían los datos o la notificación.

Comentarios

Publicación

La aplicación de servidor asigna el objeto de memoria global mediante la función GlobalAlloc . Asigna el átomo mediante la función GlobalAddAtom .

El servidor debe crear o reutilizar el parámetro WM_DDE_DATA lParam mediante una llamada a la función PackDDElParam o a la función ReuseDDElParam.

Si la aplicación receptora (cliente) responde con un mensaje de WM_DDE_ACK negativo, la aplicación de contabilización (servidor) debe eliminar el objeto de memoria global; de lo contrario, el cliente debe eliminar el objeto después de extraer su contenido llamando a la función UnpackDDElParam .

Si la aplicación de servidor establece el miembro fRelease de la estructura DDEDATA en FALSE, el servidor es responsable de eliminar el objeto al recibir una confirmación positiva o negativa.

La aplicación de servidor no debe establecer los miembros fAckReq y fRelease de la estructura DDEDATA en FALSE. Si ambos miembros se establecen en FALSE, es imposible que el servidor determine cuándo eliminar el objeto.

Recepción

Si fAckReq es TRUE, la aplicación cliente debe publicar el mensaje de WM_DDE_ACK para responder de forma positiva o negativa. Al publicar WM_DDE_ACK, el cliente puede reutilizar el átomo o puede eliminarlo y crear uno nuevo.

El cliente debe crear o reutilizar el parámetro WM_DDE_ACK lParam llamando a la función PackDDElParam o a la función ReuseDDElParam.

Si fAckReq es FALSE, la aplicación cliente debe eliminar el átomo.

Si la aplicación de contabilización especificó un objeto de memoria global como NULL, la aplicación receptora puede solicitar al servidor que envíe los datos publicando un mensaje de WM_DDE_REQUEST .

Después de procesar un WM_DDE_DATA mensaje en el que el objeto de memoria global no es NULL, el cliente debe liberar el objeto, a menos que se cumple una de las condiciones siguientes:

  • El miembro fRelease es FALSE.
  • El miembro fRelease es TRUE, pero la aplicación cliente responde con un mensaje de WM_DDE_ACK negativo.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Dde.h (incluye Windows.h)

Consulte también

Referencia

DDEDATA

FreeDDElParam

GlobalAddAtom

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

UnpackDDElParam

WM_DDE_ACK

WM_DDE_ADVISE

WM_DDE_POKE

WM_DDE_REQUEST

Conceptual

Acerca del intercambio de datos dinámicos