Joel Holdsworth : urlmon: Support [Add.Code] sections in ActiveX INF files.

Alexandre Julliard julliard at winehq.org
Thu Dec 14 15:31:53 CST 2017


Module: wine
Branch: master
Commit: 185bcc4523c5827a78a56c63735f1a5f502e999b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=185bcc4523c5827a78a56c63735f1a5f502e999b

Author: Joel Holdsworth <joel at airwebreathe.org.uk>
Date:   Wed Dec 13 13:32:22 2017 -0700

urlmon: Support [Add.Code] sections in ActiveX INF files.

Signed-off-by: Joel Holdsworth <joel at airwebreathe.org.uk>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/urlmon/axinstall.c | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/dlls/urlmon/axinstall.c b/dlls/urlmon/axinstall.c
index 7ee7d94..d2cf7e6 100644
--- a/dlls/urlmon/axinstall.c
+++ b/dlls/urlmon/axinstall.c
@@ -251,12 +251,25 @@ static HRESULT install_inf_file(install_ctx_t *ctx)
 
     len = GetPrivateProfileStringW(add_codeW, NULL, NULL, buf, sizeof(buf)/sizeof(*buf), ctx->install_file);
     if(len) {
-        FIXME("[Add.Code] section not supported\n");
+        default_install = FALSE;
 
-        /* Don't throw an error if we successfully ran setup hooks;
-           installation is likely to be complete enough */
-        if(default_install)
-            return E_NOTIMPL;
+        for(key = buf; *key; key += strlenW(key)+1) {
+            TRACE("[Add.Code] key: %s\n", debugstr_w(key));
+
+            len = GetPrivateProfileStringW(add_codeW, key, NULL, sect_name, sizeof(sect_name)/sizeof(*sect_name),
+                    ctx->install_file);
+            if(!len) {
+                WARN("Could not get key value\n");
+                return E_FAIL;
+            }
+
+            hres = RunSetupCommandW(ctx->hwnd, ctx->install_file, sect_name,
+                    ctx->tmp_dir, NULL, NULL, RSC_FLAG_INF, NULL);
+            if(FAILED(hres)) {
+                WARN("RunSetupCommandW failed: %08x\n", hres);
+                return hres;
+            }
+        }
     }
 
     if(default_install) {




More information about the wine-cvs mailing list