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.

99 lines
2.7 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1998-1999 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // Version.h
  7. //
  8. // Description:
  9. // Definition of the cluster version classes for the MSCLUS automation
  10. // classes.
  11. //
  12. // Implementation File:
  13. // Version.cpp
  14. //
  15. // Author:
  16. // Galen Barbee (galenb) 26-Oct-1998
  17. //
  18. // Revision History:
  19. //
  20. // Notes:
  21. //
  22. /////////////////////////////////////////////////////////////////////////////
  23. #ifndef __VERSION_H_
  24. #define __VERSION_H__
  25. /////////////////////////////////////////////////////////////////////////////
  26. // Forward Class Declarations
  27. /////////////////////////////////////////////////////////////////////////////
  28. class CClusVerion;
  29. /////////////////////////////////////////////////////////////////////////////
  30. //++
  31. //
  32. // class CCluster
  33. //
  34. // Description:
  35. // Cluster Version Automation Class.
  36. //
  37. // Inheritance:
  38. // IDispatchImpl< ISClusVersion, &IID_ISClusVersion, &LIBID_MSClusterLib, MAJORINTERFACEVER, MINORINTERFACEVER >,
  39. // CSupportErrorInfo
  40. // CComObjectRootEx< CComSingleThreadModel >
  41. // CComCoClass< CClusVersion, &CLSID_ClusVersion >
  42. //
  43. //--
  44. /////////////////////////////////////////////////////////////////////////////
  45. class ATL_NO_VTABLE CClusVersion :
  46. public IDispatchImpl< ISClusVersion, &IID_ISClusVersion, &LIBID_MSClusterLib, MAJORINTERFACEVER, MINORINTERFACEVER >,
  47. public CSupportErrorInfo,
  48. public CComObjectRootEx< CComSingleThreadModel >,
  49. public CComCoClass< CClusVersion, &CLSID_ClusVersion >
  50. {
  51. typedef CComObjectRootEx< CComSingleThreadModel > BaseComClass;
  52. public:
  53. CClusVersion( void );
  54. BEGIN_COM_MAP(CClusVersion)
  55. COM_INTERFACE_ENTRY(IDispatch)
  56. COM_INTERFACE_ENTRY(ISClusVersion)
  57. COM_INTERFACE_ENTRY(ISupportErrorInfo)
  58. END_COM_MAP()
  59. DECLARE_NOT_AGGREGATABLE(CClusVersion)
  60. DECLARE_NO_REGISTRY()
  61. private:
  62. CComBSTR m_bstrClusterName;
  63. CSmartPtr< ISClusRefObject > m_ptrClusRefObject;
  64. CLUSTERVERSIONINFO m_clusinfo;
  65. public:
  66. HRESULT Create( IN ISClusRefObject * pClusRefObject );
  67. STDMETHODIMP get_Name( OUT BSTR * pbstrClusterName );
  68. STDMETHODIMP get_VendorId( OUT BSTR * pbstrVendorId );
  69. STDMETHODIMP get_CSDVersion( OUT BSTR * pbstrCSDVersion );
  70. STDMETHODIMP get_MajorVersion( OUT long * pnMajorVersion );
  71. STDMETHODIMP get_MinorVersion( OUT long * pnMinorVersion );
  72. STDMETHODIMP get_BuildNumber( OUT short * pnBuildNumber );
  73. STDMETHODIMP get_ClusterHighestVersion( OUT long * pnClusterHighestVersion );
  74. STDMETHODIMP get_ClusterLowestVersion( OUT long * pnClusterLowestVersion );
  75. STDMETHODIMP get_Flags( OUT long * pnFlags );
  76. STDMETHODIMP get_MixedVersion( OUT VARIANT * pvarMixedVersion );
  77. }; //*** Class CClusVersion
  78. #endif // __VERSION_H__