<!--CodeS-->
procedure TControlHook.HookWndProc(var AMsg: TMessage);
var
Handled: Boolean;
begin
Handled := False;
if Assigned(FControl) then begin
if (AMsg.Msg <> WM_QUIT) then NotifyHooks(hoBeforeMsg, AMsg, Handled);
with AMsg do begin
if (not Handled) or (Msg = WM_DESTROY) then
try
if Assigned(FPrevWndProc) then
Result := CallWindowProc(FPrevWndProc, FControl.Handle, Msg,
WParam, LParam)
else
Result := CallWindowProc(THack(FControl).DefWndProc,
FControl.Handle, Msg, WParam, LParam);
finally
NotifyHooks(hoAfterMsg, AMsg, Handled);
end;
if Msg = WM_DESTROY then begin
UnhookControl;
if Assigned(HookList) and not (FDestroying or
(csDestroying in FControl.ComponentState)) then
PostMessage(HookList.FHandle, CM_RECREATEWINDOW, 0, Longint(Self));
end;
end;
end;
end;
<!--CodeE-->
이 코드 중에서
<!--CodeS-->
if Assigned(FPrevWndProc) then
Result := CallWindowProc(THack(FControl).DefWndProc,
FControl.Handle, Msg, WParam, LParam);
<!--CodeE-->
이 부분에서 바이얼레이션이 납니다...
일단 메인 폼과 모달 폼 둘 다 TRxWindowHook 컴포넌트를 써서 처리하는 로직이 있는데요...
두 군데에서 이걸 써서 에러가 나는건지 잘 모르겠네요....
아시는 분 좀 도와주세요~