Вы не можете передавать параметры напрямую, потому что для того, чтобы это работало, ваша функция должна быть экспортирована с нужной площадью. Когда вы вызываете readConfigFiles
в своей dll с пользовательским действием, он должен иметь такой вид:
extern "C" UINT __stdcall readConfigFiles(MSIHANDLE hInstaller);
Вы можете использовать параметр hInstaller
для чтения свойств из MSI. Используйте 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);
}
Тогда просто убедитесь, что вы установили свойство в своем файле .wxs:
<Property Id="YOUR-PROPERTY-NAME">your-property-value</Property>