⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myfilter.h

📁 中间件编写示例 COM与.NET组件服务
💻 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 + -