сообщение 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 [только классические приложения]
Заголовок
Dde.h (включая Windows.h)

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

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

DDEACK

FreeDDElParam

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

РаспаковкаDElParam

WM_DDE_ADVISE

WM_DDE_DATA

WM_DDE_EXECUTE

WM_DDE_INITIATE

WM_DDE_POKE

WM_DDE_REQUEST

WM_DDE_TERMINATE

WM_DDE_UNADVISE

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

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