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
77d259f4
Commit
77d259f4
authored
May 21, 2008
by
James Hawkins
Committed by
Alexandre Julliard
May 22, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Search the last used source if the cabinet to extract cannot be found.
parent
c1940e39
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
1 deletion
+13
-1
files.c
dlls/msi/files.c
+2
-1
helpers.c
dlls/msi/helpers.c
+10
-0
msipriv.h
dlls/msi/msipriv.h
+1
-0
No files found.
dlls/msi/files.c
View file @
77d259f4
...
...
@@ -577,7 +577,7 @@ UINT msi_load_media_info(MSIPACKAGE *package, MSIFILE *file, MSIMEDIAINFO *mi)
}
/* FIXME: search NETWORK and URL sources as well */
static
UINT
find_published_source
(
MSIPACKAGE
*
package
,
MSIMEDIAINFO
*
mi
)
UINT
find_published_source
(
MSIPACKAGE
*
package
,
MSIMEDIAINFO
*
mi
)
{
WCHAR
source
[
MAX_PATH
];
WCHAR
volume
[
MAX_PATH
];
...
...
@@ -586,6 +586,7 @@ static UINT find_published_source(MSIPACKAGE *package, MSIMEDIAINFO *mi)
DWORD
index
,
size
,
id
;
UINT
r
;
size
=
MAX_PATH
;
r
=
MsiSourceListGetInfoW
(
package
->
ProductCode
,
NULL
,
package
->
Context
,
MSICODE_PRODUCT
,
INSTALLPROPERTY_LASTUSEDSOURCEW
,
source
,
&
size
);
...
...
dlls/msi/helpers.c
View file @
77d259f4
...
...
@@ -1163,6 +1163,16 @@ UINT msi_extract_file(MSIPACKAGE *package, MSIFILE *file, LPWSTR destdir)
if
(
r
!=
ERROR_SUCCESS
)
goto
done
;
if
(
GetFileAttributesW
(
mi
->
source
)
==
INVALID_FILE_ATTRIBUTES
)
{
r
=
find_published_source
(
package
,
mi
);
if
(
r
!=
ERROR_SUCCESS
)
{
ERR
(
"Cabinet not found: %s
\n
"
,
debugstr_w
(
mi
->
source
));
return
ERROR_INSTALL_FAILURE
;
}
}
data
.
package
=
package
;
data
.
mi
=
mi
;
data
.
file
=
file
;
...
...
dlls/msi/msipriv.h
View file @
77d259f4
...
...
@@ -908,6 +908,7 @@ extern UINT msi_load_media_info(MSIPACKAGE *package, MSIFILE *file, MSIMEDIAINFO
extern
void
msi_free_media_info
(
MSIMEDIAINFO
*
mi
);
extern
BOOL
msi_cabextract
(
MSIPACKAGE
*
package
,
MSIMEDIAINFO
*
mi
,
PFNFDINOTIFY
notify
,
LPVOID
data
);
extern
UINT
msi_extract_file
(
MSIPACKAGE
*
package
,
MSIFILE
*
file
,
LPWSTR
destdir
);
extern
UINT
find_published_source
(
MSIPACKAGE
*
package
,
MSIMEDIAINFO
*
mi
);
/* control event stuff */
extern
VOID
ControlEvent_FireSubscribedEvent
(
MSIPACKAGE
*
package
,
LPCWSTR
event
,
...
...
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