GetCPInfoEx не отдает названия CodePages
От: mdaii http://delphifeeds.ru
Дата: 21.05.06 12:13
Оценка:
Помогите, плз.!
Задача такова:
Получить названия всех возможных кодовых страниц (CodePages) в том виде, как они представлены на третьей вкладке диалога региональных настроек и выбора языка в WinXP.
Те, что установлены — птичкой отмечены, те что нет, — соответственно, нет.
Получить номера страниц не проблема.
Либо EnumSystemCodePages использовать, либо прямо из реестра брать можно. (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage)
Проблема в том как получить имена кодовых страниц.
Использую следующий код.
//////////////
try
SetString(s, lpCodePageString, 99);
s:=Trim(s);
except
end;
GetCPInfoEx(StrToIntDef(s,-1),0, cpi);
SetString(s_nm,cpi.CodePageName,100);
s_nm:=Trim(s_nm);
lbCodePagesInstalledList.Items.Add(s_nm);
///////////////

lpCodePageString — номер CodePage'а (передается из EnumCodePagesProc — callback процедуры для EnumSystemCodePages )
Передается корректно.
Так вот, если CodePage установлена — все ОК.
В список заносится то, что требуется
А если нет, то имя CodePage не отдается.
Как его получить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.