You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Rebase against e1b8e7f6ec755afd251a3b7af0e632c6e4d74a64.
This commit is contained in:
@@ -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 <sebastian@fds-team.de>
|
||||
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 );
|
||||
|
@@ -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 <dmitry@baikal.ru>
|
||||
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
|
||||
|
||||
|
@@ -1 +1,2 @@
|
||||
Fixes: [40523] Implement support for loading and saving EMF to IPicture interface
|
||||
Disabled: True
|
||||
|
@@ -1,2 +1,3 @@
|
||||
Fixes: [8532] Implement a better stub for IPicture::SaveAsFile
|
||||
Depends: oleaut32-Load_Save_EMF
|
||||
Disabled: True
|
||||
|
@@ -1 +1 @@
|
||||
41abefccebf2729a70be9ec7bdb1c6226a56e369
|
||||
e1b8e7f6ec755afd251a3b7af0e632c6e4d74a64
|
||||
|
Reference in New Issue
Block a user