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

📄 wmsnodesite.cpp

📁 ftpserver very good sample
💻 CPP
字号:
#include "StdAfx.h"#include "WarMmcSnapin.h"#include "WmsNodeSite.h"   // class implemented#include "WarCollector.h"#include "WarIfServer.h"#include "WmsNodeSecurity.h"#include "WmsNodeTransferLogs.h"#include "PropPageSiteGeneral.h"#include "WmsNodeUsers.h"#include "PropPageSharePerms.h"#include "PropPageIpAccess.h"#include "PropPageOptions.h"#include "WmsNodeProtocols.h"#include "PropPageMimeTypes.h"/////////////////////////////// PUBLIC ///////////////////////////////////////// {86D53D46-513A-4646-AB1D-255F58E86958}const GUID WmsNodeSite::thisGuid = { 0x86d53d46, 0x513a, 0x4646, { 0xab, 0x1d, 0x25, 0x5f, 0x58, 0xe8, 0x69, 0x58 } };WmsNodeSite::WmsNodeSite(war_if_site_ptr_t& rSitePtr): mSitePtr(rSitePtr) // Deleted by parent{}WmsNodeSite::~WmsNodeSite(){}//============================= LIFECYCLE ====================================//============================= OPERATORS ====================================//============================= OPERATIONS ===================================//============================= CALLBACK     ===================================HRESULT WmsNodeSite::OnExpand(IConsoleNameSpace *pConsoleNameSpace,                                  IConsole *pConsole,                                  HSCOPEITEM parent){    if (GetHandle() == NULL)         SetHandle((HANDLE)parent);    int extra_flags = 0;    if (!bExpanded)     {        // create the child nodes, then expand them        for(int i = 0; i < 4; i++)        {            CDelegationBase *pnew_node;            SCOPEDATAITEM sdi;            switch(i)            {            case 0:                pnew_node = new WmsNodeSecurity(mSitePtr);                break;			case 1:                pnew_node = new WmsNodeProtocols(mSitePtr);                break;            case 2:                pnew_node = new WmsNodeUsers(mSitePtr);                extra_flags = SDI_CHILDREN;                break;            case 3:                pnew_node = new WmsNodeTransferLogs(mSitePtr);                break;            }            ZeroMemory(&sdi, sizeof(SCOPEDATAITEM));            sdi.mask = SDI_STR|   // Displayname is valid                SDI_PARAM     |   // lParam is valid                SDI_IMAGE     |   // nImage is valid                SDI_OPENIMAGE |   // nOpenImage is valid                SDI_PARENT    |                extra_flags;                        sdi.relativeID  = (HSCOPEITEM)parent;            sdi.nImage      = pnew_node->GetBitmapIndex();            sdi.nOpenImage  = pnew_node->GetBitmapIndex();            sdi.displayname = MMC_CALLBACK;            sdi.lParam      = (LPARAM)pnew_node;     // The cookie                        HRESULT hr = pConsoleNameSpace->InsertItem(&sdi);            _ASSERT( SUCCEEDED(hr) );                        pnew_node->SetHandle((HANDLE)sdi.ID);        }    }     return S_OK;   }HRESULT WmsNodeSite::CreatePropertyPages(IPropertySheetCallback *lpProvider,                                                LONG_PTR handle){    AFX_MANAGE_STATE(AfxGetStaticModuleState());        CPropertyPage *pprop_page = NULL;        pprop_page = new CPropPageSiteGeneral(mSitePtr);        HRESULT hr = MMCPropPageCallback(&pprop_page->m_psp);    if (SUCCEEDED(hr))    {        PROPSHEETPAGE psp;        memset(&psp, 0, sizeof(psp));        memcpy(&psp, &pprop_page->m_psp, sizeof(pprop_page->m_psp));                psp.dwFlags = PSP_DEFAULT | PSP_USECALLBACK;        HPROPSHEETPAGE hpage = CreatePropertySheetPage(&psp);        if (NULL == hpage)            return E_UNEXPECTED;                lpProvider->AddPage(hpage);            }    pprop_page = new CPropPageSharePerms(mSitePtr);    hr = MMCPropPageCallback(&pprop_page->m_psp);    if (SUCCEEDED(hr))    {        PROPSHEETPAGE psp;        memset(&psp, 0, sizeof(psp));        memcpy(&psp, &pprop_page->m_psp, sizeof(pprop_page->m_psp));                psp.dwFlags = PSP_DEFAULT | PSP_USECALLBACK;        HPROPSHEETPAGE hpage = CreatePropertySheetPage(&psp);        if (NULL == hpage)            return E_UNEXPECTED;                lpProvider->AddPage(hpage);            }    pprop_page = new CPropPageIpAccess(mSitePtr);    hr = MMCPropPageCallback(&pprop_page->m_psp);    if (SUCCEEDED(hr))    {        PROPSHEETPAGE psp;        memset(&psp, 0, sizeof(psp));        memcpy(&psp, &pprop_page->m_psp, sizeof(pprop_page->m_psp));                psp.dwFlags = PSP_DEFAULT | PSP_USECALLBACK;        HPROPSHEETPAGE hpage = CreatePropertySheetPage(&psp);        if (NULL == hpage)            return E_UNEXPECTED;                lpProvider->AddPage(hpage);            }    pprop_page = new CPropPageOptions(mSitePtr->GetOptions(),        WarOption::OL_SITE);    hr = MMCPropPageCallback(&pprop_page->m_psp);    if (SUCCEEDED(hr))    {        PROPSHEETPAGE psp;        memset(&psp, 0, sizeof(psp));        memcpy(&psp, &pprop_page->m_psp, sizeof(pprop_page->m_psp));                psp.dwFlags = PSP_DEFAULT | PSP_USECALLBACK;        HPROPSHEETPAGE hpage = CreatePropertySheetPage(&psp);        if (NULL == hpage)            return E_UNEXPECTED;                lpProvider->AddPage(hpage);       }	pprop_page = new CPropPageMimeTypes(mSitePtr->GetMime());    hr = MMCPropPageCallback(&pprop_page->m_psp);    if (SUCCEEDED(hr))    {        PROPSHEETPAGE psp;        memset(&psp, 0, sizeof(psp));        memcpy(&psp, &pprop_page->m_psp, sizeof(pprop_page->m_psp));                psp.dwFlags = PSP_DEFAULT | PSP_USECALLBACK;        HPROPSHEETPAGE hpage = CreatePropertySheetPage(&psp);        if (NULL == hpage)            return E_UNEXPECTED;                lpProvider->AddPage(hpage);       }    return S_OK;}HRESULT WmsNodeSite::OnSelect(IConsole *pConsole, BOOL bScope, BOOL bSelect){    IConsoleVerb *pConsoleVerb;    HRESULT hr = pConsole->QueryConsoleVerb(&pConsoleVerb);    _ASSERT(SUCCEEDED(hr));    //hr = pConsoleVerb->SetVerbState(MMC_VERB_RENAME, ENABLED, TRUE);    // can't get to properties (via the standard methods) unless    // we tell MMC to display the Properties menu item and    // toolbar button, this wil give the user a visual cue that    // there's "something" to do    hr = pConsoleVerb->SetVerbState(MMC_VERB_PROPERTIES, ENABLED, TRUE);    pConsoleVerb->Release();    return S_OK;}//============================= ACCESS     ===================================//============================= INQUIRY    ===================================const int WmsNodeSite::GetBitmapIndex(){    return mSitePtr->IsEnabled() ? NICON_SITE : NICON_SITE_DISABLED;}const _TCHAR *WmsNodeSite::GetDisplayName(int nCol){	switch(nCol)    {    case 0:        return mSitePtr->GetName().c_str();    case 1:        {            static CString name;            name = mSitePtr->GetSiteName().c_str();            return name;        }    case 2:        {            static WarCollector<TCHAR> name;            name.Reset();            name << mSitePtr->Explain().c_str();            return name.GetValue().c_str();        }    default:        return _T("Invalid column index");    }}const GUID & WmsNodeSite::getNodeType(){    return thisGuid; }/////////////////////////////// PROTECTED  ////////////////////////////////////////////////////////////////// PRIVATE    ///////////////////////////////////

⌨️ 快捷键说明

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