var hook_data : hook_data: ^TCWPStruct;
begin
hook_data := Pointer(lParam);
if hook_data^.message = WM_SIZE then
begin
//Реагируем на изменение размера окна
end;
end;
Получение доступа к данным, передаваемым в остальные функции ловушки (а именно, несложное преобразование типов у операции с указателем), осуществляется аналогичным образом, поэтому более демонстрироваться не будет.
Перехват возврата из оконной процедуры
Для ловушки WH_CALLWNDPROCRET параметры wParam и lParam функции-ловушки следует трактовать следующим образом:
• wParam – равен нулю, если сообщение послано другим процессом, и не равен нулю в противном случае;
• lParam – указатель на структуру TCWPRetStruct, содержащую информацию о сообщении, которое передано окну (и будет передано в оконную функцию).
Объявление структуры TCWPRetStruct с описанием ее полей выглядит следующим образом: