There's some discussion of support for supplementary-plane characters in WinXP at http://www.microsoft.com/globaldev/DrIntl/columns/018/default.mspx. There are also slide decks from some relevant presentations at http://www.microsoft.com/globaldev/reference/presentations/23rd_Unicode_ Conf.mspx
> Worse, most 3rd party win32 apps that process strings either treat them > as arrays of wchars or use CharNext/CharPrev, which don't allow for > surrogates. But the good news is that the .net libs do seem to allow for > surrogates and combining chars right in the string class -- which brings > us dangerously close to relatively hassle-free use of multi language > text! Yes, Win32 APIs were designed many years ago and generally assume a UCS-2 (i.e. plane 0 only) view of things. The WM_UNICHAR message was a later addition to Win32, and it passed a UTF-32 codepoint, though not many input methods generate that message. In the the .Net Framework, the string class (System namespace) and the System.Globalization and System.Text namespaces *are* designed to be aware of supplementary plane characters. For details, see the relevant portion of MSDN Library: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/h tml/frlrfSystemStringClassTopic.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/h tml/frlrfSystemGlobalization.asp http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemText.asp There's also relevant sample code at http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=3 68e8396-b14e-4768-89fd-8cef5b6256e7 Peter Constable

