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.

101 lines
4.0 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // CProxyCfgNetworkInfo.h
  7. //
  8. // Description:
  9. // CProxyCfgNetworkInfo definition.
  10. //
  11. // Maintained By:
  12. // Galen Barbee (GalenB) 02-AUG-2000
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. // Make sure that this file is included only once per compile path.
  16. #pragma once
  17. //////////////////////////////////////////////////////////////////////////////
  18. //++
  19. //
  20. // class CProxyCfgNetworkInfo
  21. //
  22. // Description:
  23. //
  24. //--
  25. //////////////////////////////////////////////////////////////////////////////
  26. class CProxyCfgNetworkInfo
  27. : public IClusCfgNetworkInfo
  28. , public IEnumClusCfgIPAddresses
  29. {
  30. private:
  31. LONG m_cRef; // Reference counter
  32. IUnknown * m_punkOuter; // Interface to outer W2K proxy object
  33. IClusCfgCallback * m_pcccb; // Callback interface
  34. HCLUSTER * m_phCluster; // Pointer to cluster handle
  35. CLSID * m_pclsidMajor; // CLSID to log errors to the UI with.
  36. CClusPropList m_cplNetwork; // Property list with Network info
  37. CClusPropList m_cplNetworkRO; // Property list with Network info READ ONLY
  38. CProxyCfgNetworkInfo( void );
  39. ~CProxyCfgNetworkInfo( void );
  40. // Private copy constructor to prevent copying.
  41. CProxyCfgNetworkInfo( const CProxyCfgNetworkInfo & nodeSrc );
  42. // Private assignment operator to prevent copying.
  43. const CProxyCfgNetworkInfo & operator = ( const CProxyCfgNetworkInfo & nodeSrc );
  44. HRESULT HrInit( IUnknown * punkOuterIn, HCLUSTER * phClusterIn, CLSID * pclsidMajorIn, LPCWSTR pcszNetworkNameIn );
  45. HRESULT HrGetNetworkRole( DWORD * pdwRoleOut );
  46. public:
  47. static HRESULT
  48. S_HrCreateInstance( IUnknown ** ppunkOut,
  49. IUnknown * punkOuterIn,
  50. HCLUSTER * phClusterIn,
  51. CLSID * pclsidMajorIn,
  52. LPCWSTR pcszNetworkNameIn
  53. );
  54. // IUnknown
  55. STDMETHOD( QueryInterface )( REFIID riid, LPVOID * ppv );
  56. STDMETHOD_( ULONG, AddRef )( void );
  57. STDMETHOD_( ULONG, Release )( void );
  58. // IClusCfgNetworkInfo
  59. STDMETHOD( GetUID )( BSTR * pbstrUIDOut );
  60. STDMETHOD( GetName )( BSTR * pbstrNameOut );
  61. STDMETHOD( SetName )( LPCWSTR pcszNameIn );
  62. STDMETHOD( GetDescription )( BSTR * pbstrDescriptionOut );
  63. STDMETHOD( SetDescription )( LPCWSTR pcszDescriptionIn );
  64. STDMETHOD( GetPrimaryNetworkAddress )( IClusCfgIPAddressInfo ** ppIPAddressOut );
  65. STDMETHOD( SetPrimaryNetworkAddress )( IClusCfgIPAddressInfo * pIPAddressIn );
  66. STDMETHOD( IsPublic )( void );
  67. STDMETHOD( SetPublic )( BOOL fIsPublicIn );
  68. STDMETHOD( IsPrivate )( void );
  69. STDMETHOD( SetPrivate )( BOOL fIsPrivateIn );
  70. // IEnumClusCfgIPAddresses
  71. STDMETHOD( Next )( ULONG cNumberRequestedIn, IClusCfgIPAddressInfo ** rgpIPAddressInfoOut, ULONG * pcNumberFetchedOut );
  72. STDMETHOD( Reset )( void );
  73. STDMETHOD( Skip )( ULONG cNumberToSkipIn );
  74. STDMETHOD( Clone )( IEnumClusCfgIPAddresses ** ppiEnumOut );
  75. STDMETHOD( Count )( DWORD * pnCountOut );
  76. // IClusCfgCallback
  77. STDMETHOD( SendStatusReport )(
  78. LPCWSTR pcszNodeNameIn
  79. , CLSID clsidTaskMajorIn
  80. , CLSID clsidTaskMinorIn
  81. , ULONG ulMinIn
  82. , ULONG ulMaxIn
  83. , ULONG ulCurrentIn
  84. , HRESULT hrStatusIn
  85. , LPCWSTR pcszDescriptionIn
  86. , FILETIME * pftTimeIn
  87. , LPCWSTR pcszReferenceIn
  88. );
  89. }; //*** Class CProxyCfgNetworkInfo