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

📄 netcmd_dvrinfo.cpp

📁 一个查看wince平台下的各种硬件信息类
💻 CPP
字号:
#include ".\netcmd_dvrinfo.h"

#define SUCCESS 0

NetCmd_DvrInfo::NetCmd_DvrInfo(void)
{
	this->m_DiskFreeSize ="0";
	this->m_VideoCount=0;
}

NetCmd_DvrInfo::~NetCmd_DvrInfo(void)
{

}
void NetCmd_DvrInfo::SetDiskFreeSize(CString fsize)
{
	this->m_DiskFreeSize =fsize;
}

void NetCmd_DvrInfo::SetVideoCount(short icount)
{
	this->m_VideoCount =icount;
}

void NetCmd_DvrInfo::SetText(CString strText)
{
	this->m_Text =strText;
}

void NetCmd_DvrInfo::SetAvailPhys(DWORD dwAvailPhys)
{
	this->m_AvailPhys=dwAvailPhys;
}

void NetCmd_DvrInfo::SetTotalPhys(DWORD dwTotalPhys)
{
	this->m_TotalPhys=dwTotalPhys;
}

void NetCmd_DvrInfo::SetCpuUsePercent(DWORD dwCpuUsePercent)
{
	this->m_CpuUsePercent=dwCpuUsePercent;
}

void NetCmd_DvrInfo::SetHardFreeBytes(DWORD dwFreeBytes)
{
	this->m_HardFreeBytes =dwFreeBytes;
}

void NetCmd_DvrInfo::SetHardTotalBytes(DWORD dwTotalBytes)
{
	this->m_HardTotalBytes=dwTotalBytes;
}

void NetCmd_DvrInfo::SetDateTime(CString strDateTime)
{
	this->m_DateTime =strDateTime;
}

CString NetCmd_DvrInfo::GetDiskFreeSize()
{
    return this->m_DiskFreeSize;
}

short NetCmd_DvrInfo::GetVideoCount()
{
	return this->m_VideoCount;
}

CString NetCmd_DvrInfo::GetText()
{
	return this->m_Text;
}


DWORD NetCmd_DvrInfo::GetTotalPhys()
{
	return this->m_TotalPhys;
}

DWORD NetCmd_DvrInfo::GetAvailPhys()
{
	return this->m_AvailPhys;
}

DWORD NetCmd_DvrInfo::GetCpuUsePercent()
{
	return this->m_CpuUsePercent;
}

DWORD NetCmd_DvrInfo::GetHardFreeBytes()
{
	return this->m_HardFreeBytes;
}

DWORD NetCmd_DvrInfo::GetHardTotalBytes()
{
	return this->m_HardTotalBytes;
}

CString NetCmd_DvrInfo::GetDateTime()
{
	return this->m_DateTime;
}



void NetCmd_DvrInfo::XmlDeSerialize(BSTR strDvrInfoXml)
{
	IXMLDOMDocument *pDoc;
	if(SUCCEEDED(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, 

       IID_IXMLDOMDocument, (void**)&pDoc) ))
	{
		VARIANT_BOOL success;
		pDoc->loadXML(strDvrInfoXml,&success);
		if (success==VARIANT_TRUE)
		{
			IXMLDOMNode *pCmdNode=NULL;
		    HRESULT hr_cmd=pDoc->selectSingleNode(_bstr_t("Cmd"),&pCmdNode);
			if (hr_cmd==SUCCESS)
			{
				IXMLDOMNode *pDvrInfoNode = NULL;
				BSTR	bstrSS =_bstr_t("DvrInfo");
				
				HRESULT hr_DvrInfo = pCmdNode->selectSingleNode(bstrSS,&pDvrInfoNode);
				if (hr_DvrInfo==SUCCESS)
				{
					IXMLDOMNamedNodeMap *pAttrs = NULL; //属性链表
					pDvrInfoNode->get_attributes(&pAttrs); 

					IXMLDOMNode *pVideoCountAttr=NULL; //视频数属性
					HRESULT hr_VideoCount= pAttrs->getNamedItem(_bstr_t("VideoCount"),&pVideoCountAttr);
						if (hr_VideoCount==SUCCESS)
						{
                            VARIANT bstrCount_obj;
							 pVideoCountAttr->get_nodeValue(&bstrCount_obj);
							this->m_VideoCount = atoi((CString)bstrCount_obj);
						}
			           
						IXMLDOMNode *pDiskFreeSizeAttr=NULL; //待用*
						HRESULT hr_DiskFreeSize=pAttrs->getNamedItem(_bstr_t("DiskFreeSize"),&pDiskFreeSizeAttr);
						if (hr_DiskFreeSize==SUCCESS)
						{
                            VARIANT bstr_obj;
					        pDiskFreeSizeAttr->get_nodeValue(&bstr_obj);
							this->m_DiskFreeSize =(CString)bstr_obj;
						}
						

						IXMLDOMNode *pTotalPhys=NULL; //物理内存
						HRESULT hr_TotalPhys=pAttrs->getNamedItem(_bstr_t("TotalPhys"),&pTotalPhys);
						if (hr_TotalPhys==SUCCESS)
						{
                            VARIANT bstr_obj_TotalPhys;
					        pTotalPhys->get_nodeValue(&bstr_obj_TotalPhys);
							
							this->m_TotalPhys =atoi((CString)bstr_obj_TotalPhys);//(DWORD)bstr_obj;
							
						}

						IXMLDOMNode *pAvailPhys=NULL; //可用物理内存
						HRESULT hr_AvailPhys=pAttrs->getNamedItem(_bstr_t("AvailPhys"),&pAvailPhys);
						if (hr_AvailPhys==SUCCESS)
						{
                            VARIANT bstr_obj_AvailPhys;
					        pAvailPhys->get_nodeValue(&bstr_obj_AvailPhys);
							this->m_AvailPhys =atoi((CString)bstr_obj_AvailPhys);
						}

						IXMLDOMNode *pHardFreeBytes=NULL; //硬盘可用空间
						HRESULT hr_HardFreeBytes=pAttrs->getNamedItem(_bstr_t("HardFreeBytes"),&pHardFreeBytes);
						if (hr_HardFreeBytes=SUCCESS)
						{
                            VARIANT bstr_obj_HardFreeBytes;
					        pHardFreeBytes->get_nodeValue(&bstr_obj_HardFreeBytes);
							this->m_HardFreeBytes =atoi((CString)bstr_obj_HardFreeBytes);
						}

						IXMLDOMNode *pHardTotalBytes=NULL; //硬盘容间
						HRESULT hr_HardTotalBytes=pAttrs->getNamedItem(_bstr_t("HardTotalBytes"),&pHardTotalBytes);
						if (hr_HardTotalBytes==SUCCESS)
						{
                            VARIANT bstr_obj_HardTotalBytes;
					        pHardTotalBytes->get_nodeValue(&bstr_obj_HardTotalBytes);
							this->m_HardTotalBytes =atoi((CString)bstr_obj_HardTotalBytes);
						}

						IXMLDOMNode *pCpuUsePercent=NULL; //CPU使用百分比
						HRESULT hr_CpuUsePercent=pAttrs->getNamedItem(_bstr_t("CpuUsePercent"),&pCpuUsePercent);
						if (hr_CpuUsePercent==SUCCESS)
						{
                            VARIANT bstr_obj_CpuUsePercent;
					        pCpuUsePercent->get_nodeValue(&bstr_obj_CpuUsePercent);
							this->m_CpuUsePercent =atoi((CString)bstr_obj_CpuUsePercent);
						}
				}
			}
		}
		pDoc->Release();
	}
	else
	{
        pDoc->Release();
      
	}
}

CString NetCmd_DvrInfo::XmlSerialize()
{
	BSTR bstrXml;
	CString strHeader="<Cmd><DvrInfo VideoCount=\"0\" DiskFreeSize=\"none\" TotalPhys=\"0\" AvailPhys=\"0\" HardFreeBytes=\"0\" HardTotalBytes=\"0\" CpuUsePercent=\"0\" DateTime=\"2000-01-01\"></DvrInfo></Cmd>";
	bstrXml=_bstr_t(strHeader);

	IXMLDOMDocument *pDoc;
	if(SUCCEEDED(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, 

       IID_IXMLDOMDocument, (void**)&pDoc) ))
	{
		VARIANT_BOOL success;
		pDoc->loadXML(bstrXml,&success);
		if (success==VARIANT_TRUE)
		{
			IXMLDOMNode *pCmdNode=NULL;
		    HRESULT hr_cmd=pDoc->selectSingleNode(_bstr_t("Cmd"),&pCmdNode);
			if (hr_cmd==SUCCESS)
			{
				IXMLDOMNode *pDvrInfoNode = NULL;
				BSTR	bstrSS =_bstr_t("DvrInfo");
				
				HRESULT hr_DvrInfo = pCmdNode->selectSingleNode(bstrSS,&pDvrInfoNode);
				if (hr_DvrInfo==SUCCESS)
				{
					IXMLDOMNamedNodeMap *pAttrs = NULL; //属性链表
					pDvrInfoNode->get_attributes(&pAttrs); 

					IXMLDOMNode *pVideoCountAttr=NULL; //视频数属性
					// CString strTempChannel;
						HRESULT hr_VideoCount= pAttrs->getNamedItem(_bstr_t("VideoCount"),&pVideoCountAttr);
						if (hr_VideoCount==SUCCESS)
						{
							 _variant_t obj_VideoCount(this->m_VideoCount);
					     	 pVideoCountAttr->put_nodeValue(obj_VideoCount); //设置XML录相节点通道属性值
						}
			           
						IXMLDOMNode *pDiskFreeSizeAttr=NULL;
						HRESULT hr_DiskFreeSize=pAttrs->getNamedItem(_bstr_t("DiskFreeSize"),&pDiskFreeSizeAttr);
						if (hr_DiskFreeSize==SUCCESS)
						{
							//BSTR bstrValue
							VARIANT obj_DiskFreeSize;
							obj_DiskFreeSize.vt=VT_BSTR;
							obj_DiskFreeSize.bstrVal=_bstr_t(this->m_DiskFreeSize);
							pDiskFreeSizeAttr->put_nodeValue(obj_DiskFreeSize);
						}




						IXMLDOMNode *pTotalPhys=NULL;
						HRESULT hr_TotalPhys=pAttrs->getNamedItem(_bstr_t("TotalPhys"),&pTotalPhys);
						if (hr_TotalPhys==SUCCESS)
						{

						  	variant_t obj_TotalPhys(this->m_TotalPhys);
					     	 pTotalPhys->put_nodeValue(obj_TotalPhys);

                    						
						}

						IXMLDOMNode *pAvailPhys=NULL;
						HRESULT hr_AvailPhys=pAttrs->getNamedItem(_bstr_t("AvailPhys"),&pAvailPhys);
						if (hr_AvailPhys==SUCCESS)
						{
                           	variant_t obj_AvailPhys(this->m_AvailPhys);
					     	 pAvailPhys->put_nodeValue(obj_AvailPhys);
						}

						IXMLDOMNode *pHardFreeBytes=NULL;
						HRESULT hr_HardFreeBytes=pAttrs->getNamedItem(_bstr_t("HardFreeBytes"),&pHardFreeBytes);
						if (hr_HardFreeBytes==SUCCESS)
						{
                            	variant_t obj_HardFreeBytes(this->m_HardFreeBytes);
					     	 pHardFreeBytes->put_nodeValue(obj_HardFreeBytes);
						}

						IXMLDOMNode *pHardTotalBytes=NULL;
						HRESULT hr_HardTotalBytes=pAttrs->getNamedItem(_bstr_t("HardTotalBytes"),&pHardTotalBytes);
						if (hr_HardTotalBytes==SUCCESS)
						{
                            	variant_t obj_HardTotalBytes(this->m_HardTotalBytes);
					     	 pHardTotalBytes->put_nodeValue(obj_HardTotalBytes);
						}

						IXMLDOMNode *pCpuUsePercent=NULL;
						HRESULT hr_CpuUsePercent=pAttrs->getNamedItem(_bstr_t("CpuUsePercent"),&pCpuUsePercent);
						if (hr_CpuUsePercent==SUCCESS)
						{
                            	variant_t obj_CpuUsePercent(this->m_CpuUsePercent);
					     	 pCpuUsePercent->put_nodeValue(obj_CpuUsePercent);
						}

                        IXMLDOMNode *pDateTime=NULL;
						HRESULT hr_DateTime=pAttrs->getNamedItem(_bstr_t("DateTime"),&pDateTime);
						if (hr_DateTime==SUCCESS)
						{
							this->SetDateTime(GetSysDateTime());
                             variant_t obj_DateTime(this->m_DateTime);
					     	 pDateTime->put_nodeValue(obj_DateTime);
						}

						pDvrInfoNode->put_text(_bstr_t(this->m_Text));
				}
			}
		}
		
		pDoc->get_xml(&bstrXml);
          
		CString strXml(bstrXml); // in UNICODE mode
		pDoc->Release();
		return strXml;
	}
	else
	{
        pDoc->Release();
        return strHeader;
	}
}


CString NetCmd_DvrInfo::GetSysDateTime()
{
	SYSTEMTIME obj;
	GetSystemTime(&obj);
	CString strTemp="";
	strTemp.Format("%d-%d-%d %d:%d:%d",obj.wYear,obj.wMonth,obj.wDay,obj.wHour,obj.wMinute,obj.wSecond);
	return strTemp;
}

⌨️ 快捷键说明

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