📄 wmsnodesite.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 + -