сообщение WM_DDE_ACK
Сообщение WM_DDE_ACK уведомляет приложение динамического обмена данными (DDE) о получении и обработке следующих сообщений: WM_DDE_POKE, WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, WM_DDE_INITIATE или WM_DDE_REQUEST (в некоторых случаях).
Чтобы опубликовать это сообщение, вызовите функцию PostMessage со следующими параметрами.
#define WM_DDE_ACK 0x03E4
Параметры
-
wParam
-
При ответе на WM_DDE_INITIATE этот параметр является дескриптором для окна сервера, отправляя сообщение.
При ответе на WM_DDE_EXECUTE этот параметр является дескриптором для окна сервера, публикующего сообщение.
При ответе на все остальные сообщения этот параметр является дескриптором для окна клиента или сервера, публикующего сообщение.
-
lParam
-
При ответе на WM_DDE_INITIATE слово низкого порядка содержит атом, идентифицирующий ответное приложение. Слово высокого порядка содержит атом, который определяет тему, для которой устанавливается беседа.
При ответе на WM_DDE_EXECUTE слово низкого порядка указывает структуру DDEACK , содержащую ряд флагов, указывающих состояние ответа. Слово высокого порядка — это дескриптор объекта глобальной памяти, который содержит командную строку, полученную в WM_DDE_EXECUTE сообщении.
При ответе на все остальные сообщения слово низкого порядка указывает структуру DDEACK , содержащую ряд флагов, указывающих состояние ответа. Слово высокого порядка содержит глобальный атом, определяющий имя элемента данных, для которого отправляется ответ.
Комментарии
Размещения
За исключением ответа на сообщение WM_DDE_INITIATE , приложение отправляет WM_DDE_ACK сообщение путем вызова функции PostMessage , а не путем вызова функции SendMessage . При ответе на WM_DDE_INITIATE приложение отправляет WM_DDE_ACK сообщение, вызывая SendMessage. В этом случае ни атом имени приложения, ни атом имени раздела не должны иметь значение NULL (даже если в сообщении WM_DDE_INITIATE указаны атомы NULL ).
При подтверждении любого сообщения с сопроводительным атомом приложение, публикующее WM_DDE_ACK , может либо повторно использовать атом, сопровождающий исходное сообщение, либо удалить его и создать новый.
При подтверждении WM_DDE_EXECUTE приложение, которое публикует WM_DDE_ACK , должно повторно использовать объект глобальной памяти, указанный в исходном сообщении WM_DDE_EXECUTE .
Все опубликованные WM_DDE_ACK сообщения должны создавать или повторно использовать параметр lParam путем вызова функции PackDDElParam или ReuseDDElParam .
Если приложение инициировало завершение диалога путем публикации WM_DDE_TERMINATE и ожидает подтверждения, ожидающее приложение не должно подтверждать (положительно или отрицательно) любые последующие сообщения, отправленные другим приложением. Ожидающее приложение должно удалить все атомы или объекты общей памяти, полученные в этих промежуточных сообщениях. Объекты памяти не должны освобождаться, если флаг fRelease имеет значение FALSE в сообщениях WM_DDE_POKE и WM_DDE_DATA .
Получение
Приложение, получающее WM_DDE_ACK сообщение, должно удалить все атомы, сопровождающие сообщение. Если приложение получает WM_DDE_ACK в ответ на сообщение с сопутствующим объектом глобальной памяти, а объект был отправлен с флагами fRelease , установленными как FALSE, приложение отвечает за удаление объекта.
Если приложение получает отрицательное WM_DDE_ACK сообщение, отправленное в ответ на WM_DDE_ADVISE сообщение, приложение должно удалить объект глобальной памяти, опубликованный вместе с исходным WM_DDE_ADVISE сообщением. Если приложение получает отрицательное WM_DDE_ACK сообщение, отправленное в ответ на WM_DDE_DATA, WM_DDE_POKE или WM_DDE_EXECUTE сообщение, приложение должно удалить объект глобальной памяти, опубликованный вместе с исходным сообщением WM_DDE_DATA, WM_DDE_POKE или WM_DDE_EXECUTE .
Приложение, получающее отправленное WM_DDE_ACK сообщение, должно освободить параметр lParam с помощью функции FreeDDElParam .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|