📄 docmanage.cpp
字号:
IXMLDOMNodePtr pXmlNode;
IXMLDOMNodePtr pXmlChildNode;
IXMLDOMNodeListPtr pXmlNodeList;
IXMLDOMNamedNodeMapPtr pXmlNodeMap;
try
{
hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument));
if(FAILED(hr))
{
MessageBox(0,"error!",0,0);
}
else
{
pXmlDoc->load(_bstr_t(pszFilePath));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Propertys/property[@ID='" + strID + "']" ));
pXmlNode = pXmlNodeList->nextNode();
if(pXmlNode != NULL)
{
pXmlNodeMap = pXmlNode->Getattributes();
pXmlChildNode = pXmlNodeMap->getNamedItem(_bstr_t("visit"));
propertyMap->SetAt("visit", W2A(pXmlChildNode->Gettext()));
pXmlNodeList = pXmlNode->GetchildNodes();
pXmlChildNode = pXmlNodeList->nextNode();
propertyMap->SetAt("pdeclare", W2A(pXmlChildNode->Gettext()));
pXmlChildNode = pXmlNodeList->nextNode();
propertyMap->SetAt("ptypedesc", W2A(pXmlChildNode->Gettext()));
pXmlChildNode = pXmlNodeList->nextNode();
propertyMap->SetAt("pexample", W2A(pXmlChildNode->Gettext()));
pXmlChildNode = pXmlNodeList->nextNode();
propertyMap->SetAt("premark", W2A(pXmlChildNode->Gettext()));
}
}
}
catch(_com_error& e)
{
MessageBox(0, W2A(e.Description()),0,0);
}
return propertyMap;
}
BOOL CDocManage::ModifyFunctionInfo(CMapStringToString *functionMap, CString strClassName, CString strID)
{
USES_CONVERSION;
HRESULT hr = NULL;
BOOL breturn;
char pszFilePath[160];
memset(pszFilePath, 0, sizeof(pszFilePath));
sprintf(pszFilePath,"%s\\%s%s", theApp.m_strLocPath, strClassName, FILEEXT);
IXMLDOMDocumentPtr pXmlDoc;
IXMLDOMNodePtr pXmlNode;
IXMLDOMNodePtr pXmlChildNode;
IXMLDOMNodeListPtr pXmlNodeList;
IXMLDOMNamedNodeMapPtr pXmlNodeMap;
try
{
hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument));
if(FAILED(hr))
{
MessageBox(0,"error!",0,0);
breturn = false;
}
else
{
pXmlDoc->load(_bstr_t(pszFilePath));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Functions/function[@ID='" + strID + "']" ));
pXmlNode = pXmlNodeList->nextNode();
if(pXmlNode != NULL)
{
CString strTemp;
pXmlNodeList = pXmlNode->GetchildNodes();
pXmlChildNode = pXmlNodeList->nextNode();
pXmlChildNode = pXmlNodeList->nextNode();
functionMap->Lookup("freturndesc", strTemp);
pXmlChildNode->Puttext(_bstr_t(strTemp));
pXmlChildNode = pXmlNodeList->nextNode();
functionMap->Lookup("fparamdesc", strTemp);
pXmlChildNode->Puttext(_bstr_t(strTemp));
pXmlChildNode = pXmlNodeList->nextNode();
functionMap->Lookup("fexample", strTemp);
pXmlChildNode->Puttext(_bstr_t(strTemp));
pXmlChildNode = pXmlNodeList->nextNode();
functionMap->Lookup("fremark", strTemp);
pXmlChildNode->Puttext(_bstr_t(strTemp));
}
pXmlDoc->save(_bstr_t(pszFilePath));
}
}
catch(_com_error& e)
{
MessageBox(0, W2A(e.Description()),0,0);
breturn = false;
}
return breturn;
}
BOOL CDocManage::ModifyPropertyInfo(CMapStringToString *propertyMap, CString strClassName, CString strID)
{
USES_CONVERSION;
HRESULT hr = NULL;
BOOL breturn = true;
char pszFilePath[160];
memset(pszFilePath, 0, sizeof(pszFilePath));
sprintf(pszFilePath,"%s\\%s%s", theApp.m_strLocPath, strClassName, FILEEXT);
IXMLDOMDocumentPtr pXmlDoc;
IXMLDOMNodePtr pXmlNode;
IXMLDOMNodePtr pXmlChildNode;
IXMLDOMNodeListPtr pXmlNodeList;
IXMLDOMNamedNodeMapPtr pXmlNodeMap;
try
{
hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument));
if(FAILED(hr))
{
MessageBox(0,"error!",0,0);
breturn = false;
}
else
{
pXmlDoc->load(_bstr_t(pszFilePath));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Propertys/property[@ID='" + strID + "']" ));
pXmlNode = pXmlNodeList->nextNode();
if(pXmlNode != NULL)
{
CString strTemp;
pXmlNodeList = pXmlNode->GetchildNodes();
pXmlChildNode = pXmlNodeList->nextNode();
pXmlChildNode = pXmlNodeList->nextNode();
propertyMap->Lookup("ptypedesc", strTemp);
pXmlChildNode->Puttext(_bstr_t(strTemp));
pXmlChildNode = pXmlNodeList->nextNode();
propertyMap->Lookup("pexample", strTemp);
pXmlChildNode->Puttext(_bstr_t(strTemp));
pXmlChildNode = pXmlNodeList->nextNode();
propertyMap->Lookup("premark", strTemp);
pXmlChildNode->Puttext(_bstr_t(strTemp));
}
pXmlDoc->save(_bstr_t(pszFilePath));
}
}
catch(_com_error& e)
{
MessageBox(0, W2A(e.Description()),0,0);
breturn = false;
}
return breturn;
}
BOOL CDocManage::AddFunction(CString strClassName, CString strFunctionDeclare, CString strFunctionName, CString strVisit)
{
USES_CONVERSION;
HRESULT hr = NULL;
BOOL breturn = true;
char pszFilePath[160];
memset(pszFilePath, 0, sizeof(pszFilePath));
sprintf(pszFilePath,"%s\\%s%s", theApp.m_strLocPath, strClassName, FILEEXT);
IXMLDOMDocumentPtr pXmlDoc;
IXMLDOMNodePtr pXmlNode;
IXMLDOMNodePtr pXmlChildNode;
IXMLDOMNodeListPtr pXmlNodeList;
IXMLDOMNamedNodeMapPtr pXmlNodeMap;
try
{
hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument));
if(FAILED(hr))
{
MessageBox(0,"error!",0,0);
breturn = false;
}
else
{
pXmlDoc->load(_bstr_t(pszFilePath));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Functions"));
pXmlNode = pXmlNodeList->nextNode();
if(pXmlNode != NULL)
{
IXMLDOMElementPtr pXmlElem = pXmlDoc->createElement(_bstr_t("function"));
pXmlNode->appendChild(pXmlElem);
pXmlElem->setAttribute(_bstr_t("name"), _bstr_t(strFunctionName));
pXmlElem->setAttribute(_bstr_t("visit"), _bstr_t(strVisit));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Functions/function"));
long length = pXmlNodeList->Getlength();
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Propertys/property"));
length += pXmlNodeList->Getlength();
CString strID;
strID.Format("%d", length);
pXmlElem->setAttribute(_bstr_t("ID"), _bstr_t(strID));
IXMLDOMElementPtr pXmlElemDeclare = pXmlDoc->createElement(_bstr_t("fdeclare"));
pXmlElemDeclare->Puttext(_bstr_t(strFunctionDeclare));
pXmlElem->appendChild(pXmlElemDeclare);
IXMLDOMElementPtr pXmlElemReturn = pXmlDoc->createElement(_bstr_t("freturndesc"));
pXmlElem->appendChild(pXmlElemReturn);
IXMLDOMElementPtr pXmlElemParam = pXmlDoc->createElement(_bstr_t("fparamdesc"));
pXmlElem->appendChild(pXmlElemParam);
IXMLDOMElementPtr pXmlElemExample = pXmlDoc->createElement(_bstr_t("fexample"));
pXmlElem->appendChild(pXmlElemExample);
IXMLDOMElementPtr pXmlElemRemark = pXmlDoc->createElement(_bstr_t("fremark"));
pXmlElem->appendChild(pXmlElemRemark);
}
pXmlDoc->save(_bstr_t(pszFilePath));
}
}
catch(_com_error& e)
{
MessageBox(0, W2A(e.Description()),0,0);
breturn = false;
}
return breturn;
}
BOOL CDocManage::AddProperty(CString strClassName, CString strPropertyType, CString strPropertyName, CString strVisit)
{
USES_CONVERSION;
HRESULT hr = NULL;
BOOL breturn = true;
char pszFilePath[160];
memset(pszFilePath, 0, sizeof(pszFilePath));
sprintf(pszFilePath,"%s\\%s%s", theApp.m_strLocPath, strClassName, FILEEXT);
IXMLDOMDocumentPtr pXmlDoc;
IXMLDOMNodePtr pXmlNode;
IXMLDOMNodePtr pXmlChildNode;
IXMLDOMNodeListPtr pXmlNodeList;
IXMLDOMNamedNodeMapPtr pXmlNodeMap;
try
{
hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument));
if(FAILED(hr))
{
MessageBox(0,"error!",0,0);
breturn = false;
}
else
{
pXmlDoc->load(_bstr_t(pszFilePath));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Propertys"));
pXmlNode = pXmlNodeList->nextNode();
if(pXmlNode != NULL)
{
IXMLDOMElementPtr pXmlElem = pXmlDoc->createElement(_bstr_t("property"));
pXmlNode->appendChild(pXmlElem);
pXmlElem->setAttribute(_bstr_t("name"), _bstr_t(strPropertyName));
pXmlElem->setAttribute(_bstr_t("visit"), _bstr_t(strVisit));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Functions/function"));
long length = pXmlNodeList->Getlength();
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Propertys/property"));
length += pXmlNodeList->Getlength();
CString strID;
strID.Format("%d", length);
pXmlElem->setAttribute(_bstr_t("ID"), _bstr_t(strID));
IXMLDOMElementPtr pXmlElemDeclare = pXmlDoc->createElement(_bstr_t("fdeclare"));
pXmlElemDeclare->Puttext(_bstr_t(strPropertyType + " " + strPropertyName));
pXmlElem->appendChild(pXmlElemDeclare);
IXMLDOMElementPtr pXmlElemReturn = pXmlDoc->createElement(_bstr_t("ptypedesc"));
pXmlElem->appendChild(pXmlElemReturn);
IXMLDOMElementPtr pXmlElemExample = pXmlDoc->createElement(_bstr_t("fexample"));
pXmlElem->appendChild(pXmlElemExample);
IXMLDOMElementPtr pXmlElemRemark = pXmlDoc->createElement(_bstr_t("fremark"));
pXmlElem->appendChild(pXmlElemRemark);
}
pXmlDoc->save(_bstr_t(pszFilePath));
}
}
catch(_com_error& e)
{
MessageBox(0, W2A(e.Description()),0,0);
breturn = false;
}
return breturn;
}
BOOL CDocManage::BringDoc(CString strClassName, BOOL bPublic, BOOL bProtected, BOOL bPrivate, BOOL bFunction, BOOL bProperty)
{
USES_CONVERSION;
HRESULT hr = NULL;
FILE *pDocFile = fopen(theApp.m_strPrintPath, "w");
BOOL breturn = true;
char pszFilePath[160];
memset(pszFilePath, 0, sizeof(pszFilePath));
sprintf(pszFilePath,"%s\\%s%s", theApp.m_strLocPath, strClassName, FILEEXT);
CString strLine;
IXMLDOMDocumentPtr pXmlDoc;
IXMLDOMNodePtr pXmlNode;
IXMLDOMNodePtr pXmlChildNode;
IXMLDOMNodeListPtr pXmlNodeList;
IXMLDOMNamedNodeMapPtr pXmlNodeMap;
try
{
hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument));
if(FAILED(hr))
{
MessageBox(0,"error!",0,0);
breturn = false;
}
else
{
fputs("_________________________________________________________________________________________________________\n", pDocFile);
pXmlDoc->load(_bstr_t(pszFilePath));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/name"));
pXmlNode = pXmlNodeList->nextNode();
strLine.Format("%s: %s\n", CLASSNAME, W2A(pXmlNode->Gettext()));
fputs(strLine, pDocFile);
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/declare"));
pXmlNode = pXmlNodeList->nextNode();
strLine.Format("%s: %s\n", CLASSDECLARE, W2A(pXmlNode->Gettext()));
fputs(strLine, pDocFile);
strLine.Format("%s:\n", DESC);
fputs(strLine, pDocFile);
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/classdesc"));
pXmlNode = pXmlNodeList->nextNode();
strLine.Format("%s", W2A(pXmlNode->Gettext()));
char* pszData = new char[2048];
memset(pszData, 0, sizeof(pszData));
sprintf(pszData, "%s", strLine);
FormatData(pszData, 1);
fputs(pszData, pDocFile);
fputs("\n_________________________________________________________________________________________________________\n", pDocFile);
}
}
catch(_com_error& e)
{
MessageBox(0, W2A(e.Description()),0,0);
breturn = false;
}
if((bPrivate)&&(bProperty))
{
PutPropertyInfo(pDocFile, strClassName, PRIVATEPROPERTY);
}
if((bPrivate)&&(bFunction))
{
PutFunctionInfo(pDocFile, strClassName, PRIVATEFUNCTION);
}
if((bProtected)&&(bProperty))
{
PutPropertyInfo(pDocFile, strClassName, PROTECTEDPROPERTY);
}
if((bProtected)&&(bFunction))
{
PutFunctionInfo(pDocFile, strClassName, PROTECTEDFUNCTION);
}
if((bPublic)&&(bProperty))
{
PutPropertyInfo(pDocFile, strClassName, PUBLICPROPERTY);
}
if((bPublic)&&(bFunction))
{
PutFunctionInfo(pDocFile, strClassName, PUBLICFUNCTION);
}
////////////////////////////////////////////////////////////////
if((bPrivate)&&(bProperty))
{
PutPropertyAllInfo(pDocFile, strClassName, PRIVATEPROPERTY);
}
if((bPrivate)&&(bFunction))
{
PutFunctionAllInfo(pDocFile, strClassName, PRIVATEFUNCTION);
}
if((bProtected)&&(bProperty))
{
PutPropertyAllInfo(pDocFile, strClassName, PROTECTEDPROPERTY);
}
if((bProtected)&&(bFunction))
{
PutFunctionAllInfo(pDocFile, strClassName, PROTECTEDFUNCTION);
}
if((bPublic)&&(bProperty))
{
PutPropertyAllInfo(pDocFile, strClassName, PUBLICPROPERTY);
}
if((bPublic)&&(bFunction))
{
PutFunctionAllInfo(pDocFile, strClassName, PUBLICFUNCTION);
}
fclose(pDocFile);
return true;
}
BOOL CDocManage::PutFunctionInfo(FILE *pDocFile, CString strClassName, CString strVisit)
{
USES_CONVERSION;
HRESULT hr = NULL;
CString strLine;
char pszFilePath[160];
memset(pszFilePath, 0, sizeof(pszFilePath));
sprintf(pszFilePath,"%s\\%s%s", theApp.m_strLocPath, strClassName, FILEEXT);
strLine.Format("%s: \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", strVisit);
fputs(strLine, pDocFile);
IXMLDOMDocumentPtr pXmlDoc;
IXMLDOMNodePtr pXmlNode;
IXMLDOMNodePtr pXmlChildNode;
IXMLDOMNodeListPtr pXmlNodeList;
IXMLDOMNamedNodeMapPtr pXmlNodeMap;
try
{
hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument));
if(FAILED(hr))
{
MessageBox(0,"error!",0,0);
}
else
{
pXmlDoc->load(_bstr_t(pszFilePath));
pXmlNodeList = pXmlDoc->selectNodes(_bstr_t("Classes/class/Functions/function[@visit='" + strVisit + "']" ));
pXmlNode = pXmlNodeList->nextNode();
while(pXmlNode != NULL)
{
pXmlNodeMap = pXmlNode->Getattributes();
pXmlChildNode = pXmlNodeMap->getNamedItem(_bstr_t("name"));
strLine.Format("%s\n", W2A(pXmlChildNode->Gettext()));
fputs(strLine, pDocFile);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -