WindowsXP-SP1/termsrv/remdsk/rds/h/custring.h
2020-09-30 16:53:49 +02:00

55 lines
1.1 KiB
C++

#ifndef _CUSTRING_H_
#define _CUSTRING_H_
// Simple universal string class, where string can be converted
// back and forth between Ansi and Unicode string and buffers
// allocated are destroyed in string class destructor.
class CUSTRING
{
public:
CUSTRING(PCWSTR wszText = NULL);
CUSTRING(PCSTR szText);
~CUSTRING();
operator PWSTR();
operator PSTR();
inline void GiveString(PCWSTR wszText);
inline void GiveString(PCSTR szText);
inline void AssignString(PCWSTR wszText);
inline void AssignString(PCSTR szText);
protected:
PWSTR wszData;
PSTR szData;
BOOL bUnicodeNew;
BOOL bAnsiNew;
};
inline void CUSTRING::GiveString(PCWSTR wszText)
{
ASSERT(!wszData);
wszData = (PWSTR)wszText;
bUnicodeNew = TRUE;
}
inline void CUSTRING::GiveString(PCSTR szText)
{
ASSERT(!szData);
szData = (PSTR)szText;
bAnsiNew = TRUE;
}
inline void CUSTRING::AssignString(PCWSTR wszText)
{
ASSERT(!wszData);
wszData = (PWSTR)wszText;
}
inline void CUSTRING::AssignString(PCSTR szText)
{
ASSERT(!szData);
szData = (PSTR)szText;
}
#endif // ndef CUSTRING_H