installer - WiX - Passing parameters to a CustomAction (DLL) -
i've got dll old wise installer i'm trying working in wix, i'm pretty sure dll works msi-based installers.
here definition:
<binary id="setupdll" sourcefile="../tools/setup.dll" /> <customaction id="readconfigfiles" binarykey="setupdll" dllentry="readconfigfiles" />
and usage:
<publish dialog="installdirdlg" control="next" event="doaction" value="readconfigfiles" order="3">1</publish>
my c++ function looks this:
extern "c" uint __stdcall readconfigfiles(msihandle hinstall, char * szdirectory)
where can pass in parameters?
you can't pass parameters directly because in order work, function has exported right footprint. when call readconfigfiles
in custom action dll, should have footprint this:
extern "c" uint __stdcall readconfigfiles(msihandle hinstaller);
you can use hinstaller
parameter read properties msi. use msigetproperty()
:
hresult getproperty(msihandle hinstaller, lpcwstr property, lpwstr value, dword cch_value) { uint err = msigetproperty(hinstaller, property, value, &cch_value); return (err == error_success ? s_ok : e_fail); }
then make sure set property in .wxs file:
<property id="your-property-name">your-property-value</property>
Comments
Post a Comment