oox/source/ole/vbaexport.cxx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-)
New commits: commit 67a7ebb2b5f346ce1dfcd1f4dcae139e874a997e Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Aug 17 19:05:59 2015 +0200 export the vba OLE container correctly Change-Id: Ic4b0db9dc69079be4ebe686d0c7a8edc91c41fa5 diff --git a/oox/source/ole/vbaexport.cxx b/oox/source/ole/vbaexport.cxx index 4c27603..619c820 100644 --- a/oox/source/ole/vbaexport.cxx +++ b/oox/source/ole/vbaexport.cxx @@ -19,6 +19,8 @@ #include "oox/helper/propertyset.hxx" #include "oox/token/properties.hxx" +#include <sot/storage.hxx> + #define USE_UTF8_CODEPAGE 0 #if USE_UTF8_CODEPAGE #define CODEPAGE_MS 65001 @@ -592,6 +594,14 @@ void exportDirStream(SvStream& rStrm) void VbaExport::exportVBA() { // start here with the VBA export + + const OUString aVbaStreamLocation("/tmp/vba_out.bin"); + SvFileStream aVbaStream(aVbaStreamLocation, STREAM_READWRITE); + + tools::SvRef<SotStorage> aStorage(new SotStorage(aVbaStream)); + SotStorage* pVBAStream = aStorage->OpenSotStorage("VBA", STREAM_READWRITE); + SotStorageStream* pDirStream = pVBAStream->OpenSotStream("dir", STREAM_READWRITE); + const OUString aDirFileName("/tmp/vba_dir_out.bin"); SvFileStream aDirStream(aDirFileName, STREAM_READWRITE); @@ -601,12 +611,9 @@ void VbaExport::exportVBA() aDirStream.Seek(0); SvMemoryStream aMemoryStream(4096, 4096); - OUString aCompressedFileName("/tmp/vba_dir_out_compressed.bin"); - SvFileStream aCompressedStream(aCompressedFileName, STREAM_READWRITE); - aMemoryStream.WriteStream(aDirStream); - VBACompression aCompression(aCompressedStream, aMemoryStream); + VBACompression aCompression(*pDirStream, aMemoryStream); aCompression.write(); css::uno::Reference<css::container::XNameContainer> xNameContainer = getBasicLibrary(); @@ -620,7 +627,9 @@ void VbaExport::exportVBA() css::script::ModuleInfo aModuleInfo = xModuleInfo->getModuleInfo(aElementNames[i]); SAL_DEBUG(aModuleInfo.ModuleType); } - + pDirStream->Commit(); + pVBAStream->Commit(); + aStorage->Commit(); } css::uno::Reference<css::container::XNameContainer> VbaExport::getBasicLibrary() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits