Das Problem liegt hier:
Delphi-Quellcode:
var mIRC_oldproc: Integer;
...
CallWindowProc(@mIRC_OldProc,mhwnd,uMsg,wP,lP);
Windows will einen Pointer auf die Prozedur, was du ihm aber gibst ist ein Pointer auf einen Integer, der die Adresse der Prozedur enthält.
Mit
CallWindowProc(Pointer(mIRC_OldProc),mhwnd,uMsg,wP,lP);
Müsste's besser klappen