Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
4aa3a997
Commit
4aa3a997
authored
Jun 18, 2008
by
James Hawkins
Committed by
Alexandre Julliard
Jun 18, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Don't publish components to the Installer key.
parent
073d55e7
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
53 deletions
+13
-53
action.c
dlls/msi/action.c
+11
-39
msipriv.h
dlls/msi/msipriv.h
+0
-1
registry.c
dlls/msi/registry.c
+1
-6
install.c
dlls/msi/tests/install.c
+1
-7
No files found.
dlls/msi/action.c
View file @
4aa3a997
...
...
@@ -2822,15 +2822,11 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package)
WCHAR
squished_cc
[
GUID_SIZE
];
UINT
rc
;
MSICOMPONENT
*
comp
;
HKEY
hkey
=
0
,
hkey2
=
0
;
HKEY
hkey
;
TRACE
(
"
\n
"
);
/* writes the Component and Features values to the registry */
rc
=
MSIREG_OpenComponents
(
&
hkey
);
if
(
rc
!=
ERROR_SUCCESS
)
return
rc
;
/* writes the Component values to the registry */
squash_guid
(
package
->
ProductCode
,
squished_pc
);
ui_progress
(
package
,
1
,
COMPONENT_PROGRESS_VALUE
,
1
,
0
);
...
...
@@ -2862,14 +2858,12 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package)
*/
if
(
ACTION_VerifyComponentForAction
(
comp
,
INSTALLSTATE_LOCAL
))
{
rc
=
RegCreateKeyW
(
hkey
,
squished_cc
,
&
hkey2
);
if
(
rc
!=
ERROR_SUCCESS
)
continue
;
if
(
!
comp
->
FullKeypath
)
continue
;
msi_reg_set_val_str
(
hkey2
,
squished_pc
,
comp
->
FullKeypath
);
rc
=
MSIREG_OpenUserDataComponentKey
(
comp
->
ComponentId
,
&
hkey
,
TRUE
);
if
(
rc
!=
ERROR_SUCCESS
)
continue
;
if
(
comp
->
Attributes
&
msidbComponentAttributesPermanent
)
{
...
...
@@ -2878,36 +2872,14 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package)
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
'0'
,
0
};
msi_reg_set_val_str
(
hkey2
,
szPermKey
,
comp
->
FullKeypath
);
msi_reg_set_val_str
(
hkey
,
szPermKey
,
comp
->
FullKeypath
);
}
RegCloseKey
(
hkey2
);
rc
=
MSIREG_OpenUserDataComponentKey
(
comp
->
ComponentId
,
&
hkey2
,
TRUE
);
if
(
rc
!=
ERROR_SUCCESS
)
continue
;
msi_reg_set_val_str
(
hkey2
,
squished_pc
,
comp
->
FullKeypath
);
RegCloseKey
(
hkey2
);
msi_reg_set_val_str
(
hkey
,
squished_pc
,
comp
->
FullKeypath
);
RegCloseKey
(
hkey
);
}
else
if
(
ACTION_VerifyComponentForAction
(
comp
,
INSTALLSTATE_ABSENT
))
{
DWORD
res
;
rc
=
RegOpenKeyW
(
hkey
,
squished_cc
,
&
hkey2
);
if
(
rc
!=
ERROR_SUCCESS
)
continue
;
RegDeleteValueW
(
hkey2
,
squished_pc
);
/* if the key is empty delete it */
res
=
RegEnumKeyExW
(
hkey2
,
0
,
NULL
,
0
,
0
,
NULL
,
0
,
NULL
);
RegCloseKey
(
hkey2
);
if
(
res
==
ERROR_NO_MORE_ITEMS
)
RegDeleteKeyW
(
hkey
,
squished_cc
);
else
if
(
ACTION_VerifyComponentForAction
(
comp
,
INSTALLSTATE_ABSENT
))
MSIREG_DeleteUserDataComponentKey
(
comp
->
ComponentId
);
}
/* UI stuff */
uirow
=
MSI_CreateRecord
(
3
);
...
...
@@ -2917,8 +2889,8 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package)
ui_actiondata
(
package
,
szProcessComponents
,
uirow
);
msiobj_release
(
&
uirow
->
hdr
);
}
RegCloseKey
(
hkey
);
return
rc
;
return
ERROR_SUCCESS
;
}
typedef
struct
{
...
...
dlls/msi/msipriv.h
View file @
4aa3a997
...
...
@@ -767,7 +767,6 @@ extern UINT MSIREG_OpenUserProductsKey(LPCWSTR szProduct, HKEY* key, BOOL create
extern
UINT
MSIREG_OpenUserPatchesKey
(
LPCWSTR
szPatch
,
HKEY
*
key
,
BOOL
create
);
extern
UINT
MSIREG_OpenFeaturesKey
(
LPCWSTR
szProduct
,
HKEY
*
key
,
BOOL
create
);
extern
UINT
MSIREG_OpenUserDataFeaturesKey
(
LPCWSTR
szProduct
,
HKEY
*
key
,
BOOL
create
);
extern
UINT
MSIREG_OpenComponents
(
HKEY
*
key
);
extern
UINT
MSIREG_OpenUserComponentsKey
(
LPCWSTR
szComponent
,
HKEY
*
key
,
BOOL
create
);
extern
UINT
MSIREG_OpenUserDataComponentKey
(
LPCWSTR
szComponent
,
HKEY
*
key
,
BOOL
create
);
extern
UINT
MSIREG_OpenProductsKey
(
LPCWSTR
szProduct
,
HKEY
*
key
,
BOOL
create
);
...
...
dlls/msi/registry.c
View file @
4aa3a997
...
...
@@ -645,11 +645,6 @@ UINT MSIREG_OpenUserDataFeaturesKey(LPCWSTR szProduct, HKEY *key, BOOL create)
return
rc
;
}
UINT
MSIREG_OpenComponents
(
HKEY
*
key
)
{
return
RegCreateKeyW
(
HKEY_LOCAL_MACHINE
,
szInstaller_Components
,
key
);
}
UINT
MSIREG_OpenUserComponentsKey
(
LPCWSTR
szComponent
,
HKEY
*
key
,
BOOL
create
)
{
UINT
rc
;
...
...
@@ -1240,7 +1235,7 @@ UINT WINAPI MsiEnumComponentsW(DWORD index, LPWSTR lpguid)
TRACE
(
"%d %p
\n
"
,
index
,
lpguid
);
r
=
MSIREG_OpenComponents
(
&
hkeyComponents
);
r
=
RegCreateKeyW
(
HKEY_LOCAL_MACHINE
,
szInstaller_Components
,
&
hkeyComponents
);
if
(
r
!=
ERROR_SUCCESS
)
return
ERROR_NO_MORE_ITEMS
;
...
...
dlls/msi/tests/install.c
View file @
4aa3a997
...
...
@@ -2767,13 +2767,7 @@ static void test_publish_processcomponents(void)
"Expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
"C:
\\
Program Files
\\
msitest
\\
maximus"
,
val
);
res
=
RegOpenKeyA
(
HKEY_LOCAL_MACHINE
,
compkey
,
&
hkey
);
todo_wine
{
ok
(
res
==
ERROR_FILE_NOT_FOUND
,
"Expected ERROR_FILE_NOT_FOUND, got %d
\n
"
,
res
);
}
if
(
res
==
ERROR_SUCCESS
)
RegCloseKey
(
hkey
);
ok
(
res
==
ERROR_FILE_NOT_FOUND
,
"Expected ERROR_FILE_NOT_FOUND, got %d
\n
"
,
res
);
RegDeleteValueA
(
comp
,
"84A88FD7F6998CE40A22FB59F6B9C2BB"
);
RegDeleteKeyA
(
comp
,
""
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment