Commits

Anonymous committed e0b22b3

CWS-TOOLING: integrate CWS dv11
2009-05-13 16:50:24 +0200 dv r271863 : #i101829# Use UPGRADINGPRODUCTCODE to detect major upgrade
2009-04-17 15:55:48 +0200 dv r270953 : CWS-TOOLING: rebase CWS dv11 to trunk@270723 (milestone: DEV300:m46)
2009-04-17 09:14:21 +0200 dv r270916 : #i100915# Use better product name
2009-04-16 14:41:49 +0200 dv r270884 : #i101132# Use a waiting thread to defere update check
2009-04-07 15:46:52 +0200 dv r270599 : #i100915# Use one include file for all version.rc files
2009-04-07 13:49:56 +0200 dv r270596 : #i100915# Use one include file for all version.rc files
2009-04-03 09:04:08 +0200 dv r270447 : #100776# Added Microsoft XML file types to 'Default Applications', cleaned up Application name display in 'Default Applications'
2009-04-01 10:13:28 +0200 dv r270306 : #i100713# Remove instmsia.exe from installation set
2009-03-30 16:35:35 +0200 dv r270240 : CWS-TOOLING: rebase CWS dv11 to trunk@270033 (milestone: DEV300:m45)
2009-03-27 10:24:40 +0100 dv r270138 : #i100410# Show survey after deinstalling OpenOffice.org (Windows only)
2009-03-18 15:05:31 +0100 dv r269679 : #i98780# Use 'Desktop' folder only, if it exists
2009-03-17 11:19:47 +0100 dv r269581 : #i100082# Ignore updates with failed dependencies for automatic update check
2009-03-13 14:37:27 +0100 dv r269479 : #i100082# Use 'value' instead of 'name' to create error message
2009-03-13 10:14:48 +0100 dv r269460 : #i100082# Support better error message when extension manager update finds an incompatible update

  • Participants
  • Parent commits 1751ccd

Comments (0)

Files changed (50)

File crashrep/source/win32/rcheader.txt

  *
 #*************************************************************************/
 
-#define VERSION			3
-#define SUBVERSION		1
-//#define VERVARIANT		0
-// .0 + VER_CONCEPT
-// .100 + VER_ALPHA
-// .200 + VER_BETA
-// .300 + VER_GAMMA
-// .500 + VER_FINAL
-//#define VER_CONCEPT		0
-//#define VER_BETA		6
-#define VER_FINAL		0
-
-#define VER_DAY			1
-#define VER_MONTH		4
-#define VER_YEAR		09
-
-
 // Header
 #include "resource.h"
 #if defined(_MSC_VER) && (_MSC_VER < 1500)
 #define IDC_STATIC		(-1)
 #endif
 
-#include "verinfo.hrc"
+#define VER_FIRSTYEAR	2003
 
-#define VER_FIRSTYEAR	03
+#include "version.hrc"
 
 #ifdef FONTSIZE
 #undef FONTSIZE
 		}
 	}
 
-// version binary entry
-VS_VERSION_INFO rcdata
-{
-	0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY,
-	VERSION, SUBVERSION, VERVARIANT, VER_COUNT
-};
 
-

File desktop/inc/deployment.hrc

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: deployment.hrc,v $
- * $Revision: 1.6 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
 
 #define RID_DEPLOYMENT_DEPENDENCIES_START    (RID_DEPLOYMENT_START + 4400)
 #define RID_DEPLYOMENT_DEPENDENCIES_UNKNOWN  RID_DEPLOYMENT_DEPENDENCIES_START
+#define RID_DEPLYOMENT_DEPENDENCIES_MIN      (RID_DEPLOYMENT_DEPENDENCIES_START+1)
+#define RID_DEPLYOMENT_DEPENDENCIES_MAX      (RID_DEPLOYMENT_DEPENDENCIES_START+2)
 
 #define RID_DEPLOYMENT_LICENSE_START		(RID_DEPLOYMENT_START+4500)
 

File desktop/source/deployment/gui/dp_gui.hrc

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: dp_gui.hrc,v $
- * $Revision: 1.17 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
 #define RID_DLG_UPDATE_UNKNOWNERROR 18
 #define RID_DLG_UPDATE_NODESCRIPTION 19
 #define RID_DLG_UPDATE_NOINSTALL 20
-#define RID_DLG_UPDATE_NODEPENDENCY 21
-#define RID_DLG_UPDATE_NOPERMISSION 22
-#define RID_DLG_UPDATE_NOPERMISSION_VISTA 23
-#define RID_DLG_UPDATE_BROWSERBASED 24
-#define RID_DLG_UPDATE_PUBLISHER_LABEL 25
-#define RID_DLG_UPDATE_PUBLISHER_LINK  26
-#define RID_DLG_UPDATE_RELEASENOTES_LABEL 27 
-#define RID_DLG_UPDATE_RELEASENOTES_LINK 28 
-#define RID_DLG_UPDATE_NOUPDATE 29
-#define RID_DLG_UPDATE_VERSION 30
+#define RID_DLG_UPDATE_NODEPENDENCY         21
+#define RID_DLG_UPDATE_NODEPENDENCY_CUR_VER 22
+#define RID_DLG_UPDATE_NOPERMISSION         23
+#define RID_DLG_UPDATE_NOPERMISSION_VISTA   24
+#define RID_DLG_UPDATE_BROWSERBASED         25
+#define RID_DLG_UPDATE_PUBLISHER_LABEL      26
+#define RID_DLG_UPDATE_PUBLISHER_LINK       27
+#define RID_DLG_UPDATE_RELEASENOTES_LABEL   28 
+#define RID_DLG_UPDATE_RELEASENOTES_LINK    29 
+#define RID_DLG_UPDATE_NOUPDATE             30
+#define RID_DLG_UPDATE_VERSION              31
 
 #define RID_DLG_EXTENSION_MANAGER (RID_DEPLOYMENT_GUI_START + 6)
 

File desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx

              ++i)
         {
             deps.push_back(
-                dp_misc::Dependencies::name( depExc.UnsatisfiedDependencies[i]) );
+                dp_misc::Dependencies::getErrorText( depExc.UnsatisfiedDependencies[i]) );
         }
         {
             vos::OGuard guard(Application::GetSolarMutex());

File desktop/source/deployment/gui/dp_gui_updatedialog.cxx

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: dp_gui_updatedialog.cxx,v $
- * $Revision: 1.18.10.1 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
 #include "com/sun/star/xml/dom/XElement.hpp"
 #include "com/sun/star/xml/dom/XNode.hpp"
 #include "osl/diagnose.h"
+#include "rtl/bootstrap.hxx"
 #include "rtl/ref.hxx"
 #include "rtl/string.h"
 #include "rtl/ustrbuf.hxx"
     du.aUpdateInfo = updateInfo;
     du.unsatisfiedDependencies.realloc(ds.getLength());
     for (sal_Int32 i = 0; i < ds.getLength(); ++i) {
-        du.unsatisfiedDependencies[i] = dp_misc::Dependencies::name(ds[i]);
+        du.unsatisfiedDependencies[i] = dp_misc::Dependencies::getErrorText(ds[i]);
     }
     du.permission = ! packageManager->isReadOnly();
     const ::boost::optional< ::rtl::OUString> updateWebsiteURL(infoset.getLocalizedUpdateWebsiteURL());
     m_noDescription(String(DpGuiResId(RID_DLG_UPDATE_NODESCRIPTION))),
     m_noInstall(String(DpGuiResId(RID_DLG_UPDATE_NOINSTALL))),
     m_noDependency(String(DpGuiResId(RID_DLG_UPDATE_NODEPENDENCY))),
+    m_noDependencyCurVer(String(DpGuiResId(RID_DLG_UPDATE_NODEPENDENCY_CUR_VER))),
     m_noPermission(String(DpGuiResId(RID_DLG_UPDATE_NOPERMISSION))),
     m_noPermissionVista(String(DpGuiResId(RID_DLG_UPDATE_NOPERMISSION_VISTA))),
     m_browserbased(String(DpGuiResId(RID_DLG_UPDATE_BROWSERBASED))),
             {
                 UpdateDialog::DisabledUpdate & data = m_disabledUpdates[
                     p->index.disabledUpdate];
-                if (data.unsatisfiedDependencies.getLength() != 0) {
+                if (data.unsatisfiedDependencies.getLength() != 0)
+                {
+                    // create error string for version mismatch
+                    ::rtl::OUString sVersion( RTL_CONSTASCII_USTRINGPARAM("%VERSION") );
+                    sal_Int32 nPos = m_noDependencyCurVer.indexOf( sVersion );
+                    if ( nPos >= 0 )
+                    {
+                        ::rtl::OUString sCurVersion( RTL_CONSTASCII_USTRINGPARAM( "${$OOO_BASE_DIR/program/" SAL_CONFIGFILE("version") ":Version:OOOPackageVersion}"));
+                        ::rtl::Bootstrap::expandMacros(sCurVersion);
+                        m_noDependencyCurVer = m_noDependencyCurVer.replaceAt( nPos, sVersion.getLength(), sCurVersion );
+                    }
+        
                     b.append(m_noInstall);
                     b.append(LF);
                     b.append(m_noDependency);
                             confineToParagraph(
                                 data.unsatisfiedDependencies[i]));
                     }
+                    b.append(LF);
+                    b.appendAscii(RTL_CONSTASCII_STRINGPARAM("  "));
+                    b.append(m_noDependencyCurVer);
                 }
                 if (!data.permission) {
                     if (b.getLength() == 0) {

File desktop/source/deployment/gui/dp_gui_updatedialog.hxx

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: dp_gui_updatedialog.hxx,v $
- * $Revision: 1.9.86.1 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
     rtl::OUString m_noDescription;
     rtl::OUString m_noInstall;
     rtl::OUString m_noDependency;
+    rtl::OUString m_noDependencyCurVer;
     rtl::OUString m_noPermission;
     rtl::OUString m_noPermissionVista;
     rtl::OUString m_browserbased;

File desktop/source/deployment/gui/dp_gui_updatedialog.src

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: dp_gui_updatedialog.src,v $
- * $Revision: 1.10 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
         Text[en-US] = "The extension cannot be installed because:";
     };
     String RID_DLG_UPDATE_NODEPENDENCY {
-        Text[en-US] = "Incompatibility:";
+        Text[en-US] = "Required OpenOffice.org version doesn't match:";
+    };
+    String RID_DLG_UPDATE_NODEPENDENCY_CUR_VER {
+        Text[en-US] = "You have OpenOffice.org %VERSION";
     };
     String RID_DLG_UPDATE_NOPERMISSION {
         Text[en-US] = "No write permission (shared extension).";

File desktop/source/deployment/inc/dp_dependencies.hxx

     DESKTOP_DEPLOYMENTMISC_DLLPUBLIC ::rtl::OUString name(
         ::com::sun::star::uno::Reference<
             ::com::sun::star::xml::dom::XElement > const & dependency);
+
+    /**
+       Obtain the (human-readable) error message of a failed dependency.
+
+       @param dependency
+       a dependency represented as a non-null XML element
+
+       @return
+       the name of the dependency; will never be empty, as a localized
+       &ldquo;unknown&rdquo; is substituted for an empty/missing name
+     */
+    DESKTOP_DEPLOYMENTMISC_DLLPUBLIC ::rtl::OUString getErrorText(
+        ::com::sun::star::uno::Reference<
+            ::com::sun::star::xml::dom::XElement > const & dependency);
 }
 
 }

File desktop/source/deployment/manager/dp_informationprovider.cxx

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: dp_informationprovider.cxx,v $
- * $Revision: 1.5 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
 #include "rtl/ustring.hxx"
 #include "ucbhelper/content.hxx"
 
+#include "dp_dependencies.hxx"
 #include "dp_descriptioninfoset.hxx"
 #include "dp_identifier.hxx"
 #include "dp_version.hxx"
 
                 if (*id2 == id)
                 {
+                    // check, if there are unsatisfied dependencies and ignore those updates
+                    uno::Sequence< uno::Reference< xml::dom::XElement > > ds( dp_misc::Dependencies::check( infoset ) );
+                    if ( ds.getLength() )
+                        continue;
+
                     rtl::OUString v( infoset.getVersion() );
                     if ( dp_misc::compareVersions( v, latestVersion ) == dp_misc::GREATER )
                     {

File desktop/source/deployment/misc/dp_dependencies.cxx

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: dp_dependencies.cxx,v $
- * $Revision: 1.9.156.2 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
         : n;
 }
 
+::rtl::OUString getErrorText( css::uno::Reference< css::xml::dom::XElement > const & dependency )
+{
+    ::rtl::OUString sReason;
+    ::rtl::OUString sValue;
+    ::rtl::OUString sVersion(RTL_CONSTASCII_USTRINGPARAM("%VERSION"));
+
+    if ( dependency->getNamespaceURI().equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( xmlNamespace ) )
+         && dependency->getTagName().equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "OpenOffice.org-minimal-version" ) ) )
+    {
+        sValue = dependency->getAttribute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "value" ) ) );
+        sReason = ::rtl::OUString( ::String(::dp_misc::getResId(RID_DEPLYOMENT_DEPENDENCIES_MIN)) );
+    }
+    else if ( dependency->getNamespaceURI().equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( xmlNamespace ) )
+              && dependency->getTagName().equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "OpenOffice.org-maximal-version" ) ) )
+    {
+        sValue = dependency->getAttribute( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("value") ) );
+        sReason = ::rtl::OUString( ::String(::dp_misc::getResId(RID_DEPLYOMENT_DEPENDENCIES_MAX)) );
+    }
+    else if ( dependency->hasAttributeNS( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( xmlNamespace ) ),
+                                          ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OpenOffice.org-minimal-version" ))))
+    {
+        sValue = dependency->getAttributeNS( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( xmlNamespace ) ),
+                                             ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OpenOffice.org-minimal-version" ) ) );
+        sReason = ::rtl::OUString( ::String(::dp_misc::getResId(RID_DEPLYOMENT_DEPENDENCIES_MIN)) );
+    }
+    else
+        return ::rtl::OUString( ::String(::dp_misc::getResId(RID_DEPLYOMENT_DEPENDENCIES_UNKNOWN)) );
+
+    if ( sValue.getLength() == 0 )
+        sValue = ::rtl::OUString( ::String(::dp_misc::getResId(RID_DEPLYOMENT_DEPENDENCIES_UNKNOWN)) );
+
+    sal_Int32 nPos = sReason.indexOf( sVersion );
+    if ( nPos >= 0 )
+        sReason = sReason.replaceAt( nPos, sVersion.getLength(), sValue );
+    return sReason;
 }
 
 }
+
+}

File desktop/source/deployment/misc/dp_misc.src

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: dp_misc.src,v $
- * $Revision: 1.6 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
 String RID_DEPLYOMENT_DEPENDENCIES_UNKNOWN {
     Text[en-US] = "Unknown";
 };
+
+String RID_DEPLYOMENT_DEPENDENCIES_MIN {
+    Text[en-US] = "Extensions requires at least OpenOffice.org %VERSION";
+};
+
+String RID_DEPLYOMENT_DEPENDENCIES_MAX {
+    Text[en-US] = "Extension doesn't support versions greater than: OpenOffice.org %VERSION";
+};

File desktop/util/ooverinfo.rc

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: ooverinfo.rc,v $
- * $Revision: 1.12 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
  *
  *************************************************************************/
 
-#define VERSION			3
-#define SUBVERSION		1
-//#define VERVARIANT		0
-// .0 + VER_CONCEPT
-// .100 + VER_ALPHA
-// .200 + VER_BETA
-// .300 + VER_GAMMA
-// .500 + VER_FINAL
-//#define VER_CONCEPT		0
-//#define VER_BETA		6
-#define VER_FINAL		0
-
-#define VER_DAY			1
-#define VER_MONTH		4
-#define VER_YEAR		09
-
-// -----------------------------------------------------------------------
-
 #if !defined(ENGLISH)
 #define LG_D 					// generate always german version
 #endif
 
-#define VER_FIRSTYEAR	00
+#define VER_FIRSTYEAR	2000
 
 #include <windows.h>
-#include "verinfo.hrc"
-
-#ifdef WIN32
-#define FOR_WIN_X " (32 Bit)"
-#else
-#define FOR_WIN_X ""
-#endif
-
-// -----------------------------------------------------------------------
-// 				language/character set specification table
-// -----------------------------------------------------------------------
-
-RCD_LANGUAGE rcdata
-{
-#ifdef LG_D
-	"040704B0", 	// Germany -> Unicode
-	"040704E4", 	// Germany -> Windows, Multilingual
-#else
-	"040904B0", 	// Germany -> Unicode
-	"040904E4", 	// USA -> Windows, Multilingual
-#endif
-	"04090000", 	// USA -> 7-Bit-ASCII
-	0				// end of table
-}
+#include "version.hrc"
 
 // -----------------------------------------------------------------------
 // 				version information
 		}
 	}
 
-// version binary entry
-VS_VERSION_INFO rcdata
-{
-	0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY,
-	VERSION, SUBVERSION, VERVARIANT, VER_COUNT
-};
-
 
 2 ICON "icons\\ooo3_writer_doc.ico"
 3 ICON "icons\\ooo3_writer_tem.ico"

File desktop/util/ooverinfo2.rc

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: ooverinfo2.rc,v $
- * $Revision: 1.5 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
  *************************************************************************/
 
 #define VERSION			3
-#define SUBVERSION		1
+#define SUBVERSION		2
 //#define VERVARIANT		0
 // .0 + VER_CONCEPT
 // .100 + VER_ALPHA
 #define VER_FINAL		0
 
 #define VER_DAY			1
-#define VER_MONTH		4
+#define VER_MONTH		9
 #define VER_YEAR		2009
 
 // -----------------------------------------------------------------------

File desktop/util/verinfo.rc

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: verinfo.rc,v $
- * $Revision: 1.19 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
  *
  *************************************************************************/
 
-#define VERSION			9
-//#define SUBVERSION		1
-//#define VERVARIANT		0
-// .0 + VER_CONCEPT
-// .100 + VER_ALPHA
-// .200 + VER_BETA
-// .300 + VER_GAMMA
-// .500 + VER_FINAL
-//#define VER_CONCEPT		0
-//#define VER_BETA		6
-#define VER_FINAL		0
-
-#define VER_DAY			1
-#define VER_MONTH		4
-#define VER_YEAR		2009
-
-// -----------------------------------------------------------------------
-
 #if !defined(ENGLISH)
 #define LG_D 					// generate always german version
 #endif
 
-#define VER_FIRSTYEAR	VER_YEAR
+#define VER_FIRSTYEAR	2007
 
 #include <windows.h>
-#include "verinfo.hrc"
-
-#ifdef WIN32
-#define FOR_WIN_X " (32 Bit)"
-#else
-#define FOR_WIN_X ""
-#endif
-
-// -----------------------------------------------------------------------
-// 				language/character set specification table
-// -----------------------------------------------------------------------
-
-RCD_LANGUAGE rcdata
-{
-#ifdef LG_D
-	"040704B0", 	// Germany -> Unicode
-	"040704E4", 	// Germany -> Windows, Multilingual
-#else
-	"040904B0", 	// Germany -> Unicode
-	"040904E4", 	// USA -> Windows, Multilingual
-#endif
-	"04090000", 	// USA -> 7-Bit-ASCII
-	0				// end of table
-}
+#include "version_so.hrc"
 
 // -----------------------------------------------------------------------
 // 				version information
 
 VS_VERSION_INFO versioninfo
 #ifndef SUBVERSION
-	fileversion    VERSION, 0, 0, VERVARIANT
-	productversion VERSION, 0, 0, VERVARIANT
+	fileversion    VERSION, 0, VERVARIANT, VER_COUNT
+	productversion VERSION, 0, VERVARIANT, VER_COUNT
 #else
-	fileversion    VERSION, VERVARIANT, VER_COUNT
-	productversion VERSION, VERVARIANT, VER_COUNT
+	fileversion    VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+	productversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT
 #endif
 	fileflagsmask 0x3F
 	fileflags
 		}
 	}
 
-// version binary entry
-VS_VERSION_INFO rcdata
-{
-	0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY,
-	VERSION, VERVARIANT, VER_COUNT
-};
-
-
 2 ICON "icons\\so9_writer_doc.ico"
 3 ICON "icons\\so9_writer_tem.ico"
 4 ICON "icons\\so9_calc_doc.ico"

File desktop/win32/source/applauncher/makefile.mk

 
 # SO launcher
 .IF "$(BUILD_SPECIAL)"!=""
+APP1DEPN= $(APP1RES) verinfo.rc
 APP1TARGET=so$/swriter
 APP1NOSAL=TRUE
 APP1LINKRES=$(MISC)$/$(TARGET)1.res
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/swriter.obj
 APP1STDLIBS = $(SHELL32LIB)
+APP1VERINFO=verinfo.rc
+APP1PRODUCTDEF+=-DRES_APP_NAME=swriter
 
 APP2TARGET=so$/scalc
 APP2NOSAL=TRUE
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/scalc.obj
 APP2STDLIBS = $(SHELL32LIB)
+APP2DEPN=verinfo.rc
+APP2VERINFO=verinfo.rc
+APP2PRODUCTDEF+=-DRES_APP_NAME=scalc
 
 APP3TARGET=so$/sdraw
 APP3NOSAL=TRUE
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/sdraw.obj
 APP3STDLIBS = $(SHELL32LIB)
+APP3DEPN=verinfo.rc
+APP3VERINFO=verinfo.rc
+APP3PRODUCTDEF+=-DRES_APP_NAME=sdraw
 
 APP4TARGET=so$/simpress
 APP4NOSAL=TRUE
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/simpress.obj
 APP4STDLIBS = $(SHELL32LIB)
+APP4DEPN=verinfo.rc
+APP4VERINFO=verinfo.rc
+APP4PRODUCTDEF+=-DRES_APP_NAME=simpress
 
 APP5TARGET=so$/sbase
 APP5NOSAL=TRUE
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/sbase.obj
 APP5STDLIBS = $(SHELL32LIB)
+APP5DEPN=verinfo.rc
+APP5VERINFO=verinfo.rc
+APP5PRODUCTDEF+=-DRES_APP_NAME=sbase
 
 APP6TARGET=so$/smath
 APP6NOSAL=TRUE
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/smath.obj
 APP6STDLIBS = $(SHELL32LIB)
+APP6DEPN=verinfo.rc
+APP6VERINFO=verinfo.rc
+APP6PRODUCTDEF+=-DRES_APP_NAME=smath
 
 APP7TARGET=so$/sweb
 APP7NOSAL=TRUE
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/sweb.obj
 APP7STDLIBS = $(SHELL32LIB)
+APP7DEPN=verinfo.rc
+APP7VERINFO=verinfo.rc
+APP7PRODUCTDEF+=-DRES_APP_NAME=sweb
 
 
 .ENDIF			# "$(BUILD_SPECIAL)"!=""

File desktop/win32/source/applauncher/ooo/makefile.mk

 # --- Files --------------------------------------------------------
 
 APP1TARGET=swriter
+APP1DEPN=verinfo.rc
+APP1VERINFO=verinfo.rc
 APP1NOSAL=TRUE
 APP1LINKRES=$(MISC)$/$(TARGET)1.res
 APP1ICON=$(SOLARRESDIR)$/icons/ooo3_writer_app.ico
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/swriter.obj
 APP1STDLIBS = $(SHELL32LIB)
+APP1PRODUCTDEF+=-DRES_APP_NAME=$(APP1TARGET)
 
 APP2TARGET=scalc
+APP2DEPN=verinfo.rc
+APP2VERINFO=verinfo.rc
 APP2NOSAL=TRUE
 APP2LINKRES=$(MISC)$/$(TARGET)2.res
 APP2ICON=$(SOLARRESDIR)$/icons/ooo3_calc_app.ico
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/scalc.obj
 APP2STDLIBS = $(SHELL32LIB)
+APP2PRODUCTDEF+=-DRES_APP_NAME=$(APP2TARGET)
 
 APP3TARGET=sdraw
+APP3DEPN=verinfo.rc
+APP3VERINFO=verinfo.rc
 APP3NOSAL=TRUE
 APP3LINKRES=$(MISC)$/$(TARGET)3.res
 APP3ICON=$(SOLARRESDIR)$/icons/ooo3_draw_app.ico
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/sdraw.obj
 APP3STDLIBS = $(SHELL32LIB)
+APP3PRODUCTDEF+=-DRES_APP_NAME=$(APP3TARGET)
 
 APP4TARGET=simpress
+APP4DEPN=verinfo.rc
+APP4VERINFO=verinfo.rc
 APP4NOSAL=TRUE
 APP4LINKRES=$(MISC)$/$(TARGET)4.res
 APP4ICON=$(SOLARRESDIR)$/icons/ooo3_impress_app.ico
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/simpress.obj
 APP4STDLIBS = $(SHELL32LIB)
+APP4PRODUCTDEF+=-DRES_APP_NAME=$(APP4TARGET)
 
 APP5TARGET=smath
+APP5DEPN=verinfo.rc
+APP5VERINFO=verinfo.rc
 APP5NOSAL=TRUE
 APP5LINKRES=$(MISC)$/$(TARGET)5.res
 APP5ICON=$(SOLARRESDIR)$/icons/ooo3_math_app.ico
 		$(OBJ)$/launcher.obj\
         $(OBJ)$/smath.obj
 APP5STDLIBS = $(SHELL32LIB)
+APP5PRODUCTDEF+=-DRES_APP_NAME=$(APP5TARGET)
 
 APP6TARGET=sbase
+APP6DEPN=verinfo.rc
+APP6VERINFO=verinfo.rc
 APP6NOSAL=TRUE
 APP6LINKRES=$(MISC)$/$(TARGET)6.res
 APP6ICON=$(SOLARRESDIR)$/icons/ooo3_base_app.ico
 		$(OBJ)$/launcher.obj\
        $(OBJ)$/sbase.obj
 APP6STDLIBS = $(SHELL32LIB)
+APP6PRODUCTDEF+=-DRES_APP_NAME=$(APP6TARGET)
 
 APP7TARGET=sweb
+APP7DEPN=verinfo.rc
+APP7VERINFO=verinfo.rc
 APP7NOSAL=TRUE
 APP7LINKRES=$(MISC)$/$(TARGET)7.res
 APP7ICON=$(SOLARRESDIR)$/icons/ooo3_html_doc.ico
 		$(OBJ)$/launcher.obj\
        $(OBJ)$/sweb.obj
 APP7STDLIBS = $(SHELL32LIB)
+APP7PRODUCTDEF+=-DRES_APP_NAME=$(APP7TARGET)
 
 # --- Targets ------------------------------------------------------
 

File desktop/win32/source/applauncher/ooo/verinfo.rc

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2009 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ *************************************************************************/
+
+#if !defined(ENGLISH)
+#define LG_D 					// generate always german version
+#endif
+
+#define VER_FIRSTYEAR	2009
+
+#include <windows.h>
+#include "version.hrc"
+
+// -----------------------------------------------------------------------
+// 				version information
+// -----------------------------------------------------------------------
+
+VS_VERSION_INFO versioninfo
+	fileversion    VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+	productversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+	fileflagsmask 0x3F
+	fileflags
+#if defined(DEBUG)
+	VS_FF_DEBUG |
+#endif
+#ifdef VER_PREL
+	VS_FF_PRERELEASE |
+#endif
+	0
+#ifndef WIN32
+	fileos VOS_DOS_WINDOWS16
+#else
+	fileos VOS_NT_WINDOWS32
+#endif
+	filetype VFT_APP
+	{
+		block "StringFileInfo"
+		{
+#ifdef LG_D
+			block "040704E4"
+			{
+				// German StringTable
+				value "CompanyName",		"OpenOffice.org\0"
+				value "FileDescription", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
+				value "FileVersion",		PPS(VER_LEVEL) "\0"
+				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+				value "OriginalFilename",	PPS(RES_APP_NAME) ".exe\0"
+				value "InternalName",		PPS(RES_APP_NAME) "\0"
+				value "LegalCopyright",		S_CRIGHT " Sun Microsystems, Inc.\0"
+			}
+#else
+			block "040904E4"
+			{
+				// International StringTable
+				value "CompanyName", 		"OpenOffice.org\0"
+				value "FileDescription",	"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
+				value "FileVersion",		PPS(VER_LEVEL) "\0"
+				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+				value "OriginalFilename",	PPS(RES_APP_NAME) ".exe\0"
+				value "InternalName",		PPS(RES_APP_NAME) "\0"
+				value "LegalCopyright", 	S_CRIGHT " Sun Microsystems, Inc.\0"
+			}
+#endif
+		}
+
+		block "VarFileInfo"
+		{
+#ifdef LG_D
+			value "Translation", 0x0407, 1252
+#else
+			value "Translation", 0x0409, 1252
+#endif
+		}
+	}

File desktop/win32/source/applauncher/verinfo.rc

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2009 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ *************************************************************************/
+
+#if !defined(ENGLISH)
+#define LG_D 					// generate always german version
+#endif
+
+#define VER_FIRSTYEAR	2009
+
+#include <windows.h>
+#include "version_so.hrc"
+
+// -----------------------------------------------------------------------
+// 				version information
+// -----------------------------------------------------------------------
+
+VS_VERSION_INFO versioninfo
+#ifndef SUBVERSION
+	fileversion    VERSION, 0, VERVARIANT, VER_COUNT
+	productversion VERSION, 0, VERVARIANT, VER_COUNT
+#else
+	fileversion    VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+	productversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+#endif
+	fileflagsmask 0x3F
+	fileflags
+#if defined(DEBUG)
+	VS_FF_DEBUG |
+#endif
+#ifdef VER_PREL
+	VS_FF_PRERELEASE |
+#endif
+	0
+#ifndef WIN32
+	fileos VOS_DOS_WINDOWS16
+#else
+	fileos VOS_NT_WINDOWS32
+#endif
+	filetype VFT_APP
+	{
+		block "StringFileInfo"
+		{
+#ifdef LG_D
+			block "040704E4"
+			{
+				// German StringTable
+				value "CompanyName",		"Sun Microsystems, Inc.\0"
+				value "FileDescription", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
+				value "FileVersion",		PPS(VER_LEVEL) "\0"
+				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+				value "OriginalFilename",	PPS(RES_APP_NAME) ".exe\0"
+				value "InternalName",		PPS(RES_APP_NAME) "\0"
+				value "LegalCopyright",		S_CRIGHT " Sun Microsystems, Inc.\0"
+			}
+#else
+			block "040904E4"
+			{
+				// International StringTable
+				value "CompanyName", 		"Sun Microsystems, Inc.\0"
+				value "FileDescription",	"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
+				value "FileVersion",		PPS(VER_LEVEL) "\0"
+				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+				value "OriginalFilename",	PPS(RES_APP_NAME) ".exe\0"
+				value "InternalName",		PPS(RES_APP_NAME) "\0"
+				value "LegalCopyright", 	S_CRIGHT " Sun Microsystems, Inc.\0"
+			}
+#endif
+		}
+
+		block "VarFileInfo"
+		{
+#ifdef LG_D
+			value "Translation", 0x0407, 1252
+#else
+			value "Translation", 0x0409, 1252
+#endif
+		}
+	}

File desktop/win32/source/setup/Resource.h

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: Resource.h,v $
- * $Revision: 1.7 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
 #define IDS_UNKNOWN_ERROR	21
 #define IDS_INVALID_PROFILE	22
 #define IDS_UNKNOWN_LANG	23
+#define IDS_SETUP_TO_OLD    24
+#define IDS_SETUP_NOT_FOUND 25
 #define IDS_LANGUAGE_ENGLISH	50
 #define IDS_LANGUAGE_SPAIN	51
 #define IDS_LANGUAGE_GERMAN	52

File desktop/win32/source/setup/rctmpl.txt

 	IDS_REQUIRES_ADMIN_PRIV	%REQUIRES_ADMIN_PRIV%
 	IDS_FILE_NOT_FOUND	%FILE_NOT_FOUND%
 	IDS_INVALID_PARAM	%INVALID_PARAM%
-	IDS_ALLOW_MSI_UPDATE	%ALLOW_MSI_UPDATE%
+	IDS_SETUP_TO_OLD	%SETUP_TO_OLD%
+	IDS_SETUP_NOT_FOUND	%SETUP_NOT_FOUND%
 	IDS_USAGE	%USAGE%
 	IDS_ALREADY_RUNNING	%ALREADY_RUNNING%
 	IDS_UNKNOWN_ERROR	%UNKNOWN_ERROR%

File desktop/win32/source/setup/setup.cpp

 #define PRODUCT_NAME_VAR    TEXT( "%PRODUCTNAME" )
 #define PRODUCT_VERSION     TEXT( "ProductVersion" )
 #define ERROR_SHOW_USAGE      -2
+#define ERROR_SETUP_TO_OLD    -3
+#define ERROR_SETUP_NOT_FOUND -4
 
 #define PARAM_SETUP_USED    TEXT( " SETUP_USED=1 " )
 #define PARAM_PACKAGE       TEXT( "/I " )
     m_pCmdLine  = NULL;
 
     m_pDatabase = NULL;
-    m_pInstMsiW = NULL;
-    m_pInstMsiA = NULL;
     m_pReqVersion   = NULL;
     m_pProductName  = NULL;
     m_pAdvertise    = NULL;
 
     if ( m_pAppTitle ) delete [] m_pAppTitle;
     if ( m_pDatabase ) delete [] m_pDatabase;
-    if ( m_pInstMsiW ) delete [] m_pInstMsiW;
-    if ( m_pInstMsiA ) delete [] m_pInstMsiA;
     if ( m_pReqVersion ) delete [] m_pReqVersion;
     if ( m_pProductName ) delete [] m_pProductName;
     if ( m_pAdvertise )   delete [] m_pAdvertise;
                     m_pDatabase = pValue;
                     Log( TEXT( "    Database = %s\r\n" ), pValue );
                 }
-                else if ( lstrcmpi( TEXT( "instmsiw" ), pName ) == 0 )
-                {
-                    m_pInstMsiW = pValue;
-                    Log( TEXT( "    instmsiw = %s\r\n" ), pValue );
-                }
-                else if ( lstrcmpi( TEXT( "instmsia" ), pName ) == 0 )
-                {
-                    m_pInstMsiA = pValue;
-                    Log( TEXT( "    instmsia = %s\r\n" ), pValue );
-                }
                 else if ( lstrcmpi( TEXT( "msiversion" ), pName ) == 0 )
                 {
                     m_pReqVersion = pValue;
             }
         }
 
-        if ( bRet && ( !m_pDatabase || !m_pInstMsiW || !m_pInstMsiA || !m_pReqVersion || !m_pProductName ) )
+        if ( bRet && ( !m_pDatabase || !m_pReqVersion || !m_pProductName ) )
         {
             Log( TEXT( "ERROR: incomplete 'Setup' section in profile\r\n" ) );
             SetError( ERROR_INVALID_DATA );
                                 StringCchPrintf( sError, MAX_TEXT_LENGTH, sTmp, m_pErrorText );
                                 break;
 
+        case ERROR_SETUP_TO_OLD:    // - 3
+                                WIN::LoadString( m_hInst, IDS_SETUP_TO_OLD, sTmp, MAX_TEXT_LENGTH );
+                                StringCchPrintf( sError, MAX_TEXT_LENGTH, sTmp, m_pReqVersion, m_pErrorText );
+                                break;
+        case ERROR_SETUP_NOT_FOUND: // - 4
+                                WIN::LoadString( m_hInst, IDS_SETUP_NOT_FOUND, sTmp, MAX_TEXT_LENGTH );
+                                StringCchPrintf( sError, MAX_TEXT_LENGTH, sTmp, m_pReqVersion );
+                                break;
         case ERROR_SHOW_USAGE:      // - 2
                                 nMsgType = MB_OK | MB_ICONINFORMATION;
                                 WIN::LoadString( m_hInst, IDS_USAGE, sError, MAX_TEXT_LENGTH );
 //--------------------------------------------------------------------------
 boolean SetupAppX::CheckVersion()
 {
-    boolean bRet = true;
-    boolean bNeedUpdate = true;
+    boolean bRet = false;
     HMODULE hMsi = LoadMsiLibrary();
 
     Log( TEXT( " Looking for installed MSI with version >= %s\r\n" ), m_pReqVersion );
 
     if ( !hMsi )
     {
-        Log( TEXT( "Warning: No MSI found, update needed!\r\n" ) );
+        Log( TEXT( "Error: No MSI found!\r\n" ) );
+        SetError( (UINT) ERROR_SETUP_NOT_FOUND );
     }
     else
     {
                                  aInfo.dwBuildNumber );
                 if ( _tcsncmp( pMsiVersion, m_pReqVersion, _tcslen( pMsiVersion ) ) < 0 )
                 {
+                    StringCchCopy( m_pErrorText, MAX_TEXT_LENGTH, pMsiVersion );
+                    SetError( (UINT) ERROR_SETUP_TO_OLD );
                     Log( TEXT( "Warning: Old MSI version found <%s>, update needed!\r\n" ), pMsiVersion );
                 }
                 else
                 {
                     Log( TEXT( " Found MSI version <%s>, no update needed\r\n" ), pMsiVersion );
-                    bNeedUpdate = false;
+                    bRet = true;
                 }
                 if ( aInfo.dwMajorVersion >= 3 )
                     m_bSupportsPatch = true;
         FreeLibrary( hMsi );
     }
 
-    if ( bNeedUpdate )
-    {
-        LPTSTR  pInstaller = 0;
-
-        if ( IsWin9x() )
-            bRet = GetPathToFile( m_pInstMsiA, &pInstaller );
-        else
-            bRet = GetPathToFile( m_pInstMsiW, &pInstaller );
-
-        if ( bRet )
-            bRet = InstallMsi( pInstaller );
-        else
-            Log( TEXT( "ERROR: Could not find InstMsiA/InstMsiW!\r\n" ) );
-
-        if ( bRet && IsWin9x() && ( GetMinorVersion() <= 10 ) )
-            SetRebootNeeded( true );
-
-        if ( pInstaller ) delete [] pInstaller;
-    }
-
     return bRet;
 }
 
 }
 
 //--------------------------------------------------------------------------
-boolean SetupAppX::InstallMsi( LPCTSTR pInstaller )
-{
-    if ( ! IsAdmin() )
-    {
-        Log( TEXT( "Error: need admin rights to update/install MSI!\r\n" ) );
-        SetError( ERROR_DS_INSUFF_ACCESS_RIGHTS );
-        return false;
-    }
-
-    if ( ! m_bQuiet )
-    {
-        TCHAR sUserPrompt[ MAX_TEXT_LENGTH ] = {0};
-        WIN::LoadString( m_hInst, IDS_ALLOW_MSI_UPDATE, sUserPrompt, MAX_TEXT_LENGTH );
-        ConvertNewline( sUserPrompt );
-
-        if ( IDYES != WIN::MessageBox( NULL, sUserPrompt, m_pAppTitle, MB_YESNO | MB_ICONQUESTION ) )
-        {
-            SetError( ERROR_INSTALL_USEREXIT );
-            Log( TEXT( "Error: User canceled update/installation of new MSI!\r\n" ) );
-            return false;
-        }
-    }
-
-    STARTUPINFO         aSUI;
-    PROCESS_INFORMATION aPI;
-
-    Log( TEXT( " Will install <%s>\r\n" ), pInstaller );
-
-    ZeroMemory( (void*)&aPI, sizeof( PROCESS_INFORMATION ) );
-    ZeroMemory( (void*)&aSUI, sizeof( STARTUPINFO ) );
-
-    aSUI.cb          = sizeof(STARTUPINFO);
-    aSUI.dwFlags     = STARTF_USESHOWWINDOW;
-    aSUI.wShowWindow = SW_SHOW;
-
-    DWORD  nCmdLineLength = lstrlen( pInstaller ) + lstrlen( sDelayReboot ) + 3;
-
-    if ( m_bQuiet )
-        nCmdLineLength += lstrlen( sMsiQuiet );
-
-    TCHAR *sCmdLine = new TCHAR[ nCmdLineLength ];
-
-    if ( FAILED( StringCchCopy( sCmdLine, nCmdLineLength, TEXT("\"")) ) ||
-         FAILED( StringCchCat(  sCmdLine, nCmdLineLength, pInstaller) ) ||
-         FAILED( StringCchCat(  sCmdLine, nCmdLineLength, TEXT("\"")) ) ||
-         FAILED( StringCchCat(  sCmdLine, nCmdLineLength, sDelayReboot) ) ||
-         ( m_bQuiet && FAILED( StringCchCat( sCmdLine, nCmdLineLength, sMsiQuiet ) ) ) )
-    {
-        Log( TEXT( "ERROR: Could not create command line for updating MSI.\r\n" ) );
-        delete [] sCmdLine;
-        SetError( ERROR_INSTALL_FAILURE );
-        return false;
-    }
-
-    if ( !WIN::CreateProcess( NULL, sCmdLine, NULL, NULL, FALSE,
-                              CREATE_DEFAULT_ERROR_MODE, NULL, NULL,
-                              &aSUI, &aPI ) )
-    {
-        Log( TEXT( "ERROR: Could not create process %s.\r\n" ), sCmdLine );
-        SetError( WIN::GetLastError() );
-        delete [] sCmdLine;
-        return false;
-    }
-
-    DWORD nResult = WaitForProcess( aPI.hProcess );
-    
-    if( ERROR_SUCCESS != nResult )
-    {
-        Log( TEXT( "ERROR: While waiting for %s.\r\n" ), sCmdLine );
-        delete [] sCmdLine;
-        SetError( nResult );
-        return false;
-    }
-
-    GetExitCodeProcess( aPI.hProcess, &nResult );
-    CloseHandle( aPI.hProcess );
-
-    if ( nResult != ERROR_SUCCESS )
-    {
-        TCHAR sBuf[80];
-        StringCchPrintf( sBuf, 80, TEXT("Warning: Installation returned %u.\r\n"), nResult );
-        Log( sBuf );
-    }
-    else
-        Log( TEXT( " Installation of new version completed successfully.\r\n" ) );
-
-    delete [] sCmdLine;
-
-    return true;
-}
-
-//--------------------------------------------------------------------------
 boolean SetupAppX::IsTerminalServerInstalled() const
 {
     boolean bIsTerminalServer = false;

File desktop/win32/source/setup/setup.hxx

     LPTSTR      m_pAppTitle;
     LPTSTR      m_pCmdLine;
     LPTSTR      m_pDatabase;
-    LPTSTR      m_pInstMsiW;
-    LPTSTR      m_pInstMsiA;
     LPTSTR      m_pReqVersion;
     LPTSTR      m_pProductName;
     LPTSTR      m_pAdvertise;
 
 
     boolean     GetCommandLine();
-    boolean     InstallMsi( LPCTSTR pInstaller );
 
     boolean     IsTerminalServerInstalled() const;
     void        AddFileToPatchList( TCHAR* pPath, TCHAR* pFile );

File desktop/win32/source/setup/setup.ulf

 en-US = "Invalid command line option '%s'. Please use '/?' for help."
 
 
-[%ALLOW_MSI_UPDATE%]
-en-US = "This package requires a newer version of the Windows Installer. \nDo you want to update the version of the Windows Installer on your system?"
+[%SETUP_TO_OLD%]
+en-US = "This package requires at least the version '%s' of the Windows Installer. \nYou have Windows Installer '%s' on your system!"
+
+[%SETUP_NOT_FOUND%]
+en-US = "This package requires the Windows Installer. \nYou need at least Windows Installer '%s' on your system!"
 
 
 [%USAGE%]

File desktop/win32/source/setup/setup_main.cxx

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: setup_main.cxx,v $
- * $Revision: 1.8 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify

File extensions/source/update/check/updatecheckconfig.cxx

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: updatecheckconfig.cxx,v $
- * $Revision: 1.11 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
     }
 #else
     // This should become a desktop specific setting in some system backend ..
-    osl::Security().getHomeDir(aRet);
-    aRet += rtl::OUString::createFromAscii("/Desktop");
+    rtl::OUString aHomeDir;
+    osl::Security().getHomeDir( aHomeDir );
+    aRet = aHomeDir + rtl::OUString::createFromAscii("/Desktop");
+
+    // Set path to home directory when there is no /Desktop directory
+    osl::Directory aDocumentsDir( aRet );
+    if( osl::FileBase::E_None != aDocumentsDir.open() )
+        aRet = aHomeDir;
 #endif
     
     return aRet;

File extensions/source/update/check/updatecheckjob.cxx

 namespace 
 { 
 
+class InitUpdateCheckJobThread : public osl::Thread
+{
+public:
+    InitUpdateCheckJobThread( const uno::Reference< uno::XComponentContext > &xContext,
+                              const uno::Sequence< beans::NamedValue > &xParameters );
+
+    virtual void SAL_CALL run();
+    virtual void SAL_CALL onTerminated();
+
+    void    showDialog();
+
+protected:
+    ~InitUpdateCheckJobThread();
+
+private:
+    osl::Condition m_aCondition;
+    uno::Reference<uno::XComponentContext> m_xContext;
+    uno::Sequence<beans::NamedValue> m_xParameters;
+    bool m_bShowDialog; 
+};
+
 class UpdateCheckJob : 
     public ::cppu::WeakImplHelper2< task::XJob, lang::XServiceInfo >
 {    
         throw (uno::RuntimeException);
 
 private:
-    uno::Reference<uno::XComponentContext> m_xContext;
+    uno::Reference<uno::XComponentContext>  m_xContext;
+    InitUpdateCheckJobThread               *m_pInitThread;
 
     void handleExtensionUpdates( const uno::Sequence< beans::NamedValue > &rListProp );
 };
 
 //------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+InitUpdateCheckJobThread::InitUpdateCheckJobThread(
+            const uno::Reference< uno::XComponentContext > &xContext,
+            const uno::Sequence< beans::NamedValue > &xParameters ) : 
+    m_xContext( xContext ),
+    m_xParameters( xParameters ),
+    m_bShowDialog( false )
+{
+    create();
+}
+
+//------------------------------------------------------------------------------
+InitUpdateCheckJobThread::~InitUpdateCheckJobThread()
+{
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL InitUpdateCheckJobThread::run()
+{
+    TimeValue tv = { 25, 0 };
+
+    m_aCondition.wait( &tv );
+
+    rtl::Reference< UpdateCheck > aController( UpdateCheck::get() );
+    aController->initialize( m_xParameters, m_xContext );
+
+    if ( m_bShowDialog )
+        aController->showDialog( true );
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL InitUpdateCheckJobThread::onTerminated()
+{
+    delete this;
+}
+
+//------------------------------------------------------------------------------
+void InitUpdateCheckJobThread::showDialog()
+{
+    m_bShowDialog = true;
+    m_aCondition.set();
+}
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 
 UpdateCheckJob::UpdateCheckJob(const uno::Reference<uno::XComponentContext>& xContext) : 
-    m_xContext(xContext)
+    m_xContext(xContext),
+    m_pInitThread( NULL )
 {
 }
 
             }
         }
     }
+
     uno::Sequence<beans::NamedValue> aConfig = 
         getValue< uno::Sequence<beans::NamedValue> > (namedValues, "JobConfig");
-    
-    rtl::Reference<UpdateCheck> aController(UpdateCheck::get());
-    aController->initialize(aConfig, m_xContext);
-    
+    m_pInitThread = new InitUpdateCheckJobThread( m_xContext, aConfig );
+
     /* Determine the way we got invoked here - 
      * see Developers Guide Chapter "4.7.2 Jobs" to understand the magic
      */
     
     if( ! aEventName.equalsAscii("onFirstVisibleTask") )
     {
-        aController->showDialog(true);
+        m_pInitThread->showDialog();
     }
     
     return uno::Any();

File scp2/inc/macros.inc

         Value = "\"<progpath>\program\\" STRING(app) "\" -pt \"%2\" \"%1\""; \
     End
 
+#define REGISTRY_ENTRY_CAPABILITIES(name,modid,key,doc_type) \
+    RegistryItem CONCAT2(gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_,name) \
+        ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \
+        ModuleID = modid; \
+        Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \
+        Name = STRING(CONCAT2(.,key)); \
+        Value = STRING(CONCAT3(opendocument.,doc_type,Document.1)); \
+        Styles = (); \
+    End
+
 #define CONDITIONAL_REGISTER_DOC_EXTENSION(name,modid,key,cond,disp_name,icon_id,app,default,doc_type) \
     CONDITIONAL_MODULE_ENTRY(name,modid) \
     REGISTRY_ENTRY_OPEN_WITH(name,cond,doc_type,modid,key) \
     REGISTRY_ENTRY_OPEN_CMD(name,modid,app) \
     REGISTRY_ENTRY_PRINT_CMD(name,modid,app) \
     REGISTRY_ENTRY_PRINTTO_CMD(name,modid,app) \
+    REGISTRY_ENTRY_CAPABILITIES(name,modid,key,doc_type) \
 
 // ---------------------------------------
 

File scp2/source/base/file_base.scp

     BIN_FILE_BODY;
     Dir = gid_Brand_Dir_Program;
     Name = EXENAME(sbase);
+  #ifdef WNT
+    FileDescription = "%PRODUCTNAME Base";
+    Styles = (PACKED, PATCH_SO_NAME);
+  #else
     Styles = (PACKED);
+  #endif
 End
 
 #if defined WNT

File scp2/source/base/registryitem_base.scp

 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Odb
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Base_Bin;
     Name = ".odb";
-    Value = "opendocument.ImpressDocument.1";
+    Value = "opendocument.DatabaseDocument.1";
     Styles = ();
 End
 

File scp2/source/calc/file_calc.scp

     BIN_FILE_BODY;
     Dir = gid_Brand_Dir_Program;
     Name = EXENAME(scalc);
+  #ifdef WNT
+    FileDescription = "%PRODUCTNAME Calc";
+    Styles = (PACKED, PATCH_SO_NAME);
+  #else
     Styles = (PACKED);
+  #endif
 End

File scp2/source/calc/registryitem_calc.scp

 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_sxc
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".sxc";
     Value = "soffice.StarCalcDocument.6";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_ods
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".ods";
     Value = "opendocument.CalcDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Stc
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".stc";
     Value = "opendocument.CalcDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Dif
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".dif";
     Value = "opendocument.CalcDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Dbf
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".dbf";
     Value = "opendocument.CalcDocument.1";
     Styles = ();
 End
 
-RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Xls
-    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
-    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
-    Name = ".xls";
-    Value = "opendocument.CalcDocument.1";
-    Styles = ();
-End
-
-RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Xlw
-    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
-    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
-    Name = ".xlw";
-    Value = "opendocument.CalcDocument.1";
-    Styles = ();
-End
-
-RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Xlt
-    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
-    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
-    Name = ".xlt";
-    Value = "opendocument.CalcDocument.1";
-    Styles = ();
-End
-
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Slk
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".slk";
     Value = "opendocument.CalcDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Csv
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".csv";
     Value = "opendocument.CalcDocument.1";
     Styles = ();
 End
 
+RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Xlw
+    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
+    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
+    ModuleID = gid_Module_Prg_Calc_Bin;
+    Name = ".xlw";
+    Value = "opendocument.CalcDocument.1";
+    Styles = ();
+End
+
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Wk1
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".wk1";
     Value = "opendocument.CalcDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Wks
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".wks";
     Value = "opendocument.CalcDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_123
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Calc_Bin;
     Name = ".123";
     Value = "opendocument.CalcDocument.1";
     Styles = ();

File scp2/source/crashrep/file_crashrep_dynamic.scp

  *
  * OpenOffice.org - a multi-platform office productivity suite
  *
- * $RCSfile: file_crashrep_dynamic.scp,v $
- * $Revision: 1.9 $
- *
  * This file is part of OpenOffice.org.
  *
  * OpenOffice.org is free software: you can redistribute it and/or modify
   #endif
     Dir = gid_Brand_Dir_Program;
   #ifdef WNT
+    FileDescription = "%PRODUCTNAME Crashreporter";
     Styles = (PACKED, PATCH_SO_NAME);
   #else
     Styles = (PACKED);

File scp2/source/draw/file_draw.scp

     BIN_FILE_BODY;
     Dir = gid_Brand_Dir_Program;
     Name = EXENAME(sdraw);
+  #ifdef WNT
+    FileDescription = "%PRODUCTNAME Draw";
+    Styles = (PACKED, PATCH_SO_NAME);
+  #else
     Styles = (PACKED);
+  #endif
 End
 
 // new user interface configuration files

File scp2/source/draw/registryitem_draw.scp

 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_sxd
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Draw_Bin;
     Name = ".sxd";
     Value = "soffice.StarDrawDocument.6";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_odg
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Draw_Bin;
     Name = ".odg";
     Value = "opendocument.DrawDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Otg
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Draw_Bin;
     Name = ".otg";
-    Value = "opendocument.ImpressDocument.1";
+    Value = "opendocument.DrawDocument.1";
     Styles = ();
 End
 
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Std
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Draw_Bin;
     Name = ".std";
-    Value = "opendocument.ImpressDocument.1";
+    Value = "opendocument.DrawDocument.1";
     Styles = ();
 End
 

File scp2/source/impress/file_impress.scp

     BIN_FILE_BODY;
     Dir = gid_Brand_Dir_Program;
     Name = EXENAME(simpress);
+  #ifdef WNT
+    FileDescription = "%PRODUCTNAME Impress";
+    Styles = (PACKED, PATCH_SO_NAME);
+  #else
     Styles = (PACKED);
+  #endif
 End
 
 // new user interface configuration files

File scp2/source/impress/registryitem_impress.scp

 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_sxi
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Impress_Bin;
     Name = ".sxi";
     Value = "soffice.StarImpressDocument.6";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_odp
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Impress_Bin;
     Name = ".odp";
     Value = "opendocument.ImpressDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Otp
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Impress_Bin;
     Name = ".otp";
     Value = "opendocument.ImpressDocument.1";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Sti
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Impress_Bin;
     Name = ".sti";
     Value = "opendocument.ImpressDocument.1";
     Styles = ();
 End
 
-RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Ppt
-    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
-    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
-    Name = ".ppt";
-    Value = "opendocument.ImpressDocument.1";
-    Styles = ();
-End
-
-RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Pps
-    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
-    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
-    Name = ".pps";
-    Value = "opendocument.ImpressDocument.1";
-    Styles = ();
-End
-
-RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Pot
-    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
-    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
-    Name = ".pot";
-    Value = "opendocument.ImpressDocument.1";
-    Styles = ();
-End
-
 RegistryItem gid_Regitem_Software_Microsoft_Windows_Currentversion_Apppaths_Simpress_Exe
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\Microsoft\Windows\CurrentVersion\App Paths\simpress.exe";

File scp2/source/math/file_math.scp

     BIN_FILE_BODY;
     Dir = gid_Brand_Dir_Program;
     Name = EXENAME(smath);
+  #ifdef WNT
+    FileDescription = "%PRODUCTNAME Math";
+    Styles = (PACKED, PATCH_SO_NAME);
+  #else
     Styles = (PACKED);
+  #endif
 End
 
 // new user interface configuration files

File scp2/source/math/registryitem_math.scp

 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_sxm
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Math_Bin;
     Name = ".sxm";
     Value = "soffice.StarMathDocument.6";
     Styles = ();
 RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_odf
     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-    ModuleID = gid_Module_Root;
+    ModuleID = gid_Module_Prg_Math_Bin;
     Name = ".odf";
     Value = "opendocument.MathDocument.1";
     Styles = ();
 // RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_Mml
 //     ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
 //     Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
-//     ModuleID = gid_Module_Root;
+//     ModuleID = gid_Module_Prg_Math_Bin;
 //     Name = ".mml";
 //     Value = "opendocument.MathDocument.1";
 //     Styles = ();

File scp2/source/ooo/windowscustomaction_ooo.scp

 	Assignment1 = ("InstallExecuteSequence", "(Not Installed or ISPATCH) and Not REMOVE=\"ALL\"", "end");
 End
 
+WindowsCustomAction gid_Customaction_ShowSurvey
+	Name = "ShowSurveyAfterUninstall";
+	Typ = "65";
+	Source = "relnotes.dll";
+	Target = "ShowSurveyAfter";
+	Inbinarytable = 1;
+	Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" and Not UPGRADINGPRODUCTCODE", "end");
+End

File scp2/source/writer/file_writer.scp

     BIN_FILE_BODY;
     Dir = gid_Brand_Dir_Program;
     Name = EXENAME(swriter);
+  #ifdef WNT
+    FileDescription = "%PRODUCTNAME Writer";