1. Per il parsing, fai molto prima con una wscanf;
2. per costruire un COLORREF usa la macro RGB, come commentato nel tuo codice:
codice:
int r, g, b;
if(wscanf(riga, L"BkColor = ( %d , %d , %d )", &r, &g, &b)==3) {
FormaRect.bckground = RGB(r, g, b);
}
ma il risultato è che FormaRect.bckground vale solo 255 , io mi aspetto 255,0,0.
Anche facendo le cose correttamente (con la macro RGB), ti verrà fuori un unico numero, dato che COLORREF è semplicemente un intero a 32 bit, in cui vengono "impaccati" i tre colori nei tre byte bassi. Il formato di un COLORREF è 0x00bbggrr, dove bb gg e rr sono (in esadecimale) i valori corrispondenti a blu, verde e rosso, per cui ad un RGB(10, 20, 30) corrisponde il valore 1971210. Infatti:
R = 10 => 0x0a
G = 20 => 0x14
B = 30 => 0x1e
e 1971210 == 0x1e140a
(o anche, 1971210 == 30*65536 + 20*256 + 10)