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

📄 ismsgmanager.h

📁 WMI接口测试Demo程序
💻 H
字号:
// ISMsgManager.h: interface for the CISMsgManager class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ISMSGMANAGER_H__975F4620_557F_44FB_81FF_ECD5C55D9015__INCLUDED_)
#define AFX_ISMSGMANAGER_H__975F4620_557F_44FB_81FF_ECD5C55D9015__INCLUDED_

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

#include <afxtempl.h>

class CISMsgHandler
{
public:
	CISMsgHandler(UINT uMsg, LPCTSTR szMsg) : m_uMsg(uMsg), m_sMsg(szMsg) {}
	virtual ~CISMsgHandler() {}
	
	virtual BOOL HandleMsg(const MSG* pMsg, CString& sMsg, CStringArray* pParams)
	{
		ASSERT (pMsg->message == m_uMsg);

		sMsg = m_sMsg;
		return TRUE;
	}

	static inline void AddParam(CStringArray& aParams, const char *fmt, ...)
	{
		static char gBuffer[1024];
		ZeroMemory(gBuffer, 1024);

		va_list marker;
		va_start(marker, fmt);
		vsprintf(gBuffer, fmt, marker);
		va_end(marker);

		aParams.Add(gBuffer);
	}
	
protected:
	UINT m_uMsg;
	CString m_sMsg;

};

class CISMsgManager
{
public:
	virtual ~CISMsgManager();
	static BOOL HandleMsg(const MSG* pMsg, CString& sMsg, CStringArray* pParams = NULL);

protected:
	static CISMsgManager& GetInstance() { static CISMsgManager isMsgMgr; return isMsgMgr; }

protected:
	CISMsgManager();

	BOOL AddHandler(UINT uMsg, CISMsgHandler* pMsgHandler);
	CISMsgHandler* GetHandler(UINT uMsg);
	void CreateMessageMap();
	void DeleteMessageMap();

protected:
	CMap<UINT, UINT, CISMsgHandler*, CISMsgHandler*&> m_mapHandlers;
};


#endif // !defined(AFX_ISMSGMANAGER_H__975F4620_557F_44FB_81FF_ECD5C55D9015__INCLUDED_)

⌨️ 快捷键说明

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