Commit 0df543cc authored by Ivan.Shulga's avatar Ivan.Shulga Committed by Alexander Trofimov

xmlwriter now writes std::wstring

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@58892 954022d7-b5bf-4e40-9824-e11837661b57
parent 57cb998e
...@@ -85,19 +85,28 @@ namespace NSPresentationEditor ...@@ -85,19 +85,28 @@ namespace NSPresentationEditor
public: public:
__forceinline void WriteString(wchar_t* pString, size_t& nLen) __forceinline void WriteString(const wchar_t* pString, size_t& nLen)
{ {
AddSize(nLen); AddSize(nLen);
//memcpy(m_pDataCur, pString, nLen * sizeof(wchar_t)); // memcpy(m_pDataCur, pString, nLen * sizeof(wchar_t));
memcpy(m_pDataCur, pString, nLen << 1); // wstring has 4 bytes length (not 2 in WIN32) in linux/macos
memcpy(m_pDataCur, pString, (2 == sizeof (wchar_t)) ? (nLen << 1) : (nLen << 2));
m_pDataCur += nLen; m_pDataCur += nLen;
m_lSizeCur += nLen; m_lSizeCur += nLen;
} }
#ifdef _WIN32
__forceinline void WriteString(_bstr_t& bsString) __forceinline void WriteString(_bstr_t& bsString)
{ {
size_t nLen = bsString.length(); size_t nLen = bsString.length();
WriteString(bsString.GetBSTR(), nLen); WriteString(bsString.GetBSTR(), nLen);
} }
#endif // #ifdef _WIN32
__forceinline void WriteString(std::wstring& wString)
{
size_t nLen = wString.length();
WriteString(wString.c_str(), nLen);
}
__forceinline void WriteString(const CString& sString) __forceinline void WriteString(const CString& sString)
{ {
size_t nLen = (size_t)sString.GetLength(); size_t nLen = (size_t)sString.GetLength();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment