Форум: "WinAPI";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];
ВнизНужна помощь Найти похожие ветки
← →
Raptor (2001-12-15 20:36) [11]Привет!
Если тебе WM_COPYDATA не подходит то делай так.
При установке хука в ДЛЛ делаешь так
const
FileMapUniID = "Unique ID {6F392C03-DCE8-461D-BC33-639D14FDF2BB}";
type
PData = ^TData;
TData = record
Buffer:Array [0..255] Of Char;
end;
var
Data:PData;
HFileMap:THandle;
procedure CreateFileMap;
begin
HFileMap := CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, SizeOf(TData), FileMapUniID);
Data := MapViewOfFile(HFileMap, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TData))
end;
В приложении, которому будут посылаться сообщения, делаешь тоже самое.
В окне этого приложение описывешь обработку месаджа, например WM_USER+12321.
Кратко протокол пересылки таков.
Хук пишет то, что ему надо в Buffer и посылает окну приложения сообщение WM_USER+12321. В обработчике этого сообщения
приложение может делать с даными в Buffer все что ему вздумается.
В общем все. Правда, при закрытии приложения и снятии хука не забудь освободить хендлы
Procedure DisposeFileMap;
Begin
UnMapViewOfFile(Data);
CloseHandle(HFileMap);
End;
Raptor.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c