Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
0762dd68
Commit
0762dd68
authored
Apr 01, 2015
by
Hans Leidekker
Committed by
Alexandre Julliard
Apr 01, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Store the disk id for file patches.
parent
2acc11c2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
1 deletion
+23
-1
action.c
dlls/msi/action.c
+22
-1
msipriv.h
dlls/msi/msipriv.h
+1
-0
No files found.
dlls/msi/action.c
View file @
0762dd68
...
...
@@ -1278,7 +1278,7 @@ static UINT load_file(MSIRECORD *row, LPVOID param)
load_file_hash
(
package
,
file
);
load_file_disk_id
(
package
,
file
);
TRACE
(
"File
Loaded (%s)
\n
"
,
debugstr_w
(
file
->
File
));
TRACE
(
"File
loaded (file %s sequence %u)
\n
"
,
debugstr_w
(
file
->
File
),
file
->
Sequence
);
list_add_tail
(
&
package
->
files
,
&
file
->
entry
);
...
...
@@ -1336,6 +1336,25 @@ static UINT load_all_media( MSIPACKAGE *package )
return
r
;
}
static
UINT
load_patch_disk_id
(
MSIPACKAGE
*
package
,
MSIFILEPATCH
*
patch
)
{
static
const
WCHAR
query
[]
=
{
'S'
,
'E'
,
'L'
,
'E'
,
'C'
,
'T'
,
' '
,
'`'
,
'D'
,
'i'
,
's'
,
'k'
,
'I'
,
'd'
,
'`'
,
' '
,
'F'
,
'R'
,
'O'
,
'M'
,
' '
,
'`'
,
'M'
,
'e'
,
'd'
,
'i'
,
'a'
,
'`'
,
' '
,
'W'
,
'H'
,
'E'
,
'R'
,
'E'
,
' '
,
'`'
,
'L'
,
'a'
,
's'
,
't'
,
'S'
,
'e'
,
'q'
,
'u'
,
'e'
,
'n'
,
'c'
,
'e'
,
'`'
,
' '
,
'>'
,
'='
,
' '
,
'%'
,
'u'
,
0
};
MSIRECORD
*
rec
;
if
(
!
(
rec
=
MSI_QueryGetRecord
(
package
->
db
,
query
,
patch
->
Sequence
)))
{
WARN
(
"query failed
\n
"
);
return
ERROR_FUNCTION_FAILED
;
}
patch
->
disk_id
=
MSI_RecordGetInteger
(
rec
,
1
);
msiobj_release
(
&
rec
->
hdr
);
return
ERROR_SUCCESS
;
}
static
UINT
load_patch
(
MSIRECORD
*
row
,
LPVOID
param
)
{
MSIPACKAGE
*
package
=
param
;
...
...
@@ -1365,6 +1384,8 @@ static UINT load_patch(MSIRECORD *row, LPVOID param)
* _StreamRef - External key into MsiPatchHeaders (instead of the header field)
*/
load_patch_disk_id
(
package
,
patch
);
TRACE
(
"Patch loaded (file %s sequence %u)
\n
"
,
debugstr_w
(
patch
->
File
->
File
),
patch
->
Sequence
);
list_add_tail
(
&
package
->
filepatches
,
&
patch
->
entry
);
...
...
dlls/msi/msipriv.h
View file @
0762dd68
...
...
@@ -594,6 +594,7 @@ typedef struct tagMSIFILEPATCH
INT
PatchSize
;
INT
Attributes
;
BOOL
IsApplied
;
UINT
disk_id
;
}
MSIFILEPATCH
;
typedef
struct
tagMSIAPPID
...
...
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