Il terzo parametro non è il nome del file, ma il valore da assegnare a lpReturnedString (nel tuo caso StringaDiRitorno) se la chiave non viene trovata.
Il terzo parametro non è il nome del file, ma il valore da assegnare a lpReturnedString (nel tuo caso StringaDiRitorno) se la chiave non viene trovata.
Amaro C++, il gusto pieno dell'undefined behavior.