-// ----------------------------------------------------------------------------
-// specified character set
-// ----------------------------------------------------------------------------
-
-WXDLLEXPORT_DATA(wxCSConv) wxConvLocal((const wxChar *)NULL);
-
-#include "wx/encconv.h"
-#include "wx/fontmap.h"
-
-// TODO: add some tables here
-// - perhaps common encodings to common codepages (for Win32)
-// - perhaps common encodings to objects ("UTF8" -> wxConvUTF8)
-// - move wxEncodingConverter meat in here
-
-#if defined(__WIN32__) && !defined(__WXMICROWIN__)
-
-#if wxUSE_GUI
-
-// VZ: the new version of wxCharsetToCodepage() is more politically correct
-// and should work on other Windows versions as well but the old version is
-// still needed for !wxUSE_FONTMAP || !wxUSE_GUI case
-
-extern long wxEncodingToCodepage(wxFontEncoding encoding)
-{
- // translate encoding into the Windows CHARSET
- wxNativeEncodingInfo natveEncInfo;
- if ( !wxGetNativeFontEncoding(encoding, &natveEncInfo) )
- return -1;
-
- // translate CHARSET to code page
- CHARSETINFO csetInfo;
- if ( !::TranslateCharsetInfo((DWORD *)(DWORD)natveEncInfo.charset,
- &csetInfo,
- TCI_SRCCHARSET) )
- {
- wxLogLastError(_T("TranslateCharsetInfo(TCI_SRCCHARSET)"));
-
- return -1;
- }
-
- return csetInfo.ciACP;
-}
-
-#if wxUSE_FONTMAP
-
-extern long wxCharsetToCodepage(const wxChar *name)
-{
- // first get the font encoding for this charset
- if ( !name )
- return -1;
-
- wxFontEncoding enc = wxTheFontMapper->CharsetToEncoding(name, FALSE);
- if ( enc == wxFONTENCODING_SYSTEM )
- return -1;
-
- // the use the helper function
- return wxEncodingToCodepage(enc);
-}
-
-#endif // wxUSE_FONTMAP
-
-#endif // wxUSE_GUI
-
-// include old wxCharsetToCodepage() by OK if needed
-#if !wxUSE_GUI || !wxUSE_FONTMAP
-
-#include "wx/msw/registry.h"
-
-// this should work if Internet Exploiter is installed
-extern long wxCharsetToCodepage(const wxChar *name)
-{
- if (!name)
- return GetACP();
-
- long CP=-1;
-
- wxString cn(name);
- do {
- wxString path(wxT("MIME\\Database\\Charset\\"));
- path += cn;
- wxRegKey key(wxRegKey::HKCR, path);
-
- if (!key.Exists()) break;
-
- // two cases: either there's an AliasForCharset string,
- // or there are Codepage and InternetEncoding dwords.
- // The InternetEncoding gives us the actual encoding,
- // the Codepage just says which Windows character set to
- // use when displaying the data.
- if (key.HasValue(wxT("InternetEncoding")) &&
- key.QueryValue(wxT("InternetEncoding"), &CP)) break;
-
- // no encoding, see if it's an alias
- if (!key.HasValue(wxT("AliasForCharset")) ||
- !key.QueryValue(wxT("AliasForCharset"), cn)) break;
- } while (1);
-
- return CP;