/*++ Copyright (C) Microsoft Corporation, 1997 - 1999 Module Name: cenumsub.hxx Abstract: Header file for the class implementing the IEnumEventObject interface. Author: Gopal Parupudi [Notes:] optional-notes Revision History: GopalP 1/26/1998 Start. --*/ #ifndef __CENUMSUB_HXX__ #define __CENUMSUB_HXX__ // // Typedefs // typedef enum { EVENT_INVALID, EVENT_CONNECTION_MADE, EVENT_CONNECTION_MADE_NOQOC, EVENT_CONNECTION_LOST, EVENT_DESTINATION_REACHABLE, EVENT_DESTINATION_REACHABLE_NOQOC } FIRED_EVENT; // // Constants // #define PROPERTY_CONNECTION_MADE_TYPE L"ulConnectionMadeType" #define PROPERTY_CONNECTION_MADE_NOQOC_TYPE L"ulConnectionMadeTypeNoQOC" #define PROPERTY_CONNECTION_LOST_TYPE L"ulConnectionLostType" #define PROPERTY_DESTINATION L"bstrDestination" #define PROPERTY_DESTINATION_TYPE L"ulDestinationType" #define PROPERTY_DESTINATION_NOQOC L"bstrDestinationNoQOC" #define PROPERTY_DESTINATION_NOQOC_TYPE L"ulDestinationTypeNoQOC" class CImpIEnumSub : public IEnumEventObject { friend class CImpISensNetworkFilter; public: CImpIEnumSub(void); ~CImpIEnumSub(void); // // IUnknown // STDMETHOD (QueryInterface) (REFIID, LPVOID *); STDMETHOD_(ULONG, AddRef) (void); STDMETHOD_(ULONG, Release) (void); // // IDispatch // STDMETHOD (GetTypeInfoCount) (UINT *); STDMETHOD (GetTypeInfo) (UINT, LCID, ITypeInfo **); STDMETHOD (GetIDsOfNames) (REFIID, LPOLESTR *, UINT, LCID, DISPID *); STDMETHOD (Invoke) (DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *); // // IEnumEventObject // STDMETHOD (Clone) (LPUNKNOWN *); STDMETHOD (Count) (ULONG *); STDMETHOD (Next) (ULONG, LPUNKNOWN *, ULONG *); STDMETHOD (Reset) (); STDMETHOD (Skip) (ULONG cSkipElem); private: LONG m_cRef; // // Storage for DestinationReachableNoQOCInfo parameters. Used while // filtering subscriptions. // FIRED_EVENT m_FiredEvent; // ConnectionMade ULONG m_ulConnectionMadeType; // ConnectionMadeNoQOCInfo ULONG m_ulConnectionMadeTypeNoQOC; // ConnectionLost ULONG m_ulConnectionLostType; // DestinationReachable BSTR m_bstrDestination; ULONG m_ulDestinationType; // DestinationReachableNoQOCInfo BSTR m_bstrDestinationNoQOC; ULONG m_ulDestinationTypeNoQOC; // // Pointer to IEnumSubscription returned from the Default Subscription // cache // IEnumEventObject* m_pIEnumSubs; }; typedef CImpIEnumSub FAR * LPCIMPIENUMSUB; #endif // __CENUMSUB_HXX__