Now that's a useful thing!
But there's a snake in the grass: CallWindowProc() allows up to four parameters. So I'd think that this will only work for procedures that take exactly four parameters. However, please do correct me if I'm wrong
Edit: ain't this exactly what SendMessage() does?