📄 authoritymgr.cpp
字号:
#include "stdafx.h"
#include "CZMisMMC.h"
#include "AuthorityMgr.h"
/////////////////////////////////////////////////////////////////////////////
// CAuthorityMgrComponentData
static const GUID CAuthorityMgrGUID_NODETYPE =
{ 0x8ff5f649, 0x4adc, 0x4de4, { 0xb3, 0xb9, 0x84, 0xfc, 0xa7, 0x84, 0x92, 0xc2 } };
const GUID* CAuthorityMgrData::m_NODETYPE = &CAuthorityMgrGUID_NODETYPE;
const OLECHAR* CAuthorityMgrData::m_SZNODETYPE = OLESTR("8FF5F649-4ADC-4DE4-B3B9-84FCA78492C2");
const OLECHAR* CAuthorityMgrData::m_SZDISPLAY_NAME = OLESTR("财政管理系统权限管理");
const CLSID* CAuthorityMgrData::m_SNAPIN_CLASSID = &CLSID_AuthorityMgr;
HRESULT CAuthorityMgrData::OnExpand(BOOL bExpand, IConsole *pConsole, HSCOPEITEM parent)
{
if (!bExpand)
return S_OK;
m_scopeDataItem.ID = parent;
HSCOPEITEM hChild = NULL;
long cookie = 0;
CComQIPtr<IConsoleNameSpace, &IID_IConsoleNameSpace> spConsoleNameSpace(pConsole);
spConsoleNameSpace->GetChildItem(m_scopeDataItem.ID, &hChild, &cookie);
if (hChild != NULL)
spConsoleNameSpace->DeleteItem(m_scopeDataItem.ID, FALSE);
HRESULT hr;
//以下图标类型常量在stdafx.h中定义
//INDEX_AllUSER
//INDEX_AllGroup
//添加所有用户子节点
m_pAllUserNode->m_scopeDataItem.relativeID = m_scopeDataItem.ID;
m_pAllUserNode->m_scopeDataItem.nImage=INDEX_AllUSER;
m_pAllUserNode->m_scopeDataItem.nOpenImage=INDEX_AllUSER;
m_pAllUserNode->m_scopeDataItem.cChildren=1;
hr = spConsoleNameSpace->InsertItem(&m_pAllUserNode->m_scopeDataItem);
_ASSERT( SUCCEEDED(hr) );
//添加所有组子节点
m_pAllGroupNode->m_scopeDataItem.relativeID = m_scopeDataItem.ID;
m_pAllGroupNode->m_scopeDataItem.nImage=INDEX_AllGroup;
m_pAllGroupNode->m_scopeDataItem.nOpenImage=INDEX_AllGroup;
m_pAllGroupNode->m_scopeDataItem.cChildren=1;
//调用MMC名字空间对象插入子节点
hr = spConsoleNameSpace->InsertItem(&m_pAllGroupNode->m_scopeDataItem);
_ASSERT( SUCCEEDED(hr) );
return S_OK;
//after this MMC calls GetDisplayInfo() which
//in ATL translates to GetScopePaneInfo()
}
HRESULT CAuthorityMgrData::CreatePropertyPages(LPPROPERTYSHEETCALLBACK lpProvider,
long handle,
IUnknown* pUnk,
DATA_OBJECT_TYPES type)
{
if (type == CCT_SCOPE || type == CCT_RESULT)
{
CAuthorityMgrPage* pPage = new CAuthorityMgrPage(handle, true, _T("AuthorityMgr"));
lpProvider->AddPage(pPage->Create());
// The second parameter to the property page class constructor
// should be true for only one page.
// TODO : Add code here to add additional pages
return S_OK;
}
return E_UNEXPECTED;
}
HRESULT CAuthorityMgr::Initialize(LPUNKNOWN pUnknown)
{
HRESULT hr = IComponentDataImpl<CAuthorityMgr, CAuthorityMgrComponent >::Initialize(pUnknown);
if (FAILED(hr))
return hr;
CComPtr<IImageList> spImageList;
if (m_spConsole->QueryScopeImageList(&spImageList) != S_OK)
{
ATLTRACE(_T("IConsole::QueryScopeImageList failed\n"));
return E_UNEXPECTED;
}
// Load bitmaps associated with the scope pane
// and add them to the image list
// Loads the default bitmaps generated by the wizard
// Change as required
return LoadImages(spImageList);
}
HRESULT CAuthorityMgr::LoadImages(IImageList* pImageList)
{
HRESULT hr = E_FAIL;
HBITMAP m_hSmallBmp = LoadBitmap(_Module.GetResourceInstance(),MAKEINTRESOURCE(IDR_SMICONS));
if (m_hSmallBmp != NULL)
{
HBITMAP m_hLargeBmp = LoadBitmap(_Module.GetResourceInstance(),MAKEINTRESOURCE(IDR_LGICONS));
if (m_hLargeBmp != NULL)
{
hr = pImageList->ImageListSetStrip((long*) m_hSmallBmp, (long*) m_hLargeBmp,0, RGB(0, 128, 128));
//_ASSERT(SUCCEEDED(hr));
if (FAILED(hr))
ATLTRACE(_T("IImageList::ImageListSetStrip failed\n"));
}
DeleteObject(m_hLargeBmp);
}
DeleteObject(m_hSmallBmp);
return hr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -