Kann mir vielleicht einer erklären, wie ich, wenn es die richtige Funktion ist, PeekMessage in meiner
DLL einzusetzen habe? So funktioniert es auf jedenfall nicht:
Delphi-Quellcode:
var
Msg: TMsg;
function MouseHookProc(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
if code = HC_ACTION then
begin
FileMapObj := OpenFileMapping(FILE_MAP_READ, False,'HookMapFile');
if FileMapObj <> 0 then
begin
FileMapView := MapViewOfFile(FileMapObj, FILE_MAP_READ, 0, 0, 0);
PostMessage(FileMapView^, WM_HOOKMAP, wParam, lParam);
PeekMessage(Msg, 0, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE or PM_NOYIELD);
UnmapViewOfFile(FileMapView);
CloseHandle(FileMapObj);
end;
end;
Result := CallNextHookEx(HookHandle, Code, wParam, lParam);
end;
Der Sinn eines Hooks ist ja die Messages nach verarbeitungen weiterzuleiten. Aber genau das will ich verhindern. Ich will, dass weder ein normales Fenster, noch der Desktop noch irgendein anderes Teil was eine Mausnachricht erhalten kann, sie nicht bekommt.