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.

78 lines
2.8 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // TaskGatherNodeInfo.h
  7. //
  8. // Description:
  9. // CTaskGatherNodeInfo implementation.
  10. //
  11. // Maintained By:
  12. // Galen Barbee (GalenB) 22-NOV-1999
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. #pragma once
  16. // CTaskGatherNodeInfo
  17. class CTaskGatherNodeInfo
  18. : public ITaskGatherNodeInfo
  19. , public IClusCfgCallback
  20. {
  21. private:
  22. // IUnknown
  23. LONG m_cRef;
  24. // IDoTask / ITaskGatherNodeInfo
  25. OBJECTCOOKIE m_cookie; // Cookie to the Node
  26. OBJECTCOOKIE m_cookieCompletion; // Cookie to signal when task is completed
  27. BSTR m_bstrName; // Name of the node
  28. BOOL m_fStop;
  29. BOOL m_fUserAddedNode; // new node being added or existing cluster node
  30. // IClusCfgCallback
  31. IClusCfgCallback * m_pcccb; // Marshalled callback interface
  32. CTaskGatherNodeInfo( void );
  33. ~CTaskGatherNodeInfo( void );
  34. // Private copy constructor to prevent copying.
  35. CTaskGatherNodeInfo( const CTaskGatherNodeInfo & nodeSrc );
  36. // Private assignment operator to prevent copying.
  37. const CTaskGatherNodeInfo & operator = ( const CTaskGatherNodeInfo & nodeSrc );
  38. STDMETHOD( HrInit )( void );
  39. HRESULT HrSendStatusReport( LPCWSTR pcszNodeNameIn, CLSID clsidMajorIn, CLSID clsidMinorIn, ULONG ulMinIn, ULONG ulMaxIn, ULONG ulCurrentIn, HRESULT hrIn, int nDescriptionIdIn, int nReferenceIdIn = 0 );
  40. public: // Methods
  41. static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
  42. // IUnknown
  43. STDMETHOD( QueryInterface )( REFIID riidIn, LPVOID * ppvOut );
  44. STDMETHOD_( ULONG, AddRef )( void );
  45. STDMETHOD_( ULONG, Release )( void );
  46. // IDoTask / ITaskGatherNodeInfo
  47. STDMETHOD( BeginTask )( void );
  48. STDMETHOD( StopTask )( void );
  49. STDMETHOD( SetCookie )( OBJECTCOOKIE cookieIn );
  50. STDMETHOD( SetCompletionCookie )( OBJECTCOOKIE cookieIn );
  51. STDMETHOD( SetUserAddedNodeFlag )( BOOL fUserAddedNodeIn );
  52. // IClusCfgCallback
  53. STDMETHOD( SendStatusReport )(
  54. LPCWSTR pcszNodeNameIn
  55. , CLSID clsidTaskMajorIn
  56. , CLSID clsidTaskMinorIn
  57. , ULONG ulMinIn
  58. , ULONG ulMaxIn
  59. , ULONG ulCurrentIn
  60. , HRESULT hrStatusIn
  61. , LPCWSTR pcszDescriptionIn
  62. , FILETIME * pftTimeIn
  63. , LPCWSTR pcszReferenceIn
  64. );
  65. }; //*** class CTaskGatherNodeInfo