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;

View File

@ -1,4 +1,4 @@
From c3ba1fbd5560fa0aaa791d8099ed25be93176b97 Mon Sep 17 00:00:00 2001
From 0830c90120a304cd215f3891f02fef42e3aa45ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 4 Mar 2016 04:54:37 +0100
Subject: [PATCH] setupapi: Implement SetupAddInstallSectionToDiskSpaceList.
@ -312,28 +312,28 @@ index 8e2eb88bf93..5643f930d9d 100644
+ test_SetupAddInstallSectionToDiskSpaceListA();
}
diff --git a/include/setupapi.h b/include/setupapi.h
index 21992ead500..41a0f720c7c 100644
index 831efdd4f50..031bd97f721 100644
--- a/include/setupapi.h
+++ b/include/setupapi.h
@@ -1420,6 +1420,18 @@ typedef enum {
void WINAPI InstallHinfSectionA( HWND hwnd, HINSTANCE handle, PCSTR cmdline, INT show );
void WINAPI InstallHinfSectionW( HWND hwnd, HINSTANCE handle, PCWSTR cmdline, INT show );
#define InstallHinfSection WINELIB_NAME_AW(InstallHinfSection)
+BOOL WINAPI IsUserAdmin(VOID);
+PWSTR WINAPI MultiByteToUnicode(PCSTR lpMultiByteStr, UINT uCodePage);
+VOID WINAPI MyFree(PVOID lpMem);
+PVOID WINAPI MyMalloc(DWORD dwSize);
+PVOID WINAPI MyRealloc(PVOID lpSrc, DWORD dwSize);
+DWORD WINAPI OpenAndMapForRead(PCWSTR, PDWORD, PHANDLE, PHANDLE, PVOID *);
+LONG WINAPI QueryRegistryValue(HKEY, PCWSTR, PBYTE *, PDWORD, PDWORD);
@@ -1426,6 +1426,18 @@ typedef enum {
WINSETUPAPI void WINAPI InstallHinfSectionA( HWND hwnd, HINSTANCE handle, PCSTR cmdline, INT show );
WINSETUPAPI void WINAPI InstallHinfSectionW( HWND hwnd, HINSTANCE handle, PCWSTR cmdline, INT show );
#define InstallHinfSection WINELIB_NAME_AW(InstallHinfSection)
+WINSETUPAPI BOOL WINAPI IsUserAdmin(VOID);
+WINSETUPAPI PWSTR WINAPI MultiByteToUnicode(PCSTR lpMultiByteStr, UINT uCodePage);
+WINSETUPAPI VOID WINAPI MyFree(PVOID lpMem);
+WINSETUPAPI PVOID WINAPI MyMalloc(DWORD dwSize);
+WINSETUPAPI PVOID WINAPI MyRealloc(PVOID lpSrc, DWORD dwSize);
+WINSETUPAPI DWORD WINAPI OpenAndMapForRead(PCWSTR, PDWORD, PHANDLE, PHANDLE, PVOID *);
+WINSETUPAPI LONG WINAPI QueryRegistryValue(HKEY, PCWSTR, PBYTE *, PDWORD, PDWORD);
+/* RetreiveFileSecurity is not a typo, as per Microsoft's dlls */
+DWORD WINAPI RetreiveFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR *);
+BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, PVOID, UINT);
+BOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, PVOID, UINT);
+WINSETUPAPI DWORD WINAPI RetreiveFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR *);
+WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, PVOID, UINT);
+WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, PVOID, UINT);
+#define SetupAddInstallSectionToDiskSpaceList WINELIB_NAME_AW(SetupAddInstallSectionToDiskSpaceList)
BOOL WINAPI SetupAddSectionToDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, UINT, PVOID, UINT);
BOOL WINAPI SetupAddSectionToDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, UINT, PVOID, UINT);
#define SetupAddSectionToDiskSpaceList WINELIB_NAME_AW(SetupAddSectionToDiskSpaceList)
WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, UINT, PVOID, UINT);
WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, UINT, PVOID, UINT);
#define SetupAddSectionToDiskSpaceList WINELIB_NAME_AW(SetupAddSectionToDiskSpaceList)
--
2.42.0

View File

@ -1 +1 @@
a3209daea543104fbfac5900bf9ec0c05a0a43fc
cb4939eb0ebfe24d6a818e3de060363a58ef9535