Wenn du die Eigenschaft WindowProc benutzt, dann muss es keine Windows-Fensterprozedur sein sondern eine TWndMethod, also etwa:
Delphi-Quellcode:
FOldWndProc := FTargetControl.WindowProc;
FTargetControl.WindowProc := InternalWndProc;
und mit dem Prototyp
procedure TNewClass.InternalWndProc(var Msg: TMessage);
[Nachtrag]
Ansonsten musst du die Fensterprozedur mit SetWindowLong/GWL_WNDPROC setzen. Dann kannst du auch eine normale Windows WNDPROC nehmen.