Форум: "WinAPI";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
ВнизОх уж эти хуки..... Найти похожие ветки
← →
SPeller (2002-05-21 17:03) [0]Здрасьте! Наверно мои слова повторялись десять тысяч раз. Проблема такая: ставлю хук, а при обработке сообщения вылазит ошибка.
...
callwndproc:=hookproc;
hhook:=setwindowshookex(wh_getmessage,@callwndproc,hinstance,getcurrentthreadid);
...
function tform1.Hookproc(hc:integer;wParam:word;lParam:longint):longint;stdcall;
var cwp:tmsg;
begin
if lparam<>0 then begin
cwp:=tmsg(pointer(lparam)^);
if (cwp.message=wm_paint)then begin // Тут вылазит ошибка
.....
end;
end;
result:=0;
end;
В указанном месте вылазит ошибка "Access violation at address XXXX....."
Чего ей не хватает???
← →
AFROLOV (2002-05-21 17:23) [1]Может и не лучшая реализация но работает:
Function WndHook(Code: Integer; ParamW: WPARAM; ParamL: LPARAM): LRESULT;stdcall;
var
PMsgSt:^tagMSG;
MsgStruct:tagMSG;
....
begin
.....
PMsgSt:=Pointer(ParamL);
MsgStruct.hwnd:=PMsgSt^.hwnd;
MsgStruct.message:=PMsgSt^.message;
MsgStruct.wParam:=PMsgSt^.wParam;
MsgStruct.lParam:=PMsgSt^.lParam;
MsgStruct.time:=PMsgSt^.time;
MsgStruct.pt.X:=PMsgSt^.pt.x;
MsgStruct.pt.y:=PMsgSt^.pt.y;....
end;
....
WndHookHandle:=SetWindowsHookEx(WH_GETMESSAGE, @WndHook, HInstance, TreadId);
....
← →
MBo (2002-05-21 17:47) [2]ошибка в том, то Hookproc не должна быть методом объекта
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.009 c