Увидев, что Вы посылаете сообщение WM_COPYDATA, SendMessage создает проек цию файла размером cbData байтов и копирует данные из адресного пространства Вашей программы в эту проекцию. Затем отправляет сообщение окну-приемнику При обработке этого сообщения принимающей оконной процедурой параметр lParam указывает на структуру COPYDATASTRUCT, которая находится в адресном простран стве процесса-приемника Элемент lpData этой структуры указывает на проекцию файла в адресном пространстве процесса-приемника.
Вам следует помнить о трех важных вещах, связанных с сообщением WM_COPY DATA
DATA и структура COPYDATASTRUCT в Microsoft Visual С++ версии 1 52 не оп ределены Вам придется добавить их определения самостояельно.
// включите этот код в свою 16-разрядную Windows-программу
#define WM_COPYDATA 0x004A
typedef VOID FAR* PVOID;
typedef struct taqCOPYDATASTRUCT
{
DWORD dwData;
DWORD cbDdta;
PVOID lpData;
} COPYDATASTRUCT, FAR* PCOPYDATASTRUCT;
Сообщение WM_COPYDATA — мощный инструмент, позволяющий разработчикам экономить массу времени при решении проблем связи между процессами И очень жаль, что применяется оно нечасто Насколько полезно это сообщение, иллюстриру ет программа-пример LastMsgBoxInfo из главы 22