www.pudn.com > PropertyListCtrl_demo.zip > SmartString.h
#if !defined(_SMARTSTRING_H)
#define _SMARTSTRING_H
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SmartString.h : header file
//
/////////////////////////////////////////////////////////////////////////////
//
// Copyright © 1999, Stefan Belopotocan, http://welcome.to/StefanBelopotocan
//
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CSmartString
class CSmartString
{
// Constuctors and d-tor
public:
CSmartString(LPCTSTR pText = NULL);
CSmartString(UINT nIdText);
CSmartString(const CSmartString& d);
~CSmartString();
// Operators
CSmartString& operator=(const CSmartString& data);
CSmartString& operator=(LPCTSTR pData);
operator LPCTSTR() const;
// Operations
protected:
void SetCString(const CString& strText);
void SetLPCTSTR(LPCTSTR pText);
void Clear();
// Data
private:
union
{
CString* m_pStrText;
LPCTSTR m_pText;
};
bool m_bCString;
};
inline CSmartString::CSmartString(LPCTSTR pText)
{
SetLPCTSTR(pText);
}
#endif // !defined(_SMARTSTRING_H)