diff --git a/dlls/setupapi/install.c b/dlls/setupapi/install.c index 96eb9143bf1..874b4a95ea9 100644 --- a/dlls/setupapi/install.c +++ b/dlls/setupapi/install.c @@ -91,6 +91,7 @@ static const WCHAR Name[] = {'N','a','m','e',0}; static const WCHAR CmdLine[] = {'C','m','d','L','i','n','e',0}; static const WCHAR SubDir[] = {'S','u','b','D','i','r',0}; static const WCHAR WineFakeDlls[] = {'W','i','n','e','F','a','k','e','D','l','l','s',0}; +static const WCHAR WinePreInstall[] = {'W','i','n','e','P','r','e','I','n','s','t','a','l','l',0}; static const WCHAR DisplayName[] = {'D','i','s','p','l','a','y','N','a','m','e',0}; static const WCHAR Description[] = {'D','e','s','c','r','i','p','t','i','o','n',0}; static const WCHAR ServiceBinary[] = {'S','e','r','v','i','c','e','B','i','n','a','r','y',0}; @@ -1067,6 +1068,15 @@ BOOL WINAPI SetupInstallFromInfSectionW( HWND owner, HINF hinf, PCWSTR section, BOOL ret; int i; + if (flags & SPINST_REGISTRY) + { + struct registry_callback_info info; + + info.default_root = key_root; + info.delete = FALSE; + if (!iterate_section_fields( hinf, section, WinePreInstall, registry_callback, &info )) + return FALSE; + } if (flags & SPINST_FILES) { struct files_callback_info info; diff --git a/tools/wine.inf.in b/tools/wine.inf.in index f95d9dcb2fc..e8bf10163d5 100644 --- a/tools/wine.inf.in +++ b/tools/wine.inf.in @@ -80,6 +80,7 @@ AddReg=\ [DefaultInstall.ntamd64] RegisterDlls=RegisterDllsSection WineFakeDlls=FakeDlls +WinePreInstall=Wow64 UpdateInis=SystemIni CopyFiles=@l_intl.nls AddReg=\ @@ -102,8 +103,7 @@ AddReg=\ SessionMgr,\ Tapi,\ Timezones,\ - VersionInfo,\ - Wow64 + VersionInfo [Wow64Install] RegisterDlls=RegisterDllsSection