Rebase against cb4939eb0ebfe24d6a818e3de060363a58ef9535.

This commit is contained in:
Alistair Leslie-Hughes
2023-11-04 14:20:40 +11:00
parent aeddc191a7
commit 9150a8751e
4 changed files with 279 additions and 51 deletions

View File

@@ -1,4 +1,4 @@
From bfbe6a0ac4ea5d75a58c09e677dfb01bcb2e85cf Mon Sep 17 00:00:00 2001
From f76d5c65c07a184d56a9be4e8f77fa92886bb309 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 5 Sep 2016 15:31:29 +0200
Subject: [PATCH] inseng: Implement CIF reader and download functions.
@@ -9,10 +9,10 @@ FIXME: Needs splitting.
dlls/inseng/icif.c | 1745 ++++++++++++++++++++++++++++++++++
dlls/inseng/inf.c | 443 +++++++++
dlls/inseng/inseng.spec | 4 +-
dlls/inseng/inseng_main.c | 990 ++++++++++++++++++-
dlls/inseng/inseng_main.c | 989 ++++++++++++++++++-
dlls/inseng/inseng_private.h | 79 ++
include/inseng.idl | 276 +++++-
7 files changed, 3488 insertions(+), 53 deletions(-)
7 files changed, 3488 insertions(+), 52 deletions(-)
create mode 100644 dlls/inseng/icif.c
create mode 100644 dlls/inseng/inf.c
create mode 100644 dlls/inseng/inseng_private.h
@@ -2247,7 +2247,7 @@ index 82c0b4d5fe1..7ae46fad3a7 100644
+@ stdcall GetICifRWFileFromFile(ptr str)
@ stub PurgeDownloadDirectory
diff --git a/dlls/inseng/inseng_main.c b/dlls/inseng/inseng_main.c
index c72a12955b8..88017536874 100644
index f7ce3f173c2..81eb1ec4f13 100644
--- a/dlls/inseng/inseng_main.c
+++ b/dlls/inseng/inseng_main.c
@@ -2,6 +2,7 @@
@@ -2258,7 +2258,7 @@ index c72a12955b8..88017536874 100644
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -28,17 +29,68 @@
@@ -28,16 +29,68 @@
#include "winuser.h"
#include "ole2.h"
#include "rpcproxy.h"
@@ -2270,7 +2270,6 @@ index c72a12955b8..88017536874 100644
+#include "inseng_private.h"
+
#include "wine/debug.h"
-#include "wine/heap.h"
WINE_DEFAULT_DEBUG_CHANNEL(inseng);
@@ -2328,7 +2327,7 @@ index c72a12955b8..88017536874 100644
};
static inline InstallEngine *impl_from_IInstallEngine2(IInstallEngine2 *iface)
@@ -46,6 +98,250 @@ static inline InstallEngine *impl_from_IInstallEngine2(IInstallEngine2 *iface)
@@ -45,6 +98,250 @@ static inline InstallEngine *impl_from_IInstallEngine2(IInstallEngine2 *iface)
return CONTAINING_RECORD(iface, InstallEngine, IInstallEngine2_iface);
}
@@ -2579,7 +2578,7 @@ index c72a12955b8..88017536874 100644
static HRESULT WINAPI InstallEngine_QueryInterface(IInstallEngine2 *iface, REFIID riid, void **ppv)
{
InstallEngine *This = impl_from_IInstallEngine2(iface);
@@ -59,13 +355,16 @@ static HRESULT WINAPI InstallEngine_QueryInterface(IInstallEngine2 *iface, REFII
@@ -58,13 +355,16 @@ static HRESULT WINAPI InstallEngine_QueryInterface(IInstallEngine2 *iface, REFII
}else if(IsEqualGUID(&IID_IInstallEngine2, riid)) {
TRACE("(%p)->(IID_IInstallEngine2 %p)\n", This, ppv);
*ppv = &This->IInstallEngine2_iface;
@@ -2598,7 +2597,7 @@ index c72a12955b8..88017536874 100644
return S_OK;
}
@@ -86,181 +385,726 @@ static ULONG WINAPI InstallEngine_Release(IInstallEngine2 *iface)
@@ -85,181 +385,726 @@ static ULONG WINAPI InstallEngine_Release(IInstallEngine2 *iface)
TRACE("(%p) ref=%ld\n", This, ref);
@@ -2608,9 +2607,9 @@ index c72a12955b8..88017536874 100644
+ if (This->icif)
+ ICifFile_Release(This->icif);
+
+ heap_free(This->baseurl);
+ heap_free(This->downloaddir);
heap_free(This);
+ free(This->baseurl);
+ free(This->downloaddir);
free(This);
+ }
return ref;
@@ -3361,7 +3360,7 @@ index c72a12955b8..88017536874 100644
InstallEngine_QueryInterface,
InstallEngine_AddRef,
InstallEngine_Release,
@@ -290,6 +1134,70 @@ static const IInstallEngine2Vtbl InstallEngine2Vtbl = {
@@ -289,6 +1134,70 @@ static const IInstallEngine2Vtbl InstallEngine2Vtbl = {
InstallEngine2_GetICifFile
};
@@ -3432,12 +3431,12 @@ index c72a12955b8..88017536874 100644
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
{
*ppv = NULL;
@@ -334,12 +1242,14 @@ static HRESULT WINAPI InstallEngineCF_CreateInstance(IClassFactory *iface, IUnkn
@@ -333,12 +1242,14 @@ static HRESULT WINAPI InstallEngineCF_CreateInstance(IClassFactory *iface, IUnkn
TRACE("(%p %s %p)\n", outer, debugstr_guid(riid), ppv);
- engine = heap_alloc(sizeof(*engine));
+ engine = heap_alloc_zero(sizeof(*engine));
- engine = malloc(sizeof(*engine));
+ engine = calloc(1, sizeof(*engine));
if(!engine)
return E_OUTOFMEMORY;