diff --git a/scp2/inc/macros.inc b/scp2/inc/macros.inc index d776797cf91c..893e675e3ad8 100755 --- a/scp2/inc/macros.inc +++ b/scp2/inc/macros.inc @@ -505,12 +505,18 @@ End #define REGISTER_PROPERTY_HANDLER_FOR_EXTENSION(extension) \ RegistryItem CONCAT2(gid_Regitem_Software_Microsoft_Windows_CurrentVersion_PropertySystem_PropertyHandlers_,extension) \ ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \ - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; \ + ModuleID = gid_Module_Optional_Winexplorerext; \ ComponentCondition = "VersionNT >= 600"; \ - Styles = (X64); \ Subkey = STRING(CONCAT2(SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.,extension)); \ Value = "{AE424E85-F6DF-4910-A6A9-438797986431}"; \ - Val64 = "{AE424E85-F6DF-4910-A6A9-438797986431}"; \ + End \ +\ + RegistryItem CONCAT3(gid_Regitem_Software_Microsoft_Windows_CurrentVersion_PropertySystem_PropertyHandlers_,extension,_x64) \ + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \ + ModuleID = gid_Module_Optional_Winexplorerext_x64; \ + ComponentCondition = "VersionNT64 >= 600"; \ + Subkey = STRING(CONCAT2(SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.,extension)); \ + Value = "{AE424E85-F6DF-4910-A6A9-438797986431}"; \ End #else diff --git a/scp2/source/base/registryitem_base.scp b/scp2/source/base/registryitem_base.scp index 6cf2817b1dcb..0cf17820f057 100644 --- a/scp2/source/base/registryitem_base.scp +++ b/scp2/source/base/registryitem_base.scp @@ -114,7 +114,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_odb_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.DatabaseDocument.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; diff --git a/scp2/source/calc/registryitem_calc.scp b/scp2/source/calc/registryitem_calc.scp index d981008dc101..542aed3544ee 100644 --- a/scp2/source/calc/registryitem_calc.scp +++ b/scp2/source/calc/registryitem_calc.scp @@ -533,7 +533,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_stc_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarCalcTemplate.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -585,7 +585,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_sxc_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarCalcDocument.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -727,7 +727,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_ods_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.CalcDocument.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -955,7 +955,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_ots_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.CalcTemplate.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; diff --git a/scp2/source/draw/registryitem_draw.scp b/scp2/source/draw/registryitem_draw.scp index 367b3a3d6d30..d82a59f6af95 100644 --- a/scp2/source/draw/registryitem_draw.scp +++ b/scp2/source/draw/registryitem_draw.scp @@ -505,7 +505,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_std_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarDrawTemplate.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -584,7 +584,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_sxd_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarDrawDocument.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -727,7 +727,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_odg_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.DrawDocument.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -955,7 +955,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_otg_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.DrawTemplate.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; diff --git a/scp2/source/impress/registryitem_impress.scp b/scp2/source/impress/registryitem_impress.scp index 5a732fb1f388..d24f43df548d 100644 --- a/scp2/source/impress/registryitem_impress.scp +++ b/scp2/source/impress/registryitem_impress.scp @@ -519,7 +519,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_sti_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarImpressTemplate.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -598,7 +598,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_sxi_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarImpressDocument.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -742,7 +742,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_odp_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.ImpressDocument.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -984,7 +984,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_otp_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.ImpressTemplate.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; diff --git a/scp2/source/math/registryitem_math.scp b/scp2/source/math/registryitem_math.scp index 1eea1a49101f..c4f808ff42ab 100644 --- a/scp2/source/math/registryitem_math.scp +++ b/scp2/source/math/registryitem_math.scp @@ -448,7 +448,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_sxm_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarMathDocument.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -583,7 +583,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_odf_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.MathDocument.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; diff --git a/scp2/source/ooo/windowscustomaction_ooo.scp b/scp2/source/ooo/windowscustomaction_ooo.scp index c111e179c542..077cd6e5e214 100644 --- a/scp2/source/ooo/windowscustomaction_ooo.scp +++ b/scp2/source/ooo/windowscustomaction_ooo.scp @@ -81,24 +81,6 @@ WindowsCustomAction gid_Customaction_Regactivexdll2 Assignment1 = ("InstallExecuteSequence", "\&FEATURETEMPLATE=2 And \!FEATURETEMPLATE=3 And Not PATCH", "RemoveExistingProducts"); End -WindowsCustomAction gid_Customaction_Reg64dll1 - Name = "Reg64dll1"; - Typ = "65"; - Source = "reg64msi.dll"; - Target = "InstallReg64"; - Inbinarytable = 1; - Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" and VersionNT64", "end"); -End - -WindowsCustomAction gid_Customaction_Reg64dll2 - Name = "Reg64dll2"; - Typ = "65"; - Source = "reg64msi.dll"; - Target = "DeinstallReg64"; - Inbinarytable = 1; - Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" and VersionNT64", "end"); -End - #ifdef HAVE_WINDOWS_SDK WindowsCustomAction gid_Customaction_Jfregcadll1 @@ -139,24 +121,6 @@ End #endif /* HAVE_WINDOWS_SDK */ -WindowsCustomAction gid_Customaction_Shellextensionsdll1 - Name = "Shellextensionsdll1"; - Typ = "65"; - Source = "shlxtmsi.dll"; - Target = "InstallExecSequenceEntry"; - Inbinarytable = 1; - Assignment1 = ("InstallExecuteSequence", "\&FEATURETEMPLATE=3 And Not PATCH", "end"); -End - -WindowsCustomAction gid_Customaction_Shellextensionsdll2 - Name = "Shellextensionsdll2"; - Typ = "65"; - Source = "shlxtmsi.dll"; - Target = "DeinstallExecSequenceEntry"; - Inbinarytable = 1; - Assignment1 = ("InstallExecuteSequence", "\&FEATURETEMPLATE=2 And \!FEATURETEMPLATE=3 And Not PATCH", "end"); -End - WindowsCustomAction gid_Customaction_Instooofiltmsidll2 Name = "Instooofiltmsidll"; Typ = "65"; diff --git a/scp2/source/winexplorerext/file_winexplorerext.scp b/scp2/source/winexplorerext/file_winexplorerext.scp index 59a009962ad0..f2a2a89e8ec6 100644 --- a/scp2/source/winexplorerext/file_winexplorerext.scp +++ b/scp2/source/winexplorerext/file_winexplorerext.scp @@ -59,7 +59,7 @@ File gid_File_Lib_Shlxthdl End #ifdef BUILD_X64 - File gid_File_Lib_Shlxthdl64 + File gid_File_Lib_Shlxthdl64 LIB_FILE_BODY; Styles = (PACKED); Dir = gid_Dir_Shlxthdl; @@ -74,15 +74,17 @@ File gid_File_Lib_PropertyHdl Styles = (PACKED); Dir = gid_Dir_Shlxthdl; Name = "propertyhdl.dll"; + ComponentCondition = "VersionNT >= 600"; + End #ifdef BUILD_X64 - File gid_File_Lib_PropertyHdl64 + File gid_File_Lib_PropertyHdl64 LIB_FILE_BODY; Styles = (PACKED); Dir = gid_Dir_Shlxthdl; Name = "propertyhdl_x64.dll"; - ComponentCondition = "VersionNT64"; + ComponentCondition = "VersionNT64 >= 600"; End #endif @@ -93,11 +95,3 @@ File gid_File_Lib_Shlxtmsi Dir = SCP2_OOO_BIN_DIR; Name = "shlxtmsi.dll"; End - -File gid_File_Lib_Reg64 - LIB_FILE_BODY; - Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY); - Dir = SCP2_OOO_BIN_DIR; - Name = "reg64msi.dll"; -End - diff --git a/scp2/source/winexplorerext/module_winexplorerext.scp b/scp2/source/winexplorerext/module_winexplorerext.scp index f20edccc59ae..3932e4f4d7c9 100644 --- a/scp2/source/winexplorerext/module_winexplorerext.scp +++ b/scp2/source/winexplorerext/module_winexplorerext.scp @@ -35,22 +35,21 @@ Module gid_Module_Optional_Winexplorerext ParentID = gid_Module_Optional; Dirs = (gid_Dir_Shlxthdl); Files = (gid_File_Lib_Shlxthdl, - gid_File_Lib_Shlxthdl64, - gid_File_Lib_OOoFilt, - gid_File_Lib_OOoFilt64, + gid_File_Lib_OOoFilt, + gid_File_Lib_PropertyHdl, gid_File_Lib_Shlxtmsi, - gid_File_Lib_Reg64, gid_File_Tmp_Userinstall_Winexplorerext_Inf); End -Module gid_Module_Optional_Winexplorerext_PropertyHdl - ParentID = gid_Module_Optional_Winexplorerext; - Name = "gid_Module_Optional_Winexplorerext_PropertyHdl"; - Description = "gid_Module_Optional_Winexplorerext_PropertyHdl"; - Sortkey = "1210"; - Default = YES; - Styles = (HIDDEN_ROOT); +Module gid_Module_Optional_Winexplorerext_x64 + ParentID = gid_Module_Optional_Winexplorerext; + Name = "gid_Module_Optional_Winexplorerext_x64"; + Description = "gid_Module_Optional_Winexplorerext_x64"; + Sortkey = "1210"; + Default = YES; + Styles = (HIDDEN_ROOT); Dirs = (gid_Dir_Shlxthdl); - Files = (gid_File_Lib_PropertyHdl, - gid_File_Lib_PropertyHdl64); + Files = (gid_File_Lib_Shlxthdl64, + gid_File_Lib_OOoFilt64, + gid_File_Lib_PropertyHdl64); End diff --git a/scp2/source/winexplorerext/registryitem_winexplorerext.scp b/scp2/source/winexplorerext/registryitem_winexplorerext.scp index 32a5ef8658ca..dc1ec5f50ae1 100644 --- a/scp2/source/winexplorerext/registryitem_winexplorerext.scp +++ b/scp2/source/winexplorerext/registryitem_winexplorerext.scp @@ -33,20 +33,50 @@ RegistryItem gid_Regitem_Clsid_087B3AE3_E237_4467_B8DB_5A38AB959AC9_InProcServer32 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "CLSID\{087B3AE3-E237-4467-B8DB-5A38AB959AC9}\InprocServer32"; Value = "[INSTALLLOCATION]program\shlxthdl\shlxthdl.dll"; - Val64 = "[INSTALLLOCATION]program\shlxthdl\shlxthdl_x64.dll"; +End + +RegistryItem gid_Regitem_Clsid_087B3AE3_E237_4467_B8DB_5A38AB959AC9_InProcServer32_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{087B3AE3-E237-4467-B8DB-5A38AB959AC9}\InprocServer32"; + Value = "[INSTALLLOCATION]program\shlxthdl\shlxthdl_x64.dll"; End RegistryItem gid_Regitem_Clsid_087B3AE3_E237_4467_B8DB_5A38AB959AC9_InProcServer32_ThreadingModel ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "CLSID\{087B3AE3-E237-4467-B8DB-5A38AB959AC9}\InprocServer32"; Name = "ThreadingModel"; Value = "Apartment"; - Val64 = "Apartment"; +End + +RegistryItem gid_Regitem_Clsid_087B3AE3_E237_4467_B8DB_5A38AB959AC9_InProcServer32_ThreadingModel_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{087B3AE3-E237-4467-B8DB-5A38AB959AC9}\InprocServer32"; + Name = "ThreadingModel"; + Value = "Apartment"; +End + +RegistryItem gid_Regitem_Clsid_087B3AE3_E237_4467_B8DB_5A38AB959AC9_Approved + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}"; + Value = "%PRODUCTNAME Infotip Handler"; +End + +RegistryItem gid_Regitem_Clsid_087B3AE3_E237_4467_B8DB_5A38AB959AC9_Approved_x64 + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}"; + Value = "%PRODUCTNAME Infotip Handler"; End // End registry items for the Infotip handler @@ -56,22 +86,53 @@ End RegistryItem gid_Regitem_Clsid_3B092F0C_7696_40E3_A80F_68D74DA84210_InProcServer32 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "CLSID\{3B092F0C-7696-40E3-A80F-68D74DA84210}\InprocServer32"; Value = "[INSTALLLOCATION]program\shlxthdl\shlxthdl.dll"; - Val64 = "[INSTALLLOCATION]program\shlxthdl\shlxthdl_x64.dll"; +End + +RegistryItem gid_Regitem_Clsid_3B092F0C_7696_40E3_A80F_68D74DA84210_InProcServer32_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{3B092F0C-7696-40E3-A80F-68D74DA84210}\InprocServer32"; + Value = "[INSTALLLOCATION]program\shlxthdl\shlxthdl_x64.dll"; End RegistryItem gid_Regitem_Clsid_3B092F0C_7696_40E3_A80F_68D74DA84210_InProcServer32_ThreadingModel ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "CLSID\{3B092F0C-7696-40E3-A80F-68D74DA84210}\InprocServer32"; Name = "ThreadingModel"; Value = "Apartment"; Val64 = "Apartment"; End +RegistryItem gid_Regitem_Clsid_3B092F0C_7696_40E3_A80F_68D74DA84210_InProcServer32_ThreadingModel_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{3B092F0C-7696-40E3-A80F-68D74DA84210}\InprocServer32"; + Name = "ThreadingModel"; + Value = "Apartment"; +End + +RegistryItem gid_Regitem_Clsid_3B092F0C_7696_40E3_A80F_68D74DA84210_Approved + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{3B092F0C-7696-40E3-A80F-68D74DA84210}"; + Value = "%PRODUCTNAME Thumbnail Viewer"; +End + +RegistryItem gid_Regitem_Clsid_3B092F0C_7696_40E3_A80F_68D74DA84210_Approved_x64 + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{3B092F0C-7696-40E3-A80F-68D74DA84210}"; + Value = "%PRODUCTNAME Thumbnail Viewer"; +End + // End registry items for the Thumbnail viewer // Begin registry items for the Column handler @@ -79,79 +140,147 @@ End RegistryItem gid_Regitem_Folder_shellex_ColumnHandlers_C52AF81D_F7A0_4AAB_8E87_F80A60CCD396 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "Folder\shellex\ColumnHandlers\{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}"; Value = "%PRODUCTNAME Column Handler"; - Val64 = "%PRODUCTNAME Column Handler"; +End + +RegistryItem gid_Regitem_Folder_shellex_ColumnHandlers_C52AF81D_F7A0_4AAB_8E87_F80A60CCD396_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "Folder\shellex\ColumnHandlers\{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}"; + Value = "%PRODUCTNAME Column Handler"; End RegistryItem gid_Regitem_Clsid_C52AF81D_F7A0_4AAB_8E87_F80A60CCD396_InProcServer32 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "CLSID\{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}\InprocServer32"; Value = "[INSTALLLOCATION]program\shlxthdl\shlxthdl.dll"; - Val64 = "[INSTALLLOCATION]program\shlxthdl\shlxthdl_x64.dll"; End - + +RegistryItem gid_Regitem_Clsid_C52AF81D_F7A0_4AAB_8E87_F80A60CCD396_InProcServer32_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}\InprocServer32"; + Value = "[INSTALLLOCATION]program\shlxthdl\shlxthdl_x64.dll"; +End + RegistryItem gid_Regitem_Clsid_C52AF81D_F7A0_4AAB_8E87_F80A60CCD396_InProcServer32_ThreadingModel ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "CLSID\{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}\InprocServer32"; Name = "ThreadingModel"; Value = "Apartment"; - Val64 = "Apartment"; End - + +RegistryItem gid_Regitem_Clsid_C52AF81D_F7A0_4AAB_8E87_F80A60CCD396_InProcServer32_ThreadingModel_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}\InprocServer32"; + Name = "ThreadingModel"; + Value = "Apartment"; +End + +RegistryItem gid_Regitem_Clsid_C52AF81D_F7A0_4AAB_8E87_F80A60CCD396_Approved + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}"; + Value = "%PRODUCTNAME Column Handler"; +End + +RegistryItem gid_Regitem_Clsid_C52AF81D_F7A0_4AAB_8E87_F80A60CCD396_Approved_x64 + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}"; + Value = "%PRODUCTNAME Column Handler"; +End + // End registry items for the Column handler // Begin registry items for the MS Indexing server filter component RegistryItem gid_Regitem_Clsid_7BC0E710_5703_45BE_A29D_5D46D8B39262 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Root; + ModuleID = gid_Module_Optional_Winexplorerext; + Subkey = "CLSID\{7BC0E710-5703-45BE-A29D-5D46D8B39262}"; + Value = "OpenDocument Format Filter"; +End + +RegistryItem gid_Regitem_Clsid_7BC0E710_5703_45BE_A29D_5D46D8B39262_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; Subkey = "CLSID\{7BC0E710-5703-45BE-A29D-5D46D8B39262}"; - Styles = (X64_ONLY); // Values: X64 Value = "OpenDocument Format Filter"; - Val64 = "OpenDocument Format Filter"; End RegistryItem gid_Regitem_Clsid_7BC0E710_5703_45BE_A29D_5D46D8B39262_InProcServer32 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Root; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "CLSID\{7BC0E710-5703-45BE-A29D-5D46D8B39262}\InprocServer32"; - Styles = (X64); // Values: X64 / X64_ONLY Value = "[INSTALLLOCATION]program\shlxthdl\ooofilt.dll"; Val64 = "[INSTALLLOCATION]program\shlxthdl\ooofilt_x64.dll"; End +RegistryItem gid_Regitem_Clsid_7BC0E710_5703_45BE_A29D_5D46D8B39262_InProcServer32_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{7BC0E710-5703-45BE-A29D-5D46D8B39262}\InprocServer32"; + Value = "[INSTALLLOCATION]program\shlxthdl\ooofilt_x64.dll"; +End + RegistryItem gid_Regitem_Clsid_7BC0E710_5703_45BE_A29D_5D46D8B39262_InProcServer32_ThreadingModel ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Root; + ModuleID = gid_Module_Optional_Winexplorerext; + Subkey = "CLSID\{7BC0E710-5703-45BE-A29D-5D46D8B39262}\InprocServer32"; + Name = "ThreadingModel"; + Value = "Apartment"; +End + +RegistryItem gid_Regitem_Clsid_7BC0E710_5703_45BE_A29D_5D46D8B39262_InProcServer32_ThreadingModel_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; Subkey = "CLSID\{7BC0E710-5703-45BE-A29D-5D46D8B39262}\InprocServer32"; - Styles = (X64); // Values: X64 Name = "ThreadingModel"; Value = "Apartment"; - Val64 = "Apartment"; End RegistryItem gid_Regitem_Clsid_7BC0E713_5703_45BE_A29D_5D46D8B39262 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Root; + ModuleID = gid_Module_Optional_Winexplorerext; + Subkey = "CLSID\{7BC0E713-5703-45BE-A29D-5D46D8B39262}"; + Value = "OpenDocument Format Persistent Handler"; +End + +RegistryItem gid_Regitem_Clsid_7BC0E713_5703_45BE_A29D_5D46D8B39262_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; Subkey = "CLSID\{7BC0E713-5703-45BE-A29D-5D46D8B39262}"; - Styles = (X64); // Values: X64 Value = "OpenDocument Format Persistent Handler"; - Val64 = "OpenDocument Format Persistent Handler"; End RegistryItem gid_Regitem_Clsid_7BC0E713_5703_45BE_A29D_5D46D8B39262_PersistentAddinsRegistered ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Root; - Styles = (X64); // Values: X64 + ModuleID = gid_Module_Optional_Winexplorerext; + Subkey = "CLSID\{7BC0E713-5703-45BE-A29D-5D46D8B39262}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}"; + Value = "{7BC0E710-5703-45BE-A29D-5D46D8B39262}"; +End + +RegistryItem gid_Regitem_Clsid_7BC0E713_5703_45BE_A29D_5D46D8B39262_PersistentAddinsRegistered_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; Subkey = "CLSID\{7BC0E713-5703-45BE-A29D-5D46D8B39262}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}"; Value = "{7BC0E710-5703-45BE-A29D-5D46D8B39262}"; - Val64 = "{7BC0E710-5703-45BE-A29D-5D46D8B39262}"; End // End registry items for the MS Indexing server filter component @@ -161,20 +290,50 @@ End RegistryItem gid_Regitem_Clsid_63542C48_9552_494A_84F7_73AA6A7C99C1_InProcServer32 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "CLSID\{63542C48-9552-494A-84F7-73AA6A7C99C1}\InprocServer32"; Value = "[INSTALLLOCATION]program\shlxthdl\shlxthdl.dll"; - Val64 = "[INSTALLLOCATION]program\shlxthdl\shlxthdl_x64.dll"; +End + +RegistryItem gid_Regitem_Clsid_63542C48_9552_494A_84F7_73AA6A7C99C1_InProcServer32_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{63542C48-9552-494A-84F7-73AA6A7C99C1}\InprocServer32"; + Value = "[INSTALLLOCATION]program\shlxthdl\shlxthdl_x64.dll"; End RegistryItem gid_Regitem_Clsid_63542C48_9552_494A_84F7_73AA6A7C99C1_InProcServer32_ThreadingModel ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext; - Styles = (X64); Subkey = "CLSID\{63542C48-9552-494A-84F7-73AA6A7C99C1}\InprocServer32"; Name = "ThreadingModel"; Value = "Apartment"; - Val64 = "Apartment"; +End + +RegistryItem gid_Regitem_Clsid_63542C48_9552_494A_84F7_73AA6A7C99C1_InProcServer32_ThreadingModel_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "CLSID\{63542C48-9552-494A-84F7-73AA6A7C99C1}\InprocServer32"; + Name = "ThreadingModel"; + Value = "Apartment"; +End + +RegistryItem gid_Regitem_Clsid_63542C48_9552_494A_84F7_73AA6A7C99C1_Approved + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{63542C48-9552-494A-84F7-73AA6A7C99C1}"; + Value = "%PRODUCTNAME Property Sheet Handler"; +End + +RegistryItem gid_Regitem_Clsid_63542C48_9552_494A_84F7_73AA6A7C99C1_Approved_x64 + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64"; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{63542C48-9552-494A-84F7-73AA6A7C99C1}"; + Value = "%PRODUCTNAME Property Sheet Handler"; End // End registry entries for the PropertySheet handler @@ -183,44 +342,70 @@ End RegistryItem gid_Regitem_Clsid_AE424E85_F6DF_4910_A6A9_438797986431_PropHdl ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; ComponentCondition = "VersionNT >= 600"; - Styles = (X64); Subkey = "CLSID\{AE424E85-F6DF-4910-A6A9-438797986431}"; Value = "%PRODUCTNAME Property Handler"; - Val64 = "%PRODUCTNAME Property Handler"; +End + +RegistryItem gid_Regitem_Clsid_AE424E85_F6DF_4910_A6A9_438797986431_PropHdl_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64 >= 600"; + Subkey = "CLSID\{AE424E85-F6DF-4910-A6A9-438797986431}"; + Value = "%PRODUCTNAME Property Handler"; End RegistryItem gid_Regitem_Clsid_AE424E85_F6DF_4910_A6A9_438797986431_InProcServer32 ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; ComponentCondition = "VersionNT >= 600"; - Styles = (X64); Subkey = "CLSID\{AE424E85-F6DF-4910-A6A9-438797986431}\InprocServer32"; Value = "[INSTALLLOCATION]program\shlxthdl\propertyhdl.dll"; - Val64 = "[INSTALLLOCATION]program\shlxthdl\propertyhdl_x64.dll"; +End + +RegistryItem gid_Regitem_Clsid_AE424E85_F6DF_4910_A6A9_438797986431_InProcServer32_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64 >= 600"; + Subkey = "CLSID\{AE424E85-F6DF-4910-A6A9-438797986431}\InprocServer32"; + Value = "[INSTALLLOCATION]program\shlxthdl\propertyhdl_x64.dll"; End RegistryItem gid_Regitem_Clsid_AE424E85_F6DF_4910_A6A9_438797986431_InProcServer32_ThreadingModel ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; ComponentCondition = "VersionNT >= 600"; - Styles = (X64); Subkey = "CLSID\{AE424E85-F6DF-4910-A6A9-438797986431}\InprocServer32"; Name = "ThreadingModel"; Value = "Apartment"; - Val64 = "Apartment"; +End + +RegistryItem gid_Regitem_Clsid_AE424E85_F6DF_4910_A6A9_438797986431_InProcServer32_ThreadingModel_x64 + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64 >= 600"; + Subkey = "CLSID\{AE424E85-F6DF-4910-A6A9-438797986431}\InprocServer32"; + Name = "ThreadingModel"; + Value = "Apartment"; End RegistryItem gid_Regitem_Clsid_AE424E85_F6DF_4910_A6A9_438797986431_Approved ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; ComponentCondition = "VersionNT >= 600"; - Styles = (X64); Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; Name = "{AE424E85-F6DF-4910-A6A9-438797986431}"; Value = "%PRODUCTNAME Property Handler"; - Val64 = "%PRODUCTNAME Property Handler"; +End + +RegistryItem gid_Regitem_Clsid_AE424E85_F6DF_4910_A6A9_438797986431_Approved_x64 + ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; + ModuleID = gid_Module_Optional_Winexplorerext_x64; + ComponentCondition = "VersionNT64 >= 600"; + Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"; + Name = "{AE424E85-F6DF-4910-A6A9-438797986431}"; + Value = "%PRODUCTNAME Property Handler"; End // End registry entries for the Property handler diff --git a/scp2/source/writer/registryitem_writer.scp b/scp2/source/writer/registryitem_writer.scp index f29b5cb5a8cf..26aaf35efe5c 100644 --- a/scp2/source/writer/registryitem_writer.scp +++ b/scp2/source/writer/registryitem_writer.scp @@ -592,7 +592,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_stw_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarWriterTemplate.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -655,7 +655,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_sxg_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarWriterGlobalDocument.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -734,7 +734,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_sxw_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "soffice.StarWriterDocument.6"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -883,7 +883,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_odt_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.WriterDocument.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -1128,7 +1128,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_ott_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.WriterTemplate.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -1280,7 +1280,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_odm_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.WriterGlobalDocument.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; @@ -1474,7 +1474,7 @@ End #ifdef _MSC_VER RegistryItem gid_Regitem_oth_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; + ModuleID = gid_Module_Optional_Winexplorerext; Subkey = "LibreOffice.WriterWebTemplate.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; diff --git a/setup_native/prj/build.lst b/setup_native/prj/build.lst index 13362f59c45c..8898e8ad4e17 100644 --- a/setup_native/prj/build.lst +++ b/setup_native/prj/build.lst @@ -10,7 +10,6 @@ pk setup_native\source\win32\customactions\regpatchactivex nmake - w sn_regp pk setup_native\source\win32\customactions\reg4allmsdoc nmake - w sn_reg4allmsdoc NULL pk setup_native\source\win32\customactions\sellang nmake - w sn_sellang NULL pk setup_native\source\win32\customactions\thesaurus nmake - w sn_thesaurus NULL -pk setup_native\source\win32\customactions\reg64 nmake - w sn_reg64 NULL pk setup_native\source\win32\customactions\javafilter nmake - w sn_javafilter NULL pk setup_native\source\win32\customactions\quickstarter nmake - w sn_quickstarter NULL pk setup_native\source\win32\customactions\shellextensions nmake - w sn_shellextensions sn_tools.w NULL diff --git a/setup_native/source/win32/customactions/reg64/exports.dxp b/setup_native/source/win32/customactions/reg64/exports.dxp deleted file mode 100755 index 3282da1eeac0..000000000000 --- a/setup_native/source/win32/customactions/reg64/exports.dxp +++ /dev/null @@ -1,2 +0,0 @@ -InstallReg64 -DeinstallReg64 diff --git a/setup_native/source/win32/customactions/reg64/makefile.mk b/setup_native/source/win32/customactions/reg64/makefile.mk deleted file mode 100644 index a0d7fbaefc1f..000000000000 --- a/setup_native/source/win32/customactions/reg64/makefile.mk +++ /dev/null @@ -1,76 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# 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 -# -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/..$/..$/.. -PRJNAME=setup_native -TARGET=reg64msi - -# --- Settings ----------------------------------------------------- - -ENABLE_EXCEPTIONS=TRUE -NO_DEFAULT_STL=TRUE -DYNAMIC_CRT= -USE_DEFFILE=TRUE -EXTERNAL_WARNINGS_NOT_ERRORS := TRUE - -.INCLUDE : settings.mk - -#Disable precompiled header -CDEFS+=-Dnot_used_define_to_disable_pch - -# --- Files -------------------------------------------------------- - -.IF "$(GUI)"=="WNT" && "$(WINDOWS_SDK_HOME)"!="" - -UWINAPILIB= - -SLOFILES = \ - $(SLO)$/reg64.obj - -STDSHL += \ - $(KERNEL32LIB)\ - $(USER32LIB)\ - $(ADVAPI32LIB)\ - $(SHELL32LIB)\ - $(MSILIB)\ - $(SHLWAPILIB)\ - -SHL1TARGET = $(TARGET) -SHL1IMPLIB = i$(TARGET) - -SHL1OBJS=$(SLOFILES) -SHL1DEF = $(MISC)$/$(SHL1TARGET).def -SHL1DEPN = $(SLB)$/$(TARGET).lib -DEF1NAME=$(SHL1TARGET) -DEF1EXPORTFILE=exports.dxp - -.ENDIF - -# --- Targets -------------------------------------------------------------- - -.INCLUDE : target.mk -INCLUDE!:=$(subst,/stl, $(INCLUDE)) diff --git a/setup_native/source/win32/customactions/reg64/reg64.cxx b/setup_native/source/win32/customactions/reg64/reg64.cxx deleted file mode 100644 index 7490a153fac4..000000000000 --- a/setup_native/source/win32/customactions/reg64/reg64.cxx +++ /dev/null @@ -1,465 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* -* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * 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 - * - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -#define UNICODE - -#ifdef _MSC_VER -#pragma warning(push, 1) /* disable warnings within system headers */ -#endif -#define WIN32_LEAN_AND_MEAN -#include -#include -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -#include -#include - -// MinGW doesn't know anything about RegDeleteKeyExW if WINVER < 0x0502. -extern "C" { -WINADVAPI LONG WINAPI RegDeleteKeyExW(HKEY,LPCWSTR,REGSAM,DWORD); -} - -// to provide windows xp as build systems for mingw we need to define KEY_WOW64_64KEY -// in mingw 3.13 KEY_WOW64_64KEY isn't available < Win2003 systems. -// Also defined in setup_native\source\win32\customactions\reg64\reg64.cxx,source\win32\customactions\shellextensions\shellextensions.cxx and -// extensions\source\activex\main\so_activex.cpp - -#ifndef KEY_WOW64_64KEY - #define KEY_WOW64_64KEY (0x0100) -#endif - - -#define TABLE_NAME L"Reg64" -#define INSTALLLOCATION L"[INSTALLLOCATION]" - -bool isInstall4AllUsers; -wchar_t * sBasisInstallLocation; - - -enum OPERATION { - SET, - REMOVE -}; - -#ifdef DEBUG -inline void OutputDebugStringFormat( const wchar_t* pFormat, ... ) -{ - wchar_t buffer[1024]; - va_list args; - - va_start( args, pFormat ); - StringCchVPrintf( buffer, sizeof(buffer), pFormat, args ); - OutputDebugString( buffer ); -} -#else -static inline void OutputDebugStringFormat( const wchar_t*, ... ) -{ -} -#endif - -bool WriteRegistry( MSIHANDLE & hMSI, OPERATION op, const wchar_t* componentName) -{ - INSTALLSTATE current_state; - INSTALLSTATE comp_state; - UINT ret = MsiGetComponentState( hMSI, componentName, ¤t_state, &comp_state ); - if ( ERROR_SUCCESS == ret ) - { - if (current_state == INSTALLSTATE_ABSENT) - OutputDebugStringFormat(L"WriteRegistry - current_state: INSTALLSTATE_ABSENT"); - else if (current_state == INSTALLSTATE_DEFAULT) - OutputDebugStringFormat(L"WriteRegistry - current_state: INSTALLSTATE_DEFAULT"); - else if (current_state == INSTALLSTATE_LOCAL) - OutputDebugStringFormat(L"WriteRegistry - current_state: INSTALLSTATE_LOCAL"); - else if (current_state == INSTALLSTATE_REMOVED) - OutputDebugStringFormat(L"WriteRegistry - current_state: INSTALLSTATE_REMOVED"); - else if (current_state == INSTALLSTATE_SOURCE) - OutputDebugStringFormat(L"WriteRegistry - current_state: INSTALLSTATE_SOURCE"); - else if (current_state == INSTALLSTATE_UNKNOWN) - OutputDebugStringFormat(L"WriteRegistry - current_state: INSTALLSTATE_UNKNOWN"); - - if (comp_state == INSTALLSTATE_ABSENT) - OutputDebugStringFormat(L"WriteRegistry - comp_state: INSTALLSTATE_ABSENT"); - else if (comp_state == INSTALLSTATE_DEFAULT) - OutputDebugStringFormat(L"WriteRegistry - comp_state: INSTALLSTATE_DEFAULT"); - else if (comp_state == INSTALLSTATE_LOCAL) - OutputDebugStringFormat(L"WriteRegistry - comp_state: INSTALLSTATE_LOCAL"); - else if (comp_state == INSTALLSTATE_REMOVED) - OutputDebugStringFormat(L"WriteRegistry - comp_state: INSTALLSTATE_REMOVED"); - else if (comp_state == INSTALLSTATE_SOURCE) - OutputDebugStringFormat(L"WriteRegistry - comp_state: INSTALLSTATE_SOURCE"); - else if (comp_state == INSTALLSTATE_UNKNOWN) - OutputDebugStringFormat(L"WriteRegistry - comp_state: INSTALLSTATE_UNKNOWN"); - - switch (op) - { - case SET : - if ( comp_state == INSTALLSTATE_LOCAL || ( current_state == INSTALLSTATE_LOCAL && comp_state == INSTALLSTATE_UNKNOWN ) ) - { - return true; - } - break; - case REMOVE: - OutputDebugStringFormat(L"WriteRegistry - Remove\n" ); - if ( current_state == INSTALLSTATE_LOCAL && (comp_state == INSTALLSTATE_ABSENT || comp_state == INSTALLSTATE_REMOVED) ) - { - OutputDebugStringFormat(L"WriteRegistry - To be removed\n" ); - return true; - } - } - } else - { - if (ERROR_INVALID_HANDLE == ret) OutputDebugStringFormat(L"WriteRegistry - Invalid handle"); - if (ERROR_UNKNOWN_FEATURE == ret) OutputDebugStringFormat(L"WriteRegistry - Unknown feature"); - } - - return false; -} - -BOOL UnicodeEquals( wchar_t* pStr1, wchar_t* pStr2 ) -{ - if ( pStr1 == NULL && pStr2 == NULL ) - return TRUE; - else if ( pStr1 == NULL || pStr2 == NULL ) - return FALSE; - - while( *pStr1 == *pStr2 && *pStr1 && *pStr2 ) - pStr1++, pStr2++; - - return ( *pStr1 == 0 && *pStr2 == 0 ); -} - -BOOL GetMsiProp( MSIHANDLE hMSI, const wchar_t* pPropName, wchar_t** ppValue ) -{ - OutputDebugStringFormat(L"GetMsiProp - START\n" ); - DWORD sz = 0; - UINT ret = MsiGetProperty( hMSI, pPropName, L"", &sz ); - if ( ret == ERROR_MORE_DATA ) - { - sz++; - DWORD nbytes = sz * sizeof( wchar_t ); - wchar_t* buff = reinterpret_cast( malloc( nbytes ) ); - ZeroMemory( buff, nbytes ); - MsiGetProperty( hMSI, pPropName, buff, &sz ); - - OutputDebugStringFormat(L"GetMsiProp - Value" ); - OutputDebugStringFormat( buff ); - *ppValue = buff; - - return TRUE; - } else if (ret == ERROR_INVALID_HANDLE) - { - OutputDebugStringFormat(L"GetMsiProp - ERROR_INVALID_HANDLE" ); - } else if (ret == ERROR_INVALID_PARAMETER) - { - OutputDebugStringFormat(L"GetMsiProp - ERROR_INVALID_PARAMETER" ); - } else if (ret == ERROR_SUCCESS) - { - OutputDebugStringFormat(L"GetMsiProp - ERROR_SUCCESS" ); - } - - - OutputDebugStringFormat(L"GetMsiProp - ENDE\n" ); - return FALSE; -} - -bool IsInstallForAllUsers( MSIHANDLE hMSI ) -{ - OutputDebugStringFormat(L"IsInstallForAllUsers - START\n" ); - bool bResult = FALSE; - wchar_t* pVal = NULL; - if ( GetMsiProp( hMSI, L"ALLUSERS", &pVal ) && pVal ) - { - bResult = UnicodeEquals( pVal , L"1" ); - free( pVal ); - } - - OutputDebugStringFormat(L"IsInstallForAllUsers - ENDE\n" ); - return bResult; -} - -wchar_t* GetBasisInstallLocation( MSIHANDLE hMSI ) -{ - OutputDebugStringFormat(L"GetBasisInstallLocation - START\n" ); - wchar_t* pVal = NULL; - GetMsiProp( hMSI, L"INSTALLLOCATION", &pVal); - - OutputDebugStringFormat(L"GetBasisInstallLocation - ENDE\n" ); - - return pVal; -} - - -bool QueryReg64Table(MSIHANDLE& rhDatabase, MSIHANDLE& rhView) -{ - OutputDebugStringFormat(L"QueryReg64Table - START\n" ); - int const arraysize = 400; - wchar_t szSelect[arraysize]; - StringCbPrintfW(szSelect, arraysize * sizeof(wchar_t), L"SELECT * FROM %s",TABLE_NAME); - OutputDebugStringFormat( szSelect ); - - UINT ret = MsiDatabaseOpenView(rhDatabase,szSelect,&rhView); - if (ret != ERROR_SUCCESS) - { - if ( ret == ERROR_BAD_QUERY_SYNTAX) - OutputDebugStringFormat(L"QueryReg64Table - MsiDatabaseOpenView - FAILED - ERROR_BAD_QUERY_SYNTAX\n" ); - if ( ret == ERROR_INVALID_HANDLE) - OutputDebugStringFormat(L"QueryReg64Table - MsiDatabaseOpenView - FAILED - ERROR_INVALID_HANDLE\n" ); - return false; - } - // execute query - not a parameter query so second parameter is NULL. - if (MsiViewExecute(rhView,NULL) != ERROR_SUCCESS) - { - OutputDebugStringFormat(L"QueryReg64Table - MsiViewExecute - FAILED\n" ); - return false; - } - - OutputDebugStringFormat(L"QueryReg64Table - ENDE\n" ); - return true; -} - -//--------------------------------------- -bool DeleteRegistryKey(HKEY RootKey, const wchar_t* KeyName) -{ - int rc = RegDeleteKeyExW( - RootKey, KeyName, KEY_WOW64_64KEY, 0); - - return (ERROR_SUCCESS == rc); -} - -bool SetRegistryKey(HKEY RootKey, const wchar_t* KeyName, const wchar_t* ValueName, const wchar_t* Value) -{ - HKEY hSubKey; - - // open or create the desired key - int rc = RegCreateKeyEx( - RootKey, KeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_WOW64_64KEY, 0, &hSubKey, 0); - - if (ERROR_SUCCESS == rc) - { - OutputDebugStringFormat(L"SetRegistryKey - Created\n" ); - rc = RegSetValueEx( - hSubKey, ValueName, 0, REG_SZ, reinterpret_cast(Value), (wcslen(Value) + 1) * sizeof(wchar_t)); - - RegCloseKey(hSubKey); - } else { - OutputDebugStringFormat(L"SetRegistryKey - FAILED\n" ); - } - - - return (ERROR_SUCCESS == rc); -} - -bool DoRegEntries( MSIHANDLE& rhMSI, OPERATION op, MSIHANDLE& rhView) -{ - OutputDebugStringFormat(L"DoRegEntries - START\n" ); - - MSIHANDLE hRecord; - - long lRoot; - wchar_t szKey[255]; - wchar_t szName[255]; - wchar_t szValue[1024]; - wchar_t szComponent[255]; - - /// read records until there are no more records - while (MsiViewFetch(rhView,&hRecord) == ERROR_SUCCESS) - { - DWORD dwKey = 255; - DWORD dwName = 255; - DWORD dwValue = 1024; - DWORD dwComponent = 255; - - szKey[0] = '\0'; - szName[0] = '\0'; - szValue[0] = '\0'; - szComponent[0] = '\0'; - - lRoot = MsiRecordGetInteger(hRecord,2); - MsiRecordGetString(hRecord,3,szKey,&dwKey); - - if (!MsiRecordIsNull(hRecord, 4)) - MsiRecordGetString(hRecord,4,szName,&dwName); - - if (!MsiRecordIsNull(hRecord, 5)) - { - MsiRecordGetString(hRecord,5,szValue,&dwValue); - - - - wchar_t* nPos = wcsstr(szValue , INSTALLLOCATION); - if ( NULL != nPos) - { - - DWORD nPrefixSize = nPos - szValue; - - DWORD nPropSize = wcslen(sBasisInstallLocation); - DWORD nPostfixSize = dwValue - wcslen( INSTALLLOCATION ); - - DWORD nNewValueBytes = (nPropSize + nPostfixSize + 1) * sizeof( wchar_t ); - wchar_t* newValue = reinterpret_cast( malloc( nNewValueBytes ) ); - ZeroMemory( newValue, nNewValueBytes ); - - // prefix - wcsncpy(newValue, szValue, nPrefixSize); - - // basis location - wcsncat(newValue, sBasisInstallLocation, nPropSize * sizeof( wchar_t )); - - // postfix - wcsncat(newValue, nPos + ( wcslen( INSTALLLOCATION ) ), nPropSize * sizeof( wchar_t )); - - wcsncpy(szValue, newValue, nNewValueBytes <=1024? nNewValueBytes: 1024); - - free(newValue); - } - - } - - - MsiRecordGetString(hRecord,6,szComponent,&dwComponent); - - OutputDebugStringFormat(L"****** DoRegEntries *******" ); - OutputDebugStringFormat(L"Root:" ); - HKEY key = HKEY_CURRENT_USER; - switch (lRoot) - { - case(-1): - if (isInstall4AllUsers) - { - key = HKEY_LOCAL_MACHINE; - OutputDebugStringFormat(L"HKEY_LOCAL_MACHINE" ); - } - else - { - key = HKEY_CURRENT_USER; - OutputDebugStringFormat(L"HKEY_CURRENT_USER" ); - } - break; - case(0): - key = HKEY_CLASSES_ROOT; - OutputDebugStringFormat(L"HKEY_CLASSES_ROOT" ); - break; - case(1): - key = HKEY_CURRENT_USER; - OutputDebugStringFormat(L"HKEY_CURRENT_USER" ); - break; - case(2): - key = HKEY_LOCAL_MACHINE; - OutputDebugStringFormat(L"HKEY_LOCAL_MACHINE" ); - break; - case(3): - key = HKEY_USERS; - OutputDebugStringFormat(L"HKEY_USERS" ); - break; - default: - OutputDebugStringFormat(L"Unknown Root!" ); - break; - } - - OutputDebugStringFormat(L"Key:"); - OutputDebugStringFormat( szKey ); - OutputDebugStringFormat(L"Name:"); - OutputDebugStringFormat( szName ); - OutputDebugStringFormat(L"Value:"); - OutputDebugStringFormat( szValue); - OutputDebugStringFormat(L"Component:"); - OutputDebugStringFormat( szComponent ); - OutputDebugStringFormat(L"*******************" ); - switch (op) - { - case SET: - - if (WriteRegistry(rhMSI, SET, szComponent)) - { - OutputDebugStringFormat(L"DoRegEntries - Write\n" ); - SetRegistryKey(key, szKey, szName, szValue); - } - break; - case REMOVE: - OutputDebugStringFormat(L"DoRegEntries - PreRemove\n" ); - if (WriteRegistry(rhMSI, REMOVE, szComponent)) - { - OutputDebugStringFormat(L"DoRegEntries - Remove\n" ); - DeleteRegistryKey(key, szKey); - } - break; - } - } - - MsiCloseHandle(rhView); - - - OutputDebugStringFormat(L"DoRegEntries - ENDE\n" ); - - return true; -} - - -bool Reg64(MSIHANDLE& rhMSI, OPERATION op) -{ - isInstall4AllUsers = IsInstallForAllUsers(rhMSI); - sBasisInstallLocation = GetBasisInstallLocation(rhMSI); - - if (NULL == sBasisInstallLocation) - { - OutputDebugStringFormat(L"BASISINSTALLLOCATION is NULL\n" ); - return false; - } - - MSIHANDLE hView; - MSIHANDLE hDatabase = MsiGetActiveDatabase(rhMSI); - - QueryReg64Table(hDatabase, hView); - OutputDebugStringFormat(L"Do something\n" ); - DoRegEntries( rhMSI, op, hView); - OutputDebugStringFormat(L"Something done\n" ); - - MsiCloseHandle(hView); - MsiCloseHandle(hDatabase); - free(sBasisInstallLocation); - - return true; -} - -extern "C" UINT __stdcall InstallReg64(MSIHANDLE hMSI) -{ - OutputDebugStringFormat(L"InstallReg64\n" ); - Reg64(hMSI, SET); - return ERROR_SUCCESS; -} - -extern "C" UINT __stdcall DeinstallReg64(MSIHANDLE hMSI) -{ - OutputDebugStringFormat(L"DeinstallReg64\n" ); - Reg64(hMSI, REMOVE); - return ERROR_SUCCESS; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/setup_native/source/win32/customactions/shellextensions/exports.dxp b/setup_native/source/win32/customactions/shellextensions/exports.dxp index 5826d339274a..4e2611946586 100644 --- a/setup_native/source/win32/customactions/shellextensions/exports.dxp +++ b/setup_native/source/win32/customactions/shellextensions/exports.dxp @@ -1,5 +1,3 @@ -InstallExecSequenceEntry -DeinstallExecSequenceEntry InstallStartmenuFolderIcon DeinstallStartmenuFolderIcon SetProductInstallMode diff --git a/setup_native/source/win32/customactions/shellextensions/makefile.mk b/setup_native/source/win32/customactions/shellextensions/makefile.mk index b6961cf7e1f3..3a15e3510cbe 100644 --- a/setup_native/source/win32/customactions/shellextensions/makefile.mk +++ b/setup_native/source/win32/customactions/shellextensions/makefile.mk @@ -48,7 +48,6 @@ CDEFS+=-Dnot_used_define_to_disable_pch UWINAPILIB= SLOFILES = \ - $(SLO)$/shellextensions.obj \ $(SLO)$/startmenuicon.obj \ $(SLO)$/upgrade.obj \ $(SLO)$/iconcache.obj \ diff --git a/setup_native/source/win32/customactions/shellextensions/shellextensions.cxx b/setup_native/source/win32/customactions/shellextensions/shellextensions.cxx deleted file mode 100644 index 5ddea958f4ae..000000000000 --- a/setup_native/source/win32/customactions/shellextensions/shellextensions.cxx +++ /dev/null @@ -1,216 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * 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 - * - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -/* - Windows shell extensions need to be approved in order to be used by the - Windows shell for clarification read the following section from the - Microsoft Developers Network Library (MSDN) see - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/shell_ext.asp - - - - Shell extension handlers run in the Shell process. Because it is a system process, - the administrator of a Windows NT system can limit Shell extension handlers to - those on an approved list by setting the EnforceShellExtensionSecurity value of the - HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer key to 1 - (one). - To place a Shell extension handler on the approved list, create a REG_SZ value whose - name is the string form of the handler's GUID under - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved. - - The Shell does not use the value that is assigned to the GUID, but it should be set to - make inspecting the registry easier. - - Your setup application can add values to the Approved key only if the person installing - the application has sufficient privileges. If the attempt to add an extension handler - fails, you should inform the user that administrative privileges are required to fully - install the application. If the handler is essential to the application, you should fail - the setup and notify the user to contact an administrator. - - While there is no need to add values to the Approved key on Windows 95 or Windows 98 - systems, there is no harm in doing so. The system will simply ignore them. However, there - is no guarantee that the key will exist on these systems. Your setup program must be able - to handle this case. - - - We add the following entries to the respective registry key - "{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}"="LibreOffice Column Handler" - "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}"="LibreOffice Infotip Handler" - "{63542C48-9552-494A-84F7-73AA6A7C99C1}"="LibreOffice Property Sheet Handler" - "{3B092F0C-7696-40E3-A80F-68D74DA84210}"="LibreOffice Thumbnail Viewer" - - These shell extensions are implemented in the 'shell' project. We ignore registration - failures because of insufficient privileges. The reason is: On systems which restrict the - use of shell extensions by applying the aforementioned policy probably only people with - sufficient privileges are allowed to install applications anyway. On systems where the - use of shell extensions is not restricted registration failures because of insufficient - prviliges have no negative effect because the shell extensions will work anyhow. -*/ - -#ifdef _MSC_VER -#pragma warning(push, 1) /* disable warnings within system headers */ -#endif -#define WIN32_LEAN_AND_MEAN -#include -#include -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -#include - -#ifdef UNICODE -#define _UNICODE -#endif -#include - -struct RegistryEntry -{ - TCHAR* Key; - TCHAR* Value; -}; - -RegistryEntry ColumnHandler = { TEXT("{C52AF81D-F7A0-4AAB-8E87-F80A60CCD396}"), TEXT("LibreOffice Column Handler") }; -RegistryEntry InfotipHandler = { TEXT("{087B3AE3-E237-4467-B8DB-5A38AB959AC9}"), TEXT("LibreOffice Infotip Handler") }; -RegistryEntry PropHandler = { TEXT("{63542C48-9552-494A-84F7-73AA6A7C99C1}"), TEXT("LibreOffice Property Sheet Handler") }; -RegistryEntry ThumbViewer = { TEXT("{3B092F0C-7696-40E3-A80F-68D74DA84210}"), TEXT("LibreOffice Thumbnail Viewer") }; - -BOOL GetMsiProp( MSIHANDLE hMSI, const char* pPropName, char** ppValue ) -{ - DWORD sz = 0; - if ( MsiGetProperty( hMSI, pPropName, 0, &sz ) == ERROR_MORE_DATA ) - { - sz++; - DWORD nbytes = sz * sizeof( char ); - char* buff = reinterpret_cast( malloc( nbytes ) ); - ZeroMemory( buff, nbytes ); - MsiGetProperty( hMSI, pPropName, buff, &sz ); - *ppValue = buff; - - return TRUE; - } - - return FALSE; -} - -bool IsVersionNT64( MSIHANDLE hMSI ) -{ - char* pVal = NULL; - - if ( GetMsiProp( hMSI, "VersionNT64", &pVal ) && pVal ) - { - free( pVal ); - return true; - } - - return false; -} - - - - -/* - Called during installation when the module "Windows Explorer Extensions" is - selected. -*/ -extern "C" UINT __stdcall InstallExecSequenceEntry(MSIHANDLE hMSI) -{ - //MessageBox(NULL, TEXT("InstallExecSequenceEntry"), TEXT("Pythonmsi"), MB_OK | MB_ICONINFORMATION); - HKEY hKey; - - -// to provide windows xp as build systems for mingw we need to define KEY_WOW64_64KEY -// in mingw 3.13 KEY_WOW64_64KEY isn't available < Win2003 systems. -// Also defined in setup_native\source\win32\customactions\reg64\reg64.cxx,source\win32\customactions\shellextensions\shellextensions.cxx and -// extensions\source\activex\main\so_activex.cpp -#ifndef KEY_WOW64_64KEY - #define KEY_WOW64_64KEY (0x0100) -#endif - - if (IsVersionNT64(hMSI)) - { - // Open Windows 64 Bit Registry - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"),0, KEY_WRITE | KEY_WOW64_64KEY, &hKey) == ERROR_SUCCESS) - { - RegSetValueEx(hKey, ColumnHandler.Key, 0, REG_SZ, reinterpret_cast(ColumnHandler.Value), _tcslen(ColumnHandler.Value) + 1); - RegSetValueEx(hKey, InfotipHandler.Key, 0, REG_SZ, reinterpret_cast(InfotipHandler.Value), _tcslen(InfotipHandler.Value) + 1); - RegSetValueEx(hKey, PropHandler.Key, 0, REG_SZ, reinterpret_cast(PropHandler.Value), _tcslen(PropHandler.Value) + 1); - RegSetValueEx(hKey, ThumbViewer.Key, 0, REG_SZ, reinterpret_cast(ThumbViewer.Value), _tcslen(ThumbViewer.Value) + 1); - - RegCloseKey(hKey); - } - - // Open Windows 32 Bit Registry on Win64 machine - - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"),0, KEY_WRITE, &hKey ) == ERROR_SUCCESS) - { - RegSetValueEx(hKey, ColumnHandler.Key, 0, REG_SZ, reinterpret_cast(ColumnHandler.Value), _tcslen(ColumnHandler.Value) + 1); - RegSetValueEx(hKey, InfotipHandler.Key, 0, REG_SZ, reinterpret_cast(InfotipHandler.Value), _tcslen(InfotipHandler.Value) + 1); - RegSetValueEx(hKey, PropHandler.Key, 0, REG_SZ, reinterpret_cast(PropHandler.Value), _tcslen(PropHandler.Value) + 1); - RegSetValueEx(hKey, ThumbViewer.Key, 0, REG_SZ, reinterpret_cast(ThumbViewer.Value), _tcslen(ThumbViewer.Value) + 1); - - RegCloseKey(hKey); - } - - - } else - { - if (RegOpenKey(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), &hKey) == ERROR_SUCCESS) - { - RegSetValueEx(hKey, ColumnHandler.Key, 0, REG_SZ, reinterpret_cast(ColumnHandler.Value), _tcslen(ColumnHandler.Value) + 1); - RegSetValueEx(hKey, InfotipHandler.Key, 0, REG_SZ, reinterpret_cast(InfotipHandler.Value), _tcslen(InfotipHandler.Value) + 1); - RegSetValueEx(hKey, PropHandler.Key, 0, REG_SZ, reinterpret_cast(PropHandler.Value), _tcslen(PropHandler.Value) + 1); - RegSetValueEx(hKey, ThumbViewer.Key, 0, REG_SZ, reinterpret_cast(ThumbViewer.Value), _tcslen(ThumbViewer.Value) + 1); - - RegCloseKey(hKey); - } - } - return ERROR_SUCCESS; -} - -/* - Called during deinstallation when the module "Windows Explorer Extensions" has - been installed. -*/ -extern "C" UINT __stdcall DeinstallExecSequenceEntry(MSIHANDLE) -{ - //MessageBox(NULL, TEXT("DeinstallExecSequenceEntry"), TEXT("Pythonmsi"), MB_OK | MB_ICONINFORMATION); - HKEY hKey; - if (RegOpenKey(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), &hKey) == ERROR_SUCCESS) - { - RegDeleteValue(hKey, ColumnHandler.Key); - RegDeleteValue(hKey, InfotipHandler.Key); - RegDeleteValue(hKey, PropHandler.Key); - RegDeleteValue(hKey, ThumbViewer.Key); - - RegCloseKey(hKey); - } - return ERROR_SUCCESS; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/bin/modules/installer/windows/component.pm b/solenv/bin/modules/installer/windows/component.pm index 72382607e508..cd872091dc41 100644 --- a/solenv/bin/modules/installer/windows/component.pm +++ b/solenv/bin/modules/installer/windows/component.pm @@ -192,7 +192,6 @@ sub get_registry_component_directory ############################################################## # Returning the attributes for a file component. -# Always 8 in this first try? ############################################################## sub get_file_component_attributes @@ -244,10 +243,10 @@ sub get_file_component_attributes $attributes = 4; # Files in shellnew dir and in non advertised startmenu entries must have user registry key as KeyPath } - # Adding 256, if this is a 64 bit installation set. - if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes = $attributes + 256; } + # Setting msidbComponentAttributes64bit, if this is a 64 bit installation set. + if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes |= 256; } - return $attributes + return $attributes; } ############################################################## @@ -264,12 +263,16 @@ sub get_registry_component_attributes $attributes = 4; - # Adding 256, if this is a 64 bit installation set. - if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes = $attributes + 256; } + # Setting msidbComponentAttributes64bit, if this is a 64 bit installation set. + if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes |= 256; } - if ( exists($installer::globals::dontdeletecomponents{$componentname}) ) { $attributes = $attributes + 16; } + # Setting msidbComponentAttributes64bit for 64 bit shell extension in 32 bit installer, too + if ( $componentname =~ m/winexplorerext_x64/ ) { $attributes |= 256; } - return $attributes + # Setting msidbComponentAttributesPermanent + if ( exists($installer::globals::dontdeletecomponents{$componentname}) ) { $attributes |= 16; } + + return $attributes; } ############################################################## diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm index 176e8352e7f1..6b75dec03b04 100644 --- a/solenv/bin/modules/installer/windows/idtglobal.pm +++ b/solenv/bin/modules/installer/windows/idtglobal.pm @@ -494,16 +494,6 @@ sub write_idt_header push(@{$idtref}, $oneline); } - if ( $definestring eq "reg64" ) - { - $oneline = "Registry\tRoot\tKey\tName\tValue\tComponent_\n"; - push(@{$idtref}, $oneline); - $oneline = "s72\ti2\tl255\tL255\tL0\ts72\n"; - push(@{$idtref}, $oneline); - $oneline = "Reg64\tRegistry\n"; - push(@{$idtref}, $oneline); - } - if ( $definestring eq "createfolder" ) { $oneline = "Directory_\tComponent_\n"; diff --git a/solenv/bin/modules/installer/windows/registry.pm b/solenv/bin/modules/installer/windows/registry.pm index 8312e56beefe..ab0371b1ab32 100644 --- a/solenv/bin/modules/installer/windows/registry.pm +++ b/solenv/bin/modules/installer/windows/registry.pm @@ -375,10 +375,8 @@ sub create_registry_table my $onelanguage = ${$languagesarrayref}[$m]; my @registrytable = (); - my @reg64table = (); installer::windows::idtglobal::write_idt_header(\@registrytable, "registry"); - installer::windows::idtglobal::write_idt_header(\@reg64table, "reg64"); for ( my $i = 0; $i <= $#{$registryref}; $i++ ) { @@ -397,7 +395,6 @@ sub create_registry_table $registry{'Key'} = get_registry_key($oneregistry, $allvariableshashref); $registry{'Name'} = get_registry_name($oneregistry, $allvariableshashref); $registry{'Value'} = get_registry_value($oneregistry, $allvariableshashref); - $registry{'Val64'} = get_registry_val64($oneregistry, $allvariableshashref); $registry{'Component_'} = get_registry_component($oneregistry, $allvariableshashref); # Collecting all components @@ -432,11 +429,7 @@ sub create_registry_table my $oneline = $registry{'Registry'} . "\t" . $registry{'Root'} . "\t" . $registry{'Key'} . "\t" . $registry{'Name'} . "\t" . $registry{'Value'} . "\t" . $registry{'Component_'} . "\n"; - my $oneline64 = $registry{'Registry'} . "\t" . $registry{'Root'} . "\t" . $registry{'Key'} . "\t" - . $registry{'Name'} . "\t" . $registry{'Val64'} . "\t" . $registry{'Component_'} . "\n"; - - if ( ! ( $style =~ /\bX64_ONLY\b/ )) { push(@registrytable, $oneline); } # standard registry table for 32 Bit - if (( $style =~ /\bX64\b/ ) || ( $style =~ /\bX64_ONLY\b/ )) { push(@reg64table , $oneline64); } + push(@registrytable, $oneline); } # If there are added user registry keys for files collected in @@ -453,11 +446,6 @@ sub create_registry_table installer::files::save_file($registrytablename ,\@registrytable); my $infoline = "Created idt file: $registrytablename\n"; push(@installer::globals::logfileinfo, $infoline); - - $registrytablename = $basedir . $installer::globals::separator . "Reg64.idt" . "." . $onelanguage; - installer::files::save_file($registrytablename ,\@reg64table ); - $infoline = "Created idt file: $registrytablename\n"; - push(@installer::globals::logfileinfo, $infoline); } }