advpack: Extract inf file before installing in ExecuteCab().

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=29806
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
feature/deterministic
Gijs Vermeulen 2020-05-11 00:10:57 +02:00 committed by Alexandre Julliard
parent 98ad00db6b
commit 90ddc58a86
1 changed files with 9 additions and 2 deletions

View File

@ -677,8 +677,15 @@ HRESULT WINAPI ExecuteCabW(HWND hwnd, CABINFOW* pCab, LPVOID pReserved)
ZeroMemory(&info, sizeof(ADVInfo));
if (pCab->pszCab && *pCab->pszCab)
FIXME("Cab archive not extracted!\n");
if ((pCab->pszCab && *pCab->pszCab) && (pCab->pszInf && *pCab->pszInf) && *pCab->szSrcPath)
{
TRACE("pszCab: %s, pszInf: %s, szSrcPath: %s\n", debugstr_w(pCab->pszCab), debugstr_w(pCab->pszInf),
debugstr_w(pCab->szSrcPath));
hr = ExtractFilesW(pCab->pszCab, pCab->szSrcPath, 0, pCab->pszInf, NULL, 0);
if (FAILED(hr))
ERR("Failed to extract .inf file!\n");
}
hr = install_init(pCab->pszInf, pCab->pszSection, pCab->szSrcPath, pCab->dwFlags, &info);
if (hr != S_OK)