Ciao a tutti.

Sono alle prese (ormai da 3 ore) con un pezzo di codice che dovrebbe leggere dei valori dal registro di configurazione di Windows.
Premetto che non immaginavo che Microsoft riuscisse a complicarsi a tal punto la vita, rendendo impossibile qualsiasi via di spiegazione per dei giri assurdi che bisogna fare per poter riuscire a leggere un valore dal registro.

Non posterò il codice del programma se non espressamente richiesto, per 3 ragioni:

1) Non è fondamentale correggere il codice che ho a disposizione (se qualcuno riesce a postarmene uno bello chiaro, lo ringrazio tanto)

2) Dilungherebbe inutilmente questo post

3) Sono il primo a vergognarmi di aver messo le mani su del codice trovato in MSDN, l'unica documentazione dove puoi trovare tutto ciò che non ti serve e dove sei tranquillo di non trovare mai le risposte ai tuoi problemi (al massimo ti ritrovi con un problema in più).

Fosse per me butterei via tutte le licenze Windows che vi sono qui in azienda, con le quali, purtroppo, mi trovo a lavorare... ma purtroppo il capo non sono io.

Veniamo all'esposizione del problema principale: devo andare a leggere il registro di Windows. Conosco esattamente il percorso della chiave che mi serve. E tutto sarebbe semplice. Il problema è che questa chiave di registro puù contenere delle sottochiavi (in numero variabile). Ognuna di queste sottochiavi ha al suo interno un numero non precisato di valori, ma a me di questi valori non interessa nulla se non uno in particolare che è sicuramente presente in tutte le chiavi. Graficamente, quindi, ho questa situazione:
codice:
+...
+HKEY_LOCAL_MACHINE
|   |
|   +...
|   |  |
|   |  +--- CHIAVE1
|   |  |    |
|   |  |    +--- Valore1 (val1)
|   |  |    +--- Valore2 (val2)
|   |  |    +--- ValoreX (valx)
|   |  |    +...
|   |  +--- CHIAVE2
|   |  |    |
|   |  |    +--- Valore1 (val1)
|   |  |    +--- Valore2 (val2)
|   |  |    +--- ValoreX (valx)
|   |  |    +...
|   |  +--- CHIAVE3
|   |  |    |
|   |  |    +--- Valore1 (val1)
|   |  |    +--- ValoreX (valx)
|   |  |    +...
A me interessa solamente pescare il valore di chiascun ValoreX, andando iteraticamente su ciascuna chiave CHIAVEn.

Qualcuno è in gradi do fornirmi una soluzione semplice, utilizzando le API di Windows per il Registro di configurazione?

Seguendo un esempio trovato sull'MSDN sono riuscito a pescare tutti i valori Valorei, ma ogni volta che l'esecuzione raggiunge il ValoreX, non me lo legge, andando in errore (il codice d'errore che viene restituito è 234, cosa vorrà mai dire? L'MSDN suggerisce di utilizzare la funzione FormatMessage, che ovviamente è priva di esempi di utilizzo, ma nessuno sa bene cosa sia l'ultimo parametro di tale funzione, né credo sia così essenziale per ottenere un semplice messaggio...)


Grazie a chiunque abbia la pazienza necessaria a fornirmi una soluzione a questo problema (che è solo una minima parte dell'intero programma che dovrei sviluppare), io, sinceramente, non posso perdere ogni volta 3 ore di tempo solo per riuscire a inquadrare la logica Microsoft.

Ciao.