Rebase against 4c7f3f8af856888f5ab020b2a32d0b01db0c82f7.

This commit is contained in:
Sebastian Lackner 2016-12-12 04:28:52 +01:00
parent 0d616d719e
commit 6f120f6a56
28 changed files with 280 additions and 990 deletions

View File

@ -1,17 +1,41 @@
From 869fbc7190eb77e027be4bcd98d938198189c3dd Mon Sep 17 00:00:00 2001
From c695e014f25fd613ead12115a715cdb4303d632f Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 21:58:40 +0100
Subject: dwrite: Avoid implicit cast of interface pointer.
---
dlls/dwrite/font.c | 6 +++---
dlls/dwrite/layout.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c
index ba97025..0a90c20 100644
--- a/dlls/dwrite/font.c
+++ b/dlls/dwrite/font.c
@@ -1684,15 +1684,15 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface)
if (!iface)
return NULL;
assert(iface->lpVtbl == (IDWriteFontVtbl*)&dwritefontvtbl);
- return CONTAINING_RECORD(iface, struct dwrite_font, IDWriteFont3_iface);
+ return CONTAINING_RECORD((IDWriteFont3 *)iface, struct dwrite_font, IDWriteFont3_iface);
}
static struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
{
if (!iface)
return NULL;
- assert(iface->lpVtbl = (IDWriteFontFaceVtbl*)&dwritefontfacevtbl);
- return CONTAINING_RECORD(iface, struct dwrite_fontface, IDWriteFontFace4_iface);
+ assert(iface->lpVtbl == (IDWriteFontFaceVtbl*)&dwritefontfacevtbl);
+ return CONTAINING_RECORD((IDWriteFontFace4 *)iface, struct dwrite_fontface, IDWriteFontFace4_iface);
}
void get_logfont_from_font(IDWriteFont *iface, LOGFONTW *lf)
diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
index 38b5e32..24f4abc 100644
index 706ed4e..c76a909 100644
--- a/dlls/dwrite/layout.c
+++ b/dlls/dwrite/layout.c
@@ -5115,7 +5115,7 @@ static const IDWriteTextFormat2Vtbl dwritetextformatvtbl = {
@@ -5196,7 +5196,7 @@ static const IDWriteTextFormat2Vtbl dwritetextformatvtbl = {
static struct dwrite_textformat *unsafe_impl_from_IDWriteTextFormat(IDWriteTextFormat *iface)
{
return (iface->lpVtbl == (IDWriteTextFormatVtbl*)&dwritetextformatvtbl) ?
@ -21,5 +45,5 @@ index 38b5e32..24f4abc 100644
HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style,
--
2.7.1
2.9.0

View File

@ -1,4 +1,4 @@
From 8d6c11843653a41d80831c561672e180b2adefb0 Mon Sep 17 00:00:00 2001
From dad1b9f398b041ba706723cc8857fcc2e9cc2669 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:49:52 +0200
Subject: d3d11/tests: Add test for creating 1d textures.
@ -8,10 +8,10 @@ Subject: d3d11/tests: Add test for creating 1d textures.
1 file changed, 189 insertions(+)
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index 6ce6015..02eeb88 100644
index 8ad94af..2b0b6f6 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -1613,6 +1613,194 @@ static void test_get_immediate_context(void)
@@ -1618,6 +1618,194 @@ static void test_get_immediate_context(void)
ok(!refcount, "Device has %u references left.\n", refcount);
}
@ -62,7 +62,7 @@ index 6ce6015..02eeb88 100644
+ {DXGI_FORMAT_R16G16B16A16_TYPELESS, 1, D3D11_BIND_SHADER_RESOURCE, 0, TRUE, FALSE},
+ {DXGI_FORMAT_R16G16B16A16_TYPELESS, 1, D3D11_BIND_RENDER_TARGET, 0, TRUE, FALSE},
+ {DXGI_FORMAT_R32G32_TYPELESS, 1, D3D11_BIND_SHADER_RESOURCE, 0, TRUE, FALSE},
+ {DXGI_FORMAT_R32G8X24_TYPELESS, 1, D3D11_BIND_DEPTH_STENCIL, 0, TRUE, TRUE},
+ {DXGI_FORMAT_R32G8X24_TYPELESS, 1, D3D11_BIND_DEPTH_STENCIL, 0, TRUE, FALSE},
+ {DXGI_FORMAT_R10G10B10A2_TYPELESS, 1, D3D11_BIND_SHADER_RESOURCE, 0, TRUE, FALSE},
+ {DXGI_FORMAT_R10G10B10A2_TYPELESS, 1, D3D11_BIND_RENDER_TARGET, 0, TRUE, FALSE},
+ {DXGI_FORMAT_R16G16_TYPELESS, 1, D3D11_BIND_SHADER_RESOURCE, 0, TRUE, FALSE},
@ -206,7 +206,7 @@ index 6ce6015..02eeb88 100644
static void test_create_texture2d(void)
{
ULONG refcount, expected_refcount;
@@ -10801,6 +10989,7 @@ START_TEST(d3d11)
@@ -12282,6 +12470,7 @@ START_TEST(d3d11)
test_create_device();
run_for_each_feature_level(test_device_interfaces);
test_get_immediate_context();

View File

@ -1,4 +1,4 @@
From a525651de2a7b38886e1f77ce6cf1007facf08f4 Mon Sep 17 00:00:00 2001
From 068af8dd9650d9a9820c61361dbfea8c8cf9a925 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Tue, 15 Nov 2016 12:45:30 +0800
Subject: kernel32/tests: Fix a bunch of access denied errors by using a
@ -9,7 +9,7 @@ Subject: kernel32/tests: Fix a bunch of access denied errors by using a
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index 464da86..d109657 100644
index 3d2bffa..ac29eb8 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -61,7 +61,7 @@ static BOOL (WINAPI *pSetFileInformationByHandle)(HANDLE, FILE_INFO_BY_HANDLE_CL
@ -37,9 +37,9 @@ index 464da86..d109657 100644
+ ok (!strcmp (name, search_results.cFileName),
+ "expected \"%s\", got \"%s\"\n", name, search_results.cFileName);
search_results.dwFileAttributes &= ~FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
search_results.dwFileAttributes &= ~FILE_ATTRIBUTE_COMPRESSED;
ok (FILE_ATTRIBUTE_ARCHIVE==search_results.dwFileAttributes,
"attributes of file \"%s\" are 0x%04x\n", search_results.cFileName,
@@ -4810,8 +4815,18 @@ static void test_GetFileAttributesExW(void)
@@ -4719,8 +4724,18 @@ static void test_GetFileAttributesExW(void)
START_TEST(file)
{

View File

@ -1,4 +1,4 @@
From a08cd0cbb65ca0c53857c35e40f6d3d910119b22 Mon Sep 17 00:00:00 2001
From 14bade0152141ee9ce78acd98b13d29abc450fea Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 31 Jul 2014 00:28:59 +0200
Subject: kernel32/tests: Add tests for PeekNamedPipe with partial received
@ -19,7 +19,7 @@ Changes in v3:
1 file changed, 140 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c
index 056f95b..a252bc8 100644
index 7d89da5..13fdf60 100644
--- a/dlls/kernel32/tests/pipe.c
+++ b/dlls/kernel32/tests/pipe.c
@@ -46,7 +46,8 @@ static void CALLBACK user_apc(ULONG_PTR param)
@ -57,8 +57,8 @@ index 056f95b..a252bc8 100644
default:
SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
rpcargs->returnValue = 0;
@@ -109,6 +119,33 @@ static BOOL RpcReadFile(HANDLE hFile, LPVOID buffer, DWORD bytesToRead, LPDWORD
return (BOOL)rpcargs.returnValue;
@@ -117,6 +127,33 @@ static void _test_signaled(unsigned line, HANDLE handle)
ok_(__FILE__,line)(res == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", res);
}
+/* Runs PeekNamedPipe(...) from a different thread */
@ -91,7 +91,7 @@ index 056f95b..a252bc8 100644
static void test_CreateNamedPipe(int pipemode)
{
HANDLE hnp;
@@ -118,6 +155,7 @@ static void test_CreateNamedPipe(int pipemode)
@@ -126,6 +163,7 @@ static void test_CreateNamedPipe(int pipemode)
char ibuf[32], *pbuf;
DWORD written;
DWORD readden;
@ -99,7 +99,7 @@ index 056f95b..a252bc8 100644
DWORD avail;
DWORD lpmode;
BOOL ret;
@@ -232,9 +270,21 @@ static void test_CreateNamedPipe(int pipemode)
@@ -241,9 +279,21 @@ static void test_CreateNamedPipe(int pipemode)
ok(written == sizeof(obuf2), "write file len\n");
ok(ReadFile(hFile, ibuf, 4, &readden, NULL), "ReadFile\n");
ok(readden == 4, "read got %d bytes\n", readden);
@ -121,7 +121,7 @@ index 056f95b..a252bc8 100644
memset(ibuf, 0, sizeof(ibuf));
ok(WriteFile(hFile, obuf, sizeof(obuf), &written, NULL), "WriteFile\n");
@@ -447,6 +497,16 @@ static void test_CreateNamedPipe(int pipemode)
@@ -456,6 +506,16 @@ static void test_CreateNamedPipe(int pipemode)
ok(written == sizeof(obuf), "write file len 9\n");
ok(WriteFile(hnp, obuf2, sizeof(obuf2), &written, NULL), "WriteFile 9\n");
ok(written == sizeof(obuf2), "write file len 9\n");
@ -138,7 +138,7 @@ index 056f95b..a252bc8 100644
SetLastError(0xdeadbeef);
todo_wine
ok(!ReadFile(hFile, ibuf, 4, &readden, NULL), "ReadFile 9\n");
@@ -460,6 +520,16 @@ static void test_CreateNamedPipe(int pipemode)
@@ -469,6 +529,16 @@ static void test_CreateNamedPipe(int pipemode)
todo_wine
ok(GetLastError() == ERROR_MORE_DATA, "wrong error 9\n");
ok(readden == 4, "read got %d bytes 9\n", readden);
@ -155,7 +155,7 @@ index 056f95b..a252bc8 100644
ret = RpcReadFile(hFile, ibuf + 8, sizeof(ibuf), &readden, NULL);
ok(ret, "RpcReadFile 9\n");
todo_wine
@@ -468,6 +538,14 @@ static void test_CreateNamedPipe(int pipemode)
@@ -477,6 +547,14 @@ static void test_CreateNamedPipe(int pipemode)
if (readden <= sizeof(obuf) - 8) /* blocks forever if second part was already received */
{
memset(ibuf, 0, sizeof(ibuf));
@ -170,7 +170,7 @@ index 056f95b..a252bc8 100644
SetLastError(0xdeadbeef);
ret = RpcReadFile(hFile, ibuf, 4, &readden, NULL);
ok(!ret, "RpcReadFile 9\n");
@@ -480,11 +558,27 @@ static void test_CreateNamedPipe(int pipemode)
@@ -489,11 +567,27 @@ static void test_CreateNamedPipe(int pipemode)
todo_wine
ok(GetLastError() == ERROR_MORE_DATA, "wrong error 9\n");
ok(readden == 4, "read got %d bytes 9\n", readden);
@ -198,7 +198,7 @@ index 056f95b..a252bc8 100644
/* Now the reverse direction */
memset(ibuf, 0, sizeof(ibuf));
@@ -492,6 +586,16 @@ static void test_CreateNamedPipe(int pipemode)
@@ -501,6 +595,16 @@ static void test_CreateNamedPipe(int pipemode)
ok(written == sizeof(obuf2), "write file len 10\n");
ok(WriteFile(hFile, obuf, sizeof(obuf), &written, NULL), "WriteFile 10\n");
ok(written == sizeof(obuf), "write file len 10\n");
@ -215,7 +215,7 @@ index 056f95b..a252bc8 100644
SetLastError(0xdeadbeef);
todo_wine
ok(!ReadFile(hnp, ibuf, 4, &readden, NULL), "ReadFile 10\n");
@@ -505,6 +609,16 @@ static void test_CreateNamedPipe(int pipemode)
@@ -514,6 +618,16 @@ static void test_CreateNamedPipe(int pipemode)
todo_wine
ok(GetLastError() == ERROR_MORE_DATA, "wrong error 10\n");
ok(readden == 4, "read got %d bytes 10\n", readden);
@ -232,7 +232,7 @@ index 056f95b..a252bc8 100644
ret = RpcReadFile(hnp, ibuf + 8, sizeof(ibuf), &readden, NULL);
ok(ret, "RpcReadFile 10\n");
todo_wine
@@ -513,6 +627,14 @@ static void test_CreateNamedPipe(int pipemode)
@@ -522,6 +636,14 @@ static void test_CreateNamedPipe(int pipemode)
if (readden <= sizeof(obuf2) - 8) /* blocks forever if second part was already received */
{
memset(ibuf, 0, sizeof(ibuf));
@ -247,7 +247,7 @@ index 056f95b..a252bc8 100644
SetLastError(0xdeadbeef);
ret = RpcReadFile(hnp, ibuf, 4, &readden, NULL);
ok(!ret, "RpcReadFile 10\n");
@@ -525,11 +647,27 @@ static void test_CreateNamedPipe(int pipemode)
@@ -534,11 +656,27 @@ static void test_CreateNamedPipe(int pipemode)
todo_wine
ok(GetLastError() == ERROR_MORE_DATA, "wrong error 10\n");
ok(readden == 4, "read got %d bytes 10\n", readden);
@ -276,5 +276,5 @@ index 056f95b..a252bc8 100644
}
--
2.1.3
2.9.0

View File

@ -1,4 +1,4 @@
From 01f63c1b25a7b0f964e9558d1054a613d1cd90e8 Mon Sep 17 00:00:00 2001
From 463a6541de5c95ed1ca3c79a3b5b721e2edade45 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 6 Jun 2015 01:21:05 +0200
Subject: server: Return correct error codes for NtWriteFile when pipes are
@ -12,10 +12,10 @@ Subject: server: Return correct error codes for NtWriteFile when pipes are
4 files changed, 46 insertions(+), 3 deletions(-)
diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c
index db2d49d..a2a425d 100644
index 6f70285..817f857 100644
--- a/dlls/kernel32/tests/pipe.c
+++ b/dlls/kernel32/tests/pipe.c
@@ -1909,7 +1909,7 @@ static void test_CloseHandle(void)
@@ -1917,7 +1917,7 @@ static void test_CloseHandle(void)
SetLastError(0xdeadbeef);
ret = WriteFile(hfile, testdata, sizeof(testdata), &numbytes, NULL);
ok(!ret, "WriteFile unexpectedly succeeded\n");
@ -25,10 +25,10 @@ index db2d49d..a2a425d 100644
CloseHandle(hfile);
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index d1dd1e7..1b97ef0 100644
index 863ff78..e9efa92 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -1240,6 +1240,9 @@ static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG lengt
@@ -1239,6 +1239,9 @@ static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG lengt
return STATUS_SUCCESS;
else if (errno == EFAULT)
return STATUS_INVALID_USER_BUFFER;
@ -39,7 +39,7 @@ index d1dd1e7..1b97ef0 100644
}
}
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 6e627bd..69293a9 100644
index ad7d537..5bec9bc 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -147,6 +147,7 @@ static const struct object_ops named_pipe_ops =
@ -59,7 +59,7 @@ index 6e627bd..69293a9 100644
pipe_server_destroy /* destroy */
};
@@ -194,6 +195,7 @@ static const struct fd_ops pipe_server_fd_ops =
@@ -193,6 +194,7 @@ static const struct fd_ops pipe_server_fd_ops =
static void pipe_client_dump( struct object *obj, int verbose );
static int pipe_client_signaled( struct object *obj, struct wait_queue_entry *entry );
static struct fd *pipe_client_get_fd( struct object *obj );
@ -67,7 +67,7 @@ index 6e627bd..69293a9 100644
static void pipe_client_destroy( struct object *obj );
static obj_handle_t pipe_client_flush( struct fd *fd, const async_data_t *async, int blocking );
static enum server_fd_type pipe_client_get_fd_type( struct fd *fd );
@@ -217,7 +219,7 @@ static const struct object_ops pipe_client_ops =
@@ -216,7 +218,7 @@ static const struct object_ops pipe_client_ops =
NULL, /* unlink_name */
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
@ -76,8 +76,8 @@ index 6e627bd..69293a9 100644
pipe_client_destroy /* destroy */
};
@@ -284,6 +286,8 @@ static const struct fd_ops named_pipe_device_fd_ops =
default_fd_cancel_async /* cancel_async */
@@ -281,6 +283,8 @@ static const struct fd_ops named_pipe_device_fd_ops =
default_fd_reselect_async /* reselect_async */
};
+static inline int messagemode_flags( int flags );
@ -85,7 +85,7 @@ index 6e627bd..69293a9 100644
static void named_pipe_dump( struct object *obj, int verbose )
{
fputs( "Named pipe\n", stderr );
@@ -393,6 +397,23 @@ static void do_disconnect( struct pipe_server *server )
@@ -390,6 +394,23 @@ static void do_disconnect( struct pipe_server *server )
server->fd = NULL;
}
@ -109,7 +109,7 @@ index 6e627bd..69293a9 100644
static void pipe_server_destroy( struct object *obj)
{
struct pipe_server *server = (struct pipe_server *)obj;
@@ -419,6 +440,24 @@ static void pipe_server_destroy( struct object *obj)
@@ -416,6 +437,24 @@ static void pipe_server_destroy( struct object *obj)
release_object( server->pipe );
}
@ -135,10 +135,10 @@ index 6e627bd..69293a9 100644
{
struct pipe_client *client = (struct pipe_client *)obj;
diff --git a/server/protocol.def b/server/protocol.def
index 29f3a52..2dd44dd 100644
index e7a55d7..f1e7af1 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2428,6 +2428,7 @@ enum message_type
@@ -2427,6 +2427,7 @@ enum message_type
#define NAMED_PIPE_MESSAGE_STREAM_WRITE 0x0001
#define NAMED_PIPE_MESSAGE_STREAM_READ 0x0002
#define NAMED_PIPE_NONBLOCKING_MODE 0x0004

View File

@ -1,4 +1,4 @@
From 32b32213893b9007898c35cd01246d852153d80c Mon Sep 17 00:00:00 2001
From 5ae266b76e7d946b3228faee7924af63d5f08ac2 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 24 Feb 2016 15:45:09 +0100
Subject: server: Do not allow to queue async operation for broken pipes.
@ -8,10 +8,10 @@ Subject: server: Do not allow to queue async operation for broken pipes.
1 file changed, 32 insertions(+), 2 deletions(-)
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 546984ddf..9f560c9 100644
index 5bec9bc..4dda82a 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -154,6 +154,7 @@ static obj_handle_t pipe_server_flush( struct fd *fd, const async_data_t *async,
@@ -153,6 +153,7 @@ static obj_handle_t pipe_server_flush( struct fd *fd, const async_data_t *async,
static enum server_fd_type pipe_server_get_fd_type( struct fd *fd );
static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, const async_data_t *async,
int blocking );
@ -19,16 +19,16 @@ index 546984ddf..9f560c9 100644
static const struct object_ops pipe_server_ops =
{
@@ -187,7 +188,7 @@ static const struct fd_ops pipe_server_fd_ops =
@@ -186,7 +187,7 @@ static const struct fd_ops pipe_server_fd_ops =
no_fd_write, /* write */
pipe_server_flush, /* flush */
pipe_server_ioctl, /* ioctl */
- default_fd_queue_async, /* queue_async */
+ pipe_server_queue_async, /* queue_async */
default_fd_reselect_async, /* reselect_async */
default_fd_cancel_async, /* cancel_async */
default_fd_reselect_async /* reselect_async */
};
@@ -200,6 +201,7 @@ static int pipe_client_close_handle( struct object *obj, struct process *process
@@ -198,6 +199,7 @@ static int pipe_client_close_handle( struct object *obj, struct process *process
static void pipe_client_destroy( struct object *obj );
static obj_handle_t pipe_client_flush( struct fd *fd, const async_data_t *async, int blocking );
static enum server_fd_type pipe_client_get_fd_type( struct fd *fd );
@ -36,16 +36,16 @@ index 546984ddf..9f560c9 100644
static const struct object_ops pipe_client_ops =
{
@@ -233,7 +235,7 @@ static const struct fd_ops pipe_client_fd_ops =
@@ -231,7 +233,7 @@ static const struct fd_ops pipe_client_fd_ops =
no_fd_write, /* write */
pipe_client_flush, /* flush */
default_fd_ioctl, /* ioctl */
- default_fd_queue_async, /* queue_async */
+ pipe_client_queue_async, /* queue_async */
default_fd_reselect_async, /* reselect_async */
default_fd_cancel_async /* cancel_async */
default_fd_reselect_async /* reselect_async */
};
@@ -629,6 +631,20 @@ static obj_handle_t pipe_client_flush( struct fd *fd, const async_data_t *async,
@@ -621,6 +623,20 @@ static obj_handle_t pipe_client_flush( struct fd *fd, const async_data_t *async,
return 0;
}
@ -66,7 +66,7 @@ index 546984ddf..9f560c9 100644
static inline int is_overlapped( unsigned int options )
{
return !(options & (FILE_SYNCHRONOUS_IO_ALERT | FILE_SYNCHRONOUS_IO_NONALERT));
@@ -718,6 +734,20 @@ static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, const a
@@ -707,6 +723,20 @@ static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, const a
}
}
@ -88,5 +88,5 @@ index 546984ddf..9f560c9 100644
obj_handle_t handle, unsigned int access )
{
--
2.7.1
2.9.0

View File

@ -1,4 +1,4 @@
From d3338512fe2237158a7c360e039335584f105068 Mon Sep 17 00:00:00 2001
From 59b9f0bc98fca5162ab6a93755416403b048e148 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 16 Jun 2016 18:56:21 +0800
Subject: kernel32: Add a bunch of kernel32 stubs.
@ -6,112 +6,58 @@ Subject: kernel32: Add a bunch of kernel32 stubs.
64-bit ACDSee Pro 9.0 on start up queries them with GetProcAddress() and
fails to start if any of these APIs is missing.
---
.../api-ms-win-core-processthreads-l1-1-0.spec | 8 +-
.../api-ms-win-core-processthreads-l1-1-1.spec | 8 +-
.../api-ms-win-core-processthreads-l1-1-2.spec | 8 +-
dlls/kernel32/kernel32.spec | 34 ++---
.../api-ms-win-core-processthreads-l1-1-0.spec | 2 +-
.../api-ms-win-core-processthreads-l1-1-1.spec | 2 +-
.../api-ms-win-core-processthreads-l1-1-2.spec | 2 +-
dlls/kernel32/kernel32.spec | 28 ++--
dlls/kernel32/sync.c | 145 +++++++++++++++++++++
dlls/kernel32/thread.c | 48 +++++++
dlls/kernelbase/kernelbase.spec | 8 +-
dlls/kernel32/thread.c | 12 ++
dlls/kernelbase/kernelbase.spec | 2 +-
include/winbase.h | 19 +++
include/winnt.h | 22 +++-
9 files changed, 266 insertions(+), 34 deletions(-)
9 files changed, 215 insertions(+), 19 deletions(-)
diff --git a/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec b/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec
index 80a4780..ed4e803 100644
index e555071..ed4e803 100644
--- a/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec
+++ b/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec
@@ -2,9 +2,9 @@
@@ -2,7 +2,7 @@
@ stub CreateProcessAsUserW
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
-@ stub CreateRemoteThreadEx
+@ stdcall CreateRemoteThreadEx(long ptr long ptr long long ptr ptr) kernel32.CreateRemoteThreadEx
@ stdcall CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
-@ stub DeleteProcThreadAttributeList
+@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
@ stdcall ExitProcess(long) kernel32.ExitProcess
@ stdcall ExitThread(long) kernel32.ExitThread
@ stdcall FlushProcessWriteBuffers() kernel32.FlushProcessWriteBuffers
@@ -23,7 +23,7 @@
@ stdcall GetThreadId(ptr) kernel32.GetThreadId
@ stdcall GetThreadPriority(long) kernel32.GetThreadPriority
@ stdcall GetThreadPriorityBoost(long ptr) kernel32.GetThreadPriorityBoost
-@ stub InitializeProcThreadAttributeList
+@ stdcall InitializeProcThreadAttributeList(ptr long long ptr) kernel32.InitializeProcThreadAttributeList
@ stub OpenProcessToken
@ stdcall OpenThread(long long long) kernel32.OpenThread
@ stub OpenThreadToken
@@ -46,4 +46,4 @@
@ stdcall TlsFree(long) kernel32.TlsFree
@ stdcall TlsGetValue(long) kernel32.TlsGetValue
@ stdcall TlsSetValue(long ptr) kernel32.TlsSetValue
-@ stub UpdateProcThreadAttribute
+@ stdcall UpdateProcThreadAttribute(ptr long long ptr long ptr ptr) kernel32.UpdateProcThreadAttribute
diff --git a/dlls/api-ms-win-core-processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec b/dlls/api-ms-win-core-processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec
index 84f43d8..9d321af 100644
index e7e2c02..9d321af 100644
--- a/dlls/api-ms-win-core-processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec
+++ b/dlls/api-ms-win-core-processthreads-l1-1-1/api-ms-win-core-processthreads-l1-1-1.spec
@@ -2,9 +2,9 @@
@@ -2,7 +2,7 @@
@ stdcall CreateProcessAsUserW(long wstr wstr ptr ptr long long ptr wstr ptr ptr) advapi32.CreateProcessAsUserW
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
-@ stub CreateRemoteThreadEx
+@ stdcall CreateRemoteThreadEx(long ptr long ptr long long ptr ptr) kernel32.CreateRemoteThreadEx
@ stdcall CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
-@ stub DeleteProcThreadAttributeList
+@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
@ stdcall ExitProcess(long) kernel32.ExitProcess
@ stdcall ExitThread(long) kernel32.ExitThread
@ stdcall FlushInstructionCache(long long long) kernel32.FlushInstructionCache
@@ -32,7 +32,7 @@
@ stdcall GetThreadPriority(long) kernel32.GetThreadPriority
@ stdcall GetThreadPriorityBoost(long ptr) kernel32.GetThreadPriorityBoost
@ stdcall GetThreadTimes(long ptr ptr ptr ptr) kernel32.GetThreadTimes
-@ stub InitializeProcThreadAttributeList
+@ stdcall InitializeProcThreadAttributeList(ptr long long ptr) kernel32.InitializeProcThreadAttributeList
@ stdcall IsProcessorFeaturePresent(long) kernel32.IsProcessorFeaturePresent
@ stdcall OpenProcess(long long long) kernel32.OpenProcess
@ stdcall OpenProcessToken(long long ptr) advapi32.OpenProcessToken
@@ -60,4 +60,4 @@
@ stdcall TlsFree(long) kernel32.TlsFree
@ stdcall TlsGetValue(long) kernel32.TlsGetValue
@ stdcall TlsSetValue(long ptr) kernel32.TlsSetValue
-@ stub UpdateProcThreadAttribute
+@ stdcall UpdateProcThreadAttribute(ptr long long ptr long ptr ptr) kernel32.UpdateProcThreadAttribute
diff --git a/dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win-core-processthreads-l1-1-2.spec b/dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win-core-processthreads-l1-1-2.spec
index 6430c63..0e30f18 100644
index 968b960..0e30f18 100644
--- a/dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win-core-processthreads-l1-1-2.spec
+++ b/dlls/api-ms-win-core-processthreads-l1-1-2/api-ms-win-core-processthreads-l1-1-2.spec
@@ -2,9 +2,9 @@
@@ -2,7 +2,7 @@
@ stub CreateProcessAsUserW
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
-@ stub CreateRemoteThreadEx
+@ stdcall CreateRemoteThreadEx(long ptr long ptr long long ptr ptr) kernel32.CreateRemoteThreadEx
@ stdcall CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
-@ stub DeleteProcThreadAttributeList
+@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
@ stdcall ExitProcess(long) kernel32.ExitProcess
@ stdcall ExitThread(long) kernel32.ExitThread
@ stdcall FlushInstructionCache(long long long) kernel32.FlushInstructionCache
@@ -36,7 +36,7 @@
@ stdcall GetThreadPriority(long) kernel32.GetThreadPriority
@ stdcall GetThreadPriorityBoost(long ptr) kernel32.GetThreadPriorityBoost
@ stdcall GetThreadTimes(long ptr ptr ptr ptr) kernel32.GetThreadTimes
-@ stub InitializeProcThreadAttributeList
+@ stdcall InitializeProcThreadAttributeList(ptr long long ptr) kernel32.InitializeProcThreadAttributeList
@ stub IsProcessCritical
@ stdcall IsProcessorFeaturePresent(long) kernel32.IsProcessorFeaturePresent
@ stdcall OpenProcess(long long long) kernel32.OpenProcess
@@ -67,4 +67,4 @@
@ stdcall TlsFree(long) kernel32.TlsFree
@ stdcall TlsGetValue(long) kernel32.TlsGetValue
@ stdcall TlsSetValue(long ptr) kernel32.TlsSetValue
-@ stub UpdateProcThreadAttribute
+@ stdcall UpdateProcThreadAttribute(ptr long long ptr long ptr ptr) kernel32.UpdateProcThreadAttribute
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 239965f..91df122 100644
index 224e6ae..dc16a8e 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -319,7 +319,7 @@
@ -134,14 +80,7 @@ index 239965f..91df122 100644
@ stub CreateVirtualBuffer
@ stdcall CreateWaitableTimerA(ptr long str)
@ stdcall CreateWaitableTimerExA(ptr str long long)
@@ -367,17 +367,17 @@
# @ stub DeleteFileTransactedA
# @ stub DeleteFileTransactedW
@ stdcall DeleteFileW(wstr)
-# @ stub DeleteProcThreadAttributeList
+@ stdcall DeleteProcThreadAttributeList(ptr)
# @ stub DisableThreadProfiling
@ stdcall DisassociateCurrentThreadFromCallback(ptr) ntdll.TpDisassociateCallback
@@ -373,11 +373,11 @@
@ stdcall DeleteTimerQueue(long)
@ stdcall DeleteTimerQueueEx (long long)
@ stdcall DeleteTimerQueueTimer(long long long)
@ -196,15 +135,6 @@ index 239965f..91df122 100644
# @ stub -arch=x86_64 GetUmsSystemThreadInformation
@ stdcall GetUserDefaultLCID()
@ stdcall GetUserDefaultLangID()
@@ -945,7 +945,7 @@
@ stdcall InitializeCriticalSection(ptr)
@ stdcall InitializeCriticalSectionAndSpinCount(ptr long)
@ stdcall InitializeCriticalSectionEx(ptr long long)
-# @ stub InitializeProcThreadAttributeList
+@ stdcall InitializeProcThreadAttributeList(ptr long long ptr)
@ stdcall InitializeSListHead(ptr) ntdll.RtlInitializeSListHead
@ stdcall InitializeSRWLock(ptr) ntdll.RtlInitializeSRWLock
@ stdcall -arch=i386 InterlockedCompareExchange (ptr long long)
@@ -1172,7 +1172,7 @@
@ stdcall QueryThreadCycleTime(long ptr)
# @ stub QueryThreadProfiling
@ -232,17 +162,8 @@ index 239965f..91df122 100644
# @ stub -arch=x86_64 __misaligned_access
@ stdcall -i386 -private UTRegister(long str str str ptr ptr ptr) krnl386.exe16.UTRegister
@ stdcall -i386 -private UTUnRegister(long) krnl386.exe16.UTUnRegister
@@ -1538,7 +1538,7 @@
@ stdcall UnregisterWait(long)
@ stdcall UnregisterWaitEx(long long)
# @ stub UpdateCalendarDayOfWeek
-# @ stub UpdateProcThreadAttribute
+@ stdcall UpdateProcThreadAttribute(ptr long long ptr long ptr ptr)
@ stdcall UpdateResourceA(long str str long ptr long)
@ stdcall UpdateResourceW(long wstr wstr long ptr long)
@ stub VDMConsoleOperation
diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c
index b8222db..1eb591d 100644
index 494db9c..d099832 100644
--- a/dlls/kernel32/sync.c
+++ b/dlls/kernel32/sync.c
@@ -2452,3 +2452,148 @@ BOOL WINAPI SleepConditionVariableSRW( RTL_CONDITION_VARIABLE *variable, RTL_SRW
@ -395,10 +316,10 @@ index b8222db..1eb591d 100644
+ return FALSE;
+}
diff --git a/dlls/kernel32/thread.c b/dlls/kernel32/thread.c
index 82ccebe..5ba3a7a 100644
index 82ccebe..fd4f299 100644
--- a/dlls/kernel32/thread.c
+++ b/dlls/kernel32/thread.c
@@ -113,6 +113,54 @@ HANDLE WINAPI CreateRemoteThread( HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE
@@ -113,6 +113,18 @@ HANDLE WINAPI CreateRemoteThread( HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE
}
@ -413,48 +334,12 @@ index 82ccebe..5ba3a7a 100644
+ return CreateRemoteThread( hProcess, sa, stack, start, param, flags, id );
+}
+
+
+/***************************************************************************
+ * InitializeProcThreadAttributeList (KERNEL32.@)
+ */
+BOOL WINAPI InitializeProcThreadAttributeList( LPPROC_THREAD_ATTRIBUTE_LIST *attrs,
+ DWORD count, DWORD flags, PSIZE_T size )
+{
+ FIXME( "%p,%u,%08x,%p: stub\n", attrs, count, flags, size );
+ SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
+ return FALSE;
+}
+
+
+/***************************************************************************
+ * DeleteProcThreadAttributeList (KERNEL32.@)
+ */
+void WINAPI DeleteProcThreadAttributeList( LPPROC_THREAD_ATTRIBUTE_LIST attrs )
+{
+ FIXME( "%p: stub\n", attrs );
+ SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
+}
+
+
+/***************************************************************************
+ * UpdateProcThreadAttribute (KERNEL32.@)
+ */
+BOOL WINAPI UpdateProcThreadAttribute( LPPROC_THREAD_ATTRIBUTE_LIST attrs, DWORD flags,
+ DWORD_PTR attributes, void *value, SIZE_T size,
+ void *prev_value, SIZE_T *ret_size )
+{
+ FIXME( "%p,%08x,%08lx,%p,%08lx,%p,%p: stub\n", attrs, flags, attributes, value,
+ size, prev_value, ret_size );
+ SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
+ return FALSE;
+}
+
+
/***********************************************************************
* OpenThread [KERNEL32.@] Retrieves a handle to a thread from its thread id
*/
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index e35ef8b..23ca440 100644
index 064f792..f104030 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -85,7 +85,7 @@
@ -466,40 +351,13 @@ index e35ef8b..23ca440 100644
@ stdcall CreateRestrictedToken(long long long ptr long ptr long ptr ptr) advapi32.CreateRestrictedToken
@ stdcall CreateSemaphoreExW(ptr long long wstr long long) kernel32.CreateSemaphoreExW
@ stdcall CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
@@ -107,7 +107,7 @@
@ stdcall DeleteCriticalSection(ptr) kernel32.DeleteCriticalSection
@ stdcall DeleteFileA(str) kernel32.DeleteFileA
@ stdcall DeleteFileW(wstr) kernel32.DeleteFileW
-@ stub DeleteProcThreadAttributeList
+@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
@ stdcall DeleteTimerQueueEx(long long) kernel32.DeleteTimerQueueEx
@ stdcall DeleteTimerQueueTimer(long long long) kernel32.DeleteTimerQueueTimer
@ stdcall DeleteVolumeMountPointW(wstr) kernel32.DeleteVolumeMountPointW
@@ -368,7 +368,7 @@
@ stdcall InitializeCriticalSection(ptr) kernel32.InitializeCriticalSection
@ stdcall InitializeCriticalSectionAndSpinCount(ptr long) kernel32.InitializeCriticalSectionAndSpinCount
@ stdcall InitializeCriticalSectionEx(ptr long long) kernel32.InitializeCriticalSectionEx
-@ stub InitializeProcThreadAttributeList
+@ stdcall InitializeProcThreadAttributeList(ptr long long ptr) kernel32.InitializeProcThreadAttributeList
@ stdcall InitializeSListHead(ptr) kernel32.InitializeSListHead
@ stdcall InitializeSRWLock(ptr) kernel32.InitializeSRWLock
@ stdcall InitializeSecurityDescriptor(ptr long) advapi32.InitializeSecurityDescriptor
@@ -586,7 +586,7 @@
@ stdcall UnlockFileEx(long long long long ptr) kernel32.UnlockFileEx
@ stdcall UnmapViewOfFile(ptr) kernel32.UnmapViewOfFile
@ stdcall UnregisterWaitEx(long long) kernel32.UnregisterWaitEx
-@ stub UpdateProcThreadAttribute
+@ stdcall UpdateProcThreadAttribute(ptr long long ptr long ptr ptr) kernel32.UpdateProcThreadAttribute
@ stdcall VerLanguageNameA(long str long) kernel32.VerLanguageNameA
@ stdcall VerLanguageNameW(long wstr long) kernel32.VerLanguageNameW
@ stdcall VirtualAlloc(ptr long long long) kernel32.VirtualAlloc
diff --git a/include/winbase.h b/include/winbase.h
index 99e3107..2311011 100644
index eff5972..7668747 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1644,6 +1644,21 @@ typedef struct _REASON_CONTEXT
#define RESOURCE_ENUM_MUI_SYSTEM 0x0004
#define RESOURCE_ENUM_VALIDATE 0x0008
@@ -1682,6 +1682,21 @@ typedef enum _PROC_THREAD_ATTRIBUTE_NUM
#define PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY (ProcThreadAttributeAllApplicationPackagesPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_WIN32K_FILTER (ProcThreadAttributeWin32kFilter | PROC_THREAD_ATTRIBUTE_INPUT)
+typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST;
+typedef void *PUMS_CONTEXT;
@ -519,7 +377,7 @@ index 99e3107..2311011 100644
WINBASEAPI BOOL WINAPI ActivateActCtx(HANDLE,ULONG_PTR *);
WINADVAPI BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
WINADVAPI BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
@@ -1789,6 +1804,7 @@ WINADVAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECUR
@@ -1827,6 +1842,7 @@ WINADVAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECUR
#define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
WINADVAPI BOOL WINAPI CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
@ -527,7 +385,7 @@ index 99e3107..2311011 100644
WINADVAPI BOOL WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE);
WINBASEAPI HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
@@ -1806,6 +1822,8 @@ WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
@@ -1844,6 +1860,8 @@ WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
WINBASEAPI HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
WINBASEAPI HANDLE WINAPI CreateTimerQueue(void);
WINBASEAPI BOOL WINAPI CreateTimerQueueTimer(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,ULONG);
@ -536,7 +394,7 @@ index 99e3107..2311011 100644
WINBASEAPI HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
WINBASEAPI HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
#define CreateWaitableTimer WINELIB_NAME_AW(CreateWaitableTimer)
@@ -1861,6 +1879,7 @@ WINBASEAPI BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
@@ -1902,6 +1920,7 @@ WINBASEAPI BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
WINBASEAPI BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL);
#define EndUpdateResource WINELIB_NAME_AW(EndUpdateResource)
WINBASEAPI void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit);

View File

@ -1,2 +1 @@
Fixes: Add stub for ntdll.ApiSetQueryApiSetPresence
Depends: ntdll-EtwRegisterTraceGuids

View File

@ -1,82 +0,0 @@
From 7d12e333f83b5cec23a07dd9bf2dad1f8fc5dec0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 03:08:07 +0100
Subject: ntdll: Move EventSetInformation from advapi32 to ntdll.
---
dlls/advapi32/advapi32.spec | 2 +-
dlls/advapi32/eventlog.c | 10 ----------
dlls/ntdll/misc.c | 10 ++++++++++
dlls/ntdll/ntdll.spec | 1 +
4 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index 4868841..0ecd4e9 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -273,7 +273,7 @@
@ stdcall EventEnabled(int64 ptr)
@ stdcall EventProviderEnabled(int64 long int64)
@ stdcall EventRegister(ptr ptr ptr ptr) ntdll.EtwEventRegister
-@ stdcall EventSetInformation(int64 long ptr long)
+@ stdcall EventSetInformation(int64 long ptr long) ntdll.EtwEventSetInformation
@ stdcall EventUnregister(int64) ntdll.EtwEventUnregister
@ stdcall EventWrite(int64 ptr long ptr)
# @ stub EventWriteEndScenario
diff --git a/dlls/advapi32/eventlog.c b/dlls/advapi32/eventlog.c
index 9bd75e8..c1dbb99 100644
--- a/dlls/advapi32/eventlog.c
+++ b/dlls/advapi32/eventlog.c
@@ -880,16 +880,6 @@ ULONG WINAPI EventWriteTransfer( REGHANDLE handle, PCEVENT_DESCRIPTOR descriptor
}
/******************************************************************************
- * EventSetInformation [ADVAPI32.@]
- */
-ULONG WINAPI EventSetInformation( REGHANDLE handle, EVENT_INFO_CLASS class, PVOID info,
- ULONG length )
-{
- FIXME("%u, %p, %u\n", class, info, length);
- return ERROR_SUCCESS;
-}
-
-/******************************************************************************
* QueryTraceW [ADVAPI32.@]
*/
ULONG WINAPI QueryTraceW( TRACEHANDLE handle, LPCWSTR sessionname, PEVENT_TRACE_PROPERTIES properties )
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
index ccece31..c7dfd2b 100644
--- a/dlls/ntdll/misc.c
+++ b/dlls/ntdll/misc.c
@@ -388,6 +388,16 @@ ULONG WINAPI EtwEventUnregister( REGHANDLE handle )
return ERROR_SUCCESS;
}
+/*********************************************************************
+ * EtwEventSetInformation (NTDLL.@)
+ */
+ULONG WINAPI EtwEventSetInformation( REGHANDLE handle, EVENT_INFO_CLASS class, PVOID info,
+ ULONG length )
+{
+ FIXME("%u, %p, %u\n", class, info, length);
+ return ERROR_SUCCESS;
+}
+
/******************************************************************************
* EtwRegisterTraceGuidsW (NTDLL.@)
*
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 0e19dc7..042e34c 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -42,6 +42,7 @@
@ stub DbgUiWaitStateChange
@ stdcall DbgUserBreakPoint()
@ stdcall EtwEventRegister(ptr ptr ptr ptr)
+@ stdcall EtwEventSetInformation(int64 long ptr long)
@ stdcall EtwEventUnregister(int64)
@ stdcall EtwRegisterTraceGuidsA(ptr ptr ptr long ptr str str ptr)
@ stdcall EtwRegisterTraceGuidsW(ptr ptr ptr long ptr wstr wstr ptr)
--
2.9.0

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "705c52691a4e8c6224cda5080fb88f257de5fd77"
echo "4c7f3f8af856888f5ab020b2a32d0b01db0c82f7"
}
# Show version information
@ -212,7 +212,6 @@ patch_enable_all ()
enable_ntdll_DeviceType_Systemroot="$1"
enable_ntdll_DllOverrides_WOW64="$1"
enable_ntdll_DllRedirects="$1"
enable_ntdll_EtwRegisterTraceGuids="$1"
enable_ntdll_Exception="$1"
enable_ntdll_FileDispositionInformation="$1"
enable_ntdll_FileFsFullSizeInformation="$1"
@ -299,9 +298,7 @@ patch_enable_all ()
enable_sfc_SfcGetNextProtectedFile="$1"
enable_shdocvw_ParseURLFromOutsideSource_Tests="$1"
enable_shell32_Context_Menu="$1"
enable_shell32_Default_Path="$1"
enable_shell32_File_Property_Dialog="$1"
enable_shell32_IDragSourceHelper="$1"
enable_shell32_Icons="$1"
enable_shell32_Microsoft_Windows_Themes="$1"
enable_shell32_NewMenu_Interface="$1"
@ -347,7 +344,6 @@ patch_enable_all ()
enable_wbemdisp_ISWbemSecurity="$1"
enable_wbemdisp_Printer="$1"
enable_widl_SLTG_Typelib_Support="$1"
enable_windowscodecs_32bppBGRA="$1"
enable_windowscodecs_32bppGrayFloat="$1"
enable_windowscodecs_GIF_Encoder="$1"
enable_windowscodecs_IMILBitmapSource="$1"
@ -818,9 +814,6 @@ patch_enable ()
ntdll-DllRedirects)
enable_ntdll_DllRedirects="$2"
;;
ntdll-EtwRegisterTraceGuids)
enable_ntdll_EtwRegisterTraceGuids="$2"
;;
ntdll-Exception)
enable_ntdll_Exception="$2"
;;
@ -1079,15 +1072,9 @@ patch_enable ()
shell32-Context_Menu)
enable_shell32_Context_Menu="$2"
;;
shell32-Default_Path)
enable_shell32_Default_Path="$2"
;;
shell32-File_Property_Dialog)
enable_shell32_File_Property_Dialog="$2"
;;
shell32-IDragSourceHelper)
enable_shell32_IDragSourceHelper="$2"
;;
shell32-Icons)
enable_shell32_Icons="$2"
;;
@ -1223,9 +1210,6 @@ patch_enable ()
widl-SLTG_Typelib_Support)
enable_widl_SLTG_Typelib_Support="$2"
;;
windowscodecs-32bppBGRA)
enable_windowscodecs_32bppBGRA="$2"
;;
windowscodecs-32bppGrayFloat)
enable_windowscodecs_32bppGrayFloat="$2"
;;
@ -2263,13 +2247,6 @@ if test "$enable_ntdll_CLI_Images" -eq 1; then
enable_mscoree_CorValidateImage=1
fi
if test "$enable_ntdll_ApiSetQueryApiSetPresence" -eq 1; then
if test "$enable_ntdll_EtwRegisterTraceGuids" -gt 1; then
abort "Patchset ntdll-EtwRegisterTraceGuids disabled, but ntdll-ApiSetQueryApiSetPresence depends on that."
fi
enable_ntdll_EtwRegisterTraceGuids=1
fi
if test "$enable_kernel32_Named_Pipe" -eq 1; then
if test "$enable_server_Desktop_Refcount" -gt 1; then
abort "Patchset server-Desktop_Refcount disabled, but kernel32-Named_Pipe depends on that."
@ -2404,10 +2381,10 @@ fi
# |
# | Modified files:
# | * dlls/amstream/mediastreamfilter.c, dlls/d2d1/brush.c, dlls/d2d1/geometry.c, dlls/d3d11/view.c, dlls/d3d8/texture.c,
# | dlls/d3d9/tests/visual.c, dlls/d3d9/texture.c, dlls/ddraw/viewport.c, dlls/dsound/primary.c, dlls/dwrite/layout.c,
# | dlls/msxml3/schema.c, dlls/netapi32/netapi32.c, dlls/oleaut32/oleaut.c, dlls/rpcrt4/cstub.c, dlls/vbscript/vbdisp.c,
# | dlls/winealsa.drv/mmdevdrv.c, dlls/wined3d/glsl_shader.c, include/wine/list.h, include/wine/rbtree.h, include/winnt.h,
# | tools/makedep.c
# | dlls/d3d9/tests/visual.c, dlls/d3d9/texture.c, dlls/ddraw/viewport.c, dlls/dsound/primary.c, dlls/dwrite/font.c,
# | dlls/dwrite/layout.c, dlls/msxml3/schema.c, dlls/netapi32/netapi32.c, dlls/oleaut32/oleaut.c, dlls/rpcrt4/cstub.c,
# | dlls/vbscript/vbdisp.c, dlls/winealsa.drv/mmdevdrv.c, dlls/wined3d/glsl_shader.c, include/wine/list.h,
# | include/wine/rbtree.h, include/winnt.h, tools/makedep.c
# |
if test "$enable_Compiler_Warnings" -eq 1; then
patch_apply Compiler_Warnings/0018-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch
@ -4803,23 +4780,8 @@ if test "$enable_ntdll_Activation_Context" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-EtwRegisterTraceGuids
# |
# | Modified files:
# | * dlls/advapi32/advapi32.spec, dlls/advapi32/eventlog.c, dlls/ntdll/misc.c, dlls/ntdll/ntdll.spec
# |
if test "$enable_ntdll_EtwRegisterTraceGuids" -eq 1; then
patch_apply ntdll-EtwRegisterTraceGuids/0002-ntdll-Move-EventSetInformation-from-advapi32-to-ntdl.patch
(
echo '+ { "Michael Müller", "ntdll: Move EventSetInformation from advapi32 to ntdll.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-ApiSetQueryApiSetPresence
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-EtwRegisterTraceGuids
# |
# | Modified files:
# | * dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec, dlls/ntdll/misc.c, dlls/ntdll/ntdll.spec
# |
@ -6362,21 +6324,6 @@ if test "$enable_shell32_Context_Menu" -eq 1; then
) >> "$patchlist"
fi
# Patchset shell32-Default_Path
# |
# | This patchset fixes the following Wine bugs:
# | * [#30385] Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath
# |
# | Modified files:
# | * dlls/shell32/shellpath.c, dlls/shell32/tests/shellpath.c
# |
if test "$enable_shell32_Default_Path" -eq 1; then
patch_apply shell32-Default_Path/0001-shell32-Implement-KF_FLAG_DEFAULT_PATH-flag-for-SHGe.patch
(
echo '+ { "Sebastian Lackner", "shell32: Implement KF_FLAG_DEFAULT_PATH flag for SHGetKnownFolderPath.", 1 },';
) >> "$patchlist"
fi
# Patchset shell32-File_Property_Dialog
# |
# | This patchset fixes the following Wine bugs:
@ -6392,23 +6339,6 @@ if test "$enable_shell32_File_Property_Dialog" -eq 1; then
) >> "$patchlist"
fi
# Patchset shell32-IDragSourceHelper
# |
# | This patchset fixes the following Wine bugs:
# | * [#24699] Add IDragSourceHelper stub interface
# |
# | Modified files:
# | * dlls/shell32/dragdrophelper.c
# |
if test "$enable_shell32_IDragSourceHelper" -eq 1; then
patch_apply shell32-IDragSourceHelper/0001-shell32-Cleanup-IDropTargetHelper-and-preparation-fo.patch
patch_apply shell32-IDragSourceHelper/0002-shell32-Add-IDragSourceHelper-stub-interface.patch
(
echo '+ { "Michael Müller", "shell32: Cleanup IDropTargetHelper and preparation for IDragSourceHelper.", 1 },';
echo '+ { "Michael Müller", "shell32: Add IDragSourceHelper stub interface.", 1 },';
) >> "$patchlist"
fi
# Patchset shell32-Icons
# |
# | This patchset fixes the following Wine bugs:
@ -7172,18 +7102,6 @@ if test "$enable_wbemdisp_Printer" -eq 1; then
) >> "$patchlist"
fi
# Patchset windowscodecs-32bppBGRA
# |
# | Modified files:
# | * dlls/windowscodecs/converter.c
# |
if test "$enable_windowscodecs_32bppBGRA" -eq 1; then
patch_apply windowscodecs-32bppBGRA/0001-windowscodecs-Fix-a-typo-in-2bppIndexed-to-32bppBGRA.patch
(
echo '+ { "Dmitry Timoshkov", "windowscodecs: Fix a typo in 2bppIndexed to 32bppBGRA conversion routine.", 1 },';
) >> "$patchlist"
fi
# Patchset windowscodecs-32bppGrayFloat
# |
# | This patchset fixes the following Wine bugs:
@ -7206,7 +7124,7 @@ fi
# |
# | Modified files:
# | * dlls/windowscodecs/bmpdecode.c, dlls/windowscodecs/bmpencode.c, dlls/windowscodecs/imgfactory.c,
# | dlls/windowscodecs/main.c, dlls/windowscodecs/pngformat.c, dlls/windowscodecs/regsvr.c,
# | dlls/windowscodecs/info.c, dlls/windowscodecs/pngformat.c, dlls/windowscodecs/regsvr.c,
# | dlls/windowscodecs/tests/converter.c, dlls/windowscodecs/tests/pngformat.c, dlls/windowscodecs/tiffformat.c
# |
if test "$enable_windowscodecs_Palette_Images" -eq 1; then

View File

@ -1,11 +1,11 @@
From 20f08d1d7a69425048bd824722097e5c04e1d1de Mon Sep 17 00:00:00 2001
From 3cd055a78a35711b9ec0ee3df327e4786a5ca986 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 4 Dec 2015 10:36:47 +0100
Subject: server: Introduce a new alloc_handle object callback. (v2)
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
---
server/async.c | 2 ++
server/async.c | 3 +++
server/atom.c | 1 +
server/change.c | 1 +
server/clipboard.c | 1 +
@ -39,13 +39,13 @@ Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
server/timer.c | 1 +
server/token.c | 1 +
server/winstation.c | 2 ++
34 files changed, 73 insertions(+), 3 deletions(-)
34 files changed, 74 insertions(+), 3 deletions(-)
diff --git a/server/async.c b/server/async.c
index 64aa27a..bc74173 100644
index ec46103..38ea0fb 100644
--- a/server/async.c
+++ b/server/async.c
@@ -68,6 +68,7 @@ static const struct object_ops async_ops =
@@ -72,6 +72,7 @@ static const struct object_ops async_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -53,7 +53,7 @@ index 64aa27a..bc74173 100644
no_close_handle, /* close_handle */
async_destroy /* destroy */
};
@@ -103,6 +104,7 @@ static const struct object_ops async_queue_ops =
@@ -107,6 +108,7 @@ static const struct object_ops async_queue_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -61,6 +61,14 @@ index 64aa27a..bc74173 100644
no_close_handle, /* close_handle */
async_queue_destroy /* destroy */
};
@@ -417,6 +419,7 @@ static const struct object_ops iosb_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
+ no_alloc_handle, /* alloc_handle */
no_close_handle, /* close_handle */
iosb_destroy /* destroy */
};
diff --git a/server/atom.c b/server/atom.c
index 3ff7540..7bebf13 100644
--- a/server/atom.c
@ -74,7 +82,7 @@ index 3ff7540..7bebf13 100644
atom_table_destroy /* destroy */
};
diff --git a/server/change.c b/server/change.c
index 7c0ca99..753bf66 100644
index d7ebf3b..ac48cce 100644
--- a/server/change.c
+++ b/server/change.c
@@ -172,6 +172,7 @@ static const struct object_ops dir_ops =
@ -86,10 +94,10 @@ index 7c0ca99..753bf66 100644
dir_destroy /* destroy */
};
diff --git a/server/clipboard.c b/server/clipboard.c
index 8396ec3..73028e4 100644
index a93319a..4dd4b50 100644
--- a/server/clipboard.c
+++ b/server/clipboard.c
@@ -72,6 +72,7 @@ static const struct object_ops clipboard_ops =
@@ -86,6 +86,7 @@ static const struct object_ops clipboard_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -110,7 +118,7 @@ index 8b8983a..72dbc5b 100644
completion_destroy /* destroy */
};
diff --git a/server/console.c b/server/console.c
index 32d3137..4fcb1e6 100644
index 5b69e76..832f0d4 100644
--- a/server/console.c
+++ b/server/console.c
@@ -87,6 +87,7 @@ static const struct object_ops console_input_ops =
@ -158,10 +166,10 @@ index 2eb794a..a2c07ba 100644
debug_ctx_destroy /* destroy */
};
diff --git a/server/device.c b/server/device.c
index e4f55c7..071b71f 100644
index 975507e..2abe695 100644
--- a/server/device.c
+++ b/server/device.c
@@ -81,6 +81,7 @@ static const struct object_ops irp_call_ops =
@@ -76,6 +76,7 @@ static const struct object_ops irp_call_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -169,7 +177,7 @@ index e4f55c7..071b71f 100644
no_close_handle, /* close_handle */
irp_call_destroy /* destroy */
};
@@ -117,6 +118,7 @@ static const struct object_ops device_manager_ops =
@@ -112,6 +113,7 @@ static const struct object_ops device_manager_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -177,7 +185,7 @@ index e4f55c7..071b71f 100644
no_close_handle, /* close_handle */
device_manager_destroy /* destroy */
};
@@ -158,6 +160,7 @@ static const struct object_ops device_ops =
@@ -153,6 +155,7 @@ static const struct object_ops device_ops =
directory_link_name, /* link_name */
default_unlink_name, /* unlink_name */
device_open_file, /* open_file */
@ -185,7 +193,7 @@ index e4f55c7..071b71f 100644
no_close_handle, /* close_handle */
device_destroy /* destroy */
};
@@ -206,6 +209,7 @@ static const struct object_ops device_file_ops =
@@ -201,6 +204,7 @@ static const struct object_ops device_file_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -234,7 +242,7 @@ index cfc0f6a..608fafb 100644
no_destroy /* destroy */
};
diff --git a/server/fd.c b/server/fd.c
index 17b1b66..3e0a62b 100644
index 3ccd0f8..8a961a5 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -217,6 +217,7 @@ static const struct object_ops fd_ops =
@ -270,7 +278,7 @@ index 17b1b66..3e0a62b 100644
no_destroy /* destroy */
};
diff --git a/server/file.c b/server/file.c
index dacb24a..fcf18e5 100644
index 2f5371d..359cf7a 100644
--- a/server/file.c
+++ b/server/file.c
@@ -95,6 +95,7 @@ static const struct object_ops file_ops =
@ -339,7 +347,7 @@ index 3a0e4b4..dc653b8 100644
hook_table_destroy /* destroy */
};
diff --git a/server/mailslot.c b/server/mailslot.c
index 13e6703..021ef99 100644
index 783b28b..077547f 100644
--- a/server/mailslot.c
+++ b/server/mailslot.c
@@ -89,6 +89,7 @@ static const struct object_ops mailslot_ops =
@ -350,7 +358,7 @@ index 13e6703..021ef99 100644
fd_close_handle, /* close_handle */
mailslot_destroy /* destroy */
};
@@ -144,6 +145,7 @@ static const struct object_ops mail_writer_ops =
@@ -143,6 +144,7 @@ static const struct object_ops mail_writer_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -358,7 +366,7 @@ index 13e6703..021ef99 100644
fd_close_handle, /* close_handle */
mail_writer_destroy /* destroy */
};
@@ -200,6 +202,7 @@ static const struct object_ops mailslot_device_ops =
@@ -198,6 +200,7 @@ static const struct object_ops mailslot_device_ops =
directory_link_name, /* link_name */
default_unlink_name, /* unlink_name */
mailslot_device_open_file, /* open_file */
@ -367,7 +375,7 @@ index 13e6703..021ef99 100644
mailslot_device_destroy /* destroy */
};
diff --git a/server/mapping.c b/server/mapping.c
index f82907b..7c7759b 100644
index f03ea7a..a465bf5 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -94,6 +94,7 @@ static const struct object_ops mapping_ops =
@ -391,10 +399,10 @@ index d1887e4..a2a0a24 100644
mutex_destroy /* destroy */
};
diff --git a/server/named_pipe.c b/server/named_pipe.c
index cfee4d5..cffa254 100644
index 3245688..8ed4b97 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -135,6 +135,7 @@ static const struct object_ops named_pipe_ops =
@@ -134,6 +134,7 @@ static const struct object_ops named_pipe_ops =
named_pipe_link_name, /* link_name */
default_unlink_name, /* unlink_name */
named_pipe_open_file, /* open_file */
@ -402,7 +410,7 @@ index cfee4d5..cffa254 100644
no_close_handle, /* close_handle */
named_pipe_destroy /* destroy */
};
@@ -166,6 +167,7 @@ static const struct object_ops pipe_server_ops =
@@ -165,6 +166,7 @@ static const struct object_ops pipe_server_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -410,7 +418,7 @@ index cfee4d5..cffa254 100644
fd_close_handle, /* close_handle */
pipe_server_destroy /* destroy */
};
@@ -210,6 +212,7 @@ static const struct object_ops pipe_client_ops =
@@ -208,6 +210,7 @@ static const struct object_ops pipe_client_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -418,7 +426,7 @@ index cfee4d5..cffa254 100644
fd_close_handle, /* close_handle */
pipe_client_destroy /* destroy */
};
@@ -258,6 +261,7 @@ static const struct object_ops named_pipe_device_ops =
@@ -255,6 +258,7 @@ static const struct object_ops named_pipe_device_ops =
directory_link_name, /* link_name */
default_unlink_name, /* unlink_name */
named_pipe_device_open_file, /* open_file */
@ -466,7 +474,7 @@ index b5c50e1..72ad852 100644
extern void no_destroy( struct object *obj );
#ifdef DEBUG_OBJECTS
diff --git a/server/process.c b/server/process.c
index 48ada99..8334eaa 100644
index e9e2f21..836c1cb4 100644
--- a/server/process.c
+++ b/server/process.c
@@ -84,6 +84,7 @@ static const struct object_ops process_ops =
@ -494,7 +502,7 @@ index 48ada99..8334eaa 100644
job_destroy /* destroy */
};
diff --git a/server/queue.c b/server/queue.c
index f82060f..e097f5b 100644
index c479b38..382f14f 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -181,6 +181,7 @@ static const struct object_ops msg_queue_ops =
@ -514,7 +522,7 @@ index f82060f..e097f5b 100644
thread_input_destroy /* destroy */
};
diff --git a/server/registry.c b/server/registry.c
index 97b16ed..6a38de7 100644
index 0731b22..cfc1534 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -170,6 +170,7 @@ static const struct object_ops key_ops =
@ -526,7 +534,7 @@ index 97b16ed..6a38de7 100644
key_destroy /* destroy */
};
diff --git a/server/request.c b/server/request.c
index 597bf88..7d88202 100644
index 781889c..d434990 100644
--- a/server/request.c
+++ b/server/request.c
@@ -107,6 +107,7 @@ static const struct object_ops master_socket_ops =
@ -550,7 +558,7 @@ index 08ff153..15e7392 100644
no_destroy /* destroy */
};
diff --git a/server/serial.c b/server/serial.c
index 03d726a..46949a3 100644
index 6f9cc24..ca4ac1f 100644
--- a/server/serial.c
+++ b/server/serial.c
@@ -106,6 +106,7 @@ static const struct object_ops serial_ops =
@ -562,7 +570,7 @@ index 03d726a..46949a3 100644
serial_destroy /* destroy */
};
diff --git a/server/signal.c b/server/signal.c
index c20e154..8c05c5f 100644
index 74416fa..4b2b8c4 100644
--- a/server/signal.c
+++ b/server/signal.c
@@ -77,6 +77,7 @@ static const struct object_ops handler_ops =
@ -586,10 +594,10 @@ index e35588a..6e788ab 100644
snapshot_destroy /* destroy */
};
diff --git a/server/sock.c b/server/sock.c
index dc10d2a..a11964f 100644
index f70a85d..153f901 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -156,6 +156,7 @@ static const struct object_ops sock_ops =
@@ -155,6 +155,7 @@ static const struct object_ops sock_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -597,7 +605,7 @@ index dc10d2a..a11964f 100644
fd_close_handle, /* close_handle */
sock_destroy /* destroy */
};
@@ -1000,6 +1001,7 @@ static const struct object_ops ifchange_ops =
@@ -987,6 +988,7 @@ static const struct object_ops ifchange_ops =
no_link_name, /* link_name */
NULL, /* unlink_name */
no_open_file, /* open_file */
@ -618,7 +626,7 @@ index 9199bc5..ecc0e43 100644
symlink_destroy /* destroy */
};
diff --git a/server/thread.c b/server/thread.c
index 5f8405b..4069af3 100644
index e18c208..b025f76 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -120,6 +120,7 @@ static const struct object_ops thread_apc_ops =

View File

@ -1,4 +1,4 @@
From 48b23f25de1d337f144d698423e3888036400d8e Mon Sep 17 00:00:00 2001
From 7847b8fd4f68d229e5fc478e755fb212fdff3431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 18 Aug 2016 18:37:29 +0200
Subject: setupapi: Add spec file stub entry for SetupDiInstallDeviceInterfaces
@ -9,10 +9,10 @@ Subject: setupapi: Add spec file stub entry for SetupDiInstallDeviceInterfaces
1 file changed, 2 insertions(+)
diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec
index cc873ae..575607e 100644
index 0eb8359..4a4d193 100644
--- a/dlls/setupapi/setupapi.spec
+++ b/dlls/setupapi/setupapi.spec
@@ -366,6 +366,7 @@
@@ -367,6 +367,7 @@
@ stub SetupDiInstallClassExW
@ stdcall SetupDiInstallClassW(long wstr long ptr)
@ stub SetupDiInstallDevice
@ -20,14 +20,14 @@ index cc873ae..575607e 100644
@ stub SetupDiInstallDriverFiles
@ stdcall SetupDiLoadClassIcon(ptr ptr ptr)
@ stub SetupDiMoveDuplicateDevice
@@ -378,6 +379,7 @@
@@ -379,6 +380,7 @@
@ stdcall SetupDiOpenDeviceInterfaceA(ptr str long ptr)
@ stub SetupDiOpenDeviceInterfaceRegKey
@ stdcall SetupDiOpenDeviceInterfaceW(ptr wstr long ptr)
+@ stub SetupDiRegisterCoDeviceInstallers
@ stdcall SetupDiRegisterDeviceInfo(ptr ptr long ptr ptr ptr)
@ stdcall SetupDiRemoveDevice(ptr ptr)
@ stub SetupDiRemoveDeviceInterface
@ stdcall SetupDiRemoveDeviceInterface(ptr ptr)
--
2.9.0

View File

@ -1,52 +0,0 @@
From 12199f1bcc3fabab52034df4362a5b3c4e93337d Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 23 Aug 2014 01:34:38 +0200
Subject: shell32: Implement KF_FLAG_DEFAULT_PATH flag for
SHGetKnownFolderPath.
---
dlls/shell32/shellpath.c | 6 ++++--
dlls/shell32/tests/shellpath.c | 5 +++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index e361483..600e002 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -3104,13 +3104,15 @@ HRESULT WINAPI SHGetKnownFolderPath(REFKNOWNFOLDERID rfid, DWORD flags, HANDLE t
if (flags & KF_FLAG_INIT)
index |= CSIDL_FLAG_PER_USER_INIT;
- if (flags & ~(KF_FLAG_CREATE|KF_FLAG_DONT_VERIFY|KF_FLAG_NO_ALIAS|KF_FLAG_INIT))
+ if (flags & ~(KF_FLAG_CREATE|KF_FLAG_DONT_VERIFY|KF_FLAG_NO_ALIAS|
+ KF_FLAG_INIT|KF_FLAG_DEFAULT_PATH))
{
FIXME("flags 0x%08x not supported\n", flags);
return E_INVALIDARG;
}
- hr = SHGetFolderPathW( NULL, index, token, 0, folder );
+ hr = SHGetFolderPathW( NULL, index, token, (flags & KF_FLAG_DEFAULT_PATH) ?
+ SHGFP_TYPE_DEFAULT : SHGFP_TYPE_CURRENT, folder );
if (SUCCEEDED(hr))
{
*path = CoTaskMemAlloc( (strlenW( folder ) + 1) * sizeof(WCHAR) );
diff --git a/dlls/shell32/tests/shellpath.c b/dlls/shell32/tests/shellpath.c
index efdfbbd..f518a7a 100644
--- a/dlls/shell32/tests/shellpath.c
+++ b/dlls/shell32/tests/shellpath.c
@@ -861,6 +861,11 @@ if (0) { /* crashes */
ok(hr == S_OK, "expected S_OK, got 0x%08x\n", hr);
ok(path != NULL, "expected path != NULL\n");
+ path = NULL;
+ hr = pSHGetKnownFolderPath(&FOLDERID_Desktop, KF_FLAG_DEFAULT_PATH, NULL, &path);
+ ok(hr == S_OK, "expected S_OK, got 0x%08x\n", hr);
+ ok(path != NULL, "expected path != NULL\n");
+
hr = pSHGetFolderPathEx(&FOLDERID_Desktop, 0, NULL, buffer, MAX_PATH);
ok(hr == S_OK, "expected S_OK, got 0x%08x\n", hr);
ok(!lstrcmpiW(path, buffer), "expected equal paths\n");
--
1.7.9.5

View File

@ -1 +0,0 @@
Fixes: [30385] Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath

View File

@ -1,237 +0,0 @@
From ece7ecf8bc9c4e6d9c44ffbf1f8a4a0b8c785a9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 15 Aug 2015 17:31:08 +0200
Subject: shell32: Cleanup IDropTargetHelper and preparation for
IDragSourceHelper.
---
dlls/shell32/dragdrophelper.c | 135 +++++++++++++++++++++---------------------
1 file changed, 68 insertions(+), 67 deletions(-)
diff --git a/dlls/shell32/dragdrophelper.c b/dlls/shell32/dragdrophelper.c
index cae8b8d..2705793 100644
--- a/dlls/shell32/dragdrophelper.c
+++ b/dlls/shell32/dragdrophelper.c
@@ -1,8 +1,9 @@
/*
* file system folder
*
- * Copyright 1997 Marcus Meissner
- * Copyright 1998, 1999, 2002 Juergen Schmied
+ * Copyright 1997 Marcus Meissner
+ * Copyright 1998, 1999, 2002 Juergen Schmied
+ * Copyright 2015 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
@@ -47,45 +48,15 @@ WINE_DEFAULT_DEBUG_CHANNEL (shell);
* IDropTargetHelper implementation
*/
-typedef struct {
+typedef struct
+{
IDropTargetHelper IDropTargetHelper_iface;
LONG ref;
-} IDropTargetHelperImpl;
-
-static const IDropTargetHelperVtbl vt_IDropTargetHelper;
-
-static inline IDropTargetHelperImpl *impl_from_IDropTargetHelper(IDropTargetHelper *iface)
-{
- return CONTAINING_RECORD(iface, IDropTargetHelperImpl, IDropTargetHelper_iface);
-}
+} IDragHelperImpl;
-/**************************************************************************
-* IDropTargetHelper_Constructor
-*/
-HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
+static inline IDragHelperImpl *impl_from_IDropTargetHelper(IDropTargetHelper *iface)
{
- IDropTargetHelperImpl *dth;
-
- TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
-
- if (!ppv)
- return E_POINTER;
- if (pUnkOuter)
- return CLASS_E_NOAGGREGATION;
-
- dth = LocalAlloc (LMEM_ZEROINIT, sizeof (IDropTargetHelperImpl));
- if (!dth) return E_OUTOFMEMORY;
-
- dth->ref = 0;
- dth->IDropTargetHelper_iface.lpVtbl = &vt_IDropTargetHelper;
-
- if (FAILED (IDropTargetHelper_QueryInterface (&dth->IDropTargetHelper_iface, riid, ppv))) {
- LocalFree(dth);
- return E_NOINTERFACE;
- }
-
- TRACE ("--(%p)\n", dth);
- return S_OK;
+ return CONTAINING_RECORD(iface, IDragHelperImpl, IDropTargetHelper_iface);
}
/**************************************************************************
@@ -93,28 +64,31 @@ HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid,
*/
static HRESULT WINAPI IDropTargetHelper_fnQueryInterface (IDropTargetHelper * iface, REFIID riid, LPVOID * ppvObj)
{
- IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+ IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
*ppvObj = NULL;
- if (IsEqualIID (riid, &IID_IUnknown) || IsEqualIID (riid, &IID_IDropTargetHelper)) {
- *ppvObj = &This->IDropTargetHelper_iface;
+ if (IsEqualIID (riid, &IID_IUnknown) || IsEqualIID (riid, &IID_IDropTargetHelper))
+ {
+ *ppvObj = &This->IDropTargetHelper_iface;
}
- if (*ppvObj) {
- IUnknown_AddRef ((IUnknown *) (*ppvObj));
- TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
- return S_OK;
+ if (*ppvObj)
+ {
+ IUnknown_AddRef ((IUnknown *) (*ppvObj));
+ TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
+ return S_OK;
}
+
FIXME ("-- Interface: E_NOINTERFACE\n");
return E_NOINTERFACE;
}
static ULONG WINAPI IDropTargetHelper_fnAddRef (IDropTargetHelper * iface)
{
- IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+ IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
ULONG refCount = InterlockedIncrement(&This->ref);
TRACE ("(%p)->(count=%u)\n", This, refCount - 1);
@@ -124,67 +98,94 @@ static ULONG WINAPI IDropTargetHelper_fnAddRef (IDropTargetHelper * iface)
static ULONG WINAPI IDropTargetHelper_fnRelease (IDropTargetHelper * iface)
{
- IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+ IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
ULONG refCount = InterlockedDecrement(&This->ref);
TRACE ("(%p)->(count=%u)\n", This, refCount + 1);
- if (!refCount) {
+ if (!refCount)
+ {
TRACE ("-- destroying (%p)\n", This);
- LocalFree (This);
+ HeapFree(GetProcessHeap(), 0, This);
return 0;
}
return refCount;
}
-static HRESULT WINAPI IDropTargetHelper_fnDragEnter (
- IDropTargetHelper * iface,
- HWND hwndTarget,
- IDataObject* pDataObject,
- POINT* ppt,
- DWORD dwEffect)
+static HRESULT WINAPI IDropTargetHelper_fnDragEnter (IDropTargetHelper * iface, HWND hwndTarget,
+ IDataObject* pDataObject,POINT* ppt, DWORD dwEffect)
{
- IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+ IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
FIXME ("(%p)->(%p %p %p 0x%08x)\n", This,hwndTarget, pDataObject, ppt, dwEffect);
return E_NOTIMPL;
}
static HRESULT WINAPI IDropTargetHelper_fnDragLeave (IDropTargetHelper * iface)
{
- IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+ IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
FIXME ("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI IDropTargetHelper_fnDragOver (IDropTargetHelper * iface, POINT* ppt, DWORD dwEffect)
{
- IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+ IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
FIXME ("(%p)->(%p 0x%08x)\n", This, ppt, dwEffect);
return E_NOTIMPL;
}
static HRESULT WINAPI IDropTargetHelper_fnDrop (IDropTargetHelper * iface, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect)
{
- IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+ IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
FIXME ("(%p)->(%p %p 0x%08x)\n", This, pDataObject, ppt, dwEffect);
return E_NOTIMPL;
}
static HRESULT WINAPI IDropTargetHelper_fnShow (IDropTargetHelper * iface, BOOL fShow)
{
- IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+ IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
FIXME ("(%p)->(%u)\n", This, fShow);
return E_NOTIMPL;
}
static const IDropTargetHelperVtbl vt_IDropTargetHelper =
{
- IDropTargetHelper_fnQueryInterface,
- IDropTargetHelper_fnAddRef,
- IDropTargetHelper_fnRelease,
- IDropTargetHelper_fnDragEnter,
- IDropTargetHelper_fnDragLeave,
- IDropTargetHelper_fnDragOver,
- IDropTargetHelper_fnDrop,
- IDropTargetHelper_fnShow
+ IDropTargetHelper_fnQueryInterface,
+ IDropTargetHelper_fnAddRef,
+ IDropTargetHelper_fnRelease,
+ IDropTargetHelper_fnDragEnter,
+ IDropTargetHelper_fnDragLeave,
+ IDropTargetHelper_fnDragOver,
+ IDropTargetHelper_fnDrop,
+ IDropTargetHelper_fnShow
};
+
+/**************************************************************************
+* IDropTargetHelper_Constructor
+*/
+HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
+{
+ IDragHelperImpl *dth;
+
+ TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
+
+ if (!ppv)
+ return E_POINTER;
+ if (pUnkOuter)
+ return CLASS_E_NOAGGREGATION;
+
+ dth = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (IDragHelperImpl));
+ if (!dth) return E_OUTOFMEMORY;
+
+ dth->ref = 0;
+ dth->IDropTargetHelper_iface.lpVtbl = &vt_IDropTargetHelper;
+
+ if (FAILED(IDropTargetHelper_QueryInterface (&dth->IDropTargetHelper_iface, riid, ppv)))
+ {
+ HeapFree(GetProcessHeap(), 0, dth);
+ return E_NOINTERFACE;
+ }
+
+ TRACE ("--(%p)\n", dth);
+ return S_OK;
+}
--
2.5.0

View File

@ -1,107 +0,0 @@
From 02c2de6fb0417b118d575b38afadb9d893b364e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 15 Aug 2015 18:06:36 +0200
Subject: shell32: Add IDragSourceHelper stub interface.
---
dlls/shell32/dragdrophelper.c | 56 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/dlls/shell32/dragdrophelper.c b/dlls/shell32/dragdrophelper.c
index 2705793..91dacc9 100644
--- a/dlls/shell32/dragdrophelper.c
+++ b/dlls/shell32/dragdrophelper.c
@@ -51,6 +51,7 @@ WINE_DEFAULT_DEBUG_CHANNEL (shell);
typedef struct
{
IDropTargetHelper IDropTargetHelper_iface;
+ IDragSourceHelper IDragSourceHelper_iface;
LONG ref;
} IDragHelperImpl;
@@ -59,6 +60,11 @@ static inline IDragHelperImpl *impl_from_IDropTargetHelper(IDropTargetHelper *if
return CONTAINING_RECORD(iface, IDragHelperImpl, IDropTargetHelper_iface);
}
+static inline IDragHelperImpl *impl_from_IDragSourceHelper(IDragSourceHelper *iface)
+{
+ return CONTAINING_RECORD(iface, IDragHelperImpl, IDragSourceHelper_iface);
+}
+
/**************************************************************************
* IDropTargetHelper_fnQueryInterface
*/
@@ -74,6 +80,10 @@ static HRESULT WINAPI IDropTargetHelper_fnQueryInterface (IDropTargetHelper * if
{
*ppvObj = &This->IDropTargetHelper_iface;
}
+ else if (IsEqualIID (riid, &IID_IDragSourceHelper))
+ {
+ *ppvObj = &This->IDragSourceHelper_iface;
+ }
if (*ppvObj)
{
@@ -160,6 +170,51 @@ static const IDropTargetHelperVtbl vt_IDropTargetHelper =
IDropTargetHelper_fnShow
};
+static HRESULT WINAPI IDragSourceHelper_fnQueryInterface (IDragSourceHelper * iface, REFIID riid, LPVOID * ppv)
+{
+ IDragHelperImpl *This = impl_from_IDragSourceHelper(iface);
+ return IDropTargetHelper_fnQueryInterface(&This->IDropTargetHelper_iface, riid, ppv);
+}
+
+static ULONG WINAPI IDragSourceHelper_fnAddRef (IDragSourceHelper * iface)
+{
+ IDragHelperImpl *This = impl_from_IDragSourceHelper(iface);
+ return IDropTargetHelper_fnAddRef(&This->IDropTargetHelper_iface);
+}
+
+static ULONG WINAPI IDragSourceHelper_fnRelease (IDragSourceHelper * iface)
+{
+ IDragHelperImpl *This = impl_from_IDragSourceHelper(iface);
+ return IDropTargetHelper_fnRelease(&This->IDropTargetHelper_iface);
+}
+
+static HRESULT WINAPI IDragSourceHelper_fnInitializeFromBitmap(IDragSourceHelper * iface, LPSHDRAGIMAGE pshdi,
+ IDataObject *object)
+{
+ IDragHelperImpl *This = impl_from_IDragSourceHelper(iface);
+
+ FIXME("(%p)->(%p, %p): stub\n", This, pshdi, object);
+ return S_OK;
+}
+
+static HRESULT WINAPI IDragSourceHelper_fnInitializeFromWindow(IDragSourceHelper * iface, HWND hwnd, POINT *ppt,
+ IDataObject *object)
+{
+ IDragHelperImpl *This = impl_from_IDragSourceHelper(iface);
+
+ FIXME("(%p)->(%p, %p, %p): stub\n", This, hwnd, ppt, object);
+ return S_OK;
+}
+
+static const IDragSourceHelperVtbl vt_IDragSourceHelper =
+{
+ IDragSourceHelper_fnQueryInterface,
+ IDragSourceHelper_fnAddRef,
+ IDragSourceHelper_fnRelease,
+ IDragSourceHelper_fnInitializeFromBitmap,
+ IDragSourceHelper_fnInitializeFromWindow
+};
+
/**************************************************************************
* IDropTargetHelper_Constructor
*/
@@ -179,6 +234,7 @@ HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid,
dth->ref = 0;
dth->IDropTargetHelper_iface.lpVtbl = &vt_IDropTargetHelper;
+ dth->IDragSourceHelper_iface.lpVtbl = &vt_IDragSourceHelper;
if (FAILED(IDropTargetHelper_QueryInterface (&dth->IDropTargetHelper_iface, riid, ppv)))
{
--
2.5.0

View File

@ -1 +0,0 @@
Fixes: [24699] Add IDragSourceHelper stub interface

View File

@ -1,4 +1,4 @@
From 0e08c56df7f0d6beefbf6726f9db0b5ad3541348 Mon Sep 17 00:00:00 2001
From 28156cc0d0a9a5bba13889f5abf846c5af086a3d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 16 Aug 2015 17:34:22 +0200
Subject: shell32: Implement NewMenu with new folder item.
@ -26,7 +26,7 @@ index 038db7f..7b677ff 100644
shellord.c \
shellpath.c \
diff --git a/dlls/shell32/shell32_classes.idl b/dlls/shell32/shell32_classes.idl
index f0131e7..0140fec 100644
index 68ce2b5..5b2a07f 100644
--- a/dlls/shell32/shell32_classes.idl
+++ b/dlls/shell32/shell32_classes.idl
@@ -76,6 +76,11 @@ coclass KnownFolderManager { interface IKnownFolderManager; }
@ -42,10 +42,10 @@ index f0131e7..0140fec 100644
] coclass AutoComplete { interface IAutoComplete2; }
diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h
index 492f79f..83c5655 100644
index 642fab7..2c1aa3e 100644
--- a/dlls/shell32/shell32_main.h
+++ b/dlls/shell32/shell32_main.h
@@ -98,6 +98,7 @@ HRESULT WINAPI RecycleBin_Constructor(IUnknown * pUnkOuter, REFIID riif, LPVOID
@@ -99,6 +99,7 @@ HRESULT WINAPI RecycleBin_Constructor(IUnknown * pUnkOuter, REFIID riif, LPVOID
HRESULT WINAPI QueryAssociations_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppOutput) DECLSPEC_HIDDEN;
HRESULT WINAPI ExplorerBrowser_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN;
HRESULT WINAPI KnownFolderManager_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN;
@ -618,13 +618,13 @@ index 0000000..59e18d6
+ return hr;
+}
diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c
index 637a101..9c1df75 100644
index dd54900..3d2dbf4 100644
--- a/dlls/shell32/shellole.c
+++ b/dlls/shell32/shellole.c
@@ -83,6 +83,7 @@ static const struct {
{&CLSID_ExplorerBrowser,ExplorerBrowser_Constructor},
@@ -84,6 +84,7 @@ static const struct {
{&CLSID_KnownFolderManager, KnownFolderManager_Constructor},
{&CLSID_Shell, IShellDispatch_Constructor},
{&CLSID_DestinationList, CustomDestinationList_Constructor},
+ {&CLSID_NewMenu, NewMenu_Constructor},
{NULL, NULL}
};
@ -643,5 +643,5 @@ index 2279def..09aacc5 100644
DEFINE_GUID(FMTID_ShellDetails, 0x28636aa6, 0x953d, 0x11d2, 0xb5, 0xd6, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0);
#define PID_FINDDATA 0
--
2.5.0
2.9.0

View File

@ -1,4 +1,4 @@
From b9fa2a0da086a8e964ef959a0f4e9a68779dd2a7 Mon Sep 17 00:00:00 2001
From 9048f6a6a21813d12a00e2b031e3aa916fb7b3f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 15 Aug 2015 21:12:00 +0200
Subject: shell32: Set SFGAO_HASSUBFOLDER correctly for normal shellfolders.
@ -8,10 +8,10 @@ Subject: shell32: Set SFGAO_HASSUBFOLDER correctly for normal shellfolders.
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c
index 46ccc56..0303924 100644
index 8688c5d..53fd323 100644
--- a/dlls/shell32/shlfolder.c
+++ b/dlls/shell32/shlfolder.c
@@ -450,8 +450,24 @@ HRESULT SHELL32_GetItemAttributes (IShellFolder * psf, LPCITEMIDLIST pidl, LPDWO
@@ -449,8 +449,24 @@ HRESULT SHELL32_GetItemAttributes (IShellFolder2 *psf, LPCITEMIDLIST pidl, LPDWO
*pdwAttributes |= SFGAO_FILESYSTEM | SFGAO_DROPTARGET | SFGAO_HASPROPSHEET | SFGAO_CANDELETE |
SFGAO_CANRENAME | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANCOPY;
@ -24,7 +24,7 @@ index 46ccc56..0303924 100644
+
+ *pdwAttributes |= (SFGAO_FOLDER | SFGAO_FILESYSANCESTOR);
+
+ if (SUCCEEDED(IShellFolder_BindToObject(psf, pidl, NULL, &IID_IShellFolder, (void **)&child)))
+ if (SUCCEEDED(IShellFolder2_BindToObject(psf, pidl, NULL, &IID_IShellFolder, (void **)&child)))
+ {
+ if (IShellFolder_EnumObjects(child, NULL, SHCONTF_FOLDERS|SHCONTF_INCLUDEHIDDEN, &enum_list) == S_OK)
+ {
@ -39,5 +39,5 @@ index 46ccc56..0303924 100644
*pdwAttributes &= ~(SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_FILESYSANCESTOR);
--
2.5.0
2.9.0

View File

@ -1,19 +1,19 @@
From 549999ab13d6078b39210a467753e8b8dfff705e Mon Sep 17 00:00:00 2001
From 0d174cd3e053087a2e74ebad65676c375bc3b774 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 17 Jan 2014 01:19:41 +0100
Subject: shlwapi/tests: Add additional tests for UrlCombine and
UrlCanonicalize
---
dlls/shlwapi/tests/url.c | 46 ++++++++++++++++++++++++++++++++++++----------
dlls/shlwapi/tests/url.c | 46 ++++++++++++++++++++++++++++++++++++----------
1 file changed, 36 insertions(+), 10 deletions(-)
diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c
index f53a545..ecbdfab 100644
index f9fc79a..d9bd4f1 100644
--- a/dlls/shlwapi/tests/url.c
+++ b/dlls/shlwapi/tests/url.c
@@ -195,7 +195,15 @@ static const TEST_URL_CANONICALIZE TEST_CANONICALIZE[] = {
{"res://c:\\tests/res\\foo%20bar/strange\\sth", URL_UNESCAPE, S_OK, "res://c:\\tests/res\\foo bar/strange\\sth", FALSE},
@@ -204,7 +204,15 @@ static const TEST_URL_CANONICALIZE TEST_CANONICALIZE[] = {
{"///A/../B", URL_WININET_COMPATIBILITY, S_OK, "///B", FALSE},
{"A", 0, S_OK, "A", FALSE},
{"../A", 0, S_OK, "../A", FALSE},
+ {".\\A", 0, S_OK, ".\\A", FALSE},
@ -28,7 +28,7 @@ index f53a545..ecbdfab 100644
{"/uri-res/N2R?urn:sha1:B3K", URL_DONT_ESCAPE_EXTRA_INFO | URL_WININET_COMPATIBILITY /*0x82000000*/, S_OK, "/uri-res/N2R?urn:sha1:B3K", FALSE} /*LimeWire online installer calls this*/,
{"http:www.winehq.org/dir/../index.html", 0, S_OK, "http:www.winehq.org/index.html"},
{"http://localhost/test.html", URL_FILE_USE_PATHURL, S_OK, "http://localhost/test.html"},
@@ -308,6 +316,7 @@ typedef struct _TEST_URL_COMBINE {
@@ -358,6 +366,7 @@ typedef struct _TEST_URL_COMBINE {
DWORD flags;
HRESULT expectret;
const char *expecturl;
@ -36,7 +36,7 @@ index f53a545..ecbdfab 100644
} TEST_URL_COMBINE;
static const TEST_URL_COMBINE TEST_COMBINE[] = {
@@ -329,6 +338,15 @@ static const TEST_URL_COMBINE TEST_COMBINE[] = {
@@ -379,6 +388,15 @@ static const TEST_URL_COMBINE TEST_COMBINE[] = {
{"http://www.winehq.org/test14#aaa/bbb#ccc", "#", 0, S_OK, "http://www.winehq.org/test14#"},
{"http://www.winehq.org/tests/?query=x/y/z", "tests15", 0, S_OK, "http://www.winehq.org/tests/tests15"},
{"http://www.winehq.org/tests/?query=x/y/z#example", "tests16", 0, S_OK, "http://www.winehq.org/tests/tests16"},
@ -52,7 +52,7 @@ index f53a545..ecbdfab 100644
{"file:///C:\\dir\\file.txt", "test.txt", 0, S_OK, "file:///C:/dir/test.txt"},
{"file:///C:\\dir\\file.txt#hash\\hash", "test.txt", 0, S_OK, "file:///C:/dir/file.txt#hash/test.txt"},
{"file:///C:\\dir\\file.html#hash\\hash", "test.html", 0, S_OK, "file:///C:/dir/test.html"},
@@ -1077,7 +1095,7 @@ static void test_UrlCanonicalizeW(void)
@@ -1159,7 +1177,7 @@ static void test_UrlCanonicalizeW(void)
/* ########################### */
@ -61,7 +61,7 @@ index f53a545..ecbdfab 100644
{
HRESULT hr;
CHAR szReturnUrl[INTERNET_MAX_URL_LENGTH];
@@ -1102,34 +1120,42 @@ static void test_url_combine(const char *szUrl1, const char *szUrl2, DWORD dwFla
@@ -1184,34 +1202,42 @@ static void test_url_combine(const char *szUrl1, const char *szUrl2, DWORD dwFla
dwSize = 0;
hr = pUrlCombineA(szUrl1, szUrl2, NULL, &dwSize, dwFlags);
ok(hr == E_POINTER, "Checking length of string, return was 0x%08x, expected 0x%08x\n", hr, E_POINTER);
@ -112,7 +112,7 @@ index f53a545..ecbdfab 100644
if(SUCCEEDED(hr)) {
wszConvertedUrl = GetWideString(szReturnUrl);
ok(lstrcmpW(wszReturnUrl, wszConvertedUrl)==0, "Strings didn't match between ascii and unicode UrlCombine!\n");
@@ -1149,7 +1175,7 @@ static void test_UrlCombine(void)
@@ -1231,7 +1257,7 @@ static void test_UrlCombine(void)
unsigned int i;
for(i=0; i<sizeof(TEST_COMBINE)/sizeof(TEST_COMBINE[0]); i++) {
test_url_combine(TEST_COMBINE[i].url1, TEST_COMBINE[i].url2, TEST_COMBINE[i].flags,
@ -122,5 +122,5 @@ index f53a545..ecbdfab 100644
}
--
1.7.9.5
2.9.0

View File

@ -1,26 +0,0 @@
From 4bd593d4d30e913ebda4fa586561dbbc32b4b74a Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Mon, 7 Nov 2016 19:51:40 +0800
Subject: windowscodecs: Fix a typo in 2bppIndexed to 32bppBGRA conversion
routine.
---
dlls/windowscodecs/converter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/windowscodecs/converter.c b/dlls/windowscodecs/converter.c
index 4ee980e..5561d42 100644
--- a/dlls/windowscodecs/converter.c
+++ b/dlls/windowscodecs/converter.c
@@ -257,7 +257,7 @@ static HRESULT copypixels_to_32bppBGRA(struct FormatConverter *This, const WICRe
*dstpixel++ = colors[srcval>>6];
if (x+1 < prc->Width) *dstpixel++ = colors[srcval>>4&0x3];
if (x+2 < prc->Width) *dstpixel++ = colors[srcval>>2&0x3];
- if (x+1 < prc->Width) *dstpixel++ = colors[srcval&0x3];
+ if (x+3 < prc->Width) *dstpixel++ = colors[srcval&0x3];
}
srcrow += srcstride;
dstrow += cbStride;
--
2.9.0

View File

@ -1,4 +1,4 @@
From c047c038ead7bf00fba1ad1ba19ec6f1e67ace6a Mon Sep 17 00:00:00 2001
From c599c18b043d130c67aa0ccab02de57d0ea9fd9d Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Tue, 20 Sep 2016 14:22:44 +0800
Subject: windowscodecs: Decode PNG images with a tRNS chunk in their native
@ -10,10 +10,10 @@ Subject: windowscodecs: Decode PNG images with a tRNS chunk in their native
1 file changed, 7 insertions(+), 29 deletions(-)
diff --git a/dlls/windowscodecs/pngformat.c b/dlls/windowscodecs/pngformat.c
index fa54a23..4473b98 100644
index 410b34f..c131fed 100644
--- a/dlls/windowscodecs/pngformat.c
+++ b/dlls/windowscodecs/pngformat.c
@@ -321,11 +321,6 @@ MAKE_FUNCPTR(png_get_tRNS);
@@ -319,11 +319,6 @@ MAKE_FUNCPTR(png_get_tRNS);
MAKE_FUNCPTR(png_set_bgr);
MAKE_FUNCPTR(png_set_crc_action);
MAKE_FUNCPTR(png_set_error_fn);
@ -23,9 +23,9 @@ index fa54a23..4473b98 100644
-MAKE_FUNCPTR(png_set_gray_1_2_4_to_8);
-#endif
MAKE_FUNCPTR(png_set_filler);
MAKE_FUNCPTR(png_set_filter);
MAKE_FUNCPTR(png_set_gray_to_rgb);
MAKE_FUNCPTR(png_set_interlace_handling);
@@ -386,11 +381,6 @@ static void *load_libpng(void)
@@ -388,11 +383,6 @@ static void *load_libpng(void)
LOAD_FUNCPTR(png_set_bgr);
LOAD_FUNCPTR(png_set_crc_action);
LOAD_FUNCPTR(png_set_error_fn);
@ -35,9 +35,9 @@ index fa54a23..4473b98 100644
- LOAD_FUNCPTR(png_set_gray_1_2_4_to_8);
-#endif
LOAD_FUNCPTR(png_set_filler);
LOAD_FUNCPTR(png_set_filter);
LOAD_FUNCPTR(png_set_gray_to_rgb);
LOAD_FUNCPTR(png_set_interlace_handling);
@@ -582,6 +572,8 @@ static HRESULT WINAPI PngDecoder_Initialize(IWICBitmapDecoder *iface, IStream *p
@@ -585,6 +575,8 @@ static HRESULT WINAPI PngDecoder_Initialize(IWICBitmapDecoder *iface, IStream *p
int num_trans;
png_uint_32 transparency;
png_color_16p trans_values;
@ -46,7 +46,7 @@ index fa54a23..4473b98 100644
jmp_buf jmpbuf;
BYTE chunk_type[4];
ULONG chunk_size;
@@ -648,25 +640,11 @@ static HRESULT WINAPI PngDecoder_Initialize(IWICBitmapDecoder *iface, IStream *p
@@ -651,25 +643,11 @@ static HRESULT WINAPI PngDecoder_Initialize(IWICBitmapDecoder *iface, IStream *p
/* check for color-keyed alpha */
transparency = ppng_get_tRNS(This->png_ptr, This->info_ptr, &trans, &num_trans, &trans_values);

View File

@ -1,30 +1,14 @@
From 30634fd0942862f1ac76fe43bb64246232c9cf4b Mon Sep 17 00:00:00 2001
From 0cf91e33967d5829bfe70d6d9848f08db04d84ca Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 23 Sep 2016 16:36:50 +0800
Subject: windowscodecs: Add support for palette image formats to TIFF encoder.
---
dlls/windowscodecs/main.c | 4 ++--
dlls/windowscodecs/regsvr.c | 6 ++++++
dlls/windowscodecs/tests/converter.c | 25 ++++++++++++++++---------
dlls/windowscodecs/tiffformat.c | 26 ++++++++++++++++++++++++++
4 files changed, 50 insertions(+), 11 deletions(-)
3 files changed, 48 insertions(+), 9 deletions(-)
diff --git a/dlls/windowscodecs/main.c b/dlls/windowscodecs/main.c
index 442976f..fdd26dd 100644
--- a/dlls/windowscodecs/main.c
+++ b/dlls/windowscodecs/main.c
@@ -144,8 +144,8 @@ HRESULT configure_write_source(IWICBitmapFrameEncode *iface,
if (!IsEqualGUID(&src_format, format))
{
/* FIXME: should use WICConvertBitmapSource to convert */
- ERR("format %s unsupported\n", debugstr_guid(&src_format));
- return E_FAIL;
+ FIXME("format %s unsupported\n", debugstr_guid(&src_format));
+ return E_NOTIMPL;
}
if (xres == 0.0 || yres == 0.0)
diff --git a/dlls/windowscodecs/regsvr.c b/dlls/windowscodecs/regsvr.c
index b011d71..b32b294 100644
--- a/dlls/windowscodecs/regsvr.c
@ -50,10 +34,10 @@ index b011d71..b32b294 100644
&GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat32bppPBGRA,
diff --git a/dlls/windowscodecs/tests/converter.c b/dlls/windowscodecs/tests/converter.c
index 13a8884..ca74e35 100644
index 660dc79..b99f0f8 100644
--- a/dlls/windowscodecs/tests/converter.c
+++ b/dlls/windowscodecs/tests/converter.c
@@ -706,13 +706,13 @@ static void check_tiff_format(IStream *stream, const WICPixelFormatGUID *format)
@@ -723,13 +723,13 @@ static void check_tiff_format(IStream *stream, const WICPixelFormatGUID *format)
}
else if (IsEqualGUID(format, &GUID_WICPixelFormat2bppIndexed))
{
@ -70,7 +54,7 @@ index 13a8884..ca74e35 100644
}
else if (IsEqualGUID(format, &GUID_WICPixelFormat4bppIndexed))
{
@@ -1043,8 +1043,9 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls
@@ -1060,8 +1060,9 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls
memcpy(&pixelformat, srcs[i]->format, sizeof(GUID));
hr = IWICBitmapFrameEncode_SetPixelFormat(frameencode, &pixelformat);
ok(SUCCEEDED(hr), "SetPixelFormat failed, hr=%x\n", hr);
@ -82,7 +66,7 @@ index 13a8884..ca74e35 100644
hr = IWICBitmapFrameEncode_SetSize(frameencode, srcs[i]->width, srcs[i]->height);
ok(SUCCEEDED(hr), "SetSize failed, hr=%x\n", hr);
@@ -1197,6 +1198,15 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls
@@ -1214,6 +1215,15 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls
ok(colors[4] == 0xff555555, "got %08x (%s)\n", colors[4], name);
ok(colors[5] == 0xff000000, "got %08x (%s)\n", colors[5], name);
}
@ -98,7 +82,7 @@ index 13a8884..ca74e35 100644
else if (IsEqualGUID(dsts[i]->format, &GUID_WICPixelFormat4bppIndexed))
{
ok(count == 16, "expected 16, got %u (%s)\n", count, name);
@@ -1386,17 +1396,14 @@ if (!strcmp(winetest_platform, "windows")) /* FIXME: enable once implemented in
@@ -1403,17 +1413,14 @@ if (!strcmp(winetest_platform, "windows")) /* FIXME: enable once implemented in
test_encoder(&testdata_BlackWhite, &CLSID_WICTiffEncoder,
&testdata_BlackWhite, &CLSID_WICTiffDecoder, "TIFF encoder BlackWhite");
@ -118,7 +102,7 @@ index 13a8884..ca74e35 100644
&testdata_24bppBGR, &CLSID_WICTiffDecoder, "TIFF encoder 24bppBGR");
diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c
index 1f757d8..350590d 100644
index b4b7e22..946eccd 100644
--- a/dlls/windowscodecs/tiffformat.c
+++ b/dlls/windowscodecs/tiffformat.c
@@ -1,5 +1,6 @@

View File

@ -1,11 +1,11 @@
From b57a1d4183ec5241664c63fb3855d8863c8d9a98 Mon Sep 17 00:00:00 2001
From 417a574db2c401f6b5150683e284418f88a03e67 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 23 Sep 2016 20:17:47 +0800
Subject: windowscodecs: Add support for palette image formats to BMP encoder.
---
dlls/windowscodecs/bmpencode.c | 44 ++++++++++++++++++++++++++++--------
dlls/windowscodecs/main.c | 8 ++++++-
dlls/windowscodecs/info.c | 8 ++++++-
dlls/windowscodecs/regsvr.c | 5 ++++
dlls/windowscodecs/tests/converter.c | 18 +++++++++++----
4 files changed, 60 insertions(+), 15 deletions(-)
@ -126,12 +126,12 @@ index af082ae..d4ec651 100644
/* write the image bits as a bottom-top array */
bits = This->bits + bih.bV5SizeImage;
for (i = 0; i < This->height; i++)
diff --git a/dlls/windowscodecs/main.c b/dlls/windowscodecs/main.c
index fdd26dd..7931b3d 100644
--- a/dlls/windowscodecs/main.c
+++ b/dlls/windowscodecs/main.c
@@ -117,6 +117,12 @@ HRESULT copy_pixels(UINT bpp, const BYTE *srcbuffer,
}
diff --git a/dlls/windowscodecs/info.c b/dlls/windowscodecs/info.c
index 84b80bc..bce2c47 100644
--- a/dlls/windowscodecs/info.c
+++ b/dlls/windowscodecs/info.c
@@ -2280,6 +2280,12 @@ HRESULT CreateComponentEnumerator(DWORD componentTypes, DWORD options, IEnumUnkn
return hr;
}
+static BOOL is_1bpp_format(const WICPixelFormatGUID *format)
@ -140,18 +140,18 @@ index fdd26dd..7931b3d 100644
+ IsEqualGUID(format, &GUID_WICPixelFormat1bppIndexed);
+}
+
HRESULT configure_write_source(IWICBitmapFrameEncode *iface,
IWICBitmapSource *source, const WICRect *prc,
const WICPixelFormatGUID *format,
@@ -141,7 +147,7 @@ HRESULT configure_write_source(IWICBitmapFrameEncode *iface,
format = &dst_format;
}
HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst)
{
HRESULT res;
@@ -2295,7 +2301,7 @@ HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitma
res = IWICBitmapSource_GetPixelFormat(pISrc, &srcFormat);
if (FAILED(res)) return res;
- if (!IsEqualGUID(&src_format, format))
+ if (!IsEqualGUID(&src_format, format) && !(is_1bpp_format(&src_format) && is_1bpp_format(format)))
- if (IsEqualGUID(&srcFormat, dstFormat))
+ if (IsEqualGUID(&srcFormat, dstFormat) || (is_1bpp_format(&srcFormat) && is_1bpp_format(dstFormat)))
{
/* FIXME: should use WICConvertBitmapSource to convert */
FIXME("format %s unsupported\n", debugstr_guid(&src_format));
IWICBitmapSource_AddRef(pISrc);
*ppIDst = pISrc;
diff --git a/dlls/windowscodecs/regsvr.c b/dlls/windowscodecs/regsvr.c
index b32b294..c72fbf1 100644
--- a/dlls/windowscodecs/regsvr.c
@ -169,10 +169,10 @@ index b32b294..c72fbf1 100644
};
diff --git a/dlls/windowscodecs/tests/converter.c b/dlls/windowscodecs/tests/converter.c
index fa0a8f4..feeca5b 100644
index dec2ae7..6ee5652 100644
--- a/dlls/windowscodecs/tests/converter.c
+++ b/dlls/windowscodecs/tests/converter.c
@@ -768,6 +768,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
@@ -785,6 +785,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
if (IsEqualGUID(format, &GUID_WICPixelFormat1bppIndexed))
{
@ -181,7 +181,7 @@ index fa0a8f4..feeca5b 100644
ok(bih.bV5Width == 32, "wrong width %u\n", bih.bV5Width);
ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height);
@@ -778,6 +780,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
@@ -795,6 +797,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
}
else if (IsEqualGUID(format, &GUID_WICPixelFormat2bppIndexed))
{
@ -190,7 +190,7 @@ index fa0a8f4..feeca5b 100644
ok(bih.bV5Width == 16, "wrong width %u\n", bih.bV5Width);
ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height);
@@ -788,6 +792,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
@@ -805,6 +809,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
}
else if (IsEqualGUID(format, &GUID_WICPixelFormat4bppIndexed))
{
@ -199,7 +199,7 @@ index fa0a8f4..feeca5b 100644
ok(bih.bV5Width == 8, "wrong width %u\n", bih.bV5Width);
ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height);
@@ -798,6 +804,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
@@ -815,6 +821,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
}
else if (IsEqualGUID(format, &GUID_WICPixelFormat8bppIndexed))
{
@ -208,7 +208,7 @@ index fa0a8f4..feeca5b 100644
ok(bih.bV5Width == 4, "wrong width %u\n", bih.bV5Width);
ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height);
@@ -808,6 +816,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
@@ -825,6 +833,8 @@ static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format)
}
else if (IsEqualGUID(format, &GUID_WICPixelFormat32bppBGR))
{
@ -217,7 +217,7 @@ index fa0a8f4..feeca5b 100644
ok(bih.bV5Width == 4, "wrong width %u\n", bih.bV5Width);
ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height);
@@ -1044,7 +1054,8 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls
@@ -1061,7 +1071,8 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls
hr = IWICBitmapFrameEncode_SetPixelFormat(frameencode, &pixelformat);
ok(SUCCEEDED(hr), "SetPixelFormat failed, hr=%x\n", hr);
ok(IsEqualGUID(&pixelformat, dsts[i]->format) ||
@ -227,7 +227,7 @@ index fa0a8f4..feeca5b 100644
"SetPixelFormat changed the format to %s (%s)\n", wine_dbgstr_guid(&pixelformat), name);
hr = IWICBitmapFrameEncode_SetSize(frameencode, srcs[i]->width, srcs[i]->height);
@@ -1378,19 +1389,16 @@ START_TEST(converter)
@@ -1395,19 +1406,16 @@ START_TEST(converter)
test_encoder(&testdata_24bppBGR, &CLSID_WICPngEncoder,
&testdata_24bppBGR, &CLSID_WICPngDecoder, "PNG encoder 24bppBGR");

View File

@ -1,4 +1,4 @@
From 751e4a44db847913d76615f6ec583c2f4c18c905 Mon Sep 17 00:00:00 2001
From 4fb9b87edfb24fe5676f5944fc6aaeff7fdbfdc3 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 11 Mar 2016 03:48:46 +0100
Subject: windowscodecs: Implement WICCreateBitmapFromSection(Ex). (v2)
@ -11,10 +11,10 @@ Subject: windowscodecs: Implement WICCreateBitmapFromSection(Ex). (v2)
4 files changed, 100 insertions(+), 11 deletions(-)
diff --git a/dlls/windowscodecs/bitmap.c b/dlls/windowscodecs/bitmap.c
index 85d0076..2fa19b4 100644
index 6adaab0..76298b2 100644
--- a/dlls/windowscodecs/bitmap.c
+++ b/dlls/windowscodecs/bitmap.c
@@ -46,6 +46,7 @@ typedef struct BitmapImpl {
@@ -45,6 +45,7 @@ typedef struct BitmapImpl {
int palette_set;
LONG lock; /* 0 if not locked, -1 if locked for writing, count if locked for reading */
BYTE *data;
@ -22,7 +22,7 @@ index 85d0076..2fa19b4 100644
UINT width, height;
UINT stride;
UINT bpp;
@@ -285,7 +286,10 @@ static ULONG WINAPI BitmapImpl_Release(IWICBitmap *iface)
@@ -284,7 +285,10 @@ static ULONG WINAPI BitmapImpl_Release(IWICBitmap *iface)
if (This->palette) IWICPalette_Release(This->palette);
This->cs.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->cs);
@ -34,7 +34,7 @@ index 85d0076..2fa19b4 100644
HeapFree(GetProcessHeap(), 0, This);
}
@@ -695,13 +699,12 @@ static const IMILUnknown2Vtbl IMILUnknown2Impl_Vtbl =
@@ -694,13 +698,12 @@ static const IMILUnknown2Vtbl IMILUnknown2Impl_Vtbl =
};
HRESULT BitmapImpl_Create(UINT uiWidth, UINT uiHeight,
@ -49,7 +49,7 @@ index 85d0076..2fa19b4 100644
UINT bpp;
hr = get_pixelformat_bpp(pixelFormat, &bpp);
@@ -714,14 +717,20 @@ HRESULT BitmapImpl_Create(UINT uiWidth, UINT uiHeight,
@@ -713,14 +716,20 @@ HRESULT BitmapImpl_Create(UINT uiWidth, UINT uiHeight,
if (stride < ((bpp*uiWidth)+7)/8) return E_INVALIDARG;
This = HeapAlloc(GetProcessHeap(), 0, sizeof(BitmapImpl));
@ -77,10 +77,10 @@ index 85d0076..2fa19b4 100644
This->IWICBitmap_iface.lpVtbl = &BitmapImpl_Vtbl;
This->IMILBitmapSource_iface.lpVtbl = &IMILBitmapImpl_Vtbl;
diff --git a/dlls/windowscodecs/imgfactory.c b/dlls/windowscodecs/imgfactory.c
index f2455fc..d6c4c64 100644
index 659aa7e..3cd6fd0 100644
--- a/dlls/windowscodecs/imgfactory.c
+++ b/dlls/windowscodecs/imgfactory.c
@@ -597,12 +597,36 @@ static HRESULT WINAPI ComponentFactory_CreateBitmapFromMemory(IWICComponentFacto
@@ -595,12 +595,36 @@ static HRESULT WINAPI ComponentFactory_CreateBitmapFromMemory(IWICComponentFacto
UINT width, UINT height, REFWICPixelFormatGUID format, UINT stride,
UINT size, BYTE *buffer, IWICBitmap **bitmap)
{
@ -118,7 +118,7 @@ index f2455fc..d6c4c64 100644
}
static BOOL get_16bpp_format(HBITMAP hbm, WICPixelFormatGUID *format)
@@ -1174,3 +1198,50 @@ HRESULT ComponentFactory_CreateInstance(REFIID iid, void** ppv)
@@ -1176,3 +1200,50 @@ HRESULT ComponentFactory_CreateInstance(REFIID iid, void** ppv)
return ret;
}
@ -184,12 +184,12 @@ index 81a827e..7ee76d9 100644
@ stdcall WICCreateImagingFactory_Proxy(long ptr)
@ stub WICGetMetadataContentSize
diff --git a/include/wincodec.idl b/include/wincodec.idl
index 639d925..00a8da8 100644
index 406fe6b..c0afe52 100644
--- a/include/wincodec.idl
+++ b/include/wincodec.idl
@@ -168,6 +168,12 @@ typedef enum WICTiffCompressionOption {
WICTIFFCOMPRESSIONOPTION_FORCE_DWORD = CODEC_FORCE_DWORD
} WICTiffCompressionOption;
@@ -179,6 +179,12 @@ typedef enum WICPngFilterOption {
WICPNFFILTEROPTION_FORCE_DWORD = CODEC_FORCE_DWORD
} WICPngFilterOption;
+typedef enum WICSectionAccessLevel {
+ WICSectionAccessLevelRead = 0x00000001,
@ -200,7 +200,7 @@ index 639d925..00a8da8 100644
typedef GUID WICPixelFormatGUID;
typedef REFGUID REFWICPixelFormatGUID;
@@ -982,6 +988,8 @@ interface IWICEnumMetadataItem : IUnknown
@@ -994,6 +1000,8 @@ interface IWICEnumMetadataItem : IUnknown
}
cpp_quote("HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst);")
@ -210,5 +210,5 @@ index 639d925..00a8da8 100644
cpp_quote("DEFINE_GUID(CLSID_WICBmpDecoder, 0x6b462062,0x7cbf,0x400d,0x9f,0xdb,0x81,0x3d,0xd1,0x0f,0x27,0x78);")
cpp_quote("DEFINE_GUID(CLSID_WICPngDecoder, 0x389ea17b,0x5078,0x4cde,0xb6,0xef,0x25,0xc1,0x51,0x75,0xc7,0x51);")
--
2.7.1
2.9.0

View File

@ -1,21 +1,22 @@
From 46192b44294e309aa90131cd00f44127cbd9a49f Mon Sep 17 00:00:00 2001
From 3dfc0d56bc199c915455a83cc21085a6dd24a4bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 21 Aug 2016 02:36:47 +0200
Subject: winemp3.acm: Check input format in MPEG3_StreamOpen.
---
dlls/msacm32/tests/msacm.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++
dlls/msacm32/tests/msacm.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++
dlls/winemp3.acm/mpegl3.c | 15 +++++++++-
2 files changed, 85 insertions(+), 1 deletion(-)
2 files changed, 86 insertions(+), 1 deletion(-)
diff --git a/dlls/msacm32/tests/msacm.c b/dlls/msacm32/tests/msacm.c
index 812a1bb..efe34b1 100644
index 0816cb0..783d155 100644
--- a/dlls/msacm32/tests/msacm.c
+++ b/dlls/msacm32/tests/msacm.c
@@ -826,9 +826,80 @@ todo_wine
@@ -830,6 +830,77 @@ todo_wine
ok(rc == MMSYSERR_INVALPARAM, "failed with error 0x%x\n", rc);
}
+
+void test_mp3(void)
+{
+ MPEGLAYER3WAVEFORMAT src;
@ -86,13 +87,17 @@ index 812a1bb..efe34b1 100644
+ ok(mr == MMSYSERR_NOERROR, "failed with error 0x%x\n", mr);
+}
+
START_TEST(msacm)
static struct
{
struct
@@ -997,6 +1068,7 @@ START_TEST(msacm)
driver_tests();
test_prepareheader();
test_acmFormatSuggest();
+ test_mp3();
}
/* Test acmDriverAdd in the end as it may conflict
* with other tests due to codec lookup order */
test_acmDriverAdd();
diff --git a/dlls/winemp3.acm/mpegl3.c b/dlls/winemp3.acm/mpegl3.c
index 37993b4..b6595e6 100644
--- a/dlls/winemp3.acm/mpegl3.c

View File

@ -1,4 +1,4 @@
From 05c7ce3559767347aa338c002002557ab30d9d5e Mon Sep 17 00:00:00 2001
From 51ce7b90e66f38988d636ef7635e63fb231aeef6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 15 May 2015 21:18:37 +0200
Subject: wininet/tests: Test auth credential reusage with host override.
@ -8,12 +8,12 @@ Subject: wininet/tests: Test auth credential reusage with host override.
1 file changed, 92 insertions(+)
diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c
index 90774b8..8fd69a4 100644
index 3b324c8..88aa1b1 100644
--- a/dlls/wininet/tests/http.c
+++ b/dlls/wininet/tests/http.c
@@ -2433,6 +2433,20 @@ static DWORD CALLBACK server_thread(LPVOID param)
@@ -2440,6 +2440,20 @@ static DWORD CALLBACK server_thread(LPVOID param)
{
send(c, okmsg, sizeof(okmsg)-1, 0);
send(c, buffer, strlen(buffer), 0);
}
+ if (strstr(buffer, "HEAD /test_auth_host1"))
+ {
@ -32,7 +32,7 @@ index 90774b8..8fd69a4 100644
shutdown(c, 2);
closesocket(c);
c = -1;
@@ -3139,6 +3153,84 @@ static void test_header_override(int port)
@@ -3146,6 +3160,84 @@ static void test_header_override(int port)
InternetCloseHandle(req);
InternetCloseHandle(con);
InternetCloseHandle(ses);
@ -118,5 +118,5 @@ index 90774b8..8fd69a4 100644
static void test_connection_closing(int port)
--
2.8.0
2.9.0

View File

@ -1,4 +1,4 @@
From 93e58d6178dcfdea0c120c1330e28df88c47439b Mon Sep 17 00:00:00 2001
From 2429b08d8ff3f6fbb53fbd7acde61e2f28f60e5c Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 16 Jan 2014 19:08:30 -0700
Subject: ws2_32: Add support for TF_REUSE_SOCKET to TransmitFile.
@ -12,10 +12,10 @@ Subject: ws2_32: Add support for TF_REUSE_SOCKET to TransmitFile.
5 files changed, 75 insertions(+), 11 deletions(-)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index cb16583..c7a7c54 100644
index e121049..8e5e5aa 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -2933,6 +2933,17 @@ static NTSTATUS WS2_transmitfile_base( int fd, struct ws2_transmitfile_async *ws
@@ -3035,6 +3035,17 @@ static NTSTATUS WS2_transmitfile_base( int fd, struct ws2_transmitfile_async *ws
if (status != STATUS_SUCCESS)
return status;
@ -33,7 +33,7 @@ index cb16583..c7a7c54 100644
if (wsa->flags & TF_DISCONNECT)
{
/* we can't use WS_closesocket because it modifies the last error */
@@ -2976,7 +2987,7 @@ static BOOL WINAPI WS2_TransmitFile( SOCKET s, HANDLE h, DWORD file_bytes, DWORD
@@ -3078,7 +3089,7 @@ static BOOL WINAPI WS2_TransmitFile( SOCKET s, HANDLE h, DWORD file_bytes, DWORD
LPOVERLAPPED overlapped, LPTRANSMIT_FILE_BUFFERS buffers,
DWORD flags )
{
@ -43,10 +43,10 @@ index cb16583..c7a7c54 100644
unsigned int uaddrlen = sizeof(uaddr);
struct ws2_transmitfile_async *wsa;
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index e10d01c..82f8ef0 100644
index f7d9c94..036fda1 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -8053,7 +8053,6 @@ static void test_TransmitFile(void)
@@ -8368,7 +8368,6 @@ static void test_TransmitFile(void)
err, WSAENOTSOCK);
/* Test TransmitFile with a UDP datagram socket */
@ -67,10 +67,10 @@ index cf9adf5..2feb224 100644
#define FD_WINE_NONBLOCKING 0x20000000
#define FD_WINE_CONNECTED 0x40000000
diff --git a/server/protocol.def b/server/protocol.def
index a5a45eb..592fbe2 100644
index 60865a6..2bbad80 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -1260,6 +1260,12 @@ enum server_fd_type
@@ -1303,6 +1303,12 @@ enum server_fd_type
@END
@ -84,7 +84,7 @@ index a5a45eb..592fbe2 100644
@REQ(set_socket_event)
obj_handle_t handle; /* handle to the socket */
diff --git a/server/sock.c b/server/sock.c
index a11964f..26f1c72 100644
index 153f901..13a41c4 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -86,6 +86,7 @@
@ -95,15 +95,15 @@ index a11964f..26f1c72 100644
#define FD_WINE_LISTENING 0x10000000
#define FD_WINE_NONBLOCKING 0x20000000
#define FD_WINE_CONNECTED 0x40000000
@@ -133,6 +134,7 @@ static obj_handle_t sock_ioctl( struct fd *fd, ioctl_code_t code, const async_da
@@ -132,6 +133,7 @@ static enum server_fd_type sock_get_fd_type( struct fd *fd );
static obj_handle_t sock_ioctl( struct fd *fd, ioctl_code_t code, const async_data_t *async, int blocking );
static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, int count );
static void sock_reselect_async( struct fd *fd, struct async_queue *queue );
static int sock_cancel_async( struct fd *fd, struct process *process, struct thread *thread, client_ptr_t iosb );
+static int sock_close_handle( struct object *obj, struct process *process, obj_handle_t handle );
static int sock_get_ntstatus( int err );
static int sock_get_error( int err );
@@ -157,7 +159,7 @@ static const struct object_ops sock_ops =
@@ -156,7 +158,7 @@ static const struct object_ops sock_ops =
NULL, /* unlink_name */
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
@ -112,7 +112,7 @@ index a11964f..26f1c72 100644
sock_destroy /* destroy */
};
@@ -629,6 +631,47 @@ static struct fd *sock_get_fd( struct object *obj )
@@ -616,6 +618,47 @@ static struct fd *sock_get_fd( struct object *obj )
return (struct fd *)grab_object( sock->fd );
}
@ -160,7 +160,7 @@ index a11964f..26f1c72 100644
static void sock_destroy( struct object *obj )
{
struct sock *sock = (struct sock *)obj;
@@ -680,15 +723,8 @@ static struct object *create_socket( int family, int type, int protocol, unsigne
@@ -668,15 +711,8 @@ static struct object *create_socket( int family, int type, int protocol, unsigne
struct sock *sock;
int sockfd;
@ -177,7 +177,7 @@ index a11964f..26f1c72 100644
if (!(sock = alloc_object( &sock_ops )))
{
close( sockfd );
@@ -1267,6 +1303,17 @@ DECL_HANDLER(accept_into_socket)
@@ -1245,6 +1281,17 @@ DECL_HANDLER(accept_into_socket)
release_object( sock );
}
@ -196,5 +196,5 @@ index a11964f..26f1c72 100644
DECL_HANDLER(set_socket_event)
{
--
2.7.0
2.9.0