Commit 9a4ba8c1 authored by Mike McCormack's avatar Mike McCormack Committed by Alexandre Julliard

msi: Search the patch package for source cabinet files.

parent ecd35a02
......@@ -526,6 +526,13 @@ static UINT msi_apply_patch_package( MSIPACKAGE *package, LPCWSTR file )
}
msi_parse_patch_summary( package, patch_db );
/*
* There might be a CAB file in the patch package,
* so append it to the list of storage to search for streams.
*/
append_storage_to_db( package->db, patch_db->storage );
msiobj_release( &patch_db->hdr );
return ERROR_SUCCESS;
......
......@@ -563,6 +563,7 @@ extern UINT read_raw_stream_data( MSIDATABASE*, LPCWSTR stname,
extern UINT msi_table_apply_transform( MSIDATABASE *db, IStorage *stg );
extern UINT MSI_DatabaseApplyTransformW( MSIDATABASE *db,
LPCWSTR szTransformFile, int iErrorCond );
extern void append_storage_to_db( MSIDATABASE *db, IStorage *stg );
/* action internals */
extern UINT MSI_InstallPackage( MSIPACKAGE *, LPCWSTR, LPCWSTR );
......
......@@ -2101,14 +2101,7 @@ UINT msi_table_apply_transform( MSIDATABASE *db, IStorage *stg )
}
if ( ret == ERROR_SUCCESS )
{
MSITRANSFORM *t;
t = msi_alloc( sizeof *t );
t->stg = stg;
IStorage_AddRef( stg );
list_add_tail( &db->transforms, &t->entry );
}
append_storage_to_db( db, stg );
end:
if ( stgenum )
......@@ -2119,6 +2112,16 @@ end:
return ret;
}
void append_storage_to_db( MSIDATABASE *db, IStorage *stg )
{
MSITRANSFORM *t;
t = msi_alloc( sizeof *t );
t->stg = stg;
IStorage_AddRef( stg );
list_add_tail( &db->transforms, &t->entry );
}
void msi_free_transforms( MSIDATABASE *db )
{
while( !list_empty( &db->transforms ) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment