Preface
Open32 NLS Extension Overview
Abstract
Understanding Win32 National Language Support
Design of Open32 National Language Support
Writing International Applications using Open32
Input Method / Keyboard Support
Overview
Key Design Points
Functional Description by API or Message
ImmAssociateContext
ImmConfigureIME
ImmCreateContext
ImmDestroyContext
ImmEnumRegisterWord
ImmEscape
ImmGetCandidateList
ImmGetCandidateListCount
ImmGetCandidateWindow
ImmGetCompositionFont
ImmGetCompositionString
ImmGetCompositionWindow
ImmGetContext
ImmGetConversionList
ImmGetConversionStatus
ImmGetDefaultIMEWnd
ImmGetGuideLine
ImmGetIMEFileName
ImmGetOpenStatus
ImmGetProperty
ImmGetRegisterWordStyle
ImmGetStatusWindowPos
ImmGetVirtualKey
ImmIsIME
ImmIsUIMessage
ImmNotifyIME
ImmRegisterWord
ImmReleaseContext
ImmSetCandidateWindow
ImmSetCompositionFont
ImmSetCompositionString
ImmSetCompositionWindow
ImmSetConversionStatus
ImmSetOpenStatus
ImmSetStatusWindowPos
ImmSimulateHotKey
ImmUnregisterWord
CreateWindowEx
DefDlgProc
DefFrameProc
DefWindowProc
ActivateKeyboardLayout
GetKeyboardLayout
GetKeyboardLayoutList
MapVirtualKeyEx
ToAsciiEx
VkKeyScanEx
GetKeyNameText
GetKeyState
WM_CHAR
WM_IME_CHAR message
WN_IME_COMPOSITION message
WM_IME_COMPOSITIONFULL
WM_IME_CONTROL
IMC_CLOSESTATUSWINDOW
IMC_GETCANDIDATEPOS
IMC_GETCOMPOSITIONWINDOW
IMC_GETSTATUSWINDOWPOS
IMC_OPENSTATUSWINDOW
IMC_SETCANDIDATEPOS
IMC_SETCOMPOSITIONFONT
IMC_SETCOMPOSITIONWINDOW
IMC_SETSTATUSWINDOWPOS
WM_IME_ENDCOMPOSITION
WM_IME_KEYDOWN
WM_IME_KEYUP
WM_IME_NOTIFY
IMN_CHANGECANDIDATE
IMN_CLOSECANDIDATE
IMN_CLOSESTATUSWINDOW
IMN_GUIDELINE
IMN_OPENCANDIDATE
IMN_OPENSTATUSWINDOW
IMN_SETCANDIDATEPOS
IMN_SETCOMPOSITIONFONT
IMN_SETCOMPOSITIONWINDOW
IMN_SETCONVERSIONMODE
IMN_SETOPENSTATUS
IMN_SETSENTENCEMODE
IMN_SETSTATUSWINDOWPOS
WM_IME_SELECT
WM_IME_SETCONTEXT
WM_IME_STARTCOMPOSITION
WM_INPUTLANGCHANGEREQUEST
WM_INPUTLANGCHANGE
Font
Overview
Key Design Points
Understanding Differences between OS/2 Fonts and Windows Fonts
Differences in Application Programming
Required Functionality in Open32 NLS Extension
The Metrics Mapping
CharSet
PitchAndFamily
The Font Mapper
Vertical Writing Support
The System Predefined Fonts
Functional Description by API
ChooseFont (Modify)
CreateFont/CreateFontIndirect (Modify)
EnumFonts (Modify)
EnumFontFamilies (Modify)
EnumFontFamiliesEx (New)
GetTextMetrics (Modify)
GetOutlineTextMetrics (Modify)
GetTextAlign/SetTextAlign (Modify)
SelectObject (Modify)
TranslateCharsetInfo (New)
GetTextCharsetInfo (New)
Codepage, Locale, Unicode Support
Overview
Key Design Points
NLS Overview of Windows 95 and OS/2
NLS Implementation on Open32
National Language Support Policy on Open32
Windows Country Code v.s. OS/2 Country Code
Supported / Installed Codepages
Windows Codepage v.s. OS/2 Codepage
Comparison Table of Supported Codepages
System Default, ANSI Codepage and OEM Codepage
Supported / Installed Locales
System Default / User Default Locale ID
Thread Locale ID
User-override of Locale Information
Neutral Language
Locale in Clipboard
DDEML
Conversion To / From Unicode
Output of Unicode Character
Mapping From WIN32 Locale Item To OS/2 Locale Item
Mapping From WIN32 Char Type (CT_CTYPE) To OS/2 Char Type (LC_CTYPE)
Mapping From WIN32 Char Type Query To OS/2 Char Type Query
Functional Description by API or Message
ConvertDefaultLocale
EnumSystemCodePages
EnumSystemLocales
GetCPInfo
GetLocaleInfo
GetSystemDefaultLCID
GetSystemDefaultLangID
GetThreadLocale
GetUserDefaultLCID
GetUserDefaultLangID
IsValidCodePage
IsValidLocale
SetLocaleInfo
EnumCalendarInfo
EnumDateFormats
EnumTimeFormats
GetCurrencyFormat
GetDateFormat
GetNumberFormat
GetTimeFormat
CompareString
GetStringTypeA, GetStringTypeEx
IsDBCSLeadByteEx
LCMapString
MultiByteToWideChar, WideCharToMultiByte
GetClipboardData, SetClipboardData
IsChar* (IsCharAlpha,IsCharAlphaNumeric,IsCharLower,IsCharUpper)
lstrcmp,lstrcmpi
CharNextExA,CharPrevExA
TextOutW, ExtTextOutW
GetCharWidthW
GetTextExtentPointW
GetTextExtentExPointW
MessageBoxW
Macros
DdeConnect
DdeCreateStringHandle
DdeQueryString
SystemParametersInfo
GetSystemMetrix
Appendix A - Summary of APIs, Messages, Macros
New APIs
Modified APIs
New Messages
Modified Messages
New Macros
Appendix B - Reference Document
Public Document