From c14fe5a6beb4b2ca64c24e7dcdef077c2d8b236b Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Thu, 20 Apr 2006 10:09:16 -0500 Subject: [PATCH] advpack: Implement ExecuteCabW. --- dlls/advpack/install.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/dlls/advpack/install.c b/dlls/advpack/install.c index 6bab9c0ecb5..af8213ec85f 100644 --- a/dlls/advpack/install.c +++ b/dlls/advpack/install.c @@ -443,14 +443,33 @@ HRESULT WINAPI ExecuteCabA(HWND hwnd, CABINFOA* pCab, LPVOID pReserved) * RETURNS * Success: S_OK. * Failure: E_FAIL. - * - * BUGS - * Unimplemented */ HRESULT WINAPI ExecuteCabW(HWND hwnd, CABINFOW* pCab, LPVOID pReserved) { - FIXME("(%p, %p, %p): stub\n", hwnd, pCab, pReserved); - return E_FAIL; + ADVInfo info; + HRESULT hr; + + TRACE("(%p, %p, %p)\n", hwnd, pCab, pReserved); + + ZeroMemory(&info, sizeof(ADVInfo)); + + if (pCab->pszCab && *pCab->pszCab) + FIXME("Cab archive not extracted!\n"); + + hr = install_init(pCab->pszInf, pCab->pszSection, pCab->szSrcPath, pCab->dwFlags, &info); + if (hr != S_OK) + goto done; + + hr = spapi_install(&info); + if (hr != S_OK) + goto done; + + hr = adv_install(&info); + +done: + install_release(&info); + + return S_OK; } /*********************************************************************** -- 2.11.4.GIT