Si usas TCHAR.h podes tener una compilacion condicional para ANSI y otra para UNICODE. Cuando compiles con _UNICODE definido en realidad estaras usando wchar.h.
En mi opinion si vas a trabajar con NT es muy recomendable usar UNICODE. Cuando llamas a la API de Windows en NT por ejemplo la funcion CreateFileA lo primero que hace el Sistema es convertir esa cadena a UNICODE para despues llamar a CreateFileW. Si haces un programa con UNICODE directamente llamas a CreateFileW.
Aca tenes toda la informacion que necesitas:
http://msdn.microsoft.com/library/en...icode_6bqr.asp