Поделиться через


сообщение WM_DDE_EXECUTE

Клиентское приложение динамического обмена данными (DDE) отправляет WM_DDE_EXECUTE сообщение в серверное приложение DDE для отправки строки на сервер для обработки в виде ряда команд. Ожидается, что серверное приложение будет отправлять WM_DDE_ACK сообщение в ответ.

Чтобы опубликовать это сообщение, вызовите функцию PostMessage со следующими параметрами.

#define WM_DDE_EXECUTE     0x03E8

Параметры

wParam

Дескриптор клиентского окна, публикующего сообщение.

lParam

Содержит глобальный объект памяти, который ссылается на командную строку ANSI или Юникода в зависимости от типов окон, участвующих в диалоге.

Комментарии

Командная строка — это строка, завершающаяся значением NULL, состоящая из одной или нескольких строк кода операций, заключенных в одинарные скобки ([ ]). Каждая строка кода операции имеет следующий синтаксис, где список параметров является необязательным:

параметры opcode

Код операции — это любой определяемый приложением один маркер. Он не может содержать пробелы, запятые, круглые скобки, квадратные скобки или кавычки.

Список параметров может содержать любые значения, определяемые приложением. Несколько параметров разделяются запятыми, а весь список параметров заключен в круглые скобки. Параметры не могут включать запятые или круглые скобки, кроме как внутри строки в кавычках. Если квадратные скобки или круглые скобки должны отображаться в строке с кавычками, его не нужно удваивать, как это было в случае старых правил.

Ниже приведены допустимые командные строки.

[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.")] 

Обратите внимание, что в соответствии со старыми правилами скобки и квадратные скобки должны быть удваиваться следующим образом:

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

Серверы должны иметь возможность анализировать команды в любой форме.

Строки выполнения Юникода следует использовать только в том случае, если дескриптор окна клиента и сервера приводит к тому, что функция IsWindowUnicode возвращает значение TRUE.

Размещения

Клиентское приложение выделяет объект глобальной памяти, вызывая функцию GlobalAlloc .

При обработке сообщения WM_DDE_ACK , которое сервер отправляет в ответ на WM_DDE_EXECUTE сообщение, клиентское приложение должно удалить объект, возвращенный WM_DDE_ACK сообщением.

Получение

Серверное приложение отправляет WM_DDE_ACK сообщение, чтобы ответить положительно или отрицательно. Сервер должен повторно использовать объект глобальной памяти.

Если в под-протоколе не указано иное, сервер не должен публиковать сообщение WM_DDE_ACK до тех пор, пока не будут завершены все действия, указанные в строке команды выполнения. Исключением из этого правила является то, что строка приводит к завершению диалога на сервере.

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Dde.h (включая Windows.h)

См. также раздел

Справочные материалы

IsWindowUnicode

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

РаспаковкаDElParam

WM_DDE_ACK

Основные понятия

Сведения о динамическом обмене данными