ВУЗ:
Составители:
47
Принимающий данные процесс должен обрабатывать сообщение
WM_COPYDATA в главном окне. Данные получаются в виде структуры:
Структура COPYDATASTRUCT
typedef struct tagCOPYDATASTRUCT
{
DWORD dwData;
DWORD cbData;
PVOID lpData;
} COPYDATASTRUCT;
dwData – устанавливает до 32 битов данных, которые будут переданы в
принимающую прикладную программу, cbData – устанавливает размер, в байтах,
данных, указанных элементом структуры lpData, lpData – указывает на данные,
которые будут переданы в принимающую прикладную программу. Этот элемент
структуры может быть значением NULL.
Чтобы послать сообщение из процесса в процесс нужно воспользоваться API-
функцией SendMessage:
Функция SendMessage
LRESULT SendMessage(
HWND hWnd,
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0
);
Параметры:
hWnd – дескриптор окна, которому посылается сообщение.
message – определяет сообщение которое будет послано.
wParam – определяет дополнительную зависимую от сообщения информацию.
pParam – определяет дополнительную зависимую от сообщения информацию.
Возвращаемое значение
Результат обработки сообщения, значение зависит от посланного сообщения.
Для этого необходимо знать HWND окна, в который вы будете посылать
сообщение. Его вы можете получить с помощью функции FindWindowEx.
Задание:
1. Написать программу «Источник данных» со следующими функциями:
– запись строки в файл средствами API, блокируя доступ к записи и чтению
файла другими программами;
– передача текстовой строки с помощью сообщения WM_COPYDATA
другому приложению.
Принимающий данные процесс должен обрабатывать сообщение
WM_COPYDATA в главном окне. Данные получаются в виде структуры:
Структура COPYDATASTRUCT
typedef struct tagCOPYDATASTRUCT
{
DWORD dwData;
DWORD cbData;
PVOID lpData;
} COPYDATASTRUCT;
dwData – устанавливает до 32 битов данных, которые будут переданы в
принимающую прикладную программу, cbData – устанавливает размер, в байтах,
данных, указанных элементом структуры lpData, lpData – указывает на данные,
которые будут переданы в принимающую прикладную программу. Этот элемент
структуры может быть значением NULL.
Чтобы послать сообщение из процесса в процесс нужно воспользоваться API-
функцией SendMessage:
Функция SendMessage
LRESULT SendMessage(
HWND hWnd,
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0
);
Параметры:
hWnd – дескриптор окна, которому посылается сообщение.
message – определяет сообщение которое будет послано.
wParam – определяет дополнительную зависимую от сообщения информацию.
pParam – определяет дополнительную зависимую от сообщения информацию.
Возвращаемое значение
Результат обработки сообщения, значение зависит от посланного сообщения.
Для этого необходимо знать HWND окна, в который вы будете посылать
сообщение. Его вы можете получить с помощью функции FindWindowEx.
Задание:
1. Написать программу «Источник данных» со следующими функциями:
– запись строки в файл средствами API, блокируя доступ к записи и чтению
файла другими программами;
– передача текстовой строки с помощью сообщения WM_COPYDATA
другому приложению.
47
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »
