windows-nt/Source/XPSP1/NT/com/mobile/sens/conn/senssvc/cenumsub.hxx
2020-09-26 16:20:57 +08:00

135 lines
2.7 KiB
C++

/*++
Copyright (C) Microsoft Corporation, 1997 - 1999
Module Name:
cenumsub.hxx
Abstract:
Header file for the class implementing the IEnumEventObject interface.
Author:
Gopal Parupudi <GopalP>
[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__