You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
119 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e6122130be | ||
|
589007dcc3 | ||
|
932dd8fbbc | ||
|
b765f1e594 | ||
|
83071bc1dc | ||
|
858ca1d0f3 | ||
|
290a4cf54c | ||
|
dc30ea89c3 | ||
|
2f5862fb37 | ||
|
b6c11108ec | ||
|
eac5c23abb | ||
|
5a7d29e22e | ||
|
bcf8079573 | ||
|
cb7a46b342 | ||
|
7a2b5e68f6 | ||
|
2a334716c5 | ||
|
115a9748d3 | ||
|
e6ca6c632e | ||
|
ab867bb560 | ||
|
42074346d2 | ||
|
d88399a1de | ||
|
d6cc738728 | ||
|
eb8ffcc900 | ||
|
e0c5f8a2b9 | ||
|
72edf5c454 | ||
|
676f8190a3 | ||
|
fb073f008c | ||
|
b3908c3ae3 | ||
|
f8e36a7305 | ||
|
0836349fc9 | ||
|
b52385ec2a | ||
|
11f91d29fc | ||
|
23f9d8d35d | ||
|
b7ac6188f9 | ||
|
bca995cef8 | ||
|
4d81da5229 | ||
|
106d3d5461 | ||
|
09612a2923 | ||
|
51917ee882 | ||
|
3883513261 | ||
|
6a55df61ce | ||
|
e2e98ce27a | ||
|
cf7f966347 | ||
|
72f80a6c3c | ||
|
98d77c786f | ||
|
6576a7796a | ||
|
31e5a4b2be | ||
|
0e424c26ad | ||
|
d35ab071b5 | ||
|
089f367941 | ||
|
4ffcf184bb | ||
|
0978242195 | ||
|
988fe3e9e1 | ||
|
80ff81b4d1 | ||
|
731dde08ca | ||
|
24adcdb199 | ||
|
c0124477e9 | ||
|
3948744e12 | ||
|
20a201f51a | ||
|
1e5b8f9940 | ||
|
8a350d004c | ||
|
9c77e0bb82 | ||
|
6d4294d7e5 | ||
|
bbb85b6916 | ||
|
759fd000ad | ||
|
312843a2c2 | ||
|
74ac55e7d9 | ||
|
8e6776a691 | ||
|
bcc980d580 | ||
|
9a6a0c49f5 | ||
|
5289f77aad | ||
|
750454d6f1 | ||
|
f6e35db051 | ||
|
661976a145 | ||
|
31fe5d3167 | ||
|
5d71a4eff3 | ||
|
e369069feb | ||
|
883297db76 | ||
|
7f4d6429ad | ||
|
ec3240b174 | ||
|
dbb0795dd4 | ||
|
21ac67b551 | ||
|
b8de48bb3a | ||
|
03d86bd0d4 | ||
|
e8595a8305 | ||
|
be6712245c | ||
|
345d3789cc | ||
|
901c33023f | ||
|
d55612ab9c | ||
|
ad65139e3d | ||
|
89a3c598c3 | ||
|
da7ef4474e | ||
|
164e63ad82 | ||
|
558b4dcc4b | ||
|
c853702845 | ||
|
08db287ce8 | ||
|
6d36eb2fdc | ||
|
74a1d8d0fb | ||
|
7a8203d691 | ||
|
f6a285ccfc | ||
|
692def9754 | ||
|
8ca2de22a0 | ||
|
44aeaade64 | ||
|
8ebf32fb69 | ||
|
e9bb99ec93 | ||
|
b1a1c80a0d | ||
|
716fa1dbcb | ||
|
08e2798f66 | ||
|
53d43e05b3 | ||
|
c344dcf96e | ||
|
5e0122ae53 | ||
|
8b24f43d5e | ||
|
8d7e0791fe | ||
|
cf5a12527f | ||
|
8981e5a344 | ||
|
cd8442e4c4 | ||
|
5e7f75370b | ||
|
124b8035a4 | ||
|
f2d347b897 |
@@ -1,15 +1,15 @@
|
||||
From 7cb209e122fc503190dcad411483147ebc6d6cb4 Mon Sep 17 00:00:00 2001
|
||||
From 78ee3e0a09735f835303b7ddd458c8852b4774fc Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 11 Nov 2014 03:11:33 +0100
|
||||
Subject: ntdll: Implement emulation of SIDT instruction when using Exagear.
|
||||
|
||||
---
|
||||
configure.ac | 8 ++
|
||||
dlls/ntdll/signal_i386.c | 224 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 232 insertions(+)
|
||||
dlls/ntdll/signal_i386.c | 223 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 231 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 92d78a2..c88a139 100644
|
||||
index c9445e7..8a5b2d8 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -32,6 +32,7 @@ AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 supp
|
||||
@@ -20,7 +20,7 @@ index 92d78a2..c88a139 100644
|
||||
|
||||
AC_ARG_WITH(alsa, AS_HELP_STRING([--without-alsa],[do not use the Alsa sound support]),
|
||||
[if test "x$withval" = "xno"; then ac_cv_header_sys_asoundlib_h=no; ac_cv_header_alsa_asoundlib_h=no; fi])
|
||||
@@ -367,6 +368,13 @@ fi
|
||||
@@ -372,6 +373,13 @@ fi
|
||||
WINE_WARNING_WITH(gettext,[test "$MSGFMT" = false],
|
||||
[gettext tools not found (or too old), translations won't be built.])
|
||||
|
||||
@@ -35,7 +35,7 @@ index 92d78a2..c88a139 100644
|
||||
|
||||
dnl Check for -li386 for NetBSD and OpenBSD
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 13df4bb..edf5ea8 100644
|
||||
index 7121267..6976709 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -96,6 +96,14 @@ typedef struct
|
||||
@@ -53,11 +53,10 @@ index 13df4bb..edf5ea8 100644
|
||||
/***********************************************************************
|
||||
* signal context platform-specific definitions
|
||||
*/
|
||||
@@ -1573,6 +1581,214 @@ static inline DWORD is_privileged_instr( CONTEXT *context )
|
||||
}
|
||||
@@ -1898,6 +1906,213 @@ static inline DWORD get_fpu_code( const CONTEXT *context )
|
||||
}
|
||||
|
||||
+
|
||||
|
||||
+#ifdef EXAGEAR_COMPAT
|
||||
+
|
||||
+/***********************************************************************
|
||||
@@ -265,10 +264,10 @@ index 13df4bb..edf5ea8 100644
|
||||
+#endif /* EXAGEAR_COMPAT */
|
||||
+
|
||||
+
|
||||
/***********************************************************************
|
||||
* check_invalid_gs
|
||||
*
|
||||
@@ -1902,6 +2118,14 @@ static void WINAPI raise_segv_exception( EXCEPTION_RECORD *rec, CONTEXT *context
|
||||
/**********************************************************************
|
||||
* raise_segv_exception
|
||||
*/
|
||||
@@ -1907,6 +2122,14 @@ static void WINAPI raise_segv_exception( EXCEPTION_RECORD *rec, CONTEXT *context
|
||||
|
||||
switch(rec->ExceptionCode)
|
||||
{
|
||||
@@ -284,5 +283,5 @@ index 13df4bb..edf5ea8 100644
|
||||
if (rec->NumberParameters == 2)
|
||||
{
|
||||
--
|
||||
2.1.3
|
||||
2.7.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 8794d625750d35293adecbedc32cc02257817b05 Mon Sep 17 00:00:00 2001
|
||||
From b0a0388503a1576fb9b1b91ca764251b30f7dd3e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 20 Jul 2014 22:22:14 +0200
|
||||
Subject: wined3d: allow changing strict drawing through an exported function
|
||||
@@ -9,27 +9,27 @@ Subject: wined3d: allow changing strict drawing through an exported function
|
||||
2 files changed, 7 insertions(+)
|
||||
|
||||
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
|
||||
index 7a77003..5519a48 100644
|
||||
index bbd2fb5..2fd0c0e 100644
|
||||
--- a/dlls/wined3d/wined3d.spec
|
||||
+++ b/dlls/wined3d/wined3d.spec
|
||||
@@ -219,6 +219,8 @@
|
||||
@@ -220,6 +220,8 @@
|
||||
@ cdecl wined3d_stateblock_decref(ptr)
|
||||
@ cdecl wined3d_stateblock_incref(ptr)
|
||||
|
||||
+@ cdecl wined3d_strictdrawing_set(long)
|
||||
+
|
||||
@ cdecl wined3d_surface_blt(ptr ptr ptr ptr long ptr long)
|
||||
@ cdecl wined3d_surface_decref(ptr)
|
||||
@ cdecl wined3d_surface_from_resource(ptr)
|
||||
@ cdecl wined3d_swapchain_create(ptr ptr ptr ptr ptr)
|
||||
@ cdecl wined3d_swapchain_decref(ptr)
|
||||
@ cdecl wined3d_swapchain_get_back_buffer(ptr long)
|
||||
diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
|
||||
index 758ba43..7ccd3a1 100644
|
||||
index 0543d97..6a62697 100644
|
||||
--- a/dlls/wined3d/wined3d_main.c
|
||||
+++ b/dlls/wined3d/wined3d_main.c
|
||||
@@ -505,6 +505,11 @@ void wined3d_unregister_window(HWND window)
|
||||
@@ -515,6 +515,11 @@ void wined3d_unregister_window(HWND window)
|
||||
wined3d_wndproc_mutex_unlock();
|
||||
}
|
||||
|
||||
+void wined3d_strictdrawing_set(int value)
|
||||
+void CDECL wined3d_strictdrawing_set(int value)
|
||||
+{
|
||||
+ wined3d_settings.strict_draw_ordering = value;
|
||||
+}
|
||||
@@ -38,5 +38,5 @@ index 758ba43..7ccd3a1 100644
|
||||
BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved)
|
||||
{
|
||||
--
|
||||
2.1.3
|
||||
2.7.1
|
||||
|
||||
|
@@ -0,0 +1,55 @@
|
||||
From 33d8e5aac7dfedd9230ef340eeef57398282147c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 15 Feb 2016 03:38:48 +0100
|
||||
Subject: advapi32/tests: Improve RegDeleteTree tests.
|
||||
|
||||
---
|
||||
dlls/advapi32/tests/registry.c | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c
|
||||
index ef5d989..183e538 100644
|
||||
--- a/dlls/advapi32/tests/registry.c
|
||||
+++ b/dlls/advapi32/tests/registry.c
|
||||
@@ -41,7 +41,7 @@ static const char * sTestpath2 = "%FOO%\\subdir1";
|
||||
static const DWORD ptr_size = 8 * sizeof(void*);
|
||||
|
||||
static DWORD (WINAPI *pRegGetValueA)(HKEY,LPCSTR,LPCSTR,DWORD,LPDWORD,PVOID,LPDWORD);
|
||||
-static DWORD (WINAPI *pRegDeleteTreeA)(HKEY,LPCSTR);
|
||||
+static LONG (WINAPI *pRegDeleteTreeA)(HKEY,const char *);
|
||||
static DWORD (WINAPI *pRegDeleteKeyExA)(HKEY,LPCSTR,REGSAM,DWORD);
|
||||
static BOOL (WINAPI *pIsWow64Process)(HANDLE,PBOOL);
|
||||
static NTSTATUS (WINAPI * pNtDeleteKey)(HANDLE);
|
||||
@@ -2083,6 +2083,7 @@ static void test_reg_delete_tree(void)
|
||||
{
|
||||
CHAR buffer[MAX_PATH];
|
||||
HKEY subkey, subkey2;
|
||||
+ DWORD dwsize, type;
|
||||
LONG size, ret;
|
||||
|
||||
if(!pRegDeleteTreeA) {
|
||||
@@ -2128,7 +2129,9 @@ static void test_reg_delete_tree(void)
|
||||
ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
ret = RegCloseKey(subkey2);
|
||||
ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
- ret = RegSetValueA(subkey, "value", REG_SZ, "data2", 5);
|
||||
+ ret = RegSetValueA(subkey, NULL, REG_SZ, "data", 4);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ret = RegSetValueExA(subkey, "value", 0, REG_SZ, (const BYTE *)"data2", 5);
|
||||
ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
ret = pRegDeleteTreeA(subkey, NULL);
|
||||
ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
@@ -2143,8 +2146,8 @@ static void test_reg_delete_tree(void)
|
||||
ok(ret == ERROR_SUCCESS,
|
||||
"Default value of subkey is not present\n");
|
||||
ok(!buffer[0], "Expected length 0 got length %u(%s)\n", lstrlenA(buffer), buffer);
|
||||
- size = MAX_PATH;
|
||||
- ok(RegQueryValueA(subkey, "value", buffer, &size),
|
||||
+ dwsize = MAX_PATH;
|
||||
+ ok(RegQueryValueExA(subkey, "value", NULL, &type, (BYTE *)buffer, &dwsize),
|
||||
"Value is still present\n");
|
||||
|
||||
ret = pRegDeleteTreeA(hkey_main, "not-here");
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -0,0 +1,142 @@
|
||||
From b41aaf3ea73161ee1680dd3dad34544484eaf05c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 15 Feb 2016 03:40:36 +0100
|
||||
Subject: advapi32/tests: Add tests for RegCopyTree.
|
||||
|
||||
---
|
||||
dlls/advapi32/tests/registry.c | 98 ++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 98 insertions(+)
|
||||
|
||||
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c
|
||||
index 183e538..d29e131 100644
|
||||
--- a/dlls/advapi32/tests/registry.c
|
||||
+++ b/dlls/advapi32/tests/registry.c
|
||||
@@ -41,6 +41,7 @@ static const char * sTestpath2 = "%FOO%\\subdir1";
|
||||
static const DWORD ptr_size = 8 * sizeof(void*);
|
||||
|
||||
static DWORD (WINAPI *pRegGetValueA)(HKEY,LPCSTR,LPCSTR,DWORD,LPDWORD,PVOID,LPDWORD);
|
||||
+static LONG (WINAPI *pRegCopyTreeA)(HKEY,const char *,HKEY);
|
||||
static LONG (WINAPI *pRegDeleteTreeA)(HKEY,const char *);
|
||||
static DWORD (WINAPI *pRegDeleteKeyExA)(HKEY,LPCSTR,REGSAM,DWORD);
|
||||
static BOOL (WINAPI *pIsWow64Process)(HANDLE,PBOOL);
|
||||
@@ -135,6 +136,7 @@ static void InitFunctionPtrs(void)
|
||||
|
||||
/* This function was introduced with Windows 2003 SP1 */
|
||||
ADVAPI32_GET_PROC(RegGetValueA);
|
||||
+ ADVAPI32_GET_PROC(RegCopyTreeA);
|
||||
ADVAPI32_GET_PROC(RegDeleteTreeA);
|
||||
ADVAPI32_GET_PROC(RegDeleteKeyExA);
|
||||
ADVAPI32_GET_PROC(RegDeleteKeyValueA);
|
||||
@@ -2079,6 +2081,101 @@ static void test_string_termination(void)
|
||||
RegCloseKey(subkey);
|
||||
}
|
||||
|
||||
+static void test_reg_copy_tree(void)
|
||||
+{
|
||||
+ HKEY src, dst, subkey;
|
||||
+ CHAR buffer[MAX_PATH];
|
||||
+ DWORD dwsize, type;
|
||||
+ LONG size, ret;
|
||||
+
|
||||
+ if (!pRegCopyTreeA)
|
||||
+ {
|
||||
+ skip("Skipping RegCopyTreeA tests, function not present\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ ret = RegCreateKeyA(hkey_main, "src", &src);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ret = RegCreateKeyA(hkey_main, "dst", &dst);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ /* Copy nonexistent subkey */
|
||||
+ ret = pRegCopyTreeA(src, "nonexistent_subkey", dst);
|
||||
+ ok(ret == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", ret);
|
||||
+
|
||||
+ /* Create test keys and values */
|
||||
+ ret = RegSetValueA(src, NULL, REG_SZ, "data", 4);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ret = RegSetValueExA(src, "value", 0, REG_SZ, (const BYTE *)"data2", 5);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ ret = RegCreateKeyA(src, "subkey2", &subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ret = RegSetValueA(subkey, NULL, REG_SZ, "data3", 5);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ret = RegSetValueExA(subkey, "value", 0, REG_SZ, (const BYTE *)"data4", 5);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ret = RegCloseKey(subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ ret = RegCreateKeyA(src, "subkey3", &subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ret = RegCloseKey(subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ /* Copy subkey */
|
||||
+ ret = pRegCopyTreeA(src, "subkey2", dst);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ size = MAX_PATH;
|
||||
+ ret = RegQueryValueA(dst, NULL, buffer, &size);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ok(!strcmp(buffer, "data3"), "Expected 'data3', got '%s'\n", buffer);
|
||||
+
|
||||
+ dwsize = MAX_PATH;
|
||||
+ ret = RegQueryValueExA(dst, "value", NULL, &type, (BYTE *)buffer, &dwsize);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ok(type == REG_SZ, "Expected REG_SZ, got %u\n", type);
|
||||
+ ok(!strcmp(buffer, "data4"), "Expected 'data4', got '%s'\n", buffer);
|
||||
+
|
||||
+ /* Copy full tree */
|
||||
+ ret = pRegCopyTreeA(src, NULL, dst);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ size = MAX_PATH;
|
||||
+ ret = RegQueryValueA(dst, NULL, buffer, &size);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ok(!strcmp(buffer, "data"), "Expected 'data', got '%s'\n", buffer);
|
||||
+
|
||||
+ dwsize = MAX_PATH;
|
||||
+ ret = RegQueryValueExA(dst, "value", NULL, &type, (BYTE *)buffer, &dwsize);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ok(type == REG_SZ, "Expected REG_SZ, got %u\n", type);
|
||||
+ ok(!strcmp(buffer, "data2"), "Expected 'data2', got '%s'\n", buffer);
|
||||
+
|
||||
+ ret = RegOpenKeyA(dst, "subkey2", &subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ size = MAX_PATH;
|
||||
+ ret = RegQueryValueA(subkey, NULL, buffer, &size);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ok(!strcmp(buffer, "data3"), "Expected 'data3', got '%s'\n", buffer);
|
||||
+ dwsize = MAX_PATH;
|
||||
+ ret = RegQueryValueExA(subkey, "value", NULL, &type, (BYTE *)buffer, &dwsize);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ok(type == REG_SZ, "Expected REG_SZ, got %u\n", type);
|
||||
+ ok(!strcmp(buffer, "data4"), "Expected 'data4', got '%s'\n", buffer);
|
||||
+ ret = RegCloseKey(subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ ret = RegOpenKeyA(dst, "subkey3", &subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+ ret = RegCloseKey(subkey);
|
||||
+ ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
|
||||
+
|
||||
+ delete_key(src);
|
||||
+ delete_key(dst);
|
||||
+}
|
||||
+
|
||||
static void test_reg_delete_tree(void)
|
||||
{
|
||||
CHAR buffer[MAX_PATH];
|
||||
@@ -3320,6 +3417,7 @@ START_TEST(registry)
|
||||
test_reg_save_key();
|
||||
test_reg_load_key();
|
||||
test_reg_unload_key();
|
||||
+ test_reg_copy_tree();
|
||||
test_reg_delete_tree();
|
||||
test_rw_order();
|
||||
test_deleted_key();
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -0,0 +1,193 @@
|
||||
From 8303376b344d5525f7124016fef073da747c6acd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 15 Feb 2016 06:27:10 +0100
|
||||
Subject: advapi32: Implement RegCopyTreeA/W.
|
||||
|
||||
---
|
||||
dlls/advapi32/advapi32.spec | 4 +-
|
||||
dlls/advapi32/registry.c | 114 +++++++++++++++++++++
|
||||
dlls/advapi32/tests/registry.c | 2 +-
|
||||
.../api-ms-win-core-registry-l1-1-0.spec | 2 +-
|
||||
.../api-ms-win-downlevel-advapi32-l1-1-0.spec | 2 +-
|
||||
5 files changed, 119 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
|
||||
index 36f176b..e3c7c4b 100644
|
||||
--- a/dlls/advapi32/advapi32.spec
|
||||
+++ b/dlls/advapi32/advapi32.spec
|
||||
@@ -575,8 +575,8 @@
|
||||
@ stdcall RegConnectRegistryW(wstr long ptr)
|
||||
# @ stub RegConnectRegistryExA
|
||||
# @ stub RegConnectRegistryExW
|
||||
-# @ stub RegCopyTreeA
|
||||
-# @ stub RegCopyTreeW
|
||||
+@ stdcall RegCopyTreeA(long str long)
|
||||
+@ stdcall RegCopyTreeW(long wstr long)
|
||||
@ stdcall RegCreateKeyA(long str ptr)
|
||||
@ stdcall RegCreateKeyExA(long str long ptr long long ptr ptr ptr)
|
||||
@ stdcall RegCreateKeyExW(long wstr long ptr long long ptr ptr ptr)
|
||||
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
|
||||
index 3508407..faca66c 100644
|
||||
--- a/dlls/advapi32/registry.c
|
||||
+++ b/dlls/advapi32/registry.c
|
||||
@@ -3104,6 +3104,120 @@ LSTATUS WINAPI RegDeleteTreeA(HKEY hKey, LPCSTR lpszSubKey)
|
||||
return ret;
|
||||
}
|
||||
|
||||
+
|
||||
+static LONG reg_get_buffers( HKEY hkey, WCHAR **name_buf, DWORD *name_size,
|
||||
+ BYTE **value_buf, DWORD *value_size )
|
||||
+{
|
||||
+ DWORD ret, max_subkey, max_name, max_value;
|
||||
+
|
||||
+ ret = RegQueryInfoKeyW( hkey, NULL, NULL, NULL, NULL, &max_subkey,
|
||||
+ NULL, NULL, &max_name, &max_value, NULL, NULL );
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ /* allocate buffer for subkeys / names */
|
||||
+ max_name = max( max_subkey, max_name ) + 1;
|
||||
+ if (max_name > *name_size)
|
||||
+ {
|
||||
+ if (!(*name_buf = heap_alloc( max_name * sizeof(WCHAR) )))
|
||||
+ return ERROR_NOT_ENOUGH_MEMORY;
|
||||
+ *name_size = max_name;
|
||||
+ }
|
||||
+
|
||||
+ /* allocate buffer for values */
|
||||
+ if (max_value > *value_size)
|
||||
+ {
|
||||
+ if (!(*value_buf = heap_alloc( max_value )))
|
||||
+ return ERROR_NOT_ENOUGH_MEMORY;
|
||||
+ *value_size = max_value;
|
||||
+ }
|
||||
+
|
||||
+ return ERROR_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/******************************************************************************
|
||||
+ * RegCopyTreeW [ADVAPI32.@]
|
||||
+ *
|
||||
+ */
|
||||
+LONG WINAPI RegCopyTreeW( HKEY hsrc, const WCHAR *subkey, HKEY hdst )
|
||||
+{
|
||||
+ WCHAR buf1[MAX_PATH], *name_buf = buf1;
|
||||
+ BYTE buf2[MAX_PATH], *value_buf = buf2;
|
||||
+ DWORD name_size, max_name = sizeof(buf1) / sizeof(WCHAR);
|
||||
+ DWORD value_size, max_value = sizeof(buf2);
|
||||
+ DWORD i, type;
|
||||
+ HKEY hkey;
|
||||
+ LONG ret;
|
||||
+
|
||||
+ TRACE( "(%p, %s, %p)\n", hsrc, debugstr_w(subkey), hdst );
|
||||
+
|
||||
+ if (subkey)
|
||||
+ {
|
||||
+ ret = RegOpenKeyExW( hsrc, subkey, 0, KEY_READ, &hsrc );
|
||||
+ if (ret) return ret;
|
||||
+ }
|
||||
+
|
||||
+ /* Allocate required buffers */
|
||||
+ ret = reg_get_buffers( hsrc, &name_buf, &max_name, &value_buf, &max_value );
|
||||
+ if (ret) goto cleanup;
|
||||
+
|
||||
+ /* Copy all the values */
|
||||
+ for (i = 0;; i++)
|
||||
+ {
|
||||
+ name_size = max_name;
|
||||
+ value_size = max_value;
|
||||
+ ret = RegEnumValueW( hsrc, i, name_buf, &name_size, NULL, &type, value_buf, &value_size );
|
||||
+ if (ret == ERROR_NO_MORE_ITEMS) break;
|
||||
+ if (ret) goto cleanup;
|
||||
+ ret = RegSetValueExW( hdst, name_buf, 0, type, value_buf, value_size );
|
||||
+ if (ret) goto cleanup;
|
||||
+ }
|
||||
+
|
||||
+ /* Recursively copy all the subkeys */
|
||||
+ for (i = 0;; i++)
|
||||
+ {
|
||||
+ name_size = max_name;
|
||||
+ ret = RegEnumKeyExW( hsrc, i, name_buf, &name_size, NULL, NULL, NULL, NULL );
|
||||
+ if (ret == ERROR_NO_MORE_ITEMS) break;
|
||||
+ if (ret) goto cleanup;
|
||||
+ ret = RegCreateKeyExW( hdst, name_buf, 0, NULL, 0, KEY_WRITE, NULL, &hkey, NULL );
|
||||
+ if (ret) goto cleanup;
|
||||
+ ret = RegCopyTreeW( hsrc, name_buf, hkey );
|
||||
+ RegCloseKey( hkey );
|
||||
+ if (ret) goto cleanup;
|
||||
+ }
|
||||
+
|
||||
+ ret = ERROR_SUCCESS;
|
||||
+
|
||||
+cleanup:
|
||||
+ if (name_buf != buf1)
|
||||
+ heap_free( name_buf );
|
||||
+ if (value_buf != buf2)
|
||||
+ heap_free( value_buf );
|
||||
+ if (subkey)
|
||||
+ RegCloseKey( hsrc );
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/******************************************************************************
|
||||
+ * RegCopyTreeA [ADVAPI32.@]
|
||||
+ *
|
||||
+ */
|
||||
+LONG WINAPI RegCopyTreeA( HKEY hsrc, const char *subkey, HKEY hdst )
|
||||
+{
|
||||
+ UNICODE_STRING subkeyW;
|
||||
+ LONG ret;
|
||||
+
|
||||
+ if (subkey) RtlCreateUnicodeStringFromAsciiz( &subkeyW, subkey );
|
||||
+ else subkeyW.Buffer = NULL;
|
||||
+ ret = RegCopyTreeW( hsrc, subkeyW.Buffer, hdst );
|
||||
+ RtlFreeUnicodeString( &subkeyW );
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+
|
||||
/******************************************************************************
|
||||
* RegDisableReflectionKey [ADVAPI32.@]
|
||||
*
|
||||
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c
|
||||
index d29e131..658b356 100644
|
||||
--- a/dlls/advapi32/tests/registry.c
|
||||
+++ b/dlls/advapi32/tests/registry.c
|
||||
@@ -2090,7 +2090,7 @@ static void test_reg_copy_tree(void)
|
||||
|
||||
if (!pRegCopyTreeA)
|
||||
{
|
||||
- skip("Skipping RegCopyTreeA tests, function not present\n");
|
||||
+ win_skip("Skipping RegCopyTreeA tests, function not present\n");
|
||||
return;
|
||||
}
|
||||
|
||||
diff --git a/dlls/api-ms-win-core-registry-l1-1-0/api-ms-win-core-registry-l1-1-0.spec b/dlls/api-ms-win-core-registry-l1-1-0/api-ms-win-core-registry-l1-1-0.spec
|
||||
index d83fbdd..91b1a94 100644
|
||||
--- a/dlls/api-ms-win-core-registry-l1-1-0/api-ms-win-core-registry-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-core-registry-l1-1-0/api-ms-win-core-registry-l1-1-0.spec
|
||||
@@ -1,5 +1,5 @@
|
||||
@ stdcall RegCloseKey(long) advapi32.RegCloseKey
|
||||
-@ stub RegCopyTreeW
|
||||
+@ stdcall RegCopyTreeW(long wstr long) advapi32.RegCopyTreeW
|
||||
@ stdcall RegCreateKeyExA(long str long ptr long long ptr ptr ptr) advapi32.RegCreateKeyExA
|
||||
@ stdcall RegCreateKeyExW(long wstr long ptr long long ptr ptr ptr) advapi32.RegCreateKeyExW
|
||||
@ stdcall RegDeleteKeyExA(long str long long) advapi32.RegDeleteKeyExA
|
||||
diff --git a/dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec b/dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec
|
||||
index 4105e59..e1b4663 100644
|
||||
--- a/dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec
|
||||
@@ -84,7 +84,7 @@
|
||||
@ stdcall PrivilegedServiceAuditAlarmW(wstr wstr long ptr long) advapi32.PrivilegedServiceAuditAlarmW
|
||||
@ stub QuerySecurityAccessMask
|
||||
@ stdcall RegCloseKey(long) advapi32.RegCloseKey
|
||||
-@ stub RegCopyTreeW
|
||||
+@ stdcall RegCopyTreeW(long wstr long) advapi32.RegCopyTreeW
|
||||
@ stdcall RegCreateKeyExA(long str long ptr long long ptr ptr ptr) advapi32.RegCreateKeyExA
|
||||
@ stdcall RegCreateKeyExW(long wstr long ptr long long ptr ptr ptr) advapi32.RegCreateKeyExW
|
||||
@ stdcall RegDeleteKeyExA(long str long long) advapi32.RegDeleteKeyExA
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -0,0 +1,217 @@
|
||||
From f9c5910f851677d6a8e7051043d254fb1538c0c3 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 15 Feb 2016 06:40:17 +0100
|
||||
Subject: advapi32: Clean up RegDeleteTree implementation.
|
||||
|
||||
---
|
||||
dlls/advapi32/registry.c | 156 ++++++++++++++++++++++-------------------------
|
||||
1 file changed, 74 insertions(+), 82 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
|
||||
index faca66c..eb23eb1 100644
|
||||
--- a/dlls/advapi32/registry.c
|
||||
+++ b/dlls/advapi32/registry.c
|
||||
@@ -3016,126 +3016,118 @@ LSTATUS WINAPI RegDisablePredefinedCache(void)
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
+
|
||||
+static LONG reg_get_buffers( HKEY hkey, WCHAR **name_buf, DWORD *name_size,
|
||||
+ BYTE **value_buf, DWORD *value_size )
|
||||
+{
|
||||
+ DWORD ret, max_subkey, max_name, max_value;
|
||||
+
|
||||
+ ret = RegQueryInfoKeyW( hkey, NULL, NULL, NULL, NULL, &max_subkey,
|
||||
+ NULL, NULL, &max_name, &max_value, NULL, NULL );
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ /* allocate buffer for subkeys / names */
|
||||
+ max_name = max( max_subkey, max_name ) + 1;
|
||||
+ if (max_name > *name_size)
|
||||
+ {
|
||||
+ if (!(*name_buf = heap_alloc( max_name * sizeof(WCHAR) )))
|
||||
+ return ERROR_NOT_ENOUGH_MEMORY;
|
||||
+ *name_size = max_name;
|
||||
+ }
|
||||
+
|
||||
+ /* allocate buffer for values */
|
||||
+ if (value_buf && max_value > *value_size)
|
||||
+ {
|
||||
+ if (!(*value_buf = heap_alloc( max_value )))
|
||||
+ return ERROR_NOT_ENOUGH_MEMORY;
|
||||
+ *value_size = max_value;
|
||||
+ }
|
||||
+
|
||||
+ return ERROR_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+
|
||||
/******************************************************************************
|
||||
* RegDeleteTreeW [ADVAPI32.@]
|
||||
*
|
||||
*/
|
||||
-LSTATUS WINAPI RegDeleteTreeW(HKEY hKey, LPCWSTR lpszSubKey)
|
||||
+LSTATUS WINAPI RegDeleteTreeW( HKEY hkey, const WCHAR *subkey )
|
||||
{
|
||||
+ static const WCHAR emptyW[] = {0};
|
||||
+ WCHAR buf1[MAX_PATH], *name_buf = buf1;
|
||||
+ DWORD name_size, max_name = sizeof(buf1) / sizeof(WCHAR);
|
||||
LONG ret;
|
||||
- DWORD dwMaxSubkeyLen, dwMaxValueLen;
|
||||
- DWORD dwMaxLen, dwSize;
|
||||
- WCHAR szNameBuf[MAX_PATH], *lpszName = szNameBuf;
|
||||
- HKEY hSubKey = hKey;
|
||||
|
||||
- TRACE("(hkey=%p,%p %s)\n", hKey, lpszSubKey, debugstr_w(lpszSubKey));
|
||||
+ TRACE( "(%p, %s)\n", hkey, debugstr_w(subkey) );
|
||||
|
||||
- if(lpszSubKey)
|
||||
+ if (subkey)
|
||||
{
|
||||
- ret = RegOpenKeyExW(hKey, lpszSubKey, 0, KEY_READ, &hSubKey);
|
||||
+ ret = RegOpenKeyExW( hkey, subkey, 0, KEY_READ, &hkey );
|
||||
if (ret) return ret;
|
||||
}
|
||||
|
||||
- /* Get highest length for keys, values */
|
||||
- ret = RegQueryInfoKeyW(hSubKey, NULL, NULL, NULL, NULL,
|
||||
- &dwMaxSubkeyLen, NULL, NULL, &dwMaxValueLen, NULL, NULL, NULL);
|
||||
+ /* Allocate required buffers */
|
||||
+ ret = reg_get_buffers( hkey, &name_buf, &max_name, NULL, NULL );
|
||||
if (ret) goto cleanup;
|
||||
|
||||
- dwMaxSubkeyLen++;
|
||||
- dwMaxValueLen++;
|
||||
- dwMaxLen = max(dwMaxSubkeyLen, dwMaxValueLen);
|
||||
- if (dwMaxLen > sizeof(szNameBuf)/sizeof(WCHAR))
|
||||
+ /* Recursively delete all the subkeys */
|
||||
+ for (;;)
|
||||
{
|
||||
- /* Name too big: alloc a buffer for it */
|
||||
- if (!(lpszName = heap_alloc( dwMaxLen*sizeof(WCHAR))))
|
||||
- {
|
||||
- ret = ERROR_NOT_ENOUGH_MEMORY;
|
||||
- goto cleanup;
|
||||
- }
|
||||
+ name_size = max_name;
|
||||
+ ret = RegEnumKeyExW( hkey, 0, name_buf, &name_size, NULL, NULL, NULL, NULL );
|
||||
+ if (ret == ERROR_NO_MORE_ITEMS) break;
|
||||
+ if (ret) goto cleanup;
|
||||
+ ret = RegDeleteTreeW( hkey, name_buf );
|
||||
+ if (ret) goto cleanup;
|
||||
}
|
||||
|
||||
-
|
||||
- /* Recursively delete all the subkeys */
|
||||
- while (TRUE)
|
||||
+ /* Delete the key itself */
|
||||
+ if (subkey)
|
||||
{
|
||||
- dwSize = dwMaxLen;
|
||||
- if (RegEnumKeyExW(hSubKey, 0, lpszName, &dwSize, NULL,
|
||||
- NULL, NULL, NULL)) break;
|
||||
+ ret = RegDeleteKeyW( hkey, emptyW );
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
|
||||
- ret = RegDeleteTreeW(hSubKey, lpszName);
|
||||
+ /* Delete the values */
|
||||
+ for (;;)
|
||||
+ {
|
||||
+ name_size = max_name;
|
||||
+ ret = RegEnumValueW( hkey, 0, name_buf, &name_size, NULL, NULL, NULL, NULL );
|
||||
+ if (ret == ERROR_NO_MORE_ITEMS) break;
|
||||
+ if (ret) goto cleanup;
|
||||
+ ret = RegDeleteValueW( hkey, name_buf );
|
||||
if (ret) goto cleanup;
|
||||
}
|
||||
|
||||
- if (lpszSubKey)
|
||||
- ret = RegDeleteKeyW(hKey, lpszSubKey);
|
||||
- else
|
||||
- while (TRUE)
|
||||
- {
|
||||
- dwSize = dwMaxLen;
|
||||
- if (RegEnumValueW(hKey, 0, lpszName, &dwSize,
|
||||
- NULL, NULL, NULL, NULL)) break;
|
||||
-
|
||||
- ret = RegDeleteValueW(hKey, lpszName);
|
||||
- if (ret) goto cleanup;
|
||||
- }
|
||||
+ ret = ERROR_SUCCESS;
|
||||
|
||||
cleanup:
|
||||
- /* Free buffer if allocated */
|
||||
- if (lpszName != szNameBuf)
|
||||
- heap_free( lpszName);
|
||||
- if(lpszSubKey)
|
||||
- RegCloseKey(hSubKey);
|
||||
+ if (name_buf != buf1)
|
||||
+ heap_free( name_buf );
|
||||
+ if (subkey)
|
||||
+ RegCloseKey( hkey );
|
||||
return ret;
|
||||
}
|
||||
|
||||
+
|
||||
/******************************************************************************
|
||||
* RegDeleteTreeA [ADVAPI32.@]
|
||||
*
|
||||
*/
|
||||
-LSTATUS WINAPI RegDeleteTreeA(HKEY hKey, LPCSTR lpszSubKey)
|
||||
+LSTATUS WINAPI RegDeleteTreeA( HKEY hkey, const char *subkey )
|
||||
{
|
||||
+ UNICODE_STRING subkeyW;
|
||||
LONG ret;
|
||||
- UNICODE_STRING lpszSubKeyW;
|
||||
|
||||
- if (lpszSubKey) RtlCreateUnicodeStringFromAsciiz( &lpszSubKeyW, lpszSubKey);
|
||||
- else lpszSubKeyW.Buffer = NULL;
|
||||
- ret = RegDeleteTreeW( hKey, lpszSubKeyW.Buffer);
|
||||
- RtlFreeUnicodeString( &lpszSubKeyW );
|
||||
+ if (subkey) RtlCreateUnicodeStringFromAsciiz( &subkeyW, subkey );
|
||||
+ else subkeyW.Buffer = NULL;
|
||||
+ ret = RegDeleteTreeW( hkey, subkeyW.Buffer );
|
||||
+ RtlFreeUnicodeString( &subkeyW );
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
-static LONG reg_get_buffers( HKEY hkey, WCHAR **name_buf, DWORD *name_size,
|
||||
- BYTE **value_buf, DWORD *value_size )
|
||||
-{
|
||||
- DWORD ret, max_subkey, max_name, max_value;
|
||||
-
|
||||
- ret = RegQueryInfoKeyW( hkey, NULL, NULL, NULL, NULL, &max_subkey,
|
||||
- NULL, NULL, &max_name, &max_value, NULL, NULL );
|
||||
- if (ret)
|
||||
- return ret;
|
||||
-
|
||||
- /* allocate buffer for subkeys / names */
|
||||
- max_name = max( max_subkey, max_name ) + 1;
|
||||
- if (max_name > *name_size)
|
||||
- {
|
||||
- if (!(*name_buf = heap_alloc( max_name * sizeof(WCHAR) )))
|
||||
- return ERROR_NOT_ENOUGH_MEMORY;
|
||||
- *name_size = max_name;
|
||||
- }
|
||||
-
|
||||
- /* allocate buffer for values */
|
||||
- if (max_value > *value_size)
|
||||
- {
|
||||
- if (!(*value_buf = heap_alloc( max_value )))
|
||||
- return ERROR_NOT_ENOUGH_MEMORY;
|
||||
- *value_size = max_value;
|
||||
- }
|
||||
-
|
||||
- return ERROR_SUCCESS;
|
||||
-}
|
||||
-
|
||||
-
|
||||
/******************************************************************************
|
||||
* RegCopyTreeW [ADVAPI32.@]
|
||||
*
|
||||
--
|
||||
2.7.1
|
||||
|
1
patches/advapi32-RegCopyTree/definition
Normal file
1
patches/advapi32-RegCopyTree/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: [39690] Implement advapi32.RegCopyTree{A,W}
|
@@ -1,136 +0,0 @@
|
||||
From 06a2d09b5e443d01c7177d6e74e7e5a43fb4ce26 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 15 Jan 2016 12:20:06 +0100
|
||||
Subject: api-ms-win-core-com-l1-1-1: Add dll.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/api-ms-win-core-com-l1-1-1/Makefile.in | 1 +
|
||||
.../api-ms-win-core-com-l1-1-1.spec | 82 ++++++++++++++++++++++
|
||||
tools/make_specfiles | 1 +
|
||||
4 files changed, 85 insertions(+)
|
||||
create mode 100644 dlls/api-ms-win-core-com-l1-1-1/Makefile.in
|
||||
create mode 100644 dlls/api-ms-win-core-com-l1-1-1/api-ms-win-core-com-l1-1-1.spec
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 8aca9a1..09d62ae 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2617,6 +2617,7 @@ WINE_CONFIG_TEST(dlls/advpack/tests)
|
||||
WINE_CONFIG_DLL(amstream,,[clean])
|
||||
WINE_CONFIG_TEST(dlls/amstream/tests)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-com-l1-1-0)
|
||||
+WINE_CONFIG_DLL(api-ms-win-core-com-l1-1-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-console-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-datetime-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-datetime-l1-1-1)
|
||||
diff --git a/dlls/api-ms-win-core-com-l1-1-1/Makefile.in b/dlls/api-ms-win-core-com-l1-1-1/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..a37f743
|
||||
--- /dev/null
|
||||
+++ b/dlls/api-ms-win-core-com-l1-1-1/Makefile.in
|
||||
@@ -0,0 +1 @@
|
||||
+MODULE = api-ms-win-core-com-l1-1-1.dll
|
||||
diff --git a/dlls/api-ms-win-core-com-l1-1-1/api-ms-win-core-com-l1-1-1.spec b/dlls/api-ms-win-core-com-l1-1-1/api-ms-win-core-com-l1-1-1.spec
|
||||
new file mode 100644
|
||||
index 0000000..d2914f0
|
||||
--- /dev/null
|
||||
+++ b/dlls/api-ms-win-core-com-l1-1-1/api-ms-win-core-com-l1-1-1.spec
|
||||
@@ -0,0 +1,82 @@
|
||||
+@ stdcall CLSIDFromProgID(wstr ptr) ole32.CLSIDFromProgID
|
||||
+@ stdcall CLSIDFromString(wstr ptr) ole32.CLSIDFromString
|
||||
+@ stdcall CoAddRefServerProcess() ole32.CoAddRefServerProcess
|
||||
+@ stub CoAllowUnmarshalerCLSID
|
||||
+@ stub CoCancelCall
|
||||
+@ stdcall CoCopyProxy(ptr ptr) ole32.CoCopyProxy
|
||||
+@ stdcall CoCreateFreeThreadedMarshaler(ptr ptr) ole32.CoCreateFreeThreadedMarshaler
|
||||
+@ stdcall CoCreateGuid(ptr) ole32.CoCreateGuid
|
||||
+@ stdcall CoCreateInstance(ptr ptr long ptr ptr) ole32.CoCreateInstance
|
||||
+@ stdcall CoCreateInstanceEx(ptr ptr long ptr long ptr) ole32.CoCreateInstanceEx
|
||||
+@ stub CoCreateInstanceFromApp
|
||||
+@ stub CoDecodeProxy
|
||||
+@ stub CoDecrementMTAUsage
|
||||
+@ stub CoDisableCallCancellation
|
||||
+@ stub CoDisconnectContext
|
||||
+@ stdcall CoDisconnectObject(ptr long) ole32.CoDisconnectObject
|
||||
+@ stub CoEnableCallCancellation
|
||||
+@ stdcall CoFreeUnusedLibraries() ole32.CoFreeUnusedLibraries
|
||||
+@ stdcall CoFreeUnusedLibrariesEx(long long) ole32.CoFreeUnusedLibrariesEx
|
||||
+@ stdcall CoGetApartmentType(ptr ptr) ole32.CoGetApartmentType
|
||||
+@ stdcall CoGetCallContext(ptr ptr) ole32.CoGetCallContext
|
||||
+@ stdcall CoGetCallerTID(ptr) ole32.CoGetCallerTID
|
||||
+@ stub CoGetCancelObject
|
||||
+@ stdcall CoGetClassObject(ptr long ptr ptr ptr) ole32.CoGetClassObject
|
||||
+@ stdcall CoGetContextToken(ptr) ole32.CoGetContextToken
|
||||
+@ stdcall CoGetCurrentLogicalThreadId(ptr) ole32.CoGetCurrentLogicalThreadId
|
||||
+@ stdcall CoGetCurrentProcess() ole32.CoGetCurrentProcess
|
||||
+@ stdcall CoGetDefaultContext(long ptr ptr) ole32.CoGetDefaultContext
|
||||
+@ stdcall CoGetInterfaceAndReleaseStream(ptr ptr ptr) ole32.CoGetInterfaceAndReleaseStream
|
||||
+@ stdcall CoGetMalloc(long ptr) ole32.CoGetMalloc
|
||||
+@ stdcall CoGetMarshalSizeMax(ptr ptr ptr long ptr long) ole32.CoGetMarshalSizeMax
|
||||
+@ stdcall CoGetObjectContext(ptr ptr) ole32.CoGetObjectContext
|
||||
+@ stdcall CoGetPSClsid(ptr ptr) ole32.CoGetPSClsid
|
||||
+@ stdcall CoGetStandardMarshal(ptr ptr long ptr long ptr) ole32.CoGetStandardMarshal
|
||||
+@ stub CoGetStdMarshalEx
|
||||
+@ stdcall CoGetTreatAsClass(ptr ptr) ole32.CoGetTreatAsClass
|
||||
+@ stdcall CoImpersonateClient() ole32.CoImpersonateClient
|
||||
+@ stub CoIncrementMTAUsage
|
||||
+@ stdcall CoInitializeEx(ptr long) ole32.CoInitializeEx
|
||||
+@ stdcall CoInitializeSecurity(ptr long ptr ptr long long ptr long ptr) ole32.CoInitializeSecurity
|
||||
+@ stub CoInvalidateRemoteMachineBindings
|
||||
+@ stdcall CoIsHandlerConnected(ptr) ole32.CoIsHandlerConnected
|
||||
+@ stdcall CoLockObjectExternal(ptr long long) ole32.CoLockObjectExternal
|
||||
+@ stdcall CoMarshalHresult(ptr long) ole32.CoMarshalHresult
|
||||
+@ stdcall CoMarshalInterThreadInterfaceInStream(ptr ptr ptr) ole32.CoMarshalInterThreadInterfaceInStream
|
||||
+@ stdcall CoMarshalInterface(ptr ptr ptr long ptr long) ole32.CoMarshalInterface
|
||||
+@ stub CoQueryAuthenticationServices
|
||||
+@ stdcall CoQueryClientBlanket(ptr ptr ptr ptr ptr ptr ptr) ole32.CoQueryClientBlanket
|
||||
+@ stdcall CoQueryProxyBlanket(ptr ptr ptr ptr ptr ptr ptr ptr) ole32.CoQueryProxyBlanket
|
||||
+@ stub CoRegisterActivationFilter
|
||||
+@ stdcall CoRegisterClassObject(ptr ptr long long ptr) ole32.CoRegisterClassObject
|
||||
+@ stdcall CoRegisterPSClsid(ptr ptr) ole32.CoRegisterPSClsid
|
||||
+@ stub CoRegisterSurrogate
|
||||
+@ stdcall CoReleaseMarshalData(ptr) ole32.CoReleaseMarshalData
|
||||
+@ stdcall CoReleaseServerProcess() ole32.CoReleaseServerProcess
|
||||
+@ stdcall CoResumeClassObjects() ole32.CoResumeClassObjects
|
||||
+@ stdcall CoRevertToSelf() ole32.CoRevertToSelf
|
||||
+@ stdcall CoRevokeClassObject(long) ole32.CoRevokeClassObject
|
||||
+@ stub CoSetCancelObject
|
||||
+@ stdcall CoSetProxyBlanket(ptr long long ptr long long ptr long) ole32.CoSetProxyBlanket
|
||||
+@ stdcall CoSuspendClassObjects() ole32.CoSuspendClassObjects
|
||||
+@ stdcall CoSwitchCallContext(ptr ptr) ole32.CoSwitchCallContext
|
||||
+@ stdcall CoTaskMemAlloc(long) ole32.CoTaskMemAlloc
|
||||
+@ stdcall CoTaskMemFree(ptr) ole32.CoTaskMemFree
|
||||
+@ stdcall CoTaskMemRealloc(ptr long) ole32.CoTaskMemRealloc
|
||||
+@ stub CoTestCancel
|
||||
+@ stdcall CoUninitialize() ole32.CoUninitialize
|
||||
+@ stdcall CoUnmarshalHresult(ptr ptr) ole32.CoUnmarshalHresult
|
||||
+@ stdcall CoUnmarshalInterface(ptr ptr ptr) ole32.CoUnmarshalInterface
|
||||
+@ stdcall CoWaitForMultipleHandles(long long long ptr ptr) ole32.CoWaitForMultipleHandles
|
||||
+@ stub CoWaitForMultipleObjects
|
||||
+@ stdcall CreateStreamOnHGlobal(ptr long ptr) ole32.CreateStreamOnHGlobal
|
||||
+@ stdcall FreePropVariantArray(long ptr) ole32.FreePropVariantArray
|
||||
+@ stdcall GetHGlobalFromStream(ptr ptr) ole32.GetHGlobalFromStream
|
||||
+@ stdcall IIDFromString(wstr ptr) ole32.IIDFromString
|
||||
+@ stdcall ProgIDFromCLSID(ptr ptr) ole32.ProgIDFromCLSID
|
||||
+@ stdcall PropVariantClear(ptr) ole32.PropVariantClear
|
||||
+@ stdcall PropVariantCopy(ptr ptr) ole32.PropVariantCopy
|
||||
+@ stub RoGetAgileReference
|
||||
+@ stdcall StringFromCLSID(ptr ptr) ole32.StringFromCLSID
|
||||
+@ stdcall StringFromGUID2(ptr ptr long) ole32.StringFromGUID2
|
||||
+@ stdcall StringFromIID(ptr ptr) ole32.StringFromIID
|
||||
diff --git a/tools/make_specfiles b/tools/make_specfiles
|
||||
index 16db908..e50ba18 100755
|
||||
--- a/tools/make_specfiles
|
||||
+++ b/tools/make_specfiles
|
||||
@@ -224,6 +224,7 @@ my @dll_groups =
|
||||
"ole32",
|
||||
"api-ms-win-downlevel-ole32-l1-1-0",
|
||||
"api-ms-win-core-com-l1-1-0",
|
||||
+ "api-ms-win-core-com-l1-1-1",
|
||||
"combase",
|
||||
],
|
||||
[
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 1e410019e0bed6db36906ade6dbab10416730556 Mon Sep 17 00:00:00 2001
|
||||
From 8527284d33c97a71e472215edfc66a766a199096 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 15 Jan 2016 13:01:15 +0100
|
||||
Subject: kernelbase: Add dll and add stub for QuirkIsEnabled.
|
||||
@@ -16,10 +16,10 @@ Subject: kernelbase: Add dll and add stub for QuirkIsEnabled.
|
||||
create mode 100644 dlls/kernelbase/misc.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 5f178ee..0fbb0bf 100644
|
||||
index c47c0fd..dc89f99 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2980,6 +2980,7 @@ WINE_CONFIG_TEST(dlls/jscript/tests)
|
||||
@@ -2989,6 +2989,7 @@ WINE_CONFIG_TEST(dlls/jscript/tests)
|
||||
WINE_CONFIG_DLL(jsproxy,,[implib])
|
||||
WINE_CONFIG_DLL(kernel32,,[clean,implib,mc])
|
||||
WINE_CONFIG_TEST(dlls/kernel32/tests)
|
||||
@@ -39,7 +39,7 @@ index 0000000..2beb34b
|
||||
+ misc.c
|
||||
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
|
||||
new file mode 100644
|
||||
index 0000000..83fff3e
|
||||
index 0000000..d85e5b1
|
||||
--- /dev/null
|
||||
+++ b/dlls/kernelbase/kernelbase.spec
|
||||
@@ -0,0 +1,1726 @@
|
||||
@@ -49,7 +49,7 @@ index 0000000..83fff3e
|
||||
+@ stub PackageSidFromProductId
|
||||
+@ stub GetCPHashNode
|
||||
+@ stub GetNamedLocaleHashNode
|
||||
+@ stdcall InterlockedPushListSList(ptr ptr ptr long) kernel32.InterlockedPushListSList
|
||||
+@ stdcall -norelay InterlockedPushListSList(ptr ptr ptr long) kernel32.InterlockedPushListSList
|
||||
+@ stub InternalLcidToName
|
||||
+@ stdcall AccessCheck(ptr long long ptr ptr ptr ptr ptr) advapi32.AccessCheck
|
||||
+@ stdcall AccessCheckAndAuditAlarmW(wstr ptr wstr wstr ptr long ptr long ptr ptr ptr) advapi32.AccessCheckAndAuditAlarmW
|
||||
@@ -752,7 +752,7 @@ index 0000000..83fff3e
|
||||
+@ stdcall GetTimeFormatEx(wstr long ptr wstr ptr long) kernel32.GetTimeFormatEx
|
||||
+@ stdcall GetTimeFormatW(long long ptr wstr ptr long) kernel32.GetTimeFormatW
|
||||
+@ stdcall GetTimeZoneInformation(ptr) kernel32.GetTimeZoneInformation
|
||||
+@ stub GetTimeZoneInformationForYear
|
||||
+@ stdcall GetTimeZoneInformationForYear(long ptr ptr) kernel32.GetTimeZoneInformationForYear
|
||||
+@ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation
|
||||
+@ stdcall GetTraceEnableFlags(int64) advapi32.GetTraceEnableFlags
|
||||
+@ stdcall GetTraceEnableLevel(int64) advapi32.GetTraceEnableLevel
|
||||
@@ -840,7 +840,7 @@ index 0000000..83fff3e
|
||||
+@ stdcall -arch=i386 InterlockedIncrement(ptr) kernel32.InterlockedIncrement
|
||||
+@ stdcall InterlockedPopEntrySList(ptr) kernel32.InterlockedPopEntrySList
|
||||
+@ stdcall InterlockedPushEntrySList(ptr ptr) kernel32.InterlockedPushEntrySList
|
||||
+@ stub InterlockedPushListSListEx
|
||||
+@ stdcall InterlockedPushListSListEx(ptr ptr ptr long) kernel32.InterlockedPushListSListEx
|
||||
+@ stub Internal_EnumCalendarInfo
|
||||
+@ stub Internal_EnumDateFormats
|
||||
+@ stub Internal_EnumLanguageGroupLocales
|
||||
@@ -1265,7 +1265,7 @@ index 0000000..83fff3e
|
||||
+@ stub RefreshPolicyExInternal
|
||||
+@ stub RefreshPolicyInternal
|
||||
+@ stdcall -private RegCloseKey(long) kernel32.RegCloseKey
|
||||
+@ stub RegCopyTreeW
|
||||
+@ stdcall RegCopyTreeW(long wstr long) advapi32.RegCopyTreeW
|
||||
+@ stdcall -private RegCreateKeyExA(long str long ptr long long ptr ptr ptr) kernel32.RegCreateKeyExA
|
||||
+@ stub RegCreateKeyExInternalA
|
||||
+@ stub RegCreateKeyExInternalW
|
||||
@@ -1826,10 +1826,10 @@ index 6b6ead2..7c2a9d1 100644
|
||||
422 stdcall -noname SHGlobalCounterCreateNamedA(str long)
|
||||
423 stdcall -noname SHGlobalCounterCreateNamedW(wstr long)
|
||||
diff --git a/tools/make_specfiles b/tools/make_specfiles
|
||||
index e50ba18..3ff47f1 100755
|
||||
index 97780a1..617d1a9 100755
|
||||
--- a/tools/make_specfiles
|
||||
+++ b/tools/make_specfiles
|
||||
@@ -221,6 +221,13 @@ my @dll_groups =
|
||||
@@ -226,6 +226,13 @@ my @dll_groups =
|
||||
"api-ms-win-core-processthreads-l1-1-1",
|
||||
],
|
||||
[
|
||||
@@ -1844,5 +1844,5 @@ index e50ba18..3ff47f1 100755
|
||||
"api-ms-win-downlevel-ole32-l1-1-0",
|
||||
"api-ms-win-core-com-l1-1-0",
|
||||
--
|
||||
2.6.4
|
||||
2.7.1
|
||||
|
@@ -1,57 +0,0 @@
|
||||
From 4535655125fb462a4a3651f3ecbfab07d35c5ba7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 15 Jan 2016 13:31:22 +0100
|
||||
Subject: api-ms-win-core-delayload-l1-1-1: Add dll.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/api-ms-win-core-delayload-l1-1-1/Makefile.in | 1 +
|
||||
.../api-ms-win-core-delayload-l1-1-1.spec | 3 +++
|
||||
tools/make_specfiles | 1 +
|
||||
4 files changed, 6 insertions(+)
|
||||
create mode 100644 dlls/api-ms-win-core-delayload-l1-1-1/Makefile.in
|
||||
create mode 100644 dlls/api-ms-win-core-delayload-l1-1-1/api-ms-win-core-delayload-l1-1-1.spec
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 462850e..01afeda 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2700,6 +2700,7 @@ WINE_CONFIG_DLL(api-ms-win-core-datetime-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-datetime-l1-1-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-debug-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-debug-l1-1-1)
|
||||
+WINE_CONFIG_DLL(api-ms-win-core-delayload-l1-1-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-errorhandling-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-errorhandling-l1-1-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-errorhandling-l1-1-2)
|
||||
diff --git a/dlls/api-ms-win-core-delayload-l1-1-1/Makefile.in b/dlls/api-ms-win-core-delayload-l1-1-1/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..bccec10
|
||||
--- /dev/null
|
||||
+++ b/dlls/api-ms-win-core-delayload-l1-1-1/Makefile.in
|
||||
@@ -0,0 +1 @@
|
||||
+MODULE = api-ms-win-core-delayload-l1-1-1.dll
|
||||
diff --git a/dlls/api-ms-win-core-delayload-l1-1-1/api-ms-win-core-delayload-l1-1-1.spec b/dlls/api-ms-win-core-delayload-l1-1-1/api-ms-win-core-delayload-l1-1-1.spec
|
||||
new file mode 100644
|
||||
index 0000000..fe2b354
|
||||
--- /dev/null
|
||||
+++ b/dlls/api-ms-win-core-delayload-l1-1-1/api-ms-win-core-delayload-l1-1-1.spec
|
||||
@@ -0,0 +1,3 @@
|
||||
+@ stdcall DelayLoadFailureHook(str str) kernel32.DelayLoadFailureHook
|
||||
+@ stdcall ResolveDelayLoadedAPI(ptr ptr ptr ptr ptr long) kernel32.ResolveDelayLoadedAPI
|
||||
+@ stub ResolveDelayLoadsFromDll
|
||||
diff --git a/tools/make_specfiles b/tools/make_specfiles
|
||||
index e62c2cd..05010cc 100755
|
||||
--- a/tools/make_specfiles
|
||||
+++ b/tools/make_specfiles
|
||||
@@ -165,6 +165,7 @@ my @dll_groups =
|
||||
"api-ms-win-core-processthreads-l1-1-0",
|
||||
"api-ms-win-core-debug-l1-1-0",
|
||||
"api-ms-win-core-debug-l1-1-1",
|
||||
+ "api-ms-win-core-delayload-l1-1-1",
|
||||
"api-ms-win-core-errorhandling-l1-1-0",
|
||||
"api-ms-win-core-errorhandling-l1-1-1",
|
||||
"api-ms-win-core-interlocked-l1-1-0",
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -1,83 +0,0 @@
|
||||
From 5ec2d0aa8425dcc9a80a0693946973ca36207e76 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 15 Jan 2016 13:48:54 +0100
|
||||
Subject: api-ms-win-core-libraryloader-l1-2-0: Add dll.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
.../Makefile.in | 1 +
|
||||
.../api-ms-win-core-libraryloader-l1-2-0.spec | 29 ++++++++++++++++++++++
|
||||
tools/make_specfiles | 1 +
|
||||
4 files changed, 32 insertions(+)
|
||||
create mode 100644 dlls/api-ms-win-core-libraryloader-l1-2-0/Makefile.in
|
||||
create mode 100644 dlls/api-ms-win-core-libraryloader-l1-2-0/api-ms-win-core-libraryloader-l1-2-0.spec
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index aca3374..be563ca 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2652,6 +2652,7 @@ WINE_CONFIG_DLL(api-ms-win-core-io-l1-1-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-kernel32-legacy-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-libraryloader-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-libraryloader-l1-1-1)
|
||||
+WINE_CONFIG_DLL(api-ms-win-core-libraryloader-l1-2-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-localization-l1-2-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-localization-l1-2-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-localization-obsolete-l1-1-0)
|
||||
diff --git a/dlls/api-ms-win-core-libraryloader-l1-2-0/Makefile.in b/dlls/api-ms-win-core-libraryloader-l1-2-0/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..5552133
|
||||
--- /dev/null
|
||||
+++ b/dlls/api-ms-win-core-libraryloader-l1-2-0/Makefile.in
|
||||
@@ -0,0 +1 @@
|
||||
+MODULE = api-ms-win-core-libraryloader-l1-2-0.dll
|
||||
diff --git a/dlls/api-ms-win-core-libraryloader-l1-2-0/api-ms-win-core-libraryloader-l1-2-0.spec b/dlls/api-ms-win-core-libraryloader-l1-2-0/api-ms-win-core-libraryloader-l1-2-0.spec
|
||||
new file mode 100644
|
||||
index 0000000..6c385b6
|
||||
--- /dev/null
|
||||
+++ b/dlls/api-ms-win-core-libraryloader-l1-2-0/api-ms-win-core-libraryloader-l1-2-0.spec
|
||||
@@ -0,0 +1,29 @@
|
||||
+@ stub AddDllDirectory
|
||||
+@ stdcall DisableThreadLibraryCalls(long) kernel32.DisableThreadLibraryCalls
|
||||
+@ stdcall EnumResourceLanguagesExA(long str str ptr long long long) kernel32.EnumResourceLanguagesExA
|
||||
+@ stdcall EnumResourceLanguagesExW(long wstr wstr ptr long long long) kernel32.EnumResourceLanguagesExW
|
||||
+@ stub EnumResourceNamesExA
|
||||
+@ stub EnumResourceNamesExW
|
||||
+@ stub EnumResourceTypesExA
|
||||
+@ stub EnumResourceTypesExW
|
||||
+@ stdcall FindResourceExW(long wstr wstr long) kernel32.FindResourceExW
|
||||
+@ stub FindStringOrdinal
|
||||
+@ stdcall FreeLibrary(long) kernel32.FreeLibrary
|
||||
+@ stdcall FreeLibraryAndExitThread(long long) kernel32.FreeLibraryAndExitThread
|
||||
+@ stdcall FreeResource(long) kernel32.FreeResource
|
||||
+@ stdcall GetModuleFileNameA(long ptr long) kernel32.GetModuleFileNameA
|
||||
+@ stdcall GetModuleFileNameW(long ptr long) kernel32.GetModuleFileNameW
|
||||
+@ stdcall GetModuleHandleA(str) kernel32.GetModuleHandleA
|
||||
+@ stdcall GetModuleHandleExA(long ptr ptr) kernel32.GetModuleHandleExA
|
||||
+@ stdcall GetModuleHandleExW(long ptr ptr) kernel32.GetModuleHandleExW
|
||||
+@ stdcall GetModuleHandleW(wstr) kernel32.GetModuleHandleW
|
||||
+@ stdcall GetProcAddress(long str) kernel32.GetProcAddress
|
||||
+@ stdcall LoadLibraryExA( str long long) kernel32.LoadLibraryExA
|
||||
+@ stdcall LoadLibraryExW(wstr long long) kernel32.LoadLibraryExW
|
||||
+@ stdcall LoadResource(long long) kernel32.LoadResource
|
||||
+@ stdcall LoadStringA(long long ptr long) user32.LoadStringA
|
||||
+@ stdcall LoadStringW(long long ptr long) user32.LoadStringW
|
||||
+@ stdcall LockResource(long) kernel32.LockResource
|
||||
+@ stub RemoveDllDirectory
|
||||
+@ stub SetDefaultDllDirectories
|
||||
+@ stdcall SizeofResource(long long) kernel32.SizeofResource
|
||||
diff --git a/tools/make_specfiles b/tools/make_specfiles
|
||||
index 6456efe..09cc4d4 100755
|
||||
--- a/tools/make_specfiles
|
||||
+++ b/tools/make_specfiles
|
||||
@@ -214,6 +214,7 @@ my @dll_groups =
|
||||
"user32",
|
||||
"api-ms-win-core-libraryloader-l1-1-0",
|
||||
"api-ms-win-core-libraryloader-l1-1-1",
|
||||
+ "api-ms-win-core-libraryloader-l1-2-0",
|
||||
],
|
||||
[
|
||||
"kernel32",
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -1,69 +0,0 @@
|
||||
From 786eb78cf9eff284eae02b88bdefebad21b1fab5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 16 Jan 2016 20:01:49 +0100
|
||||
Subject: api-ms-win-core-kernel32-legacy-l1-1-1: Add dll.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/api-ms-win-core-kernel32-legacy-l1-1-1/Makefile.in | 1 +
|
||||
.../api-ms-win-core-kernel32-legacy-l1-1-1.spec | 15 +++++++++++++++
|
||||
tools/make_specfiles | 1 +
|
||||
4 files changed, 18 insertions(+)
|
||||
create mode 100644 dlls/api-ms-win-core-kernel32-legacy-l1-1-1/Makefile.in
|
||||
create mode 100644 dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index be563ca..36d95c9 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2650,6 +2650,7 @@ WINE_CONFIG_DLL(api-ms-win-core-interlocked-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-interlocked-l1-2-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-io-l1-1-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-kernel32-legacy-l1-1-0)
|
||||
+WINE_CONFIG_DLL(api-ms-win-core-kernel32-legacy-l1-1-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-libraryloader-l1-1-0)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-libraryloader-l1-1-1)
|
||||
WINE_CONFIG_DLL(api-ms-win-core-libraryloader-l1-2-0)
|
||||
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/Makefile.in b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..c4a5c44
|
||||
--- /dev/null
|
||||
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/Makefile.in
|
||||
@@ -0,0 +1 @@
|
||||
+MODULE = api-ms-win-core-kernel32-legacy-l1-1-1.dll
|
||||
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
|
||||
new file mode 100644
|
||||
index 0000000..579e254
|
||||
--- /dev/null
|
||||
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
|
||||
@@ -0,0 +1,15 @@
|
||||
+@ stdcall FindFirstVolumeMountPointW(wstr ptr long) kernel32.FindFirstVolumeMountPointW
|
||||
+@ stub FindNextVolumeMountPointW
|
||||
+@ stdcall FindVolumeMountPointClose(ptr) kernel32.FindVolumeMountPointClose
|
||||
+@ stub GetFileAttributesTransactedW
|
||||
+@ stub GetFirmwareType
|
||||
+@ stub GetNumaAvailableMemoryNodeEx
|
||||
+@ stdcall GetNumaNodeProcessorMask(long ptr) kernel32.GetNumaNodeProcessorMask
|
||||
+@ stub GetNumaProcessorNodeEx
|
||||
+@ stdcall PowerClearRequest(long long) kernel32.PowerClearRequest
|
||||
+@ stdcall PowerCreateRequest(ptr) kernel32.PowerCreateRequest
|
||||
+@ stdcall PowerSetRequest(long long) kernel32.PowerSetRequest
|
||||
+@ stdcall SetDllDirectoryW(wstr) kernel32.SetDllDirectoryW
|
||||
+@ stdcall SetThreadIdealProcessor(long long) kernel32.SetThreadIdealProcessor
|
||||
+@ stdcall SetVolumeMountPointW(wstr wstr) kernel32.SetVolumeMountPointW
|
||||
+@ stdcall VerifyVersionInfoW(long long int64) kernel32.VerifyVersionInfoW
|
||||
diff --git a/tools/make_specfiles b/tools/make_specfiles
|
||||
index 09cc4d4..03e753f 100755
|
||||
--- a/tools/make_specfiles
|
||||
+++ b/tools/make_specfiles
|
||||
@@ -188,6 +188,7 @@ my @dll_groups =
|
||||
"api-ms-win-core-heap-obsolete-l1-1-0",
|
||||
"api-ms-win-core-io-l1-1-1",
|
||||
"api-ms-win-core-kernel32-legacy-l1-1-0",
|
||||
+ "api-ms-win-core-kernel32-legacy-l1-1-1",
|
||||
"api-ms-win-core-localization-l1-2-0",
|
||||
"api-ms-win-core-localization-obsolete-l1-1-0",
|
||||
"api-ms-win-core-memory-l1-1-0",
|
||||
--
|
||||
2.6.4
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user