summaryrefslogtreecommitdiff
path: root/desktop/win32
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2008-07-16 15:32:01 +0000
committerIvo Hinkelmann <ihi@openoffice.org>2008-07-16 15:32:01 +0000
commit5922da1f53441fffbb239827a30b26dca1e3275f (patch)
treea688870c56c3b96638373ea6e00a6c20c149c90d /desktop/win32
parentd1234c6c2ebd2c5a7e6d63d57f9c33d53dc70220 (diff)
INTEGRATION: CWS sysui26 (1.14.74); FILE MERGED
2008/07/03 14:42:01 dv 1.14.74.1: Allow setting of msi properties for mso file types
Diffstat (limited to 'desktop/win32')
-rw-r--r--desktop/win32/source/setup/setup.cpp31
1 files changed, 28 insertions, 3 deletions
diff --git a/desktop/win32/source/setup/setup.cpp b/desktop/win32/source/setup/setup.cpp
index f65f14eeed..c06d75e577 100644
--- a/desktop/win32/source/setup/setup.cpp
+++ b/desktop/win32/source/setup/setup.cpp
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: setup.cpp,v $
- * $Revision: 1.14 $
+ * $Revision: 1.15 $
*
* This file is part of OpenOffice.org.
*
@@ -68,8 +68,12 @@
#define PARAM_ADMIN TEXT( "/A " )
#define PARAM_TRANSFORM TEXT( " TRANSFORMS=" )
#define PARAM_REBOOT TEXT( " REBOOT=Force" )
+#define PARAM_REG_ALL_MSO_TYPES TEXT( "REGISTER_ALL_MSO_TYPES=1 " )
+#define PARAM_REG_NO_MSO_TYPES TEXT( "REGISTER_NO_MSO_TYPES=1 " )
-#define PARAM_RUNNING TEXT( "ignore_running" )
+#define PARAM_RUNNING TEXT( "ignore_running" )
+#define CMDLN_REG_ALL_MSO_TYPES TEXT( "msoreg=1" )
+#define CMDLN_REG_NO_MSO_TYPES TEXT( "msoreg=0" )
#define MSI_DLL TEXT( "msi.dll" )
#define ADVAPI32_DLL TEXT( "advapi32.dll" )
@@ -135,6 +139,9 @@ SetupAppX::SetupAppX()
m_bQuiet = false;
m_bAdministrative = false;
+ m_bRegNoMsoTypes = false;
+ m_bRegAllMsoTypes = false;
+
m_bIgnoreAlreadyRunning = false;
}
@@ -843,7 +850,12 @@ boolean SetupAppX::Install( long nLanguage )
// we will always use the parameter setup used
int nParLen = lstrlen( PARAM_SETUP_USED );
-
+
+ if ( m_bRegNoMsoTypes )
+ nParLen += lstrlen( PARAM_REG_NO_MSO_TYPES );
+ else if ( m_bRegAllMsoTypes )
+ nParLen += lstrlen( PARAM_REG_ALL_MSO_TYPES );
+
if ( m_pAdvertise )
nParLen += lstrlen( m_pAdvertise ) + 1; // one for the space
else
@@ -867,6 +879,11 @@ boolean SetupAppX::Install( long nLanguage )
StringCchCopy( pParams, nParLen, PARAM_SETUP_USED );
+ if ( m_bRegNoMsoTypes )
+ StringCchCat( pParams, nParLen, PARAM_REG_NO_MSO_TYPES );
+ else if ( m_bRegAllMsoTypes )
+ StringCchCat( pParams, nParLen, PARAM_REG_ALL_MSO_TYPES );
+
if ( m_pAdvertise )
StringCchCat( pParams, nParLen, m_pAdvertise );
else if ( m_bAdministrative )
@@ -1502,6 +1519,14 @@ boolean SetupAppX::GetCmdLineParameters( LPTSTR *pCmdLine )
{
m_bIgnoreAlreadyRunning = true;
}
+ else if ( _tcsnicmp( pSub, CMDLN_REG_ALL_MSO_TYPES, _tcslen( CMDLN_REG_ALL_MSO_TYPES ) ) == 0 )
+ {
+ m_bRegAllMsoTypes = true;
+ }
+ else if ( _tcsnicmp( pSub, CMDLN_REG_NO_MSO_TYPES, _tcslen( CMDLN_REG_NO_MSO_TYPES ) ) == 0 )
+ {
+ m_bRegNoMsoTypes = true;
+ }
else if ( (*pSub) == 'i' || (*pSub) == 'I' || (*pSub) == 'f' || (*pSub) == 'F' ||
(*pSub) == 'p' || (*pSub) == 'P' || (*pSub) == 'x' || (*pSub) == 'X' ||
(*pSub) == 'y' || (*pSub) == 'Y' || (*pSub) == 'z' || (*pSub) == 'Z' )