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
7f98f1d0
Commit
7f98f1d0
authored
Oct 24, 2006
by
Mike McCormack
Committed by
Alexandre Julliard
Oct 23, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Initialize the summary information from a storage interface, not a db.
parent
fd7f9b73
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
16 deletions
+13
-16
action.c
dlls/msi/action.c
+1
-1
database.c
dlls/msi/database.c
+1
-4
msipriv.h
dlls/msi/msipriv.h
+2
-2
suminfo.c
dlls/msi/suminfo.c
+9
-9
No files found.
dlls/msi/action.c
View file @
7f98f1d0
...
...
@@ -460,7 +460,7 @@ static UINT msi_parse_patch_summary( MSIPACKAGE *package, MSIDATABASE *patch_db
LPWSTR
str
,
*
substorage
;
UINT
i
,
r
=
ERROR_SUCCESS
;
si
=
MSI_GetSummaryInformationW
(
patch_db
,
0
);
si
=
MSI_GetSummaryInformationW
(
patch_db
->
storage
,
0
);
if
(
!
si
)
return
ERROR_FUNCTION_FAILED
;
...
...
dlls/msi/database.c
View file @
7f98f1d0
...
...
@@ -57,15 +57,12 @@ DEFINE_GUID( CLSID_MsiPatch, 0x000c1086, 0x0000, 0x0000,
static
VOID
MSI_CloseDatabase
(
MSIOBJECTHDR
*
arg
)
{
MSIDATABASE
*
db
=
(
MSIDATABASE
*
)
arg
;
DWORD
r
;
msi_free
(
db
->
path
);
free_cached_tables
(
db
);
msi_free_transforms
(
db
);
msi_destroy_stringtable
(
db
->
strings
);
r
=
IStorage_Release
(
db
->
storage
);
if
(
r
)
ERR
(
"database reference count was not zero (%d)
\n
"
,
r
);
IStorage_Release
(
db
->
storage
);
if
(
db
->
deletefile
)
{
DeleteFileW
(
db
->
deletefile
);
...
...
dlls/msi/msipriv.h
View file @
7f98f1d0
...
...
@@ -256,7 +256,7 @@ typedef struct tagMSIPREVIEW
typedef
struct
tagMSISUMMARYINFO
{
MSIOBJECTHDR
hdr
;
MSIDATABASE
*
db
;
IStorage
*
storage
;
DWORD
update_count
;
PROPVARIANT
property
[
MSI_MAX_PROPS
];
}
MSISUMMARYINFO
;
...
...
@@ -686,7 +686,7 @@ extern MSIPREVIEW *MSI_EnableUIPreview( MSIDATABASE * );
extern
UINT
MSI_PreviewDialogW
(
MSIPREVIEW
*
,
LPCWSTR
);
/* summary information */
extern
MSISUMMARYINFO
*
MSI_GetSummaryInformationW
(
MSIDATABASE
*
db
,
UINT
uiUpdateCount
);
extern
MSISUMMARYINFO
*
MSI_GetSummaryInformationW
(
IStorage
*
stg
,
UINT
uiUpdateCount
);
extern
LPWSTR
msi_suminfo_dup_string
(
MSISUMMARYINFO
*
si
,
UINT
uiProperty
);
/* undocumented functions */
...
...
dlls/msi/suminfo.c
View file @
7f98f1d0
...
...
@@ -96,7 +96,7 @@ static void MSI_CloseSummaryInfo( MSIOBJECTHDR *arg )
for
(
i
=
0
;
i
<
MSI_MAX_PROPS
;
i
++
)
free_prop
(
&
si
->
property
[
i
]
);
msiobj_release
(
&
si
->
db
->
hdr
);
IStorage_Release
(
si
->
storage
);
}
static
UINT
get_type
(
UINT
uiProperty
)
...
...
@@ -105,7 +105,7 @@ static UINT get_type( UINT uiProperty )
{
case
PID_CODEPAGE
:
return
VT_I2
;
case
PID_SUBJECT
:
case
PID_AUTHOR
:
case
PID_KEYWORDS
:
...
...
@@ -405,28 +405,28 @@ static UINT save_summary_info( MSISUMMARYINFO * si, IStream *stm )
return
ERROR_SUCCESS
;
}
MSISUMMARYINFO
*
MSI_GetSummaryInformationW
(
MSIDATABASE
*
db
,
UINT
uiUpdateCount
)
MSISUMMARYINFO
*
MSI_GetSummaryInformationW
(
IStorage
*
stg
,
UINT
uiUpdateCount
)
{
IStream
*
stm
=
NULL
;
MSISUMMARYINFO
*
si
;
DWORD
grfMode
;
HRESULT
r
;
TRACE
(
"%p %d
\n
"
,
db
,
uiUpdateCount
);
TRACE
(
"%p %d
\n
"
,
stg
,
uiUpdateCount
);
si
=
alloc_msiobject
(
MSIHANDLETYPE_SUMMARYINFO
,
sizeof
(
MSISUMMARYINFO
),
MSI_CloseSummaryInfo
);
if
(
!
si
)
return
si
;
msiobj_addref
(
&
db
->
hdr
);
si
->
db
=
db
;
memset
(
&
si
->
property
,
0
,
sizeof
si
->
property
);
si
->
update_count
=
uiUpdateCount
;
IStorage_AddRef
(
stg
);
si
->
storage
=
stg
;
/* read the stream... if we fail, we'll start with an empty property set */
grfMode
=
STGM_READ
|
STGM_SHARE_EXCLUSIVE
;
r
=
IStorage_OpenStream
(
si
->
db
->
storage
,
szSumInfo
,
0
,
grfMode
,
0
,
&
stm
);
r
=
IStorage_OpenStream
(
si
->
storage
,
szSumInfo
,
0
,
grfMode
,
0
,
&
stm
);
if
(
SUCCEEDED
(
r
)
)
{
load_summary_info
(
si
,
stm
);
...
...
@@ -462,7 +462,7 @@ UINT WINAPI MsiGetSummaryInformationW( MSIHANDLE hDatabase,
return
ERROR_INVALID_PARAMETER
;
}
si
=
MSI_GetSummaryInformationW
(
db
,
uiUpdateCount
);
si
=
MSI_GetSummaryInformationW
(
db
->
storage
,
uiUpdateCount
);
if
(
si
)
{
*
pHandle
=
alloc_msihandle
(
&
si
->
hdr
);
...
...
@@ -749,7 +749,7 @@ UINT WINAPI MsiSummaryInfoPersist( MSIHANDLE handle )
return
ERROR_INVALID_HANDLE
;
grfMode
=
STGM_CREATE
|
STGM_READWRITE
|
STGM_SHARE_EXCLUSIVE
;
r
=
IStorage_CreateStream
(
si
->
db
->
storage
,
szSumInfo
,
grfMode
,
0
,
0
,
&
stm
);
r
=
IStorage_CreateStream
(
si
->
storage
,
szSumInfo
,
grfMode
,
0
,
0
,
&
stm
);
if
(
SUCCEEDED
(
r
)
)
{
ret
=
save_summary_info
(
si
,
stm
);
...
...
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