[Libreoffice-commits] core.git: Branch 'feature/vba-export' - oox/source
Rosemary
rosemaryseb8 at gmail.com
Mon Sep 7 19:44:34 PDT 2015
oox/source/ole/vbaexport.cxx | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
New commits:
commit 360fb6bd35045269a5a7e6147bdeeecf4536263d
Author: Rosemary <rosemaryseb8 at gmail.com>
Date: Mon Sep 7 18:35:18 2015 +0530
Export PROJECTwm stream
Change-Id: I06515a31b2587d3b3aa5bda03b47d228c563db54
diff --git a/oox/source/ole/vbaexport.cxx b/oox/source/ole/vbaexport.cxx
index af997ce..772a24f 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();
}
More information about the Libreoffice-commits
mailing list