[PATCH] cmd.exe: MSI packages execution implemented

Rolf Kalbermatter r.kalbermatter at hccnet.nl
Thu May 8 13:07:55 CDT 2008


Vitaly Perov [mailto:vitperov at etersoft.ru] wrote:

> I haven't found any information about how it implemented in 
> Windows. I use the similar *.com and *.bat way of execution 
> *.msi. I don't sure, that it is correct, but it works!
> I'll be grateful if you have any information/links about how 
> it should work

What about the normal Windows file extension registry?

HKCR\.msi                            REG_SZ         Msi.Package
HKCR\Msi.Package                     REG_SZ         Windows Installer
Package
HKCR\Msi.Package EditFlags           REG_BINARY     00 00 00 01
HKCR\Msi.Package FriendlyTypeName    REG_EXPAND_SZ
@%SystemRoot%\System32\msi.dll,-34
HKCR\Msi.Package\DefaultIcon         REG_SZ
C:\WINDOWS\system32\msiexec.exe,0
HKCR\Msi.Package\shell               REG_SZ         Open,Repair,Uninstall

This for Install:

HKCR\Msi.Package\shell\Open          REG_SZ         &Install
HKCR\Msi.Package\shell\Open MUIVerb  REG_EXAPND_SZ
@%SystemRoot%\System32\msi.dll,-36
HKCR\Msi.Package\shell\Open\command  REG_EXPAND_SZ
"%SystemRoot%\System32\msiexec.exe" /i "%1" %*

And similar for Repair and Uninstall!

I would think that at some point cmd.exe just should call ShellExecuteEx for
file types
it doesn't know about and get the registry handling for free in that way.
Possibly the
import of shell32 would need to be done dynamically or delayed in that case.

Rolf Kalbermatter




More information about the wine-devel mailing list