wstring str = CT2W(strPath);
str = str.substr(0, str.find_last_of(L".", str.length())) + wstring(CT2W(strExName));
CFileStatus fileStatus;
if(!CFile::GetStatus(W2CT(str.c_str()), fileStatus))
{
return;
}
CFile fileEx;
if(!fileEx.Open(W2CT(str.c_str()), CFile::modeRead))
{
throw CEMRException(L"不能打开指定文件,加载失败!");
}
WORD wHeader = 0;
fileEx.Read(&wHeader, sizeof(WORD));
if(wHeader != UNICODE_HEADER) fileEx.SeekToBegin();
size_t nFileLen = static_cast<size_t>(fileEx.GetLength());
array_ptr<BYTE> spBuffer(new BYTE[nFileLen + 1]);
memset(spBuffer.get(), 0, nFileLen + 1);
fileEx.Read(spBuffer.get(), static_cast<UINT>(nFileLen));
fileEx.Close();
array_ptr<XMLCh> spWBuffer;
if(wHeader != UNICODE_HEADER)//ANSI转换为双字节
{
spWBuffer.reset(XMLString::transcode(reinterpret_cast<char*>(spBuffer.get())));
}
else
{
spWBuffer.reset(reinterpret_cast<XMLCh*>(spBuffer.release()));
}
wstring strMsg = L"";
wstring strClientXml = CEMRClient::Instance().GetClientInfoX();
if(strExName.MakeLower() == _T(".txt"))
{
CHECK_THROW_PROXY(CHtmlTemplateProxy::SaveNoteInfo(strClientXml, lngID, spWBuffer.get(), strMsg));
}