1. CreateRemoteThreadEx works in Vista (of course only if you have enough privileges/access rights!). It will probably also work in win64, but only for 32bit processes. I've not tested it in win64 yet, though. Just give it a try yourself.

2. CreateRemoteThreadEx does not rely on madCodeHook. It needs madDisAsm, though, in order to properly support win9x.