Solucionado, pueden cerrar ;)
Me interesaría ver la solución si no te importa demasiado el colgarla...
Claro, el problema era pasar el siguiente code de C, a C++:
HANDLE hw = CreateThread(0,0,hilo,(LPVOID)¶m,0,&pid);
Solución:
HANDLE hw = CreateThread(0,0,(LPTHREAD_START_ROUTINE)hilo,(LPVOID)¶m,0,&pid);
:D
Gracias :)