#include "precomp.h" #ifdef EXT_DEBUG #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #include "CHString1.h" CHString1::CHString1() : CHString() { } CHString1::CHString1(TCHAR ch, int nLength) : CHString(ch,nLength) { } //CHString1::CHString1(LPCTSTR lpch, int nLength) : CHString(lpch,nLength) //{ //} #ifdef _UNICODE CHString1::CHString1(LPCSTR lpsz) : CHString(lpsz) { } #else //_UNICODE CHString1::CHString1(LPCWSTR lpsz) : CHString(lpsz) { } #endif //!_UNICODE CHString1::CHString1(LPCTSTR lpsz) : CHString(lpsz) { } CHString1::CHString1(const CHString& stringSrc) : CHString(stringSrc) { } CHString1::CHString1(const CHString1& stringSrc) : CHString((CHString)stringSrc) { } BOOL CHString1::LoadString(UINT nID) { // try fixed buffer first (to avoid wasting space in the heap) #ifdef _UNICODE const UINT CHAR_FUDGE = 1; // one WCHAR unused is good enough #else const UINT CHAR_FUDGE = 2; // two BYTES unused for case of DBC last char #endif const UINT STR_BLK_SIZE = 256 ; int nLen = 0; int nSize = STR_BLK_SIZE; do { nSize += STR_BLK_SIZE; nLen = ::LoadStringW(_Module.GetModuleInstance(),nID, GetBuffer(nSize-1), nSize); } while (nSize - nLen <= CHAR_FUDGE); ReleaseBuffer(); return nLen > 0; } BOOL CHString1::LoadString(UINT nID,LPWSTR lpszBuf, UINT nMaxBuf) { int nSize = 256; int nLen = ::LoadStringW(_Module.GetModuleInstance(), nID, lpszBuf, nMaxBuf); if (nLen == 0) lpszBuf[0] = '\0'; return nLen; }