сообщение 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 [только классические приложения] |
Заголовок |
|
См. также раздел
-
Справочные материалы
-
Основные понятия