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

📄 groupnode.h

📁 能够完成短信的接收和发送
💻 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 + -