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.

94 lines
3.0 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1998-1999 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ClusterObject.h
  7. //
  8. // Description:
  9. // Definition of the CClusterObject base class.
  10. //
  11. // Implementation File:
  12. // ClusterObject.cpp
  13. //
  14. // Author:
  15. // Galen Barbee (GalenB) 10-Dec-1998
  16. //
  17. // Revision History:
  18. //
  19. // Notes:
  20. //
  21. /////////////////////////////////////////////////////////////////////////////
  22. #ifndef _CLUSTEROBJECT_H_
  23. #define _CLUSTEROBJECT_H_
  24. #ifndef __PROPERTY_H__
  25. #include "property.h"
  26. #endif
  27. /////////////////////////////////////////////////////////////////////////////
  28. // Forward Class Declarations
  29. /////////////////////////////////////////////////////////////////////////////
  30. class CClusterObject;
  31. /////////////////////////////////////////////////////////////////////////////
  32. //++
  33. //
  34. // class CClusterObject
  35. //
  36. // Description:
  37. // Cluster object common implementation base Class.
  38. //
  39. // Inheritance:
  40. //
  41. //--
  42. /////////////////////////////////////////////////////////////////////////////
  43. class ATL_NO_VTABLE CClusterObject
  44. {
  45. public:
  46. //CClusterObject( void );
  47. //~CClusterObject( void );
  48. virtual HRESULT HrLoadProperties( IN CClusPropList & rcplPropList, IN BOOL bReadOnly, IN BOOL bPrivate ) = 0;
  49. virtual HRESULT HrSaveProperties(
  50. IN OUT CClusProperties::CClusPropertyVector & cpvProps,
  51. IN BOOL bPrivate,
  52. OUT VARIANT * pvarStatusCode
  53. );
  54. protected:
  55. virtual HRESULT HrBuildPropertyList(
  56. IN OUT CClusProperties::CClusPropertyVector & cpvProps,
  57. OUT CClusPropList & rcplPropList
  58. );
  59. virtual DWORD ScWriteProperties( IN const CClusPropList & /*rcplPropList*/, IN BOOL /*bPrivate*/ )
  60. {
  61. return E_NOTIMPL;
  62. }
  63. private:
  64. HRESULT HrConvertVariantToDword( IN const CComVariant & rvarValue, OUT PDWORD pdwValue );
  65. HRESULT HrConvertVariantToLong( IN const CComVariant & rvarValue, OUT long * plValue );
  66. HRESULT HrConvertVariantToULONGLONG( IN const CComVariant & rvarValue, OUT PULONGLONG pullValue );
  67. HRESULT HrAddBinaryProp(
  68. IN OUT CClusPropList & rcplPropList,
  69. IN LPCWSTR pszPropName,
  70. IN const CComVariant & rvarPropValue
  71. );
  72. HRESULT HrAddMultiSzProp(
  73. IN OUT CClusPropList & rcplPropList,
  74. IN LPCWSTR pszPropName,
  75. IN const CComObject< CClusPropertyValues > & rcpvValues
  76. );
  77. }; //*** Class CClusterObject
  78. #endif // _CLUSTEROBJECT_H_