Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.4 KiB

  1. ///////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright(C) 1998-1999 Microsoft Corporation all rights reserved.
  4. //
  5. // Module: locationinfo.h
  6. //
  7. // Project: Chameleon
  8. //
  9. // Description: Data store location information class
  10. //
  11. // Author: TLP
  12. //
  13. // When Who What
  14. // ---- --- ----
  15. // 12/3/98 TLP Original version
  16. //
  17. ///////////////////////////////////////////////////////////////////////////
  18. #ifndef __INC_DATASTORE_LOCATION_INFO_H_
  19. #define __INC_DATASTORE_LOCATION_INFO_H_
  20. #pragma warning( disable : 4786 ) // template produced long name warning
  21. #include <string>
  22. using namespace std;
  23. //////////////////////////////////////////////////////////////////////////////
  24. class CLocationInfo
  25. {
  26. public:
  27. CLocationInfo()
  28. : m_hObj(NULL) { }
  29. CLocationInfo(HANDLE hObj, LPCWSTR pObjName)
  30. : m_hObj(hObj), m_pObjName(pObjName)
  31. { _ASSERT(NULL != hObj); _ASSERT( NULL != pObjName); }
  32. CLocationInfo(CLocationInfo& rhs)
  33. : m_hObj(rhs.m_hObj), m_pObjName(rhs.m_pObjName)
  34. { }
  35. CLocationInfo& operator = (CLocationInfo& rhs)
  36. {
  37. if ( this != &rhs )
  38. {
  39. m_hObj = rhs.m_hObj;
  40. m_pObjName = rhs.m_pObjName;
  41. }
  42. return *this;
  43. }
  44. virtual ~CLocationInfo() { }
  45. //////////////////////////////////////////////////////////////////////////
  46. HANDLE getHandle(void) const
  47. { return m_hObj; }
  48. //////////////////////////////////////////////////////////////////////////
  49. LPCWSTR getName(void) const
  50. { return m_pObjName.c_str(); }
  51. //////////////////////////////////////////////////////////////////////////
  52. void setHandle(HANDLE hObj)
  53. { _ASSERT(NULL != hObj); m_hObj = hObj; }
  54. //////////////////////////////////////////////////////////////////////////
  55. void setName(LPCWSTR pObjName)
  56. { _ASSERT(NULL != pObjName); m_pObjName = pObjName; }
  57. //////////////////////////////////////////////////////////////////////////
  58. LPCWSTR getShortName(void)
  59. {
  60. LPCWSTR q = wcsrchr(m_pObjName.c_str(), '\\');
  61. if ( q )
  62. {
  63. q++;
  64. }
  65. else
  66. {
  67. q = m_pObjName.c_str();
  68. }
  69. return q;
  70. }
  71. private:
  72. HANDLE m_hObj;
  73. wstring m_pObjName;
  74. };
  75. #endif // __INC_DATASTORE_LOCATION_INFO_H_