fdo#47805 rework handling of 64-bit registry entries
64-bit registry entries were entered via a custom action, which did not always work. By default the custom action ran with user privileges, which were not sufficient to write the registry. It is not necessary to use custom actions for this task. Windows installer supports it well. Change-Id: Id65458c363c2b90b3e7d166b4c836bfb1ff19bf4
This commit is contained in:
parent
22a29c2060
commit
6d9be05a6f
21 changed files with 290 additions and 924 deletions
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
InstallReg64
|
||||
DeinstallReg64
|
|
@ -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
|
||||
# <http://www.openoffice.org/license.html>
|
||||
# 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))
|
|
@ -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
|
||||
* <http://www.openoffice.org/license.html>
|
||||
* 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 <windows.h>
|
||||
#include <msiquery.h>
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#include <malloc.h>
|
||||
#include <strsafe.h>
|
||||
|
||||
// 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<wchar_t*>( 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<const BYTE*>(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<wchar_t*>( 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: */
|
|
@ -1,5 +1,3 @@
|
|||
InstallExecSequenceEntry
|
||||
DeinstallExecSequenceEntry
|
||||
InstallStartmenuFolderIcon
|
||||
DeinstallStartmenuFolderIcon
|
||||
SetProductInstallMode
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
* <http://www.openoffice.org/license.html>
|
||||
* 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
|
||||
|
||||
|
||||
<MSDN>
|
||||
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.
|
||||
</MSDN>
|
||||
|
||||
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 <windows.h>
|
||||
#include <msiquery.h>
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#include <malloc.h>
|
||||
|
||||
#ifdef UNICODE
|
||||
#define _UNICODE
|
||||
#endif
|
||||
#include <tchar.h>
|
||||
|
||||
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<char*>( 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<const BYTE*>(ColumnHandler.Value), _tcslen(ColumnHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, InfotipHandler.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(InfotipHandler.Value), _tcslen(InfotipHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, PropHandler.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(PropHandler.Value), _tcslen(PropHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, ThumbViewer.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(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<const BYTE*>(ColumnHandler.Value), _tcslen(ColumnHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, InfotipHandler.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(InfotipHandler.Value), _tcslen(InfotipHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, PropHandler.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(PropHandler.Value), _tcslen(PropHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, ThumbViewer.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(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<const BYTE*>(ColumnHandler.Value), _tcslen(ColumnHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, InfotipHandler.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(InfotipHandler.Value), _tcslen(InfotipHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, PropHandler.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(PropHandler.Value), _tcslen(PropHandler.Value) + 1);
|
||||
RegSetValueEx(hKey, ThumbViewer.Key, 0, REG_SZ, reinterpret_cast<const BYTE*>(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: */
|
|
@ -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;
|
||||
}
|
||||
|
||||
##############################################################
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue