📄 groupnode.h
字号:
#ifndef __GroupNODE_H__
#define __GroupNODE_H__
#include "GroupFunctionItem.h"
#include <strsafe.h>
class CGroupNode : public CBaseNodeItem<CGroupNode>
{
std::vector<CGroupFunctionNodeItem*> m_vecItems;
public:
CComBSTR m_bstrDes;
CComBSTR m_bstrGUID;
CGroupNode(BSTR bstr,BSTR bstrDes, BSTR bstrGUID)
{
//名称
m_bstrDisplayName.Empty();
m_bstrDisplayName.Attach(bstr);
//描述
m_bstrDes.Empty();
m_bstrDes.Attach(bstrDes);
//用户的GUID
m_bstrGUID.Empty();
m_bstrGUID.Attach(bstrGUID);
memset(&m_scopeDataItem, 0, sizeof(SCOPEDATAITEM));
m_scopeDataItem.mask = SDI_STR | SDI_IMAGE | SDI_OPENIMAGE | SDI_PARAM | SDI_CHILDREN;
m_scopeDataItem.displayname = MMC_CALLBACK;
m_scopeDataItem.nImage = 0;
m_scopeDataItem.nOpenImage = 1;
m_scopeDataItem.lParam = (LPARAM) this;
memset(&m_resultDataItem, 0, sizeof(RESULTDATAITEM));
for(int i=0; i<10; i++)
{
const size_t cchBuffer = 50;
static _TCHAR buf[cchBuffer];
StringCchPrintf(buf, cchBuffer, _T("功能模块%d"),i);
CComBSTR bstr(buf);
m_vecItems.push_back(new CGroupFunctionNodeItem(bstr.Detach()));
}
}
~CGroupNode()
{
for(int i=0; i<m_vecItems.size(); i++)
delete m_vecItems[i];
}
STDMETHOD(GetResultViewType)(LPOLESTR *ppViewType,long *pViewOptions)
{
*ppViewType = NULL;
*pViewOptions = MMC_VIEW_OPTIONS_NONE;
return S_FALSE;
}
STDMETHOD(QueryPagesFor)(DATA_OBJECT_TYPES type)
{
if (type == CCT_SCOPE || type == CCT_RESULT)
return S_OK;
return S_FALSE;
}
HRESULT OnSelect(IConsole *spConsole, IComponent* pComponent)
{
IConsoleVerb *pConsoleVerb;
HRESULT hr = spConsole->QueryConsoleVerb(&pConsoleVerb);
_ASSERT(SUCCEEDED(hr));
// hr = pConsoleVerb->SetVerbState(MMC_VERB_REFRESH, ENABLED, TRUE);
// _ASSERT(SUCCEEDED(hr));
// hr = pConsoleVerb->SetVerbState(MMC_VERB_PROPERTIES, ENABLED, TRUE);
// _ASSERT(SUCCEEDED(hr));
pConsoleVerb->Release();
return S_OK;
}
LPOLESTR GetResultPaneColInfo(int nCol)
{
switch (nCol)
{
case 0:
return m_bstrDisplayName;
case 1:
return m_bstrDes;
//return OLESTR("描述");
case 2:
return m_bstrGUID;
//return OLESTR("全局标识(GUID)");
}
return OLESTR("Override GetResultPaneColInfo");
}
HRESULT OnShow(IConsole *pConsole, BOOL bShow)
{
HRESULT hr = S_FALSE;
if(bShow)
{
CComQIPtr<IResultData, &IID_IResultData> spResultData(pConsole);
CComQIPtr<IHeaderCtrl, &IID_IHeaderCtrl> spHeaderCtrl(pConsole);
//spResultData->SetDescBarText(OLESTR("Bleh"));
//spResultData->SetViewMode(LVS_LIST);
HRESULT hr = spResultData->DeleteAllRsltItems();
/*
CComPtr<IDataObject, &IID_IDataObject> spDataObject;
GetDataObject(&spDataObject, CCT_SCOPE);
pConsole->UpdateAllViews(spDataObject, 0, 0);
*/
hr = spHeaderCtrl->InsertColumn( 0, L"模块名", 0, MMCLV_AUTO);
hr = spHeaderCtrl->InsertColumn( 1, L"组权限级别", 0, MMCLV_AUTO);
for(int i=0; i<m_vecItems.size(); i++)
{
m_vecItems[i]->m_resultDataItem.nImage=INDEX_FUNCTION ;
hr=spResultData->InsertItem(&m_vecItems[i]->m_resultDataItem);
_ASSERT( SUCCEEDED(hr) );
}
}
return S_FALSE;
}
};
#endif //__GroupNODE_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -