2010. április 11., vasárnap

Get the local charset of a system


Problem/Question/Abstract:

How to get the local charset of a system

Answer:

function TranslateCharsetInfoEx(lpSrc: PDWORD; var lpCs: TCharsetInfo;
  dwFlags: DWORD): BOOL; stdcall; external 'gdi32.dll' name 'TranslateCharsetInfo';

procedure SetLocaleCharset;
var
  LCID, CP: Cardinal;
  Buf: array[0..6] of Char;
  CSI: TCharsetInfo;
begin
  LCID := GetThreadLocale;
  GetLocaleInfo(LCID, LOCALE_IDefaultAnsiCodePage, Buf, 6);
  CP := StrToIntDef(Buf, GetACP);
  TranslateCharsetInfoEx(Pointer(CP), CSI, TCI_SRCCODEPAGE);
  LocaleCharSet := CSI.ciCharset;
end;

Nincsenek megjegyzések:

Megjegyzés küldése