📄 myfilter.h
字号:
// MyFilter.h : Declaration of the CGenericFilter
#ifndef __MYFILTER_H_
#define __MYFILTER_H_
#include "resource.h" // main symbols
#import <es.dll> raw_interfaces_only, raw_native_types, no_namespace, named_guids
struct SubscriptionData
{
_bstr_t bstrSubscriptionID;
_bstr_t bstrSubscriptionName;
_bstr_t bstrPublisherID;
_bstr_t bstrEventClassID;
_bstr_t bstrMethodName;
_bstr_t bstrOwnerSID;
_bstr_t bstrDescription;
_bstr_t bstrMachineName;
BOOL bPerUser;
CLSID clsidSubscriberCLSID;
IID iidSink;
IID iidInterfaceID;
};
/////////////////////////////////////////////////////////////////////////////
// CGenericFilter
class ATL_NO_VTABLE CGenericFilter :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CGenericFilter, &CLSID_MyFilter>,
public IMultiInterfacePublisherFilter
{
public:
CGenericFilter();
~CGenericFilter();
HRESULT FinalContruct();
void FinalRelease();
DECLARE_REGISTRY_RESOURCEID(IDR_MYFILTER)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CGenericFilter)
COM_INTERFACE_ENTRY(IMultiInterfacePublisherFilter)
END_COM_MAP()
public:
// IMultiInterfacePublisherFilter
STDMETHOD(Initialize)(IMultiInterfaceEventControl* pMultiEventControl);
STDMETHOD(PrepareToFire)(IID* piidSink, BSTR bstrMethodName,IFiringControl* pFiringControl);
//Helper methods, used for domain logic specific filtering
HRESULT ExtractSubscriptionData(IEventSubscription* pSubscription,SubscriptionData* pSubscriptionData)const;
BOOL ShouldFire(const SubscriptionData& subscriptionData)const;
_bstr_t GetCriteria()const;
IMultiInterfaceEventControl* m_pMultiEventControl;
};
#endif //__MYFILTER_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -