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.

68 lines
1.8 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999-2000 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // CEnumCPINotifyUI.h
  7. //
  8. // Description:
  9. // INotifyUI Connection Point Enumerator implementation.
  10. //
  11. // Maintained By:
  12. // Geoffrey Pease (GPease) 04-AUG-2000
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. #pragma once
  16. class CCPINotifyUI;
  17. // CEnumCPINotifyUI
  18. class
  19. CEnumCPINotifyUI:
  20. public IEnumConnections
  21. {
  22. friend class CCPINotifyUI;
  23. private:
  24. // IUnknown
  25. LONG m_cRef; // Reference counter
  26. // IEnumConnections
  27. ULONG m_cAlloced; // Alloced number of entries
  28. ULONG m_cCurrent; // Number of entries currently used
  29. ULONG m_cIter; // The Iter
  30. IUnknown * * m_pList; // List of sinks (IUnknown)
  31. // INotifyUI
  32. private: // Methods
  33. CEnumCPINotifyUI( );
  34. ~CEnumCPINotifyUI();
  35. STDMETHOD(Init)( );
  36. HRESULT
  37. HrCopy( CEnumCPINotifyUI * pecpIn );
  38. HRESULT
  39. HrAddConnection( IUnknown * punkIn, DWORD * pdwCookieOut );
  40. HRESULT
  41. HrRemoveConnection( DWORD dwCookieIn );
  42. public: // Methods
  43. static HRESULT
  44. S_HrCreateInstance( IUnknown ** ppunkOut );
  45. // IUnknown
  46. STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv );
  47. STDMETHOD_( ULONG, AddRef )(void);
  48. STDMETHOD_( ULONG, Release )(void);
  49. // IEnumConnections
  50. STDMETHOD( Next )( ULONG cConnectionsIn,
  51. LPCONNECTDATA rgcd,
  52. ULONG *pcFetchedOut );
  53. STDMETHOD( Skip )( ULONG cConnectionsIn );
  54. STDMETHOD( Reset )( void );
  55. STDMETHOD( Clone )( IEnumConnections **ppEnumOut );
  56. }; // class CEnumCPINotifyUI