diff options
author | Rosemary <rosemaryseb8@gmail.com> | 2015-09-07 18:35:18 +0530 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2015-09-10 04:14:53 +0200 |
commit | a2d3089b5824d70917aaf7f1be7895db0f1c837e (patch) | |
tree | eb5ef5bc27ba2c0a92d183b0a961efac56f53072 /oox | |
parent | 32b7619ced25de5f215b7f31902dc1cf0537df98 (diff) |
Export PROJECTwm stream
Change-Id: I06515a31b2587d3b3aa5bda03b47d228c563db54
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/ole/vbaexport.cxx | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/oox/source/ole/vbaexport.cxx b/oox/source/ole/vbaexport.cxx index 49713a289a7c..8f65f5c9ecf5 100644 --- a/oox/source/ole/vbaexport.cxx +++ b/oox/source/ole/vbaexport.cxx @@ -648,6 +648,26 @@ void exportVBAProjectStream(SvStream& rStrm) rStrm.WriteUInt16(0x0000); // Undefined } +// section 2.3.3.1 NAMEMAP +void writeNAMEMAP(SvStream& rStrm, css::uno::Sequence<OUString> rElementNames) +{ + int n = rElementNames.getLength(); + for(sal_Int32 i = 0; i < n; ++i) + { + exportString(rStrm, rElementNames[i]); + rStrm.WriteUInt8(0x00); // terminator + exportUTF16String(rStrm, rElementNames[i]); + rStrm.WriteUInt16(0x0000); // terminator + } +} + +// section 2.3.3 PROJECTwm Stream +void exportPROJECTwmStream(SvStream& rStrm, css::uno::Sequence<OUString> rElementNames) +{ + writeNAMEMAP(rStrm, rElementNames); + rStrm.WriteUInt16(0x0000); // terminator +} + } void VbaExport::exportVBA(SotStorage* pRootStorage) @@ -665,6 +685,8 @@ void VbaExport::exportVBA(SotStorage* pRootStorage) pModuleStream[i] = pVBAStream->OpenSotStream(aElementNames[i], STREAM_READWRITE); } SotStorageStream* pVBAProjectStream = pVBAStream->OpenSotStream("_VBA_PROJECT", STREAM_READWRITE); + SotStorageStream* pPROJECTwmStream = pRootStorage->OpenSotStream("PROJECT", STREAM_READWRITE); + // export exportDirStream(*pDirStream, xNameContainer); @@ -676,6 +698,7 @@ void VbaExport::exportVBA(SotStorage* pRootStorage) exportModuleStream(*pModuleStream[i], aSourceCode, aElementNames[i]); } exportVBAProjectStream(*pVBAProjectStream); + exportPROJECTwmStream(*pPROJECTwmStream, aElementNames); pVBAProjectStream->Commit(); for(sal_Int32 i = 0; i < n; i++) @@ -684,6 +707,7 @@ void VbaExport::exportVBA(SotStorage* pRootStorage) } pDirStream->Commit(); pVBAStream->Commit(); + pPROJECTwmStream->Commit(); pRootStorage->Commit(); } |