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.

134 lines
2.7 KiB

  1. /*++
  2. Copyright (C) Microsoft Corporation, 1997 - 1999
  3. Module Name:
  4. cenumsub.hxx
  5. Abstract:
  6. Header file for the class implementing the IEnumEventObject interface.
  7. Author:
  8. Gopal Parupudi <GopalP>
  9. [Notes:]
  10. optional-notes
  11. Revision History:
  12. GopalP 1/26/1998 Start.
  13. --*/
  14. #ifndef __CENUMSUB_HXX__
  15. #define __CENUMSUB_HXX__
  16. //
  17. // Typedefs
  18. //
  19. typedef enum
  20. {
  21. EVENT_INVALID,
  22. EVENT_CONNECTION_MADE,
  23. EVENT_CONNECTION_MADE_NOQOC,
  24. EVENT_CONNECTION_LOST,
  25. EVENT_DESTINATION_REACHABLE,
  26. EVENT_DESTINATION_REACHABLE_NOQOC
  27. } FIRED_EVENT;
  28. //
  29. // Constants
  30. //
  31. #define PROPERTY_CONNECTION_MADE_TYPE L"ulConnectionMadeType"
  32. #define PROPERTY_CONNECTION_MADE_NOQOC_TYPE L"ulConnectionMadeTypeNoQOC"
  33. #define PROPERTY_CONNECTION_LOST_TYPE L"ulConnectionLostType"
  34. #define PROPERTY_DESTINATION L"bstrDestination"
  35. #define PROPERTY_DESTINATION_TYPE L"ulDestinationType"
  36. #define PROPERTY_DESTINATION_NOQOC L"bstrDestinationNoQOC"
  37. #define PROPERTY_DESTINATION_NOQOC_TYPE L"ulDestinationTypeNoQOC"
  38. class CImpIEnumSub : public IEnumEventObject
  39. {
  40. friend class CImpISensNetworkFilter;
  41. public:
  42. CImpIEnumSub(void);
  43. ~CImpIEnumSub(void);
  44. //
  45. // IUnknown
  46. //
  47. STDMETHOD (QueryInterface) (REFIID, LPVOID *);
  48. STDMETHOD_(ULONG, AddRef) (void);
  49. STDMETHOD_(ULONG, Release) (void);
  50. //
  51. // IDispatch
  52. //
  53. STDMETHOD (GetTypeInfoCount) (UINT *);
  54. STDMETHOD (GetTypeInfo) (UINT, LCID, ITypeInfo **);
  55. STDMETHOD (GetIDsOfNames) (REFIID, LPOLESTR *, UINT, LCID, DISPID *);
  56. STDMETHOD (Invoke) (DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
  57. //
  58. // IEnumEventObject
  59. //
  60. STDMETHOD (Clone) (LPUNKNOWN *);
  61. STDMETHOD (Count) (ULONG *);
  62. STDMETHOD (Next) (ULONG, LPUNKNOWN *, ULONG *);
  63. STDMETHOD (Reset) ();
  64. STDMETHOD (Skip) (ULONG cSkipElem);
  65. private:
  66. LONG m_cRef;
  67. //
  68. // Storage for DestinationReachableNoQOCInfo parameters. Used while
  69. // filtering subscriptions.
  70. //
  71. FIRED_EVENT m_FiredEvent;
  72. // ConnectionMade
  73. ULONG m_ulConnectionMadeType;
  74. // ConnectionMadeNoQOCInfo
  75. ULONG m_ulConnectionMadeTypeNoQOC;
  76. // ConnectionLost
  77. ULONG m_ulConnectionLostType;
  78. // DestinationReachable
  79. BSTR m_bstrDestination;
  80. ULONG m_ulDestinationType;
  81. // DestinationReachableNoQOCInfo
  82. BSTR m_bstrDestinationNoQOC;
  83. ULONG m_ulDestinationTypeNoQOC;
  84. //
  85. // Pointer to IEnumSubscription returned from the Default Subscription
  86. // cache
  87. //
  88. IEnumEventObject* m_pIEnumSubs;
  89. };
  90. typedef CImpIEnumSub FAR * LPCIMPIENUMSUB;
  91. #endif // __CENUMSUB_HXX__