diff options
author | Noel Power <noel.power@suse.com> | 2013-06-04 15:24:29 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2013-06-04 15:29:45 +0100 |
commit | 25bb9d13b259dbfb73f1412506f0d051b3670089 (patch) | |
tree | c560d5d66e20b8f473eafbc54be374375d4a1489 /include | |
parent | 78775f1ad9b3f394896179898db984e139d5b5cc (diff) |
fix for fdo#53042 fix ole object macro bindings ( for xlsm )
A number of fixes needed here
a) make sure convert properties of control model is done before inserting
control model into formcontainer, need to do that to ensure that
GenerateVBAEvents is set ( so the fake VBA event generation can be
triggered )
b) remove the IsAlieanExcel check in servuno.cxx ( it's too strict and
additionally seems there is confusion over the media type to check )
c) split the vba import so that we can ensure the VBA mode is set (if
we have modules to import ) before sheets are imported and defer further
processing ( actual assigning of the modules and associated objects )
until later
Change-Id: I8fdbe788b400d7e41d4cc4b51b15f692bd7b0ecc
Diffstat (limited to 'include')
-rw-r--r-- | include/oox/ole/vbaproject.hxx | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/oox/ole/vbaproject.hxx b/include/oox/ole/vbaproject.hxx index f742138756b5..55ac3a8b280a 100644 --- a/include/oox/ole/vbaproject.hxx +++ b/include/oox/ole/vbaproject.hxx @@ -25,6 +25,7 @@ #include "oox/helper/refvector.hxx" #include "oox/helper/storagebase.hxx" #include "oox/dllapi.h" +#include "oox/ole/vbamodule.hxx" namespace com { namespace sun { namespace star { namespace container { class XNameContainer; } @@ -126,7 +127,12 @@ public: bool importVbaProject( StorageBase& rVbaPrjStrg ); - /** Registers a macro atatcher object. For details, see description of the + /** Reads vba module related information from the project streams */ + void readVbaModules( StorageBase& rVbaPrjStrg ); + /** Imports (and creates) vba modules and user forms from the vba project records previously read. + Note: ( expects that readVbaModules was already called ) */ + void importModulesAndForms( StorageBase& rVbaPrjStrg, const GraphicHelper& rGraphicHelper, bool bDefaultColorBgr = true ); + /** Registers a macro attacher object. For details, see description of the VbaMacroAttacherBase class. */ void registerMacroAttacher( const VbaMacroAttacherRef& rxAttacher ); @@ -194,6 +200,9 @@ private: OUString maPrjName; ///< Name of the VBA project. ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > mxOleOverridesSink; + typedef RefMap< rtl::OUString, VbaModule > VbaModuleMap; + VbaModuleMap maModules; + VbaModuleMap maModulesByStrm; }; // ============================================================================ |