James Hawkins : advpack: Implement ExecuteCabW.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Apr 20 13:19:47 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: c14fe5a6beb4b2ca64c24e7dcdef077c2d8b236b
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=c14fe5a6beb4b2ca64c24e7dcdef077c2d8b236b

Author: James Hawkins <truiken at 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;
 }
 
 /***********************************************************************




More information about the wine-cvs mailing list