From 6f120f6a5624770362768ce1338633e9e40e1cda Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Mon, 12 Dec 2016 04:28:52 +0100 Subject: [PATCH] Rebase against 4c7f3f8af856888f5ab020b2a32d0b01db0c82f7. --- ...d-implicit-cast-of-interface-pointer.patch | 34 ++- ...ts-Add-test-for-creating-1d-textures.patch | 10 +- ...ix-a-bunch-of-access-denied-errors-b.patch | 8 +- ...dd-tests-for-PeekNamedPipe-with-part.patch | 30 +-- ...rrect-error-codes-for-NtWriteFile-wh.patch | 28 +-- ...low-to-queue-async-operation-for-bro.patch | 26 +- ...rnel32-Add-a-bunch-of-kernel32-stubs.patch | 202 +++------------ .../definition | 1 - ...SetInformation-from-advapi32-to-ntdl.patch | 82 ------ patches/patchinstall.sh | 94 +------ ...-a-new-alloc_handle-object-callback..patch | 80 +++--- ...c-file-stub-entry-for-SetupDiInstall.patch | 10 +- ...t-KF_FLAG_DEFAULT_PATH-flag-for-SHGe.patch | 52 ---- patches/shell32-Default_Path/definition | 1 - ...IDropTargetHelper-and-preparation-fo.patch | 237 ------------------ ...Add-IDragSourceHelper-stub-interface.patch | 107 -------- patches/shell32-IDragSourceHelper/definition | 1 - ...plement-NewMenu-with-new-folder-item.patch | 16 +- ...O_HASSUBFOLDER-correctly-for-normal-.patch | 10 +- ...additional-tests-for-UrlCombine-and-.patch | 22 +- ...x-a-typo-in-2bppIndexed-to-32bppBGRA.patch | 26 -- ...code-PNG-images-with-a-tRNS-chunk-in.patch | 16 +- ...d-support-for-palette-image-formats-.patch | 32 +-- ...d-support-for-palette-image-formats-.patch | 52 ++-- ...plement-WICCreateBitmapFromSection-E.patch | 30 +-- ...eck-input-format-in-MPEG3_StreamOpen.patch | 19 +- ...st-auth-credential-reusage-with-host.patch | 12 +- ...rt-for-TF_REUSE_SOCKET-to-TransmitFi.patch | 32 +-- 28 files changed, 280 insertions(+), 990 deletions(-) delete mode 100644 patches/ntdll-EtwRegisterTraceGuids/0002-ntdll-Move-EventSetInformation-from-advapi32-to-ntdl.patch delete mode 100644 patches/shell32-Default_Path/0001-shell32-Implement-KF_FLAG_DEFAULT_PATH-flag-for-SHGe.patch delete mode 100644 patches/shell32-Default_Path/definition delete mode 100644 patches/shell32-IDragSourceHelper/0001-shell32-Cleanup-IDropTargetHelper-and-preparation-fo.patch delete mode 100644 patches/shell32-IDragSourceHelper/0002-shell32-Add-IDragSourceHelper-stub-interface.patch delete mode 100644 patches/shell32-IDragSourceHelper/definition delete mode 100644 patches/windowscodecs-32bppBGRA/0001-windowscodecs-Fix-a-typo-in-2bppIndexed-to-32bppBGRA.patch diff --git a/patches/Compiler_Warnings/0026-dwrite-Avoid-implicit-cast-of-interface-pointer.patch b/patches/Compiler_Warnings/0026-dwrite-Avoid-implicit-cast-of-interface-pointer.patch index e8145733..3d6af32e 100644 --- a/patches/Compiler_Warnings/0026-dwrite-Avoid-implicit-cast-of-interface-pointer.patch +++ b/patches/Compiler_Warnings/0026-dwrite-Avoid-implicit-cast-of-interface-pointer.patch @@ -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 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 diff --git a/patches/d3d11-ID3D11Texture1D/0015-d3d11-tests-Add-test-for-creating-1d-textures.patch b/patches/d3d11-ID3D11Texture1D/0015-d3d11-tests-Add-test-for-creating-1d-textures.patch index 345061e8..e54b92a7 100644 --- a/patches/d3d11-ID3D11Texture1D/0015-d3d11-tests-Add-test-for-creating-1d-textures.patch +++ b/patches/d3d11-ID3D11Texture1D/0015-d3d11-tests-Add-test-for-creating-1d-textures.patch @@ -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?= 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(); diff --git a/patches/kernel32-MoveFile/0002-kernel32-tests-Fix-a-bunch-of-access-denied-errors-b.patch b/patches/kernel32-MoveFile/0002-kernel32-tests-Fix-a-bunch-of-access-denied-errors-b.patch index 6132dacc..238f316d 100644 --- a/patches/kernel32-MoveFile/0002-kernel32-tests-Fix-a-bunch-of-access-denied-errors-b.patch +++ b/patches/kernel32-MoveFile/0002-kernel32-tests-Fix-a-bunch-of-access-denied-errors-b.patch @@ -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 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) { diff --git a/patches/kernel32-Named_Pipe/0002-kernel32-tests-Add-tests-for-PeekNamedPipe-with-part.patch b/patches/kernel32-Named_Pipe/0002-kernel32-tests-Add-tests-for-PeekNamedPipe-with-part.patch index 6d7a4143..fde60501 100644 --- a/patches/kernel32-Named_Pipe/0002-kernel32-tests-Add-tests-for-PeekNamedPipe-with-part.patch +++ b/patches/kernel32-Named_Pipe/0002-kernel32-tests-Add-tests-for-PeekNamedPipe-with-part.patch @@ -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 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 diff --git a/patches/kernel32-Named_Pipe/0019-server-Return-correct-error-codes-for-NtWriteFile-wh.patch b/patches/kernel32-Named_Pipe/0019-server-Return-correct-error-codes-for-NtWriteFile-wh.patch index 6ef1ab06..6a8348f4 100644 --- a/patches/kernel32-Named_Pipe/0019-server-Return-correct-error-codes-for-NtWriteFile-wh.patch +++ b/patches/kernel32-Named_Pipe/0019-server-Return-correct-error-codes-for-NtWriteFile-wh.patch @@ -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 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 diff --git a/patches/kernel32-Named_Pipe/0021-server-Do-not-allow-to-queue-async-operation-for-bro.patch b/patches/kernel32-Named_Pipe/0021-server-Do-not-allow-to-queue-async-operation-for-bro.patch index 174129c9..7c5db355 100644 --- a/patches/kernel32-Named_Pipe/0021-server-Do-not-allow-to-queue-async-operation-for-bro.patch +++ b/patches/kernel32-Named_Pipe/0021-server-Do-not-allow-to-queue-async-operation-for-bro.patch @@ -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 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 diff --git a/patches/kernel32-UmsStubs/0001-kernel32-Add-a-bunch-of-kernel32-stubs.patch b/patches/kernel32-UmsStubs/0001-kernel32-Add-a-bunch-of-kernel32-stubs.patch index 70878621..1493157d 100644 --- a/patches/kernel32-UmsStubs/0001-kernel32-Add-a-bunch-of-kernel32-stubs.patch +++ b/patches/kernel32-UmsStubs/0001-kernel32-Add-a-bunch-of-kernel32-stubs.patch @@ -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 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); diff --git a/patches/ntdll-ApiSetQueryApiSetPresence/definition b/patches/ntdll-ApiSetQueryApiSetPresence/definition index 14fc62fd..c28de707 100644 --- a/patches/ntdll-ApiSetQueryApiSetPresence/definition +++ b/patches/ntdll-ApiSetQueryApiSetPresence/definition @@ -1,2 +1 @@ Fixes: Add stub for ntdll.ApiSetQueryApiSetPresence -Depends: ntdll-EtwRegisterTraceGuids diff --git a/patches/ntdll-EtwRegisterTraceGuids/0002-ntdll-Move-EventSetInformation-from-advapi32-to-ntdl.patch b/patches/ntdll-EtwRegisterTraceGuids/0002-ntdll-Move-EventSetInformation-from-advapi32-to-ntdl.patch deleted file mode 100644 index d4cdd85c..00000000 --- a/patches/ntdll-EtwRegisterTraceGuids/0002-ntdll-Move-EventSetInformation-from-advapi32-to-ntdl.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 7d12e333f83b5cec23a07dd9bf2dad1f8fc5dec0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -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 - diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 0690561a..4ba09170 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -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 diff --git a/patches/server-Desktop_Refcount/0001-server-Introduce-a-new-alloc_handle-object-callback..patch b/patches/server-Desktop_Refcount/0001-server-Introduce-a-new-alloc_handle-object-callback..patch index 5f71a756..0a29ca26 100644 --- a/patches/server-Desktop_Refcount/0001-server-Introduce-a-new-alloc_handle-object-callback..patch +++ b/patches/server-Desktop_Refcount/0001-server-Introduce-a-new-alloc_handle-object-callback..patch @@ -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 Date: Fri, 4 Dec 2015 10:36:47 +0100 Subject: server: Introduce a new alloc_handle object callback. (v2) Signed-off-by: Sebastian Lackner --- - 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 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 = diff --git a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-spec-file-stub-entry-for-SetupDiInstall.patch b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-spec-file-stub-entry-for-SetupDiInstall.patch index 71b01e76..774b8c49 100644 --- a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-spec-file-stub-entry-for-SetupDiInstall.patch +++ b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-spec-file-stub-entry-for-SetupDiInstall.patch @@ -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?= 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 diff --git a/patches/shell32-Default_Path/0001-shell32-Implement-KF_FLAG_DEFAULT_PATH-flag-for-SHGe.patch b/patches/shell32-Default_Path/0001-shell32-Implement-KF_FLAG_DEFAULT_PATH-flag-for-SHGe.patch deleted file mode 100644 index b8c177bd..00000000 --- a/patches/shell32-Default_Path/0001-shell32-Implement-KF_FLAG_DEFAULT_PATH-flag-for-SHGe.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 12199f1bcc3fabab52034df4362a5b3c4e93337d Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -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 - diff --git a/patches/shell32-Default_Path/definition b/patches/shell32-Default_Path/definition deleted file mode 100644 index e41191f5..00000000 --- a/patches/shell32-Default_Path/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [30385] Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath diff --git a/patches/shell32-IDragSourceHelper/0001-shell32-Cleanup-IDropTargetHelper-and-preparation-fo.patch b/patches/shell32-IDragSourceHelper/0001-shell32-Cleanup-IDropTargetHelper-and-preparation-fo.patch deleted file mode 100644 index f343f258..00000000 --- a/patches/shell32-IDragSourceHelper/0001-shell32-Cleanup-IDropTargetHelper-and-preparation-fo.patch +++ /dev/null @@ -1,237 +0,0 @@ -From ece7ecf8bc9c4e6d9c44ffbf1f8a4a0b8c785a9b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -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 - diff --git a/patches/shell32-IDragSourceHelper/0002-shell32-Add-IDragSourceHelper-stub-interface.patch b/patches/shell32-IDragSourceHelper/0002-shell32-Add-IDragSourceHelper-stub-interface.patch deleted file mode 100644 index 47c68c7e..00000000 --- a/patches/shell32-IDragSourceHelper/0002-shell32-Add-IDragSourceHelper-stub-interface.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 02c2de6fb0417b118d575b38afadb9d893b364e9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -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 - diff --git a/patches/shell32-IDragSourceHelper/definition b/patches/shell32-IDragSourceHelper/definition deleted file mode 100644 index 4fab6d95..00000000 --- a/patches/shell32-IDragSourceHelper/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [24699] Add IDragSourceHelper stub interface diff --git a/patches/shell32-NewMenu_Interface/0001-shell32-Implement-NewMenu-with-new-folder-item.patch b/patches/shell32-NewMenu_Interface/0001-shell32-Implement-NewMenu-with-new-folder-item.patch index a3481918..d9f1da19 100644 --- a/patches/shell32-NewMenu_Interface/0001-shell32-Implement-NewMenu-with-new-folder-item.patch +++ b/patches/shell32-NewMenu_Interface/0001-shell32-Implement-NewMenu-with-new-folder-item.patch @@ -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?= 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 diff --git a/patches/shell32-SFGAO_HASSUBFOLDER/0002-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-normal-.patch b/patches/shell32-SFGAO_HASSUBFOLDER/0002-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-normal-.patch index 6e3d8a30..ba583f48 100644 --- a/patches/shell32-SFGAO_HASSUBFOLDER/0002-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-normal-.patch +++ b/patches/shell32-SFGAO_HASSUBFOLDER/0002-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-normal-.patch @@ -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?= 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 diff --git a/patches/shlwapi-UrlCombine/0001-shlwapi-tests-Add-additional-tests-for-UrlCombine-and-.patch b/patches/shlwapi-UrlCombine/0001-shlwapi-tests-Add-additional-tests-for-UrlCombine-and-.patch index 96554337..8a7b0567 100644 --- a/patches/shlwapi-UrlCombine/0001-shlwapi-tests-Add-additional-tests-for-UrlCombine-and-.patch +++ b/patches/shlwapi-UrlCombine/0001-shlwapi-tests-Add-additional-tests-for-UrlCombine-and-.patch @@ -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 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 -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 - diff --git a/patches/windowscodecs-Palette_Images/0004-windowscodecs-Decode-PNG-images-with-a-tRNS-chunk-in.patch b/patches/windowscodecs-Palette_Images/0004-windowscodecs-Decode-PNG-images-with-a-tRNS-chunk-in.patch index 3e740702..6656082d 100644 --- a/patches/windowscodecs-Palette_Images/0004-windowscodecs-Decode-PNG-images-with-a-tRNS-chunk-in.patch +++ b/patches/windowscodecs-Palette_Images/0004-windowscodecs-Decode-PNG-images-with-a-tRNS-chunk-in.patch @@ -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 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); diff --git a/patches/windowscodecs-Palette_Images/0014-windowscodecs-Add-support-for-palette-image-formats-.patch b/patches/windowscodecs-Palette_Images/0014-windowscodecs-Add-support-for-palette-image-formats-.patch index 77817c21..a60fa8a3 100644 --- a/patches/windowscodecs-Palette_Images/0014-windowscodecs-Add-support-for-palette-image-formats-.patch +++ b/patches/windowscodecs-Palette_Images/0014-windowscodecs-Add-support-for-palette-image-formats-.patch @@ -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 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 @@ diff --git a/patches/windowscodecs-Palette_Images/0017-windowscodecs-Add-support-for-palette-image-formats-.patch b/patches/windowscodecs-Palette_Images/0017-windowscodecs-Add-support-for-palette-image-formats-.patch index 85ff2a00..3f2c320b 100644 --- a/patches/windowscodecs-Palette_Images/0017-windowscodecs-Add-support-for-palette-image-formats-.patch +++ b/patches/windowscodecs-Palette_Images/0017-windowscodecs-Add-support-for-palette-image-formats-.patch @@ -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 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"); diff --git a/patches/windowscodecs-WICCreateBitmapFromSection/0001-windowscodecs-Implement-WICCreateBitmapFromSection-E.patch b/patches/windowscodecs-WICCreateBitmapFromSection/0001-windowscodecs-Implement-WICCreateBitmapFromSection-E.patch index eb75db9a..e1fb5215 100644 --- a/patches/windowscodecs-WICCreateBitmapFromSection/0001-windowscodecs-Implement-WICCreateBitmapFromSection-E.patch +++ b/patches/windowscodecs-WICCreateBitmapFromSection/0001-windowscodecs-Implement-WICCreateBitmapFromSection-E.patch @@ -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 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 diff --git a/patches/winemp3.acm-MPEG3_StreamOpen/0001-winemp3.acm-Check-input-format-in-MPEG3_StreamOpen.patch b/patches/winemp3.acm-MPEG3_StreamOpen/0001-winemp3.acm-Check-input-format-in-MPEG3_StreamOpen.patch index 869bed3c..0dc553a0 100644 --- a/patches/winemp3.acm-MPEG3_StreamOpen/0001-winemp3.acm-Check-input-format-in-MPEG3_StreamOpen.patch +++ b/patches/winemp3.acm-MPEG3_StreamOpen/0001-winemp3.acm-Check-input-format-in-MPEG3_StreamOpen.patch @@ -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?= 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 diff --git a/patches/wininet-Cleanup/0002-wininet-tests-Test-auth-credential-reusage-with-host.patch b/patches/wininet-Cleanup/0002-wininet-tests-Test-auth-credential-reusage-with-host.patch index d52558f1..86474c0f 100644 --- a/patches/wininet-Cleanup/0002-wininet-tests-Test-auth-credential-reusage-with-host.patch +++ b/patches/wininet-Cleanup/0002-wininet-tests-Test-auth-credential-reusage-with-host.patch @@ -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?= 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 diff --git a/patches/ws2_32-TransmitFile/0002-ws2_32-Add-support-for-TF_REUSE_SOCKET-to-TransmitFi.patch b/patches/ws2_32-TransmitFile/0002-ws2_32-Add-support-for-TF_REUSE_SOCKET-to-TransmitFi.patch index 1f6c7b91..5846a1bd 100644 --- a/patches/ws2_32-TransmitFile/0002-ws2_32-Add-support-for-TF_REUSE_SOCKET-to-TransmitFi.patch +++ b/patches/ws2_32-TransmitFile/0002-ws2_32-Add-support-for-TF_REUSE_SOCKET-to-TransmitFi.patch @@ -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" 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