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
f8fef6ea
Commit
f8fef6ea
authored
Oct 26, 2005
by
Mike McCormack
Committed by
Alexandre Julliard
Oct 26, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Create a stub function to apply a single table transform and call it
where we need to apply transforms.
parent
c4e8f063
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
61 additions
and
4 deletions
+61
-4
action.c
dlls/msi/action.c
+1
-2
msipriv.h
dlls/msi/msipriv.h
+3
-0
msiquery.c
dlls/msi/msiquery.c
+1
-2
table.c
dlls/msi/table.c
+56
-0
No files found.
dlls/msi/action.c
View file @
f8fef6ea
...
...
@@ -460,8 +460,7 @@ static UINT msi_apply_substorage_transform( MSIPACKAGE *package,
r
=
IStorage_OpenStorage
(
patch_db
->
storage
,
name
,
NULL
,
STGM_SHARE_EXCLUSIVE
,
NULL
,
0
,
&
stg
);
if
(
SUCCEEDED
(
r
))
{
FIXME
(
"apply substorage transform %s
\n
"
,
debugstr_w
(
name
));
/* ret = table_apply_transform( package->db, stg ); */
ret
=
msi_table_apply_transform
(
package
->
db
,
stg
);
IStorage_Release
(
stg
);
ret
=
ERROR_SUCCESS
;
}
...
...
dlls/msi/msipriv.h
View file @
f8fef6ea
...
...
@@ -310,6 +310,9 @@ extern BOOL TABLE_Exists( MSIDATABASE *db, LPWSTR name );
extern
UINT
read_raw_stream_data
(
MSIDATABASE
*
,
LPCWSTR
stname
,
USHORT
**
pdata
,
UINT
*
psz
);
/* transform functions */
extern
UINT
msi_table_apply_transform
(
MSIDATABASE
*
db
,
IStorage
*
stg
);
/* action internals */
extern
UINT
MSI_InstallPackage
(
MSIPACKAGE
*
,
LPCWSTR
,
LPCWSTR
);
extern
void
ACTION_free_package_structures
(
MSIPACKAGE
*
);
...
...
dlls/msi/msiquery.c
View file @
f8fef6ea
...
...
@@ -657,8 +657,7 @@ static UINT MSI_DatabaseApplyTransformW( MSIDATABASE *db,
if
(
TRACE_ON
(
msi
)
)
enum_stream_names
(
stg
);
/* r = table_apply_transform( db, stg ); */
FIXME
(
"should apply transform %s
\n
"
,
debugstr_w
(
szTransformFile
)
);
r
=
msi_table_apply_transform
(
db
,
stg
);
IStorage_Release
(
stg
);
...
...
dlls/msi/table.c
View file @
f8fef6ea
...
...
@@ -1532,3 +1532,59 @@ UINT MSI_CommitTables( MSIDATABASE *db )
return
ERROR_SUCCESS
;
}
static
UINT
msi_table_load_transform
(
MSIDATABASE
*
db
,
IStorage
*
stg
,
string_table
*
st
,
LPCWSTR
name
)
{
FIXME
(
"%p %p %p %s
\n
"
,
db
,
stg
,
st
,
debugstr_w
(
name
)
);
return
ERROR_SUCCESS
;
}
/*
* msi_table_apply_transform
*
* Enumerate the table transforms in a transform storage and apply each one.
*/
UINT
msi_table_apply_transform
(
MSIDATABASE
*
db
,
IStorage
*
stg
)
{
IEnumSTATSTG
*
stgenum
=
NULL
;
HRESULT
r
;
STATSTG
stat
;
ULONG
n
,
count
;
WCHAR
name
[
0x40
];
string_table
*
strings
;
UINT
ret
=
ERROR_FUNCTION_FAILED
;
strings
=
load_string_table
(
stg
);
if
(
!
strings
)
goto
end
;
r
=
IStorage_EnumElements
(
stg
,
0
,
NULL
,
0
,
&
stgenum
);
if
(
FAILED
(
r
)
)
goto
end
;
n
=
0
;
ret
=
ERROR_SUCCESS
;
while
(
r
==
ERROR_SUCCESS
)
{
count
=
0
;
r
=
IEnumSTATSTG_Next
(
stgenum
,
1
,
&
stat
,
&
count
);
if
(
FAILED
(
r
)
||
!
count
)
break
;
decode_streamname
(
stat
.
pwcsName
,
name
);
if
(
(
name
[
0
]
==
0x4840
)
&&
(
name
[
1
]
!=
'_'
)
)
r
=
msi_table_load_transform
(
db
,
stg
,
strings
,
name
+
1
);
else
TRACE
(
"non-table stream %s
\n
"
,
debugstr_w
(
name
)
);
n
++
;
}
end:
if
(
stgenum
)
IEnumSTATSTG_Release
(
stgenum
);
if
(
strings
)
msi_destroy_stringtable
(
strings
);
return
ret
;
}
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