背景介绍:
    俺的机器:win2k中文版 (windows 2000 5.00.2195)
             + bcb6
    DWORD lcid3 = GetSystemDefaultLCID();       // ==> 2052
    DWORD lcid4 = GetUserDefaultLCID();         // ==> 2052
    LANGID langid3 = GetSystemDefaultLangID();  // ==> 2052
    LANGID langid4 = GetUserDefaultLangID();    // ==> 2052问题1:RichEdit 
    char buf[20];
    SendMessage( Handle_of_RichEdit, EM_GETSELTEXT, 0, (LPARAM) (LPSTR) buf);    此时,在RichEdit 输入的字符为 西欧语言字符 ,
    被选中的两个字符是"\xF6\xE4"(德文字符,o上加两点,a上加两点)
    但返回的却是 buf ="\x20\x20\x0" 问题2:TextOut
    char buf[20];
    buf[0] = '1'; 
    buf[1] = 224;  //此字符是 法文字符
    
    LOGFONT lf2;    memset (&lf2,0,sizeof(lf2));
    lf2.lfHeight = 36;
    lf2.lfWeight = FW_NORMAL;
    lf2.lfCharSet = ANSI_CHARSET;
    lf2.lfOutPrecision = OUT_DEFAULT_PRECIS;
    lf2.lfClipPrecision = CLIP_DEFAULT_PRECIS;
    lf2.lfQuality = DEFAULT_QUALITY;
    lf2.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
    strcpy(lf2.lfFaceName,"Arial");    HFONT hf = CreateFontIndirect(&lf2);
    HDC hdc = GetDC ( hwnd);    HFONT hfold = SelectObject(hdc,hf);    TextOut(hdc, 20, 20, buf, 2 );    屏幕上的显示结果, buf[1] 是 白板符号,(the \.notdef of the font).
外部解决方法:
    俺在 Control Panel 将 系统默认语言 换到 "西欧和美国"后,问题不复存在。
    但由于系统改动,有其他软件受到影响。可能的原因:
    按ms 的解释,西欧语言是应该用 ANSI_CHARSET 的。    错误可能的原因是 win2k 将 ansi_charset 的 大于127的 字符 
    都解释为 中文,但中文需要 两字节, 在 解释为 中文 错误的 情况下,
    显示出 白板字符 (它是字体内 用来显示所有 超出字符集的 字符的)    但 win2k中文版 不更改系统设置 是可以显示 西欧字符的,
    例证就是 IE,以及 RichEdit。
    
    而 RichEdit 似乎 是根据 系统默认语言 来响应 EM_GETSELTEXT.
    如果它内部保留的是 unicode,若能将其内部unicode 直接读出 也不错,
    俺一直找不到办法。求援:
    各位大侠,俺给你们磕头了,救救俺吧。