/* Function name : CXML::LoadFile Description : This function load the given XML file using m_pXMLDoc object. Return type : bool Argument : LPCTSTR lpszXmlFile Tested : Ok */ bool CXML::LoadFile(LPCTSTR lpszXmlFile) { if (!lpszXmlFile || !m_pXMLDoc) return false; m_csXmlFileName = lpszXmlFile; long lXmlSate = 0; _variant_t vtFileName(m_csXmlFileName); VARIANT_BOOL vSuccess; m_hr = m_pXMLDoc->load(vtFileName,&vSuccess); if(!SUCCEEDED(m_hr) || vSuccess == FALSE) { return FALSE; } m_hr = m_pXMLDoc->get_readyState(&lXmlSate); if(SUCCEEDED(m_hr) && lXmlSate == 4) { m_hr = m_pXMLDoc->get_documentElement(&m_pIRootElement); if(SUCCEEDED(m_hr) == 0) return false; BSTR bstrTagName; m_pIRootElement->get_tagName(&bstrTagName); CString csRootTag = bstrTagName; SysFreeString(bstrTagName); if(GetRootNode(csRootTag)) { m_pICurrentNode = m_pIRootNode; m_pICurrentNode->AddRef(); } else return false; } else return false; return true; }
void ExcelControllerImpl08::DoSaveDocumentAs(IDispatchPtr spDocument, const CStdString& sNewFileName, MetawallBackEnd::wsFileFormat eFormat) { if (spDocument == 0) throw Workshare::Com::ComException(_T("The word document instance was null"), E_INVALIDARG); if (MetawallBackEnd::WSEXCELDOCUMENT != eFormat) throw Workshare::Com::ComException(_T("The format specified for SaveDocumentAs was invalid."), E_INVALIDARG); Excel::_WorkbookPtr pExcelDocument = spDocument; _variant_t vtFileName(sNewFileName.c_str()); _variant_t vtFormat((long)(Excel::xlWorkbookNormal)); _variant_t vtFalse(VARIANT_FALSE); _variant_t vtEmpty(_T("")); HRESULT hr = pExcelDocument->SaveAs(&vtFileName, &vtFormat, &vtEmpty, &vtEmpty, &vtFalse, &vtFalse, Excel::xlNoChange); if (FAILED(hr)) throw Workshare::Com::ComException(_T("Failed to save the workbook with the following file name:") + sNewFileName, hr); }
/* Function name : CXML::Save Description : This function saves the changes made to the loaded XML file : if a file name is supplied the changes will be stored in the new file : else it will be saved in the old file. Return type : bool Argument : LPCTSTR lpszFileName Tested : Ok */ bool CXML::Save(LPCTSTR lpszFileName) { CString csFile; if(lpszFileName) csFile = lpszFileName; else if(!m_csXmlFileName.IsEmpty()) csFile = m_csXmlFileName; else return false; _variant_t vtFileName(csFile); m_hr = m_pXMLDoc->save(vtFileName); if(!SUCCEEDED(m_hr)) return false; return true; }