1 // Common/StringConvert.h
2
3 #ifndef __COMMON_STRING_CONVERT_H
4 #define __COMMON_STRING_CONVERT_H
5
6 #include "MyString.h"
7 #include "MyWindows.h"
8
9 UString MultiByteToUnicodeString(const AString &src, UINT codePage = CP_ACP);
10 UString MultiByteToUnicodeString(const char *src, UINT codePage = CP_ACP);
11
12 // optimized versions that work faster for ASCII strings
13 void MultiByteToUnicodeString2(UString &dest, const AString &src, UINT codePage = CP_ACP);
14 // void UnicodeStringToMultiByte2(AString &dest, const UString &s, UINT codePage, char defaultChar, bool &defaultCharWasUsed);
15 void UnicodeStringToMultiByte2(AString &dest, const UString &src, UINT codePage);
16
17 AString UnicodeStringToMultiByte(const UString &src, UINT codePage, char defaultChar, bool &defaultCharWasUsed);
18 AString UnicodeStringToMultiByte(const UString &src, UINT codePage = CP_ACP);
19
GetUnicodeString(const wchar_t * u)20 inline const wchar_t* GetUnicodeString(const wchar_t *u) { return u; }
GetUnicodeString(const UString & u)21 inline const UString& GetUnicodeString(const UString &u) { return u; }
22
GetUnicodeString(const AString & a)23 inline UString GetUnicodeString(const AString &a) { return MultiByteToUnicodeString(a); }
GetUnicodeString(const char * a)24 inline UString GetUnicodeString(const char *a) { return MultiByteToUnicodeString(a); }
25
GetUnicodeString(const AString & a,UINT codePage)26 inline UString GetUnicodeString(const AString &a, UINT codePage)
27 { return MultiByteToUnicodeString(a, codePage); }
GetUnicodeString(const char * a,UINT codePage)28 inline UString GetUnicodeString(const char *a, UINT codePage)
29 { return MultiByteToUnicodeString(a, codePage); }
30
GetUnicodeString(const wchar_t * u,UINT)31 inline const wchar_t* GetUnicodeString(const wchar_t *u, UINT) { return u; }
GetUnicodeString(const UString & u,UINT)32 inline const UString& GetUnicodeString(const UString &u, UINT) { return u; }
33
GetAnsiString(const char * a)34 inline const char* GetAnsiString(const char *a) { return a; }
GetAnsiString(const AString & a)35 inline const AString& GetAnsiString(const AString &a) { return a; }
36
GetAnsiString(const wchar_t * u)37 inline AString GetAnsiString(const wchar_t *u) { return UnicodeStringToMultiByte(UString(u)); }
GetAnsiString(const UString & u)38 inline AString GetAnsiString(const UString &u) { return UnicodeStringToMultiByte(u); }
39
40 /*
41 inline const char* GetOemString(const char* oem)
42 { return oem; }
43 inline const AString& GetOemString(const AString &oem)
44 { return oem; }
45 */
46 const char* GetOemString(const char* oem);
47 const AString& GetOemString(const AString &oem);
GetOemString(const UString & u)48 inline AString GetOemString(const UString &u)
49 { return UnicodeStringToMultiByte(u, CP_OEMCP); }
50
51 #ifdef _UNICODE
GetSystemString(const wchar_t * u)52 inline const wchar_t* GetSystemString(const wchar_t *u) { return u;}
GetSystemString(const UString & u)53 inline const UString& GetSystemString(const UString &u) { return u;}
GetSystemString(const wchar_t * u,UINT)54 inline const wchar_t* GetSystemString(const wchar_t *u, UINT /* codePage */) { return u;}
GetSystemString(const UString & u,UINT)55 inline const UString& GetSystemString(const UString &u, UINT /* codePage */) { return u;}
56
GetSystemString(const AString & a,UINT codePage)57 inline UString GetSystemString(const AString &a, UINT codePage) { return MultiByteToUnicodeString(a, codePage); }
GetSystemString(const char * a,UINT codePage)58 inline UString GetSystemString(const char *a, UINT codePage) { return MultiByteToUnicodeString(a, codePage); }
GetSystemString(const AString & a)59 inline UString GetSystemString(const AString &a) { return MultiByteToUnicodeString(a); }
GetSystemString(const char * a)60 inline UString GetSystemString(const char *a) { return MultiByteToUnicodeString(a); }
61 #else
GetSystemString(const char * a)62 inline const char* GetSystemString(const char *a) { return a; }
GetSystemString(const AString & a)63 inline const AString& GetSystemString(const AString &a) { return a; }
GetSystemString(const char * a,UINT)64 inline const char* GetSystemString(const char *a, UINT) { return a; }
GetSystemString(const AString & a,UINT)65 inline const AString& GetSystemString(const AString &a, UINT) { return a; }
66
GetSystemString(const wchar_t * u)67 inline AString GetSystemString(const wchar_t *u) { return UnicodeStringToMultiByte(UString(u)); }
GetSystemString(const UString & u)68 inline AString GetSystemString(const UString &u) { return UnicodeStringToMultiByte(u); }
GetSystemString(const UString & u,UINT codePage)69 inline AString GetSystemString(const UString &u, UINT codePage) { return UnicodeStringToMultiByte(u, codePage); }
70
71
72
73 /*
74 inline AString GetSystemString(const wchar_t *u)
75 {
76 UString s;
77 s = u;
78 return UnicodeStringToMultiByte(s);
79 }
80 */
81
82 #endif
83
84 #ifndef UNDER_CE
85 AString SystemStringToOemString(const CSysString &src);
86 #endif
87
88 #endif
89