dynastr.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 1k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #ifndef _DYNASTR_H_
  2. #define _DYNASTR_H_
  3. #ifdef DEBUG
  4. #define CCH_DYNASTR_MIN 32
  5. #else
  6. #define CCH_DYNASTR_MIN 80
  7. #endif
  8. class DynaStrA {
  9. protected:
  10.     CHAR    _ach[CCH_DYNASTR_MIN];
  11.     LPSTR   _psz;
  12.     LPSTR _Realloc(UINT cch);
  13. public:
  14.     operator LPCSTR() { return _psz; }
  15.     BOOL lstrcpy(LPCSTR pszSrc);
  16.     BOOL lstrcat(LPCSTR pszCat);
  17.     BOOL lstrcpy(LPCWSTR pwszSrc);
  18.     DynaStrA() : _psz(_ach) {}
  19.     ~DynaStrA();
  20. };
  21. class DynaStrW {
  22. protected:
  23.     WCHAR    _ach[CCH_DYNASTR_MIN];
  24.     LPWSTR   _psz;
  25.     LPWSTR _Realloc(UINT cch);
  26. public:
  27.     operator LPCWSTR() { return _psz; }
  28.     BOOL lstrcpy(LPCWSTR pszSrc);
  29.     BOOL lstrcat(LPCWSTR pszCat);
  30.     BOOL lstrcpy(LPCSTR pwszSrc);
  31.     void empty() { _psz[0] = ''; }
  32.     DynaStrW() : _psz(_ach) {}
  33.     ~DynaStrW();
  34. };
  35. #ifdef UNICODE
  36. #define DynaStr DynaStrW
  37. #else
  38. #define DynaStr DynaStrA
  39. #endif
  40. #endif // _DYNASTR_H_