📄 snapinabout.cpp
字号:
#include "StdAfx.h"#include "WarMmcSnapin.h"#include "SnapinAbout.h" // class implemented/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================CSnapinAbout::CSnapinAbout(): m_cref(0){ OBJECT_CREATED m_hSmallImage = (HBITMAP)LoadImage(g_hinst, MAKEINTRESOURCE(IDB_SMBMP), IMAGE_BITMAP, 16, 16, LR_LOADTRANSPARENT); m_hLargeImage = (HBITMAP)LoadImage(g_hinst, MAKEINTRESOURCE(IDB_LGBMP), IMAGE_BITMAP, 32, 32, LR_LOADTRANSPARENT); m_hSmallImageOpen = (HBITMAP)LoadImage(g_hinst, MAKEINTRESOURCE(IDB_SMOPEN), IMAGE_BITMAP, 16, 16, LR_LOADTRANSPARENT); m_hAppIcon = LoadIcon(g_hinst, MAKEINTRESOURCE(IDI_WARSVR));}CSnapinAbout::~CSnapinAbout(){ if (m_hSmallImage != NULL) FreeResource(m_hSmallImage); if (m_hLargeImage != NULL) FreeResource(m_hLargeImage); if (m_hSmallImageOpen != NULL) FreeResource(m_hSmallImageOpen); if (m_hAppIcon != NULL) FreeResource(m_hAppIcon); m_hSmallImage = NULL; m_hLargeImage = NULL; m_hSmallImageOpen = NULL; m_hAppIcon = NULL; OBJECT_DESTROYED}//============================= OPERATORS ====================================//============================= OPERATIONS ===================================STDMETHODIMP CSnapinAbout::QueryInterface(REFIID riid, LPVOID *ppv){ if (!ppv) return E_FAIL; *ppv = NULL; if (IsEqualIID(riid, IID_IUnknown)) *ppv = static_cast<ISnapinAbout *>(this); else if (IsEqualIID(riid, IID_ISnapinAbout)) *ppv = static_cast<ISnapinAbout *>(this); if (*ppv) { reinterpret_cast<IUnknown *>(*ppv)->AddRef(); return S_OK; } return E_NOINTERFACE;}STDMETHODIMP_(ULONG) CSnapinAbout::AddRef(){ return InterlockedIncrement((LONG *)&m_cref);}STDMETHODIMP_(ULONG) CSnapinAbout::Release(){ if (InterlockedDecrement((LONG *)&m_cref) == 0) { // we need to decrement our object count in the DLL delete this; return 0; } return m_cref; }///////////////////////////////// Interface ISnapinAbout///////////////////////////////STDMETHODIMP CSnapinAbout::GetSnapinDescription(/* [out] */ LPOLESTR *lpDescription){ _TCHAR szDesc[MAX_PATH]; LoadString(g_hinst, IDS_SNAPINDESC, szDesc, sizeof(szDesc)); return AllocOleStr(lpDescription, szDesc);}STDMETHODIMP CSnapinAbout::GetProvider(/* [out] */ LPOLESTR *lpName){ return AllocOleStr(lpName, _T("Copyright
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -