Source code of Windows XP (NT5)
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.

125 lines
4.7 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999-2000 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ClusCfg.h
  7. //
  8. // Description:
  9. // Declaration of the CClusCfgWizard class.
  10. //
  11. // Maintained By:
  12. // Geoffrey Pease (GPease) 11-MAY-2000
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. #pragma once
  16. //
  17. // Creating / Adding enum
  18. //
  19. enum ECreateAddMode {
  20. camUNKNOWN = 0,
  21. camCREATING,
  22. camADDING
  23. };
  24. //////////////////////////////////////////////////////////////////////////////
  25. //++
  26. //
  27. // class CClusCfgWizard
  28. //
  29. // Description:
  30. // The Cluster Configuration Wizard object.
  31. //
  32. //--
  33. //////////////////////////////////////////////////////////////////////////////
  34. class CClusCfgWizard
  35. : public IClusCfgWizard
  36. {
  37. private:
  38. // IUnknown
  39. ULONG m_cRef; // Reference count
  40. // IClusCfgWizard
  41. LPTYPEINFO m_ptinfo; // Type information
  42. BSTR m_bstrClusterName; // Name of the cluster
  43. BSTR m_bstrAccountName; // Cluster Service Account Name
  44. BSTR m_bstrPassword; // Cluster Service Account Password
  45. BSTR m_bstrDomain; // Cluster Service Account Domain
  46. ULONG m_ulIPAddress; // IP Address for the cluster
  47. ULONG m_ulIPSubnet; // Subnet mask for the cluster
  48. BSTR m_bstrNetworkName; // Name of network for IP address
  49. ULONG m_cComputers; // Count of computer in Computers list
  50. ULONG m_cArraySize; // Size of the currently allocated array
  51. BSTR * m_rgbstrComputers; // Computers list
  52. IServiceProvider * m_psp; // Middle Tier Service Manager
  53. HMODULE m_hRichEdit; // RichEdit's module handle
  54. private:
  55. CClusCfgWizard( void );
  56. ~CClusCfgWizard( void );
  57. HRESULT
  58. HrInit( void );
  59. HRESULT
  60. HrAddWizardPage( LPPROPSHEETHEADER ppshInout,
  61. UINT idTemplateIn,
  62. DLGPROC pfnDlgProcIn,
  63. UINT idTitleIn,
  64. UINT idSubtitleIn,
  65. LPARAM lParam
  66. );
  67. public:
  68. static HRESULT
  69. S_HrCreateInstance( IUnknown ** ppunkOut );
  70. // IUnknown
  71. STDMETHOD( QueryInterface )( REFIID riidIn, PVOID * ppvOut );
  72. STDMETHOD_( ULONG, AddRef )( void );
  73. STDMETHOD_( ULONG, Release )( void );
  74. // IDispatch
  75. STDMETHOD( GetTypeInfoCount )( UINT * pctinfoOut );
  76. STDMETHOD( GetTypeInfo )( UINT itinfoIn, LCID lcidIn, ITypeInfo ** pptinfoOut );
  77. STDMETHOD( GetIDsOfNames )( REFIID riid,
  78. OLECHAR ** rgszNames,
  79. UINT cNames,
  80. LCID lcid,
  81. DISPID * rgdispid
  82. );
  83. STDMETHOD( Invoke )( DISPID dispidMember,
  84. REFIID riid,
  85. LCID lcid,
  86. WORD wFlags,
  87. DISPPARAMS * pdispparams,
  88. VARIANT * pvarResult,
  89. EXCEPINFO * pexcepinfo,
  90. UINT * puArgErr
  91. );
  92. // IClusCfgWizard methods
  93. STDMETHOD( CreateCluster )( HWND lParentWndIn, BOOL * pfDoneOut );
  94. STDMETHOD( AddClusterNodes )( HWND lParentWndIn, BOOL * pfDoneOut );
  95. STDMETHOD( get_ClusterName )( BSTR * pbstrFQDNNameOut );
  96. STDMETHOD( put_ClusterName )( BSTR bstrFQDNNameIn );
  97. STDMETHOD( get_ServiceAccountUserName )( BSTR * pbstrAccountNameOut );
  98. STDMETHOD( put_ServiceAccountUserName )( BSTR bstrAccountNameIn );
  99. STDMETHOD( get_ServiceAccountPassword )( BSTR * pbstrPasswordOut );
  100. STDMETHOD( put_ServiceAccountPassword )( BSTR bstrPasswordIn );
  101. STDMETHOD( get_ServiceAccountDomainName )( BSTR * pbstrDomainOut );
  102. STDMETHOD( put_ServiceAccountDomainName )( BSTR bstrDomainIn );
  103. STDMETHOD( get_ClusterIPAddress )( BSTR * pbstrIPAddressOut );
  104. STDMETHOD( put_ClusterIPAddress )( BSTR bstrIPAddressIn );
  105. STDMETHOD( get_ClusterIPSubnet )( BSTR * pbstrIPSubnetOut );
  106. STDMETHOD( put_ClusterIPSubnet )( BSTR bstrIPSubnetIn );
  107. STDMETHOD( get_ClusterIPAddressNetwork )( BSTR * pbstrNetworkNameOut );
  108. STDMETHOD( put_ClusterIPAddressNetwork )( BSTR bstrNetworkNameIn );
  109. STDMETHOD( AddComputer )( LPCWSTR pcszFQDNNameIn );
  110. STDMETHOD( RemoveComputer )( LPCWSTR pcszFQDNNameIn );
  111. STDMETHOD( ClearComputerList )( void );
  112. }; //*** class CClusCfgWizard