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.

66 lines
1.8 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999-2002 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // NotificationMgr.h
  7. //
  8. // Description:
  9. // Notification Manager implementation.
  10. //
  11. // Maintained By:
  12. // David Potter (DavidP) 19-JUN-2001
  13. // Geoffrey Pease (GPease) 22-NOV-1999
  14. //
  15. //////////////////////////////////////////////////////////////////////////////
  16. #pragma once
  17. class CConnPointEnum;
  18. // CNotificationManager
  19. class CNotificationManager
  20. : public INotificationManager
  21. , public IConnectionPointContainer
  22. {
  23. private:
  24. // IUnknown
  25. LONG m_cRef; // Reference counter
  26. // IConnectionPointContainer
  27. CConnPointEnum * m_penumcp; // CP Enumerator and list
  28. CCriticalSection m_csInstanceGuard;
  29. private: // Methods
  30. CNotificationManager( void );
  31. ~CNotificationManager( void );
  32. STDMETHOD( HrInit )( void );
  33. // Private copy constructor to prevent copying.
  34. CNotificationManager( const CNotificationManager & );
  35. // Private assignment operator to prevent copying.
  36. CNotificationManager & operator=( const CNotificationManager & );
  37. public: // Methods
  38. static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
  39. //
  40. // IUnknown
  41. //
  42. STDMETHOD( QueryInterface )( REFIID riidIn, LPVOID * ppvOut );
  43. STDMETHOD_( ULONG, AddRef )( void );
  44. STDMETHOD_( ULONG, Release )( void );
  45. //
  46. // INotificationManager
  47. //
  48. STDMETHOD( AddConnectionPoint )( REFIID riidIn, IConnectionPoint * pcpIn );
  49. //
  50. // IConnectionPointContainer
  51. //
  52. STDMETHOD( EnumConnectionPoints )( IEnumConnectionPoints ** ppEnumOut );
  53. STDMETHOD( FindConnectionPoint )( REFIID riidIn, IConnectionPoint ** ppCPOut );
  54. }; //*** class CNotificationManager