Э-э-э...
Честно говоря, ничего не понял
Что за else, откуда выдаёт, кого вызывал и как?
Вот пример записи и чтения байтового массива в REG_BINARY параметр:
//===============================================================
static void Get_Font(){
LOGFONT lf; //структура LOGFONT
HFONT hFontEdit; //переменная хэндла шрифта
int dataLen;
char buffer[32];
/* проверяем наличие ключа типа REG_BINARY с именем szKeyName и параметр szFont_Section */
dataLen = RegGetBinaryValue(szKeyName, szFont_Section, (LPDWORD) &lf, sizeof (LOGFONT));
if (dataLen = 0){
/* если ключа нет - RegGetBinaryValue вернула 0
получаем хэндл дефолтного gui-шрифта системы */
hFontEdit = (HFONT) GetStockObject (DEFAULT_GUI_FONT);
/* из хэндла получаем заполненную структуру LOGFONT, соответствующую этому шрифту */
GetObject (hFontEdit, sizeof (lf), &lf);
/* и сохраняем в реестре как массив байт длиной sizeof (LOGFONT) */
RegSetBinaryValue(szKeyName, szFont_Section, (LPDWORD) &lf, sizeof (LOGFONT));
/* читаем только что записанное */
dataLen = RegGetBinaryValue(szKeyName, szFont_Section, (LPDWORD) &lf, sizeof (LOGFONT));
}
/* смотрим сколько считано байт, должно быть равно sizeof (LOGFONT) */
wsprintf(buffer, "Считано: %d байт", dataLen);
MessageBox(0, buffer, "Caption", 0);
}
Ответить
|