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 |
|