Compartir a través de


mensaje de WM_DDE_EXECUTE

Una aplicación cliente de Intercambio de datos dinámicos (DDE) envía un mensaje WM_DDE_EXECUTE a una aplicación de servidor DDE para enviar una cadena al servidor que se va a procesar como una serie de comandos. Se espera que la aplicación de servidor publique un mensaje WM_DDE_ACK en respuesta.

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

#define WM_DDE_EXECUTE     0x03E8

Parámetros

wParam

Identificador de la ventana del cliente que publica el mensaje.

lParam

Contiene un objeto de memoria global que hace referencia a una cadena de comandos ANSI o Unicode, en función de los tipos de ventanas implicadas en la conversación.

Comentarios

La cadena de comando es una cadena terminada en null que consta de una o varias cadenas de código de operación entre corchetes únicos ([ ]). Cada cadena de código de operación tiene la sintaxis siguiente, donde la lista de parámetros es opcional:

parámetros de opcode

El código de operación es cualquier token único definido por la aplicación. No puede incluir espacios, comas, paréntesis, corchetes ni comillas.

La lista de parámetros puede contener cualquier valor o valor definido por la aplicación. Varios parámetros están separados por comas y toda la lista de parámetros se incluye entre paréntesis. Los parámetros no pueden incluir comas ni paréntesis excepto dentro de una cadena entre comillas. Si se va a mostrar un carácter entre corchetes o paréntesis en una cadena entre comillas, no es necesario duplicarlo, como era el caso en las reglas antiguas.

A continuación se muestran cadenas de comandos válidas:

[connect][download(query1,results.txt)][disconnect] 
[query("sales per employee for each district")] 
[open("sample.xlm")][run("r1c1")] 
[quote_case("This is a "" character")] 
[bracket_or_paren_case("()s or []s should be no problem.")] 

Tenga en cuenta que, bajo las reglas antiguas, los paréntesis y corchetes tenían que duplicarse, como se indica a continuación:

[bracket_or_paren_case("(())s or [[]]s should be no problem.")] 

Los servidores deben poder analizar los comandos en cualquier formato.

Las cadenas de ejecución Unicode solo se deben usar cuando el cliente y el identificador de ventana del servidor hacen que la función IsWindowUnicode devuelva TRUE.

Publicación

La aplicación cliente asigna el objeto de memoria global llamando a la función GlobalAlloc .

Al procesar el mensaje WM_DDE_ACK que el servidor publica en respuesta a un mensaje de WM_DDE_EXECUTE , la aplicación cliente debe eliminar el objeto devuelto por el mensaje WM_DDE_ACK .

Recepción

La aplicación de servidor publica el mensaje WM_DDE_ACK para responder positiva o negativamente. El servidor debe reutilizar el objeto de memoria global.

A menos que se especifique lo contrario mediante un subprotocolo, el servidor no debe publicar el mensaje de WM_DDE_ACK hasta que se completen todas las acciones especificadas por la cadena de comandos execute. La única excepción a esta regla es cuando la cadena hace que el servidor finalice la conversación.

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 (incluya Windows.h)

Consulte también

Referencia

IsWindowUnicode

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

DesempaquetadoDElParam

WM_DDE_ACK

Conceptual

Acerca del intercambio de datos dinámicos