Compartir a través de


mensaje de WM_DDE_ACK

El mensaje WM_DDE_ACK notifica a una aplicación de intercambio dinámico de datos (DDE) la recepción y el procesamiento de los siguientes mensajes: WM_DDE_POKE, WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, WM_DDE_INITIATE o WM_DDE_REQUEST (en algunos casos).

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

#define WM_DDE_ACK     0x03E4

Parámetros

wParam

Al responder a WM_DDE_INITIATE, este parámetro es un identificador de la ventana del servidor que envía el mensaje.

Al responder a WM_DDE_EXECUTE, este parámetro es un identificador de la ventana del servidor que publica el mensaje.

Al responder a todos los demás mensajes, este parámetro es un identificador para el cliente o la ventana del servidor que publica el mensaje.

lParam

Al responder a WM_DDE_INITIATE, la palabra de orden bajo contiene un átomo que identifica la aplicación de respuesta. La palabra de orden superior contiene un átomo que identifica el tema para el que se establece una conversación.

Al responder a WM_DDE_EXECUTE, la palabra de orden bajo especifica una estructura DDEACK que contiene una serie de marcas que indican el estado de la respuesta. La palabra de orden superior es un identificador de un objeto de memoria global que contiene la cadena de comando que se recibió en el mensaje WM_DDE_EXECUTE .

Al responder a todos los demás mensajes, la palabra de orden bajo especifica una estructura DDEACK que contiene una serie de marcas que indican el estado de la respuesta. La palabra de orden superior contiene un átomo global que identifica el nombre del elemento de datos para el que se envía la respuesta.

Comentarios

Publicación

Excepto en respuesta al mensaje de WM_DDE_INITIATE , la aplicación publica el mensaje WM_DDE_ACK llamando a la función PostMessage , no llamando a la función SendMessage . Al responder a WM_DDE_INITIATE, la aplicación envía el mensaje de WM_DDE_ACK llamando a SendMessage. En este caso, ni el átomo de nombre de la aplicación ni el átomo de nombre de tema deben ser NULL (incluso si el mensaje de WM_DDE_INITIATE mensaje especificó átomos NULL ).

Al reconocer cualquier mensaje con un átomo complementario, la publicación de la aplicación WM_DDE_ACK puede reutilizar el átomo que acompaña al mensaje original, o bien puede eliminarlo y crear uno nuevo.

Al reconocer WM_DDE_EXECUTE, la aplicación que publica WM_DDE_ACK debe reutilizar el objeto de memoria global identificado en el mensaje de WM_DDE_EXECUTE original.

Todos los mensajes publicados WM_DDE_ACK deben crear o reutilizar el parámetro lParam llamando a la función PackDDElParam o a la función ReuseDDElParam .

Si una aplicación ha iniciado la finalización de una conversación publicando WM_DDE_TERMINATE y está esperando confirmación, la aplicación en espera no debe confirmar (positiva o negativamente) los mensajes posteriores enviados por la otra aplicación. La aplicación en espera debe eliminar los átomos o los objetos de memoria compartidos recibidos en estos mensajes intermedios. Los objetos de memoria no deben liberarse si la marca fRelease está establecida en FALSE en WM_DDE_POKE y WM_DDE_DATA mensajes.

Recepción

La aplicación que recibe un mensaje de WM_DDE_ACK debe eliminar todos los átomos que acompañan al mensaje. Si la aplicación recibe un WM_DDE_ACK en respuesta a un mensaje con un objeto de memoria global adjunto y el objeto se envió con las marcas fRelease establecidas en FALSE, la aplicación es responsable de eliminar el objeto.

Si la aplicación recibe un mensaje de WM_DDE_ACK negativo publicado en respuesta a un mensaje de WM_DDE_ADVISE , la aplicación debe eliminar el objeto de memoria global publicado con el mensaje de WM_DDE_ADVISE original. Si la aplicación recibe un mensaje de WM_DDE_ACK negativo publicado en respuesta a un mensaje de WM_DDE_DATA, WM_DDE_POKE o WM_DDE_EXECUTE , la aplicación debe eliminar el objeto de memoria global publicado con el mensaje de WM_DDE_DATA, WM_DDE_POKE o WM_DDE_EXECUTE original.

La aplicación que recibe un mensaje publicado WM_DDE_ACK debe liberar el parámetro lParam mediante la función FreeDDElParam .

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

DDEACK

FreeDDElParam

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

UnpackDDElParam

WM_DDE_ADVISE

WM_DDE_DATA

WM_DDE_EXECUTE

WM_DDE_INITIATE

WM_DDE_POKE

WM_DDE_REQUEST

WM_DDE_TERMINATE

WM_DDE_UNADVISE

Conceptual

Acerca del intercambio de datos dinámicos