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

📄 eventhelper.h

📁 vc编写的
💻 H
字号:
/*
 Copyright (c) 1999, kSet Lab 
 Author: Konstantin Bukreev 
 E-mail: konstantin@mail.primorye.ru 

 Created: 20.10.99 15:22:26
 Version: 1.0.0

*/

#ifndef _EventHelper_22e1a16b_86f8_11d3_9285_0080adb811c5
#define _EventHelper_22e1a16b_86f8_11d3_9285_0080adb811c5

#if _MSC_VER > 1000 
#pragma once
#endif // _MSC_VER > 1000

template<UINT nID, class T, class I, const IID* pdiid = &__uuidof<I> >
class _kEventHelper :
	public I
{
	DWORD m_dwCookie;
	CComPtr<IUnknown> m_pUnkCP;
public:
	void Advise()
	{
		T* pT = static_cast<T*>(this);
		CComPtr<IUnknown> pUnk = this;		
		
		AtlAxGetControl(pT->GetDlgItem(nID), &m_pUnkCP);		
		AtlAdvise(m_pUnkCP, pUnk, *pdiid, &m_dwCookie);
	}
	void Unadvise()
	{	
		AtlUnadvise(m_pUnkCP, *pdiid, m_dwCookie);
	}

	STDMETHOD(QueryInterface)(REFIID iid,  void ** ppvObject)
	{	
		if (InlineIsEqualUnknown(iid))
		{
			*ppvObject = static_cast<IUnknown*>(this);
			return S_OK;
		}
		else if (InlineIsEqualGUID(iid, *pdiid))
		{
			*ppvObject = static_cast<I*>(this);
			return S_OK;
		}
		return E_NOTIMPL;
	}
	ULONG __stdcall AddRef() {return 1;}
	ULONG __stdcall Release() {return 1;}
};

#endif //_EventHelper_22e1a16b_86f8_11d3_9285_0080adb811c5

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -