The Deviare API has been developed intercept any API calls, letting you get in control of any application's code execution.
Only 32-bit (x86) platforms are supported.
Deviare exposes it's API through COM objects. Any language supporting interfacing to COM can use Deviare.
To make CodeProject article 'Spying Window Messages from the Inside' work you'll need to set it as a x32 application since Deviare doesn't work now in x64. This application is old and it doesn't have the flag to build only in 32 bits. This option is in project properties -> Build -> Target Platform -> x86 instead of Any CPU
We've integrate all this stuff in the DeviareCSharpConsole. When you intercept these message functions:
user32.dll!GetMessageA user32.dll!GetMessageW user32.dll!PeekMessageA user32.dll!PeekMessageW user32.dll!DispatchMessageA user32.dll!DispatchMessageW user32.dll!TranslateMessage
You will get all the message paramteres casted to the correct type and you will be able to see them. You can see this blog article for more information: http://blog.nektra.com/main/2010/08/24/deviare-api-interception-v1-0-1-released/