In order to provide custom more friendly looking UI when updating the application via the downloaded .msi file I have to provide a custom (WPF, if it matters) window that will in turn replicate what msiexec is doing by calling MSI.DLL functions via interop.
Initially it was a simple msiexec call against the downloaded .msi file, and it would be nice if it could stay that simple.
I also need to provide Cancel functionality just like msiexec does.
What would be the proper way to programatically start/stop/abort this via MSI.DLL functions?
(What I did is look at different MSI Interop implementations, WiX included, but couldn't easily recognize APIs to do this).