snapinabout.cpp

来自「ftpserver very good sample」· C++ 代码 · 共 101 行

CPP
101
字号
#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 + =
减小字号Ctrl + -
显示快捷键?