partial implementation of msi.dll
mike at codeweavers.com
Wed Aug 6 21:23:59 CDT 2003
The documentation for MSI is fairly incomplete. The file format was
mostly undocumented, but it looks like things get better as they get
more abstract ;)
Fortunately it seems fairly well structured. The database and installer
parts are cleanly seperated from each other.
The next steps are:
1) create a second parser for MSI conditional expressions (and figure
out how to get two parsers into the code and keep Alexandre happy ...
since pure parsers require a fairly new version of bison :)
2) make the database read/write - not immediately important, but
There's undocumented interaction with shell32 to create "Advertised
Shortcuts", which are evil shortcuts that contain an identifier that
only MSI can understand. If you look through SHELL32.DLL from Windows
2000, you can see it links to MSI.DLL.
However, now that the database is understood, the main installer loop is
a little easier... it appears that you just iterate over the "Action"
tables, and do the actions in the order specified.
I don't have lots of time to work on this at the moment, so if somebody
wants to have a go, I'm happy to help them out.
ps. maybe we can just call it the Wine installer...
Gregory M. Turner wrote:
> But "Micorosft Installer" might not be the most appropriate name for this
> implementation, eh? :P How about "Mike's Sexy Installer" ;)
> Having clearly delved into this deeper than most of us, how complete would you
> say the documentation for MSI is? What do you think is the future outlook of
> this work?
More information about the wine-devel