Windows hooks allows you to poke inside other processes and sometimes alter their behaviors.
Is there such thing for Mac OS X?
Thanks!
SetWindowsHookEx is more like the old InputManager hack, in the sense that you change the code of an app from inside a shared library / a plugin loaded to it.
See SIMBL for a ready-made code injector to another process. For Objective-C classes, you then need to use method swizzling. I haven't tried replacing C functions / C++ classes myself, but surely it can be done using mach_override. See also this blog post.
But usually if you want to modify a GUI app, tapping into Objective-C classes would be sufficient.