RegOpenKeyEx da error 2 o error 161, falla en ambos sentidos

Estoy tratando de leer una clave de registro de un servidor Windows, y parece que no consigo que funcione con o sin barras diagonales. Si lo bash

lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "\\SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey); 

Me da el error 161, que es ERROR_BAD_PATHNAME. (La ruta especificada no es válida.)

Bien, así que intentándolo de esta manera:

 lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey); 

Me sale el error 2, ERROR_FILE_NOT_FOUND. (El sistema no puede encontrar el archivo especificado.)

Puedo abrir regedit y ver el valor que quiero recuperar, con la ruta My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Company\Product , nombre ServerName y tipo REG_SZ . ¿Que me estoy perdiendo aqui?

Abra la clave, no el valor:

 lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Company\\Product", 0, KEY_QUERY_VALUE, &hDomainKey); 

y luego lea el valor utilizando RegQueryValueEx() (o RegGetValue() ).