diff --git a/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch b/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch index 0ee5faf9..1f5c8acd 100644 --- a/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch +++ b/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch @@ -1,4 +1,4 @@ -From 15c10643fa18d1159af85df3132ae3c2228d4488 Mon Sep 17 00:00:00 2001 +From ca8481ab78a89e7433f25c340b7e3965d9f3e092 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 30 May 2015 02:23:15 +0200 Subject: [PATCH] ntdll: Add support for hiding wine version information from @@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Add support for hiding wine version information from 2 files changed, 103 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index a292ba30774..60c72ffbb89 100644 +index d263a6a786d..04dd4c106e3 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -88,6 +88,9 @@ const WCHAR system_dir[] = L"C:\\windows\\system32\\"; @@ -32,7 +32,7 @@ index a292ba30774..60c72ffbb89 100644 struct ldr_notification { struct list entry; -@@ -2012,6 +2017,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic ) +@@ -2049,6 +2054,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic ) } @@ -129,16 +129,16 @@ index a292ba30774..60c72ffbb89 100644 /****************************************************************** * LdrGetProcedureAddress (NTDLL.@) */ -@@ -2032,7 +2127,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name, +@@ -2069,7 +2164,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name, { - void *proc = name ? find_named_export( module, exports, exp_size, name->Buffer, -1, NULL, NULL ) - : find_ordinal_export( module, exports, exp_size, ord - exports->Base, NULL, NULL ); + void *proc = name ? find_named_export( module, exports, exp_size, name->Buffer, -1, NULL, wm, TRUE ) + : find_ordinal_export( module, exports, exp_size, ord - exports->Base, NULL, wm, TRUE ); - if (proc) + if (proc && !is_hidden_export( proc )) { *address = proc; ret = STATUS_SUCCESS; -@@ -2294,6 +2389,8 @@ static void build_ntdll_module(void) +@@ -2340,6 +2435,8 @@ static void build_ntdll_module(void) wm->ldr.Flags &= ~LDR_DONT_RESOLVE_REFS; node_ntdll = wm->ldr.DdagNode; if (TRACE_ON(relay)) RELAY_SetupDLL( module ); diff --git a/patches/oleaut32-Load_Save_EMF/0001-oleaut32-tests-Add-some-tests-for-loading-and-saving.patch b/patches/oleaut32-Load_Save_EMF/0001-oleaut32-tests-Add-some-tests-for-loading-and-saving.patch index a0367417..5b85ea05 100644 --- a/patches/oleaut32-Load_Save_EMF/0001-oleaut32-tests-Add-some-tests-for-loading-and-saving.patch +++ b/patches/oleaut32-Load_Save_EMF/0001-oleaut32-tests-Add-some-tests-for-loading-and-saving.patch @@ -1,121 +1,100 @@ -From 5dbd2569a120af6eea544a4738b071ee8e63e8c6 Mon Sep 17 00:00:00 2001 +From dd305e7b072569a178f3736e8185c28986cb1a4a Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 26 Apr 2016 12:11:17 +0800 Subject: [PATCH] oleaut32/tests: Add some tests for loading and saving EMF using IPicture interface. --- - dlls/oleaut32/tests/olepicture.c | 90 ++++++++++++++++++++++++++++++++ - 1 file changed, 90 insertions(+) + dlls/oleaut32/tests/olepicture.c | 45 +++++++++++++++++++------------- + 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/dlls/oleaut32/tests/olepicture.c b/dlls/oleaut32/tests/olepicture.c -index f0468a6f83c..f06befd2976 100644 +index 58d5577631c..025f7c84873 100644 --- a/dlls/oleaut32/tests/olepicture.c +++ b/dlls/oleaut32/tests/olepicture.c -@@ -1613,6 +1613,95 @@ static void test_load_save_dib(void) - } - } - -+static void test_load_save_emf(void) -+{ -+ HDC hdc; -+ IPicture *pic; -+ PICTDESC desc; -+ short type; -+ OLE_HANDLE handle; -+ HGLOBAL hmem; -+ DWORD *mem; -+ ENHMETAHEADER *emh; -+ IPersistStream *src_stream; -+ IStream *dst_stream; -+ LARGE_INTEGER offset; -+ HRESULT hr; -+ LONG size; -+ -+ hdc = CreateEnhMetaFileA(0, NULL, NULL, NULL); -+ ok(hdc != 0, "CreateEnhMetaFileA failed\n"); -+ -+ desc.cbSizeofstruct = sizeof(desc); -+ desc.picType = PICTYPE_ENHMETAFILE; -+ desc.emf.hemf = CloseEnhMetaFile(hdc); -+ ok(desc.emf.hemf != 0, "CloseEnhMetaFile failed\n"); -+ hr = OleCreatePictureIndirect(&desc, &IID_IPicture, FALSE, (void**)&pic); +@@ -1634,55 +1634,64 @@ static void test_load_save_emf(void) + desc.emf.hemf = CloseEnhMetaFile(hdc); + ok(desc.emf.hemf != 0, "CloseEnhMetaFile failed\n"); + hr = OleCreatePictureIndirect(&desc, &IID_IPicture, FALSE, (void**)&pic); +- ok(hr == S_OK, "OleCreatePictureIndirect error %#lx\n", hr); + ok(hr == S_OK, "OleCreatePictureIndirect error %#x\n", hr); -+ -+ type = -1; -+ hr = IPicture_get_Type(pic, &type); + + type = -1; + hr = IPicture_get_Type(pic, &type); +- ok(hr == S_OK, "get_Type error %#lx\n", hr); + ok(hr == S_OK,"get_Type error %#8x\n", hr); -+ ok(type == PICTYPE_ENHMETAFILE,"expected PICTYPE_ENHMETAFILE, got %d\n", type); -+ -+ hr = IPicture_get_Handle(pic, &handle); + ok(type == PICTYPE_ENHMETAFILE,"expected PICTYPE_ENHMETAFILE, got %d\n", type); + + hr = IPicture_get_Handle(pic, &handle); +- ok(hr == S_OK,"get_Handle error %#lx\n", hr); + ok(hr == S_OK,"get_Handle error %#8x\n", hr); -+ ok(IntToPtr(handle) == desc.emf.hemf, "get_Handle returned wrong handle %#x\n", handle); -+ -+ hmem = GlobalAlloc(GMEM_MOVEABLE, 0); -+ hr = CreateStreamOnHGlobal(hmem, FALSE, &dst_stream); + ok(IntToPtr(handle) == desc.emf.hemf, "get_Handle returned wrong handle %#x\n", handle); + + hmem = GlobalAlloc(GMEM_MOVEABLE, 0); + hr = CreateStreamOnHGlobal(hmem, FALSE, &dst_stream); +- ok(hr == S_OK, "createstreamonhglobal error %#lx\n", hr); + ok(hr == S_OK, "createstreamonhglobal error %#x\n", hr); -+ -+ size = -1; -+ hr = IPicture_SaveAsFile(pic, dst_stream, TRUE, &size); + + size = -1; + hr = IPicture_SaveAsFile(pic, dst_stream, TRUE, &size); +- ok(hr == S_OK, "IPicture_SaveasFile error %#lx\n", hr); +- ok(size == 128, "expected 128, got %ld\n", size); + ok(hr == S_OK, "IPicture_SaveasFile error %#x\n", hr); +todo_wine + ok(size == 128, "expected 128, got %d\n", size); -+ emh = GlobalLock(hmem); + emh = GlobalLock(hmem); +- ok(emh->iType == EMR_HEADER, "wrong iType %04lx\n", emh->iType); +- ok(emh->dSignature == ENHMETA_SIGNATURE, "wrong dSignature %08lx\n", emh->dSignature); +if (size) +{ + ok(emh->iType == EMR_HEADER, "wrong iType %04x\n", emh->iType); + ok(emh->dSignature == ENHMETA_SIGNATURE, "wrong dSignature %08x\n", emh->dSignature); +} -+ GlobalUnlock(hmem); -+ -+ size = -1; -+ hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &size); + GlobalUnlock(hmem); + + size = -1; + hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &size); +- ok(hr == E_FAIL, "expected E_FAIL, got %#lx\n", hr); +- ok(size == -1, "expected -1, got %ld\n", size); +todo_wine + ok(hr == E_FAIL, "expected E_FAIL, got %#x\n", hr); +todo_wine + ok(size == -1, "expected -1, got %d\n", size); -+ -+ offset.QuadPart = 0; -+ hr = IStream_Seek(dst_stream, offset, SEEK_SET, NULL); + + offset.QuadPart = 0; + hr = IStream_Seek(dst_stream, offset, SEEK_SET, NULL); +- ok(hr == S_OK, "IStream_Seek %#lx\n", hr); + ok(hr == S_OK, "IStream_Seek %#x\n", hr); -+ -+ hr = IPicture_QueryInterface(pic, &IID_IPersistStream, (void **)&src_stream); + + hr = IPicture_QueryInterface(pic, &IID_IPersistStream, (void **)&src_stream); +- ok(hr == S_OK, "QueryInterface error %#lx\n", hr); + ok(hr == S_OK, "QueryInterface error %#x\n", hr); -+ -+ hr = IPersistStream_Save(src_stream, dst_stream, TRUE); + + hr = IPersistStream_Save(src_stream, dst_stream, TRUE); +- ok(hr == S_OK, "Save error %#lx\n", hr); +todo_wine + ok(hr == S_OK, "Save error %#x\n", hr); -+ -+ IPersistStream_Release(src_stream); -+ IStream_Release(dst_stream); -+ -+ mem = GlobalLock(hmem); + + IPersistStream_Release(src_stream); + IStream_Release(dst_stream); + + mem = GlobalLock(hmem); +- ok(!memcmp(mem, "lt\0\0", 4), "got wrong stream header %04lx\n", mem[0]); +- ok(mem[1] == 128, "expected 128, got %lu\n", mem[1]); +if (hr == S_OK) +{ + ok(!memcmp(mem, "lt\0\0", 4), "got wrong stream header %04x\n", mem[0]); + ok(mem[1] == 128, "expected 128, got %u\n", mem[1]); -+ emh = (ENHMETAHEADER *)(mem + 2); + emh = (ENHMETAHEADER *)(mem + 2); +- ok(emh->iType == EMR_HEADER, "wrong iType %04lx\n", emh->iType); +- ok(emh->dSignature == ENHMETA_SIGNATURE, "wrong dSignature %08lx\n", emh->dSignature); +- + ok(emh->iType == EMR_HEADER, "wrong iType %04x\n", emh->iType); + ok(emh->dSignature == ENHMETA_SIGNATURE, "wrong dSignature %08x\n", emh->dSignature); +} -+ GlobalUnlock(hmem); -+ GlobalFree(hmem); -+ -+ DeleteEnhMetaFile(desc.emf.hemf); -+ IPicture_Release(pic); -+} -+ - START_TEST(olepicture) - { - hOleaut32 = GetModuleHandleA("oleaut32.dll"); -@@ -1653,6 +1742,7 @@ START_TEST(olepicture) - test_load_save_dib(); - test_load_save_icon(); - test_load_save_empty_picture(); -+ test_load_save_emf(); - } - + GlobalUnlock(hmem); + GlobalFree(hmem); -- -2.43.0 +2.47.2 diff --git a/patches/oleaut32-Load_Save_EMF/definition b/patches/oleaut32-Load_Save_EMF/definition index 0bb7c3c2..bf2877a7 100644 --- a/patches/oleaut32-Load_Save_EMF/definition +++ b/patches/oleaut32-Load_Save_EMF/definition @@ -1 +1,2 @@ Fixes: [40523] Implement support for loading and saving EMF to IPicture interface +Disabled: True diff --git a/patches/oleaut32-OLEPictureImpl_SaveAsFile/definition b/patches/oleaut32-OLEPictureImpl_SaveAsFile/definition index 26889d7a..174be939 100644 --- a/patches/oleaut32-OLEPictureImpl_SaveAsFile/definition +++ b/patches/oleaut32-OLEPictureImpl_SaveAsFile/definition @@ -1,2 +1,3 @@ Fixes: [8532] Implement a better stub for IPicture::SaveAsFile Depends: oleaut32-Load_Save_EMF +Disabled: True diff --git a/staging/upstream-commit b/staging/upstream-commit index a107bd2e..55d8a0c9 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -41abefccebf2729a70be9ec7bdb1c6226a56e369 +e1b8e7f6ec755afd251a3b7af0e632c6e4d74a64