Commit 6d0ff00d authored by Oleg.Korshul's avatar Oleg.Korshul Committed by Alexander Trofimov

(2.0.0.156) additional param nobase64

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@53112 954022d7-b5bf-4e40-9824-e11837661b57
parent 45dcaed4
...@@ -53,6 +53,8 @@ private: ...@@ -53,6 +53,8 @@ private:
CString m_sFontDir; CString m_sFontDir;
bool m_bSaveChartAsImg; bool m_bSaveChartAsImg;
Writers::FileWriter* m_pCurFileWriter; Writers::FileWriter* m_pCurFileWriter;
bool m_bIsNoBase64Save;
public: public:
DECLARE_PROTECT_FINAL_CONSTRUCT() DECLARE_PROTECT_FINAL_CONSTRUCT()
...@@ -60,6 +62,7 @@ public: ...@@ -60,6 +62,7 @@ public:
{ {
m_oBinaryFileWriter = NULL; m_oBinaryFileWriter = NULL;
m_bSaveChartAsImg = false; m_bSaveChartAsImg = false;
m_bIsNoBase64Save = false;
} }
~CAVSOfficeDocxFile2() ~CAVSOfficeDocxFile2()
{ {
...@@ -129,16 +132,27 @@ public: ...@@ -129,16 +132,27 @@ public:
BYTE* pbBinBuffer = oBufferedStream.GetBuffer(); BYTE* pbBinBuffer = oBufferedStream.GetBuffer();
int nBinBufferLen = oBufferedStream.GetPosition(); int nBinBufferLen = oBufferedStream.GetPosition();
int nBase64BufferLen = Base64::Base64EncodeGetRequiredLength(nBinBufferLen, Base64::B64_BASE64_FLAG_NOCRLF);
BYTE* pbBase64Buffer = new BYTE[nBase64BufferLen]; if (m_bIsNoBase64Save)
if(TRUE == Base64::Base64Encode(pbBinBuffer, nBinBufferLen, (LPSTR)pbBase64Buffer, &nBase64BufferLen, Base64::B64_BASE64_FLAG_NOCRLF))
{ {
CFile oFile; CFile oFile;
oFile.CreateFileW(bsFileDst); oFile.CreateFileW(bsFileDst);
oFile.WriteStringUTF8(m_oBinaryFileWriter->WriteFileHeader(nBinBufferLen)); oFile.WriteFile(pbBinBuffer, nBinBufferLen);
oFile.WriteFile(pbBase64Buffer, nBase64BufferLen);
oFile.CloseFile(); oFile.CloseFile();
} }
else
{
int nBase64BufferLen = Base64::Base64EncodeGetRequiredLength(nBinBufferLen, Base64::B64_BASE64_FLAG_NOCRLF);
BYTE* pbBase64Buffer = new BYTE[nBase64BufferLen];
if(TRUE == Base64::Base64Encode(pbBinBuffer, nBinBufferLen, (LPSTR)pbBase64Buffer, &nBase64BufferLen, Base64::B64_BASE64_FLAG_NOCRLF))
{
CFile oFile;
oFile.CreateFileW(bsFileDst);
oFile.WriteStringUTF8(m_oBinaryFileWriter->WriteFileHeader(nBinBufferLen));
oFile.WriteFile(pbBase64Buffer, nBase64BufferLen);
oFile.CloseFile();
}
}
RELEASEOBJECT(m_oBinaryFileWriter); RELEASEOBJECT(m_oBinaryFileWriter);
RELEASEINTERFACE(pFontPicker); RELEASEINTERFACE(pFontPicker);
RELEASEINTERFACE(pOfficeDrawingConverter); RELEASEINTERFACE(pOfficeDrawingConverter);
...@@ -181,6 +195,10 @@ public: ...@@ -181,6 +195,10 @@ public:
{ {
m_bSaveChartAsImg = VARIANT_TRUE == ParamValue.boolVal; m_bSaveChartAsImg = VARIANT_TRUE == ParamValue.boolVal;
} }
else if (_T("NoBase64Save") == sParamName && ParamValue.vt == VT_BOOL)
{
m_bIsNoBase64Save = (VARIANT_TRUE == ParamValue.boolVal);
}
return S_OK; return S_OK;
} }
STDMETHOD(GetAdditionalParam)(BSTR ParamName, VARIANT* ParamValue) STDMETHOD(GetAdditionalParam)(BSTR ParamName, VARIANT* ParamValue)
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
//2 //2
//0 //0
//0 //0
//155 //156
#define INTVER 2,0,0,155 #define INTVER 2,0,0,156
#define STRVER "2,0,0,155\0" #define STRVER "2,0,0,156\0"
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