// Common/StringConvert.h | |
#ifndef __COMMON_STRING_CONVERT_H | |
#define __COMMON_STRING_CONVERT_H | |
#include "MyString.h" | |
#include "MyWindows.h" | |
UString MultiByteToUnicodeString(const AString &src, UINT codePage = CP_ACP); | |
UString MultiByteToUnicodeString(const char *src, UINT codePage = CP_ACP); | |
// optimized versions that work faster for ASCII strings | |
void MultiByteToUnicodeString2(UString &dest, const AString &src, UINT codePage = CP_ACP); | |
// void UnicodeStringToMultiByte2(AString &dest, const UString &s, UINT codePage, char defaultChar, bool &defaultCharWasUsed); | |
void UnicodeStringToMultiByte2(AString &dest, const UString &src, UINT codePage); | |
AString UnicodeStringToMultiByte(const UString &src, UINT codePage, char defaultChar, bool &defaultCharWasUsed); | |
AString UnicodeStringToMultiByte(const UString &src, UINT codePage = CP_ACP); | |
inline const wchar_t* GetUnicodeString(const wchar_t *u) { return u; } | |
inline const UString& GetUnicodeString(const UString &u) { return u; } | |
inline UString GetUnicodeString(const AString &a) { return MultiByteToUnicodeString(a); } | |
inline UString GetUnicodeString(const char *a) { return MultiByteToUnicodeString(a); } | |
inline UString GetUnicodeString(const AString &a, UINT codePage) | |
{ return MultiByteToUnicodeString(a, codePage); } | |
inline UString GetUnicodeString(const char *a, UINT codePage) | |
{ return MultiByteToUnicodeString(a, codePage); } | |
inline const wchar_t* GetUnicodeString(const wchar_t *u, UINT) { return u; } | |
inline const UString& GetUnicodeString(const UString &u, UINT) { return u; } | |
inline const char* GetAnsiString(const char *a) { return a; } | |
inline const AString& GetAnsiString(const AString &a) { return a; } | |
inline AString GetAnsiString(const wchar_t *u) { return UnicodeStringToMultiByte(UString(u)); } | |
inline AString GetAnsiString(const UString &u) { return UnicodeStringToMultiByte(u); } | |
/* | |
inline const char* GetOemString(const char* oem) | |
{ return oem; } | |
inline const AString& GetOemString(const AString &oem) | |
{ return oem; } | |
*/ | |
const char* GetOemString(const char* oem); | |
const AString& GetOemString(const AString &oem); | |
inline AString GetOemString(const UString &u) | |
{ return UnicodeStringToMultiByte(u, CP_OEMCP); } | |
#ifdef _UNICODE | |
inline const wchar_t* GetSystemString(const wchar_t *u) { return u;} | |
inline const UString& GetSystemString(const UString &u) { return u;} | |
inline const wchar_t* GetSystemString(const wchar_t *u, UINT /* codePage */) { return u;} | |
inline const UString& GetSystemString(const UString &u, UINT /* codePage */) { return u;} | |
inline UString GetSystemString(const AString &a, UINT codePage) { return MultiByteToUnicodeString(a, codePage); } | |
inline UString GetSystemString(const char *a, UINT codePage) { return MultiByteToUnicodeString(a, codePage); } | |
inline UString GetSystemString(const AString &a) { return MultiByteToUnicodeString(a); } | |
inline UString GetSystemString(const char *a) { return MultiByteToUnicodeString(a); } | |
#else | |
inline const char* GetSystemString(const char *a) { return a; } | |
inline const AString& GetSystemString(const AString &a) { return a; } | |
inline const char* GetSystemString(const char *a, UINT) { return a; } | |
inline const AString& GetSystemString(const AString &a, UINT) { return a; } | |
inline AString GetSystemString(const wchar_t *u) { return UnicodeStringToMultiByte(UString(u)); } | |
inline AString GetSystemString(const UString &u) { return UnicodeStringToMultiByte(u); } | |
inline AString GetSystemString(const UString &u, UINT codePage) { return UnicodeStringToMultiByte(u, codePage); } | |
/* | |
inline AString GetSystemString(const wchar_t *u) | |
{ | |
UString s; | |
s = u; | |
return UnicodeStringToMultiByte(s); | |
} | |
*/ | |
#endif | |
#ifndef UNDER_CE | |
AString SystemStringToOemString(const CSysString &src); | |
#endif | |
#endif |