Module: wine Branch: refs/heads/master Commit: c14fe5a6beb4b2ca64c24e7dcdef077c2d8b236b URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=c14fe5a6beb4b2ca64c24e7d...
Author: James Hawkins truiken@gmail.com Date: Thu Apr 20 10:09:16 2006 -0500
advpack: Implement ExecuteCabW.
---
dlls/advpack/install.c | 29 ++++++++++++++++++++++++----- 1 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/dlls/advpack/install.c b/dlls/advpack/install.c index 6bab9c0..af8213e 100644 --- a/dlls/advpack/install.c +++ b/dlls/advpack/install.c @@ -443,14 +443,33 @@ HRESULT WINAPI ExecuteCabA(HWND hwnd, CA * 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; }
/***********************************************************************