For 1), use these functions to query the Feature table in the MSI:
MsiOpenDatabase()
MsiDatabaseOpenView()
MsiViewFetch()
Close handles as appropriate with MsiCloseHandle().

There are functions in the wix SDK to make this kind of thing a little
easier. Bob mentions them here 
http://www.joyofsetup.com/2007/07/01/semi-custom-actions/
but the wix source is the main source of information on them.

-----Original Message-----
From: Ondrej Zarevucky [mailto:ondrej.zarevu...@fine.cz] 
Sent: 12 August 2009 14:43
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] External Installer App with UI quietly controlling
MSIinstallation

Hi,
I'm planning to move all my installation UI from MSI into a Delphi
application (because of custom controls, better feature selection
presentation, custom driver installation, etc.) and I'm trying to find
out, how to enumerate list of features available in the MSI and then how
to install only features selected by the user (and optionally to custom
folders).

In MSDN article "Installing an Application" 
http://msdn.microsoft.com/en-us/library/aa369508(VS.85).aspx
<http://msdn.microsoft.com/en-us/library/aa369508%28VS.85%29.aspx> there
are only two steps:
1) call MsiInstallProduct("pathToMsi", "property1=value
property2=value")
2) call MsiConfigureProduct("???", INSTALLLEVEL_DEFAULT,
INSTALLSTATE_LOCAL)

And I'd like to have better control over what is happening during the
installation.

My problems:
1) How can I get list of available features from the MSI package? 
(MsiEnumFeatures requires szProduct and not hProduct obtained from
MsiOpenPackage)
2) How can I get szProduct parameter for MsiConfigureProduct? For MSI
creation I'm using automatically generated GUIDs by WiX.
3) Is there any better way how to set installation parameters then using
many properties on the "command line" parameter of MsiInstallProduct? 
Especially I would like to set the Feature states (about 20 modules x 10
languages) and target directories.
4) How can I implement installation modification? Using
MsiConfigureFeature or MsiSetFeatureState?

The uninstallation will be completely handled by MSI with no UI.

Thank you for any advice
Ondrej Zarevucky

------------------------------------------------------------------------
------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008
30-Day trial. Simplify your report design, integration and deployment -
and focus on what you do best, core application coding. Discover what's
new with Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

SDL PLC confidential, all rights reserved.
If you are not the intended recipient of this mail SDL requests and requires 
that you delete it without acting upon or copying any of its contents, and we 
further request that you advise us.
SDL PLC is a public limited company registered in England and Wales.  
Registered number: 02675207.  
Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, 
UK.


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to