windows-nt/Source/XPSP1/NT/printscan/ui/uicommon/multistr.h
2020-09-26 16:20:57 +08:00

37 lines
965 B
C++

#ifndef __MULTISTR_H
#define __MULTISTR_H
#include "simarray.h"
#include "simstr.h"
// Must be instantiated with an instance of CSimpleStringBase
template <class T, class M>
class CMultiStringBase : public CSimpleDynamicArray<M>
{
public:
CMultiStringBase( const CMultiStringBase &other )
{
Append(other);
}
CMultiStringBase( const T *pstrMultiString = NULL )
{
for (T *pstrCurrent = const_cast<T*>(pstrMultiString); pstrCurrent && *pstrCurrent; pstrCurrent += M(pstrCurrent).Length() + 1)
Append(pstrCurrent);
}
virtual ~CMultiStringBase(void)
{
}
CMultiStringBase &operator=( const CMultiStringBase &other )
{
Destroy();
Append(other);
return (*this);
}
};
typedef CMultiStringBase<TCHAR,CSimpleString> CMultiString;
typedef CMultiStringBase<WCHAR,CSimpleStringWide> CMultiStringWide;
typedef CMultiStringBase<CHAR,CSimpleStringAnsi> CMultiStringAnsi;
#endif