1// Common/StringConvert.h
2
3#ifndef __COMMON_STRINGCONVERT_H
4#define __COMMON_STRINGCONVERT_H
5
6#include "MyWindows.h"
7#include "MyString.h"
8#include "Types.h"
9
10UString MultiByteToUnicodeString(const AString &srcString, UINT codePage = CP_ACP);
11AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage = CP_ACP);
12
13inline const wchar_t* GetUnicodeString(const wchar_t* unicodeString)
14  { return unicodeString; }
15inline const UString& GetUnicodeString(const UString &unicodeString)
16  { return unicodeString; }
17inline UString GetUnicodeString(const AString &ansiString)
18  { return MultiByteToUnicodeString(ansiString); }
19inline UString GetUnicodeString(const AString &multiByteString, UINT codePage)
20  { return MultiByteToUnicodeString(multiByteString, codePage); }
21inline const wchar_t* GetUnicodeString(const wchar_t* unicodeString, UINT)
22  { return unicodeString; }
23inline const UString& GetUnicodeString(const UString &unicodeString, UINT)
24  { return unicodeString; }
25
26inline const char* GetAnsiString(const char* ansiString)
27  { return ansiString; }
28inline const AString& GetAnsiString(const AString &ansiString)
29  { return ansiString; }
30inline AString GetAnsiString(const UString &unicodeString)
31  { return UnicodeStringToMultiByte(unicodeString); }
32
33inline const char* GetOemString(const char* oemString)
34  { return oemString; }
35inline const AString& GetOemString(const AString &oemString)
36  { return oemString; }
37inline AString GetOemString(const UString &unicodeString)
38  { return UnicodeStringToMultiByte(unicodeString, CP_OEMCP); }
39
40
41#ifdef _UNICODE
42  inline const wchar_t* GetSystemString(const wchar_t* unicodeString)
43    { return unicodeString;}
44  inline const UString& GetSystemString(const UString &unicodeString)
45    { return unicodeString;}
46  inline const wchar_t* GetSystemString(const wchar_t* unicodeString, UINT /* codePage */)
47    { return unicodeString;}
48  inline const UString& GetSystemString(const UString &unicodeString, UINT /* codePage */)
49    { return unicodeString;}
50  inline UString GetSystemString(const AString &multiByteString, UINT codePage)
51    { return MultiByteToUnicodeString(multiByteString, codePage);}
52  inline UString GetSystemString(const AString &multiByteString)
53    { return MultiByteToUnicodeString(multiByteString);}
54#else
55  inline const char* GetSystemString(const char *ansiString)
56    { return ansiString; }
57  inline const AString& GetSystemString(const AString &multiByteString, UINT)
58    { return multiByteString; }
59  inline const char * GetSystemString(const char *multiByteString, UINT)
60    { return multiByteString; }
61  inline AString GetSystemString(const UString &unicodeString)
62    { return UnicodeStringToMultiByte(unicodeString); }
63  inline AString GetSystemString(const UString &unicodeString, UINT codePage)
64    { return UnicodeStringToMultiByte(unicodeString, codePage); }
65#endif
66
67#ifndef _WIN32_WCE
68AString SystemStringToOemString(const CSysString &srcString);
69#endif
70
71#endif
72