本文整理汇总了C++中msxml2::IXMLDOMDocumentPtr::Release方法的典型用法代码示例。如果您正苦于以下问题:C++ IXMLDOMDocumentPtr::Release方法的具体用法?C++ IXMLDOMDocumentPtr::Release怎么用?C++ IXMLDOMDocumentPtr::Release使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类msxml2::IXMLDOMDocumentPtr
的用法示例。
在下文中一共展示了IXMLDOMDocumentPtr::Release方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: saveStylesToXML
// saves a list of Word styles to configutation XML file
BOOL CWordManager::saveStylesToXML(LPCTSTR file_path)
{
CString XMLString = "";
XMLString += "<word_styles>";
XMLString += "<templates>";
XMLString += m_WordTemplates.getItemsInXML();
XMLString += "</templates>";
XMLString += "<paragraph_styles>";
XMLString += m_WordParagraphStyles.getItemsInXML();
XMLString += "</paragraph_styles>";
XMLString += "<character_styles>";
XMLString += m_WordCharacterStyles.getItemsInXML();
XMLString += "</character_styles>";
XMLString += "</word_styles>";
CString FName; // jmeno (cesta) ke konfig. souboru
FName = file_path;
MSXML2::IXMLDOMDocumentPtr pXMLDom; // koren XML stromu
HRESULT hr;
//Vytvori COM objekt (resp. instanci objektu)
hr = pXMLDom.CreateInstance(_T("Msxml2.DOMDocument"));
if (FAILED(hr))
return FALSE;
pXMLDom->async = VARIANT_FALSE;
//nacti DOM ze stringu
if ( pXMLDom->loadXML((_bstr_t) XMLString) != VARIANT_TRUE)
{
pXMLDom.Release();
return FALSE;
}
BOOL ret = FALSE;
try
{
ret = S_OK == pXMLDom->save((LPCTSTR) FName);
}
catch(...)
{
ret = FALSE;
}
pXMLDom.Release();
return ret;
}
示例2: setBuffer
BOOL APBuf::setBuffer(BSTR str, MSXML2::IXMLDOMDocumentPtr & xml)
{
xml.CreateInstance(_T("Msxml2.DOMDocument"));
xml->async = VARIANT_FALSE; // default - true,
//vytvoreni XML DOM z nacteneho XML stringu
CDirectoriesManager & m = ((CReportAsistentApp *) AfxGetApp())->m_pGeneralManager->DirectoriesManager;
CString str_b = str;
CFile f;
f.Open(m.getXMLFilesDirectory() + "\\plug_out_example1.xml", CFile::modeWrite |CFile::modeCreate);
f.Write((LPCTSTR) str_b, str_b.GetLength());
f.Close();
HRESULT hRes=xml->loadXML(str);
if (xml->parseError->errorCode != S_OK)
{
if ((str == NULL) || (* str == 0)) return FALSE;
CReportAsistentApp::ReportError(IDS_SIMPLE_FILTER_FAILED_SOURCE_LOAD, (LPCTSTR) xml->parseError->reason);
xml.Release();
xml = NULL;
return FALSE;
}
return TRUE;
}
示例3: loadStylesFromXML
// loads lists of Word styles from configuration XML file
BOOL CWordManager::loadStylesFromXML(LPCTSTR XMLFilePath)
{
BOOL result = FALSE; // return value
CString FName; // jmeno (cesta) ke konfig. souboru
FName = XMLFilePath;
MSXML2::IXMLDOMDocumentPtr pXMLDom; // koren XML stromu
MSXML2::IXMLDOMElementPtr pNode; // korenovy element
MSXML2::IXMLDOMNodeListPtr pChildren; // seznam podelementu korenoveho elementu
MSXML2::IXMLDOMNodeListPtr pChildrenItems; // seznam podelementu elementu - vstupuje do funkce pro nacitani StringTable
MSXML2::IXMLDOMElementPtr pChild; // podelement korenoveho elementu
int i = 0; // indexova promenna
_variant_t Atr_val; // textova hodnota atributu
HRESULT hr;
//Vytvori COM objekt (resp. instanci objektu)
hr = pXMLDom.CreateInstance(_T("Msxml2.DOMDocument"));
if (FAILED(hr))
return FALSE;
pXMLDom->async = VARIANT_FALSE;
//nacti DOM ze souboru
if ( pXMLDom->load((LPCTSTR) FName) == VARIANT_TRUE)
{
pNode = pXMLDom->GetdocumentElement();
if (pNode != NULL)
{
if (pNode->baseName == (_bstr_t) "word_styles") // spravny nazev korenoveho elementu
{
pChildren = pNode->childNodes; // ziskani seznamu potomku
pChild = NULL;
while((pChild = pChildren->nextNode()) != NULL) // zpracovavaji se potomci
{
pChildrenItems = pChild->childNodes;
if (pChild->baseName == (_bstr_t) "templates")
m_WordTemplates.loadItemsFromXML(pChildrenItems);
else if (pChild->baseName == (_bstr_t) "paragraph_styles")
m_WordParagraphStyles.loadItemsFromXML(pChildrenItems);
else if (pChild->baseName == (_bstr_t) "character_styles")
m_WordCharacterStyles.loadItemsFromXML(pChildrenItems);
}
result = TRUE;
}
}
}
pXMLDom.Release();
return result;
}
示例4: ParseSOAPRequest
int CSOAPUtil::ParseSOAPRequest(char* xml, int xmlSize, SOAP_REQUEST_INFO* info)
{
int res = NO_ERR;
MSXML2::IXMLDOMDocumentPtr xmlDoc;
HRESULT hr = xmlDoc.CreateInstance(MSXML2::CLSID_DOMDocument);
if(FAILED(hr)) {
return ERR_FALSE;
}
xmlDoc->put_async(VARIANT_FALSE);
xmlDoc->put_preserveWhiteSpace(VARIANT_TRUE);
if( LoadDOMDocument(xml, xmlSize, xmlDoc) != NO_ERR ) {
xmlDoc.Release();
xmlDoc = NULL;
return ERR_FALSE;
}
//���
MSXML2::IXMLDOMElementPtr pElemRoot;
MSXML2::IXMLDOMNodePtr mediaNode = NULL;
xmlDoc->get_documentElement(&pElemRoot);
if( pElemRoot == NULL ) {
res = ERR_FALSE;
goto Err_End;
}
for( int i=0; i<pElemRoot->childNodes->length; i++ ) {
MSXML2::IXMLDOMNodePtr bodyNode = pElemRoot->childNodes->Getitem(i);
CComBSTR localName;
bodyNode->get_baseName(&localName);
if( localName == NULL ) {
continue;
}
if(CompareNoCase(L"Body", localName.m_str) == 0 ) {
for( int j=0; j<bodyNode->childNodes->length; j++ ) {
MSXML2::IXMLDOMNodePtr actionNode = bodyNode->childNodes->Getitem(j);
CComBSTR actionName;
actionNode->get_baseName(&actionName);
if( actionName == NULL ) {
continue;
}
info->actionName = actionName;
for( int k=0; k<actionNode->childNodes->length; k++) {
MSXML2::IXMLDOMNodePtr argNode = actionNode->childNodes->Getitem(k);
CComBSTR argName;
argNode->get_baseName(&argName);
if( argName == NULL ) {
continue;
}
CComBSTR argVal;
argNode->get_text(&argVal);
info->argList.insert(pair<wstring,wstring>(argName.m_str, argVal.m_str));
}
}
break;
}
}
Err_End:
xmlDoc.Release();
xmlDoc = NULL;
return res;
}
示例5: initSourcesTab
// InitSourcesTab
BOOL CDataSourcesManager::initSourcesTab(LPCTSTR config_file_path)
{
CString FName; // jmeno (cesta) ke konfig. souboru
FName = config_file_path;
BSTR FileName = FName.AllocSysString();
// nacteni konfiguracniho souboru zdroju
MSXML2::IXMLDOMDocumentPtr pXMLDom; // koren XML stromu
MSXML2::IXMLDOMElementPtr pNode; // korenovy element
MSXML2::IXMLDOMNodeListPtr pChildren; // seznam podelementu korenoveho elementu
MSXML2::IXMLDOMElementPtr pChild; // podelement korenoveho elementu
int i = 0; // indexova promenna
_variant_t Atr_val; // textova hodnota atributu
HRESULT hr;
//Vytvori COM objekt (resp. instanci objektu)
hr = pXMLDom.CreateInstance(_T("Msxml2.DOMDocument"));
if (FAILED(hr))
return FALSE;
pXMLDom->async = VARIANT_FALSE;
//nacti DOM ze souboru
if ( pXMLDom->load((LPCTSTR) FName) == VARIANT_TRUE)
{
pNode = pXMLDom->GetdocumentElement();
if (pNode != NULL)
{
if (pNode->baseName == (_bstr_t) "SOURCES_LIST") // spravny nazev korenoveho elementu
{
pChildren = pNode->childNodes; // ziskani seznamu potomku
pChild = NULL;
while((pChild = pChildren->nextNode()) != NULL) // zpracovavaji se potomci
{
if(pChild->baseName == (_bstr_t) "SOURCE") // definice polozky v tabulce zdroju
{
// pridani prvku do tabulky zdroju
SourcesTab.Add(new CSourceRec);
// PUBLIC_ID
Atr_val = pChild->getAttribute("PUBLIC_ID");
if(Atr_val.vt != VT_NULL)
SourcesTab[i]->PublicID = (BSTR) (_bstr_t) Atr_val;
// PERZISTENT_ID
Atr_val = pChild->getAttribute("PERZISTENT_ID");
if(Atr_val.vt != VT_NULL)
SourcesTab[i]->PerzistID = (BSTR) (_bstr_t) Atr_val;
// PLUGIN_ID
Atr_val = pChild->getAttribute("PLUGIN_ID");
if(Atr_val.vt != VT_NULL)
SourcesTab[i]->PluginID = (BSTR) (_bstr_t) Atr_val;
i++;
}
}
}
//dedek: nacteni default source
MSXML2::IXMLDOMElementPtr el_default_source = pNode->selectSingleNode("DEFAULT_SOURCE");
if (el_default_source)
setDefaultSource((public_source_id_t) (LPCTSTR) (_bstr_t) el_default_source->getAttribute("PUBLIC_ID"));
}
}
SysFreeString(FileName);
pXMLDom.Release();
// nastaveni odkazu na tabulku zasuvek prvkum z tabulky zdroju
for(int j=0; j<= SourcesTab.GetUpperBound(); j++) // pres polozky v tabulce zdroju
{
for(int k=0; k<=PlugsTab.GetUpperBound(); k++)
{
if(SourcesTab[j]->PluginID == PlugsTab[k].PluginName)
{
SourcesTab[j]->PluginIndex = k; // nastaveni indexu v tabulce zasuvek
break;
}
}
}
return TRUE;
}
示例6: read_config_file
/**Read the XML config file. Currently contains keyboard choices.*/
void read_config_file()
{
TrainerConfig *result = new TrainerConfig();
CoInitialize(NULL);
//read XML
MSXML2::IXMLDOMDocumentPtr spXMLDoc;
spXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument60));
if (!spXMLDoc->load("ent-config.xml"))
{
write_text_to_log_file("No config found, using defaults");
config = result; //the default config
}
IXMLDOMNodeListPtr nodes = spXMLDoc->selectNodes(L"//ent-config/keys/key");
long length;
nodes->get_length(&length);
for (int i = 0; i < length; i++)
{
IXMLDOMNode *node;
nodes->get_item(i, &node);
IXMLDOMNamedNodeMap *attribs;
node->get_attributes(&attribs);
long length_attribs;
attribs->get_length(&length_attribs);
char *attrib_key_func = NULL;
char *attrib_key_value = NULL;
for (long j = 0; j < length_attribs; j++)
{
IXMLDOMNode *attribNode;
attribs->get_item(j, &attribNode);
attribNode->get_nodeName(&bstr);
if (wcscmp(bstr, L"function") == 0)
{
VARIANT var;
VariantInit(&var);
attribNode->get_nodeValue(&var);
attrib_key_func = _com_util::ConvertBSTRToString(V_BSTR(&var));
}
else if (wcscmp(bstr, L"value") == 0)
{
VARIANT var;
VariantInit(&var);
attribNode->get_nodeValue(&var);
attrib_key_value = _com_util::ConvertBSTRToString(V_BSTR(&var));
}
SysFreeString(bstr);
attribNode->Release();
}
if (attrib_key_func != NULL && attrib_key_value != NULL)
{
result->get_key_config()->set_key(attrib_key_func, attrib_key_value);
}
delete attrib_key_func;
delete attrib_key_value;
attribs->Release();
node->Release();
}
//nodes->Release(); //don't do this, it crashes on exit
spXMLDoc.Release();
CoUninitialize();
config = result;
}