Rebase against a373054b72f396a04ab4f191e1f6c2c9e0476aa0

This commit is contained in:
Alistair Leslie-Hughes 2018-04-21 11:59:41 +10:00
parent bff60a3afb
commit eb4096dc62
5 changed files with 21 additions and 254 deletions

View File

@ -1,43 +0,0 @@
From 4e75102aea7a341d58ca1326639b3d4b795e82d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 01:37:09 +0100
Subject: [PATCH 1/7] include/roapi.h: Add further typedefs.
---
include/roapi.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/include/roapi.h b/include/roapi.h
index 0421fe9..f4154f8 100644
--- a/include/roapi.h
+++ b/include/roapi.h
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2014 Martin Storsjo
+ * Copyright (C) 2016 Michael Müller
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,6 +21,7 @@
#define __WINE_ROAPI_H
#include <windef.h>
+#include <activation.h>
typedef enum
{
@@ -27,6 +29,11 @@ typedef enum
RO_INIT_MULTITHREADED = 1,
} RO_INIT_TYPE;
+DECLARE_HANDLE(APARTMENT_SHUTDOWN_REGISTRATION_COOKIE);
+
+typedef struct {} *RO_REGISTRATION_COOKIE;
+typedef HRESULT (WINAPI *PFNGETACTIVATIONFACTORY)(HSTRING, IActivationFactory **);
+
#ifdef __cplusplus
extern "C" {
#endif
--
1.9.1

View File

@ -1,4 +1,4 @@
From d510ead4493b1b0de9f1e53fa66bdb842f823929 Mon Sep 17 00:00:00 2001
From 5353d54df3ddf2f7bb62ea0214e040aa391b596f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 4 Mar 2016 22:22:42 +0100
Subject: [PATCH] ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps.
@ -12,7 +12,7 @@ Subject: [PATCH] ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps.
5 files changed, 106 insertions(+)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 33e18b8..2628b76 100644
index 33e18b8d6ab..2628b7654f4 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1542,6 +1542,8 @@ static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DD
@ -25,10 +25,10 @@ index 33e18b8..2628b76 100644
if(DriverCaps)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index 4c2e703..61af5a2 100644
index fb0858f253b..b7becc389cb 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -11371,6 +11371,31 @@ static void test_execute_data(void)
@@ -11415,6 +11415,31 @@ static void test_execute_data(void)
DestroyWindow(window);
}
@ -57,20 +57,22 @@ index 4c2e703..61af5a2 100644
+ IDirectDraw_Release(ddraw);
+}
+
START_TEST(ddraw1)
static void test_viewport(void)
{
DDDEVICEIDENTIFIER identifier;
@@ -11473,4 +11498,5 @@ START_TEST(ddraw1)
static struct
@@ -11690,6 +11715,7 @@ START_TEST(ddraw1)
test_depth_readback();
test_clear();
test_enum_surfaces();
test_execute_data();
+ test_caps();
test_execute_data();
test_viewport();
}
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 3bfb1b5..8db6c45 100644
index c2b438cf2ae..61857991f8f 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -12633,6 +12633,31 @@ static void test_enum_surfaces(void)
@@ -12677,6 +12677,31 @@ static void test_enum_surfaces(void)
IDirectDraw2_Release(ddraw);
}
@ -99,17 +101,18 @@ index 3bfb1b5..8db6c45 100644
+ IDirectDraw2_Release(ddraw);
+}
+
START_TEST(ddraw2)
static void test_viewport(void)
{
DDDEVICEIDENTIFIER identifier;
@@ -12743,4 +12768,5 @@ START_TEST(ddraw2)
static struct
@@ -12981,5 +13006,6 @@ START_TEST(ddraw2)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
test_viewport();
}
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 9c4c5a3..6eebcb3 100644
index 9c4c5a3e5b2..6eebcb30311 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -14957,6 +14957,31 @@ static void test_viewport(void)
@ -151,7 +154,7 @@ index 9c4c5a3..6eebcb3 100644
+ test_caps();
}
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index b4910c1..bf1e1cf 100644
index b4910c196cd..bf1e1cf1207 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -14289,6 +14289,31 @@ static void test_viewport(void)
@ -193,5 +196,5 @@ index b4910c1..bf1e1cf 100644
+ test_caps();
}
--
1.9.1
2.17.0

View File

@ -1,69 +0,0 @@
From 26f2ec230b2f6e35c39968d79a533cdb21d3f424 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 21 Jan 2016 00:28:15 +0100
Subject: include: Add more constants to SYSTEM_INFORMATION_CLASS.
---
include/winternl.h | 44 ++++++++++++++++++++++++++------------------
1 file changed, 26 insertions(+), 18 deletions(-)
diff --git a/include/winternl.h b/include/winternl.h
index 9b40fd4..1a799ab 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -822,26 +822,34 @@ typedef enum _SYSTEM_INFORMATION_CLASS {
SystemVerifierInformation = 51,
SystemAddVerifier = 52,
SystemSessionProcessesInformation = 53,
- Unknown54,
- Unknown55,
- Unknown56,
- Unknown57,
+ SystemLoadGdiDriverInSystemSpace = 54,
+ SystemNumaProcessorMap = 55,
+ SystemPrefetcherInformation = 56,
+ SystemExtendedProcessInformation = 57,
SystemRecommendedSharedDataAlignment = 58,
- Unknown59,
- Unknown60,
- Unknown61,
- Unknown62,
- Unknown63,
- Unknown64,
- Unknown65,
- Unknown66,
- Unknown67,
- Unknown68,
- Unknown69,
- Unknown70,
- Unknown71,
- Unknown72,
+ SystemComPlusPackage = 59,
+ SystemNumaAvailableMemory = 60,
+ SystemProcessorPowerInformation = 61,
+ SystemEmulationBasicInformation = 62,
+ SystemEmulationProcessorInformation = 63,
+ SystemExtendedHandleInformation = 64,
+ SystemLostDelayedWriteInformation = 65,
+ SystemBigPoolInformation = 66,
+ SystemSessionPoolTagInformation = 67,
+ SystemSessionMappedViewInformation = 68,
+ SystemHotpatchInformation = 69,
+ SystemObjectSecurityMode = 70,
+ SystemWatchdogTimerHandler = 71,
+ SystemWatchdogTimerInformation = 72,
SystemLogicalProcessorInformation = 73,
+ SystemWow64SharedInformation = 74,
+ SystemRegisterFirmwareTableInformationHandler = 75,
+ SystemFirmwareTableInformation = 76,
+ SystemModuleInformationEx = 77,
+ SystemVerifierTriageInformation = 78,
+ SystemSuperfetchInformation = 79,
+ SystemMemoryListInformation = 80,
+ SystemFileCacheInformationEx = 81,
SystemLogicalProcessorInformationEx = 107,
SystemInformationClassMax
} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS;
--
2.7.1

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "448344c5e443b35c06bc0cc4f2e8ee9b7968008f"
echo "a373054b72f396a04ab4f191e1f6c2c9e0476aa0"
}
# Show version information
@ -251,7 +251,6 @@ patch_enable_all ()
enable_ntdll_Stack_Overflow="$1"
enable_ntdll_Status_Mapping="$1"
enable_ntdll_SystemInterruptInformation="$1"
enable_ntdll_SystemRecommendedSharedDataAlignment="$1"
enable_ntdll_SystemRoot_Symlink="$1"
enable_ntdll_ThreadTime="$1"
enable_ntdll_Threading="$1"
@ -321,7 +320,6 @@ patch_enable_all ()
enable_shell32_Placeholder_Icons="$1"
enable_shell32_Progress_Dialog="$1"
enable_shell32_SFGAO_HASSUBFOLDER="$1"
enable_shell32_SHCreateSessionKey="$1"
enable_shell32_SHELL_execute="$1"
enable_shell32_SHFileOperation_Move="$1"
enable_shell32_SHFileOperation_Win9x="$1"
@ -945,9 +943,6 @@ patch_enable ()
ntdll-SystemInterruptInformation)
enable_ntdll_SystemInterruptInformation="$2"
;;
ntdll-SystemRecommendedSharedDataAlignment)
enable_ntdll_SystemRecommendedSharedDataAlignment="$2"
;;
ntdll-SystemRoot_Symlink)
enable_ntdll_SystemRoot_Symlink="$2"
;;
@ -1155,9 +1150,6 @@ patch_enable ()
shell32-SFGAO_HASSUBFOLDER)
enable_shell32_SFGAO_HASSUBFOLDER="$2"
;;
shell32-SHCreateSessionKey)
enable_shell32_SHCreateSessionKey="$2"
;;
shell32-SHELL_execute)
enable_shell32_SHELL_execute="$2"
;;
@ -2750,11 +2742,9 @@ fi
# |
# | Modified files:
# | * dlls/api-ms-win-core-winrt-l1-1-0/api-ms-win-core-winrt-l1-1-0.spec, dlls/api-ms-win-core-winrt-registration-l1-1-0/api-
# | ms-win-core-winrt-registration-l1-1-0.spec, dlls/combase/Makefile.in, dlls/combase/combase.spec, dlls/combase/roapi.c,
# | include/roapi.h
# | ms-win-core-winrt-registration-l1-1-0.spec, dlls/combase/Makefile.in, dlls/combase/combase.spec, dlls/combase/roapi.c
# |
if test "$enable_combase_RoApi" -eq 1; then
patch_apply combase-RoApi/0002-include-roapi.h-Add-further-typedefs.patch
patch_apply combase-RoApi/0003-combase-Implement-RoGetActivationFactory.patch
patch_apply combase-RoApi/0004-combase-Implement-RoActivateInstance.patch
patch_apply combase-RoApi/0005-combase-Add-stub-for-RoGetApartmentIdentifier.patch
@ -2763,7 +2753,6 @@ if test "$enable_combase_RoApi" -eq 1; then
patch_apply combase-RoApi/0009-combase-Add-stub-for-RoRegisterActivationFactories.patch
patch_apply combase-RoApi/0010-combase-Add-stub-for-CleanupTlsOleState.patch
(
printf '%s\n' '+ { "Michael Müller", "include/roapi.h: Add further typedefs.", 1 },';
printf '%s\n' '+ { "Michael Müller", "combase: Implement RoGetActivationFactory.", 1 },';
printf '%s\n' '+ { "Michael Müller", "combase: Implement RoActivateInstance.", 1 },';
printf '%s\n' '+ { "Michael Müller", "combase: Add stub for RoGetApartmentIdentifier.", 1 },';
@ -5562,18 +5551,6 @@ if test "$enable_ntdll_SystemInterruptInformation" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-SystemRecommendedSharedDataAlignment
# |
# | Modified files:
# | * include/winternl.h
# |
if test "$enable_ntdll_SystemRecommendedSharedDataAlignment" -eq 1; then
patch_apply ntdll-SystemRecommendedSharedDataAlignment/0001-include-Add-more-constants-to-SYSTEM_INFORMATION_CLA.patch
(
printf '%s\n' '+ { "Michael Müller", "include: Add more constants to SYSTEM_INFORMATION_CLASS.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-SystemRoot_Symlink
# |
# | This patchset has the following (direct or indirect) dependencies:
@ -6768,18 +6745,6 @@ if test "$enable_shell32_SFGAO_HASSUBFOLDER" -eq 1; then
) >> "$patchlist"
fi
# Patchset shell32-SHCreateSessionKey
# |
# | Modified files:
# | * dlls/shell32/shellreg.c, dlls/shell32/tests/shellole.c
# |
if test "$enable_shell32_SHCreateSessionKey" -eq 1; then
patch_apply shell32-SHCreateSessionKey/0001-shell32-Implement-SHCreateSessionKey.patch
(
printf '%s\n' '+ { "Dmitry Timoshkov", "shell32: Implement SHCreateSessionKey.", 1 },';
) >> "$patchlist"
fi
# Patchset shell32-SHELL_execute
# |
# | Modified files:

View File

@ -1,89 +0,0 @@
From b91e77db01f842164dd0ec593ad6bf433ad46c5e Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Mon, 17 Feb 2014 11:52:46 +0900
Subject: shell32: Implement SHCreateSessionKey.
This implementation is based on the Geoff Chappell description,
and it seems to be enough for the application I have here.
---
dlls/shell32/shellreg.c | 36 +++++++++++++++++++++++++++++++++---
dlls/shell32/tests/shellole.c | 8 ++++----
2 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/dlls/shell32/shellreg.c b/dlls/shell32/shellreg.c
index 356ec4e..fff1b91 100644
--- a/dlls/shell32/shellreg.c
+++ b/dlls/shell32/shellreg.c
@@ -148,13 +148,43 @@ HRESULT WINAPI SHRegCloseKey (HKEY hkey)
return RegCloseKey( hkey );
}
+static const char session_reg_key[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\SessionInfo\\";
+
+static BOOL WINAPI create_session_key(INIT_ONCE *once, void *param, void **context)
+{
+ static const char desktop_guid[] = "__wine_display_device_guid";
+ ATOM guid_atom;
+ HKEY hkey_session;
+ LPWSTR session_reg_str = param;
+
+ guid_atom = HandleToULong(GetPropA(GetDesktopWindow(), desktop_guid));
+ if (!guid_atom) return FALSE;
+
+ MultiByteToWideChar(CP_ACP, 0, session_reg_key, sizeof(session_reg_key), session_reg_str, sizeof(session_reg_key));
+
+ if (!GlobalGetAtomNameW(guid_atom, session_reg_str + sizeof(session_reg_key) - 1, 39))
+ return FALSE;
+
+ if (RegCreateKeyExW(HKEY_CURRENT_USER, session_reg_str, 0, NULL,
+ REG_OPTION_VOLATILE, KEY_WRITE, NULL, &hkey_session, NULL))
+ return FALSE;
+
+ RegCloseKey(hkey_session);
+ TRACE("session key %s\n", debugstr_w(session_reg_str));
+ return TRUE;
+}
+
/*************************************************************************
* SHCreateSessionKey [SHELL32.723]
*
*/
HRESULT WINAPI SHCreateSessionKey(REGSAM access, HKEY *hkey)
{
- FIXME("stub: %d %p\n", access, hkey);
- *hkey = NULL;
- return E_NOTIMPL;
+ static INIT_ONCE init_once = INIT_ONCE_STATIC_INIT;
+ static WCHAR session_reg_str[sizeof(session_reg_key) + 39];
+
+ InitOnceExecuteOnce(&init_once, create_session_key, session_reg_str, NULL);
+
+ TRACE("using session key %s\n", debugstr_w(session_reg_str));
+ return RegOpenKeyExW(HKEY_CURRENT_USER, session_reg_str, 0, access, hkey);
}
diff --git a/dlls/shell32/tests/shellole.c b/dlls/shell32/tests/shellole.c
index be10733..72e0f31 100644
--- a/dlls/shell32/tests/shellole.c
+++ b/dlls/shell32/tests/shellole.c
@@ -877,14 +877,14 @@ static void test_SHCreateSessionKey(void)
hkey = (HKEY)0xdeadbeef;
hr = pSHCreateSessionKey(0, &hkey);
todo_wine ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr);
- ok(hkey == NULL, "got %p\n", hkey);
+ todo_wine ok(hkey == NULL, "got %p\n", hkey);
hr = pSHCreateSessionKey(KEY_READ, &hkey);
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
hr = pSHCreateSessionKey(KEY_READ, &hkey2);
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
- todo_wine ok(hkey != hkey2, "got %p, %p\n", hkey, hkey2);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hkey != hkey2, "got %p, %p\n", hkey, hkey2);
RegCloseKey(hkey);
RegCloseKey(hkey2);
--
2.9.0