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.

93 lines
3.6 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // AnalyzePage.h
  7. //
  8. // Maintained By:
  9. // Galen Barbee (GalenB) 12-MAY-2000
  10. //
  11. //////////////////////////////////////////////////////////////////////////////
  12. #pragma once
  13. class CAnalyzePage
  14. : public INotifyUI
  15. , public IClusCfgCallback
  16. {
  17. friend class CClusCfgWizard;
  18. private: // data
  19. HWND m_hwnd; // Our HWND
  20. IServiceProvider * m_psp; // Service Manager
  21. ULONG * m_pcCount; // Count of computers in list
  22. BSTR ** m_prgbstrComputerName; // List of computer names
  23. BSTR * m_pbstrClusterName; // Cluster Name to analyze
  24. bool m_fNext; // If Next was pressed...
  25. ECreateAddMode m_ecamCreateAddMode; // Creating or adding?
  26. OBJECTCOOKIE m_cookieCluster; // Cluster cookie
  27. ITaskAnalyzeCluster * m_ptac;
  28. // IUnknown
  29. LONG m_cRef; // Reference count
  30. // IClusCfgCallback
  31. OBJECTCOOKIE m_cookieCompletion; // Completion cookie
  32. bool m_fTaskDone; // Is the task done yet?
  33. HRESULT m_hrResult; // Result of the analyze task
  34. CTaskTreeView * m_pttv; // Task TreeView
  35. BSTR m_bstrLogMsg; // Reusable logging buffer.
  36. IConnectionPoint * m_pcpcb; // IClusCfgCallback Connection Point
  37. DWORD m_dwCookieCallback; // Notification registration cookie
  38. // INotifyUI
  39. IConnectionPoint * m_pcpui; // INotifyUI Connection Point
  40. DWORD m_dwCookieNotify; // Notification registration cookie
  41. private: // methods
  42. CAnalyzePage( IServiceProvider * pspIn,
  43. ECreateAddMode ecamCreateAddModeIn,
  44. ULONG * pcCountIn,
  45. BSTR ** prgbstrComputersIn,
  46. BSTR * pbstrClusterIn
  47. );
  48. ~CAnalyzePage( void );
  49. LRESULT OnInitDialog( void );
  50. LRESULT OnNotify( WPARAM idCtrlIn, LPNMHDR pnmhdrIn );
  51. LRESULT OnNotifyQueryCancel( void );
  52. LRESULT OnNotifySetActive( void );
  53. LRESULT OnNotifyWizNext( void );
  54. LRESULT OnNotifyWizBack( void );
  55. LRESULT OnCommand( UINT idNotificationIn, UINT idControlIn, HWND hwndSenderIn );
  56. HRESULT HrUpdateWizardButtons( void );
  57. HRESULT HrCleanupAnalysis( void );
  58. public: // methods
  59. static INT_PTR CALLBACK
  60. S_DlgProc( HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam );
  61. // IUnknown
  62. STDMETHOD( QueryInterface )( REFIID riidIn, LPVOID * ppvOut );
  63. STDMETHOD_( ULONG, AddRef )( void );
  64. STDMETHOD_( ULONG, Release )( void );
  65. // INotifyUI
  66. STDMETHOD( ObjectChanged )( OBJECTCOOKIE cookieIn);
  67. // IClusCfgCallback
  68. STDMETHOD( SendStatusReport )(
  69. LPCWSTR pcszNodeNameIn
  70. , CLSID clsidTaskMajorIn
  71. , CLSID clsidTaskMinorIn
  72. , ULONG ulMinIn
  73. , ULONG ulMaxIn
  74. , ULONG ulCurrentIn
  75. , HRESULT hrStatusIn
  76. , LPCWSTR pcszDescriptionIn
  77. , FILETIME * pftTimeIn
  78. , LPCWSTR pcszReferenceIn
  79. );
  80. }; //*** class CAnalyzePage