Locale in Clipboard
Windows 95 supports CF_LOCALE format as a standard clipboard format. Using this format, an application program can associate a locale ID (LCID) to any clipboard text (CF_TEXT, CF_OEMTEXT, CF_UNICODETEXT). Among these text formats, only CF_TEXT is always associated with a certain LCID. This means that even if an application program closes the clipboard without setting a LCID, the operating system automatically associates a LCID to the text. In this case, the operating system chooses the current input locale (HKL of the the current thread) as the associated LCID.
A LCID associated with clipboard text will be used for the following purposes by application programs. This means that the operating system does not perform any conversion regarding the associated LCID.
On the other hand, OS/2 does not support locale as the standard system object. An OS/2 application program cannot specify a locale in any OS/2 APIs, except for ULS APIs. Clipboard APIs are not the exceptions. So, Open32 supports the CF_LOCALE format by mapping it to an non-standard clipboard format internally.
There is a minor incompatibility on OS/2 in using LCID with clipboard text. Clipboard on OS/2 is shared among OS/2 application programs, Open32 applications programs, and WIN-OS/2 application programs. Clipboard text associated with a LCID is generated only by Open32 application programs. This means that clipboard text in CF_TEXT format from an OS/2 or WIN-OS/2 application program is never associated with a LCID. Therefore, clipboard text from OS/2 or WIN-OS/2 application program is not always processed correctly even if the receiver of the clipboard text (Open32 application program) is fully locale-aware.