summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorRosemary <rosemaryseb8@gmail.com>2015-09-07 18:35:18 +0530
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-09-10 04:14:53 +0200
commita2d3089b5824d70917aaf7f1be7895db0f1c837e (patch)
treeeb5ef5bc27ba2c0a92d183b0a961efac56f53072 /oox
parent32b7619ced25de5f215b7f31902dc1cf0537df98 (diff)
Export PROJECTwm stream
Change-Id: I06515a31b2587d3b3aa5bda03b47d228c563db54
Diffstat (limited to 'oox')
-rw-r--r--oox/source/ole/vbaexport.cxx24
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();
}