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 deleted file mode 100644 index 5b85ea05..00000000 --- a/patches/oleaut32-Load_Save_EMF/0001-oleaut32-tests-Add-some-tests-for-loading-and-saving.patch +++ /dev/null @@ -1,100 +0,0 @@ -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 | 45 +++++++++++++++++++------------- - 1 file changed, 27 insertions(+), 18 deletions(-) - -diff --git a/dlls/oleaut32/tests/olepicture.c b/dlls/oleaut32/tests/olepicture.c -index 58d5577631c..025f7c84873 100644 ---- a/dlls/oleaut32/tests/olepicture.c -+++ b/dlls/oleaut32/tests/olepicture.c -@@ -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); -- 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(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(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); -- 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); -- 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); -- 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); -- 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); -- 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); -- 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); -- 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); -- 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); - --- -2.47.2 - diff --git a/patches/oleaut32-Load_Save_EMF/0002-oleaut32-Add-support-for-loading-and-saving-EMF-to-I.patch b/patches/oleaut32-Load_Save_EMF/0002-oleaut32-Add-support-for-loading-and-saving-EMF-to-I.patch deleted file mode 100644 index e83854ab..00000000 --- a/patches/oleaut32-Load_Save_EMF/0002-oleaut32-Add-support-for-loading-and-saving-EMF-to-I.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 92c5616bf7048e9d69010a473fa5fd65db43a6fc Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Tue, 26 Apr 2016 13:15:41 +0800 -Subject: [PATCH] oleaut32: Add support for loading and saving EMF to IPicture - interface. - -For bug #40523. ---- - dlls/oleaut32/olepicture.c | 53 +++++++++++++++++++++++++++++--- - dlls/oleaut32/tests/olepicture.c | 5 +-- - 2 files changed, 49 insertions(+), 9 deletions(-) - -diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c -index 78fd3fc5681..91327f78eef 100644 ---- a/dlls/oleaut32/olepicture.c -+++ b/dlls/oleaut32/olepicture.c -@@ -256,6 +256,18 @@ static void OLEPictureImpl_SetIcon(OLEPictureImpl * This) - } - } - -+static void OLEPictureImpl_SetEMF(OLEPictureImpl *This) -+{ -+ ENHMETAHEADER emh; -+ -+ GetEnhMetaFileHeader(This->desc.emf.hemf, sizeof(emh), &emh); -+ -+ This->origWidth = 0; -+ This->origHeight = 0; -+ This->himetricWidth = emh.rclFrame.right - emh.rclFrame.left; -+ This->himetricHeight = emh.rclFrame.bottom - emh.rclFrame.top; -+} -+ - /************************************************************************ - * OLEPictureImpl_Construct - * -@@ -339,8 +351,7 @@ static HRESULT OLEPictureImpl_Construct(LPPICTDESC pictDesc, BOOL fOwn, OLEPictu - break; - - case PICTYPE_ENHMETAFILE: -- FIXME("EMF is not supported\n"); -- newObject->himetricWidth = newObject->himetricHeight = 0; -+ OLEPictureImpl_SetEMF(newObject); - break; - - default: -@@ -1760,6 +1771,22 @@ static BOOL serializeIcon(HICON hIcon, void ** ppBuffer, unsigned int * pLength) - return success; - } - -+static HRESULT serializeEMF(HENHMETAFILE hemf, void **buf, unsigned *size) -+{ -+ if (!(*size = GetEnhMetaFileBits(hemf, 0, NULL))) -+ return E_FAIL; -+ -+ if (!(*buf = HeapAlloc(GetProcessHeap(), 0, *size))) -+ return E_OUTOFMEMORY; -+ -+ if (!GetEnhMetaFileBits(hemf, *size, *buf)) -+ { -+ HeapFree(GetProcessHeap(), 0, *buf); -+ return E_FAIL; -+ } -+ return S_OK; -+} -+ - static HRESULT WINAPI OLEPictureImpl_Save( - IPersistStream* iface,IStream*pStm,BOOL fClearDirty) - { -@@ -1831,12 +1858,28 @@ static HRESULT WINAPI OLEPictureImpl_Save( - IStream_Write(pStm, This->data, This->datalen, &dummy); - hResult = S_OK; - break; -+ -+ case PICTYPE_ENHMETAFILE: -+ if (This->bIsDirty || !This->data) -+ { -+ hResult = serializeEMF(This->desc.emf.hemf, &pIconData, &iDataSize); -+ if (hResult != S_OK) -+ break; -+ -+ HeapFree(GetProcessHeap(), 0, This->data); -+ This->data = pIconData; -+ This->datalen = iDataSize; -+ } -+ header[0] = 0x0000746c; -+ header[1] = This->datalen; -+ IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy); -+ IStream_Write(pStm, This->data, This->datalen, &dummy); -+ hResult = S_OK; -+ break; -+ - case PICTYPE_METAFILE: - FIXME("(%p,%p,%d), PICTYPE_METAFILE not implemented!\n",This,pStm,fClearDirty); - break; -- case PICTYPE_ENHMETAFILE: -- FIXME("(%p,%p,%d),PICTYPE_ENHMETAFILE not implemented!\n",This,pStm,fClearDirty); -- break; - default: - FIXME("(%p,%p,%d), [unknown type] not implemented!\n",This,pStm,fClearDirty); - break; -diff --git a/dlls/oleaut32/tests/olepicture.c b/dlls/oleaut32/tests/olepicture.c -index af2c9255e3c..f19ef01c773 100644 ---- a/dlls/oleaut32/tests/olepicture.c -+++ b/dlls/oleaut32/tests/olepicture.c -@@ -1546,21 +1546,18 @@ todo_wine - ok(hr == S_OK, "QueryInterface error %#x\n", hr); - - hr = IPersistStream_Save(src_stream, dst_stream, TRUE); --todo_wine - ok(hr == S_OK, "Save error %#x\n", hr); - - IPersistStream_Release(src_stream); - IStream_Release(dst_stream); - - mem = GlobalLock(hmem); --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); - 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); - --- -2.43.0 - diff --git a/patches/oleaut32-Load_Save_EMF/definition b/patches/oleaut32-Load_Save_EMF/definition deleted file mode 100644 index bf2877a7..00000000 --- a/patches/oleaut32-Load_Save_EMF/definition +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: [40523] Implement support for loading and saving EMF to IPicture interface -Disabled: True diff --git a/patches/oleaut32-OLEPictureImpl_SaveAsFile/0002-oleaut32-Implement-a-better-stub-for-IPicture-SaveAs.patch b/patches/oleaut32-OLEPictureImpl_SaveAsFile/0002-oleaut32-Implement-a-better-stub-for-IPicture-SaveAs.patch deleted file mode 100644 index 72c3115d..00000000 --- a/patches/oleaut32-OLEPictureImpl_SaveAsFile/0002-oleaut32-Implement-a-better-stub-for-IPicture-SaveAs.patch +++ /dev/null @@ -1,179 +0,0 @@ -From 7b40ae4316f61b52e0ad740bb1ba0a32e6545a40 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Tue, 24 Nov 2015 17:22:02 +0800 -Subject: [PATCH] oleaut32: Implement a better stub for IPicture::SaveAsFile. - -Based on OLEPictureImpl_Save implementation. - -For bug 8532. ---- - dlls/oleaut32/olepicture.c | 92 +++++++++++++++++++++++++++----- - dlls/oleaut32/tests/olepicture.c | 9 ---- - 2 files changed, 79 insertions(+), 22 deletions(-) - -diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c -index 6e0db65a101..48d7ae13846 100644 ---- a/dlls/oleaut32/olepicture.c -+++ b/dlls/oleaut32/olepicture.c -@@ -819,19 +819,6 @@ static HRESULT WINAPI OLEPictureImpl_PictureChanged(IPicture *iface) - return S_OK; - } - --/************************************************************************ -- * OLEPictureImpl_SaveAsFile -- */ --static HRESULT WINAPI OLEPictureImpl_SaveAsFile(IPicture *iface, -- IStream *pstream, -- BOOL SaveMemCopy, -- LONG *pcbSize) --{ -- OLEPictureImpl *This = impl_from_IPicture(iface); -- FIXME("(%p)->(%p, %d, %p), hacked stub.\n", This, pstream, SaveMemCopy, pcbSize); -- return IStream_Write(pstream,This->data,This->datalen,(ULONG*)pcbSize); --} -- - /************************************************************************ - * OLEPictureImpl_get_Attributes - */ -@@ -1891,6 +1878,85 @@ static HRESULT WINAPI OLEPictureImpl_GetSizeMax(IPersistStream *iface, ULARGE_IN - return hr; - } - -+/************************************************************************ -+ * OLEPictureImpl_SaveAsFile -+ */ -+static HRESULT WINAPI OLEPictureImpl_SaveAsFile(IPicture *iface, -+ IStream *stream, BOOL mem_copy, LONG *size) -+{ -+ OLEPictureImpl *This = impl_from_IPicture(iface); -+ void *data; -+ unsigned data_size; -+ ULONG written; -+ HRESULT hr; -+ -+ FIXME("(%p)->(%p,%d,%p): semi-stub\n", This, stream, mem_copy, size); -+ -+ switch (This->desc.picType) -+ { -+ case PICTYPE_NONE: -+ return S_OK; -+ -+ case PICTYPE_ICON: -+ if (!mem_copy) return E_FAIL; -+ -+ if (This->bIsDirty || !This->data) -+ { -+ if (!serializeIcon(This->desc.icon.hicon, &data, &data_size)) -+ return E_FAIL; -+ HeapFree(GetProcessHeap(), 0, This->data); -+ This->data = data; -+ This->datalen = data_size; -+ } -+ hr = IStream_Write(stream, This->data, This->datalen, &written); -+ if (hr == S_OK && size) *size = written; -+ return hr; -+ -+ case PICTYPE_BITMAP: -+ if (!mem_copy) return E_FAIL; -+ -+ if (This->bIsDirty || !This->data) -+ { -+ switch (This->keepOrigFormat ? This->loadtime_format : BITMAP_FORMAT_BMP) -+ { -+ case BITMAP_FORMAT_BMP: -+ if (!serializeBMP(This->desc.bmp.hbitmap, &data, &data_size)) -+ return E_FAIL; -+ break; -+ case BITMAP_FORMAT_JPEG: -+ FIXME("BITMAP_FORMAT_JPEG is not implemented\n"); -+ return E_NOTIMPL; -+ case BITMAP_FORMAT_GIF: -+ FIXME("BITMAP_FORMAT_GIF is not implemented\n"); -+ return E_NOTIMPL; -+ case BITMAP_FORMAT_PNG: -+ FIXME("BITMAP_FORMAT_PNG is not implemented\n"); -+ return E_NOTIMPL; -+ default: -+ FIXME("PICTYPE_BITMAP/%#x is not implemented\n", This->loadtime_format); -+ return E_NOTIMPL; -+ } -+ -+ HeapFree(GetProcessHeap(), 0, This->data); -+ This->data = data; -+ This->datalen = data_size; -+ } -+ hr = IStream_Write(stream, This->data, This->datalen, &written); -+ if (hr == S_OK && size) *size = written; -+ return hr; -+ -+ case PICTYPE_METAFILE: -+ FIXME("PICTYPE_METAFILE is not implemented\n"); -+ return E_NOTIMPL; -+ case PICTYPE_ENHMETAFILE: -+ FIXME("ENHMETAFILE is not implemented\n"); -+ return E_NOTIMPL; -+ default: -+ FIXME("%#x is not implemented\n", This->desc.picType); -+ break; -+ } -+ return E_NOTIMPL; -+} - - /************************************************************************ - * IDispatch -diff --git a/dlls/oleaut32/tests/olepicture.c b/dlls/oleaut32/tests/olepicture.c -index a269491fd3f..97c80027b99 100644 ---- a/dlls/oleaut32/tests/olepicture.c -+++ b/dlls/oleaut32/tests/olepicture.c -@@ -1231,18 +1231,14 @@ static void test_load_save_bmp(void) - size = -1; - hr = IPicture_SaveAsFile(pic, dst_stream, TRUE, &size); - ok(hr == S_OK, "IPicture_SaveasFile error %#lx\n", hr); -- todo_wine - ok(size == 66, "expected 66, got %ld\n", size); - mem = GlobalLock(hmem); -- todo_wine - ok(!memcmp(&mem[0], "BM", 2), "got wrong bmp header %04lx\n", mem[0]); - GlobalUnlock(hmem); - - size = -1; - hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &size); -- todo_wine - ok(hr == E_FAIL, "expected E_FAIL, got %#lx\n", hr); -- todo_wine - ok(size == -1, "expected -1, got %ld\n", size); - - offset.QuadPart = 0; -@@ -1317,15 +1313,12 @@ static void test_load_save_icon(void) - todo_wine - ok(size == 766, "expected 766, got %ld\n", size); - mem = GlobalLock(hmem); -- todo_wine - ok(mem[0] == 0x00010000, "got wrong icon header %04lx\n", mem[0]); - GlobalUnlock(hmem); - - size = -1; - hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &size); -- todo_wine - ok(hr == E_FAIL, "expected E_FAIL, got %#lx\n", hr); -- todo_wine - ok(size == -1, "expected -1, got %ld\n", size); - - offset.QuadPart = 0; -@@ -1399,13 +1392,11 @@ static void test_load_save_empty_picture(void) - size = -1; - hr = IPicture_SaveAsFile(pic, dst_stream, TRUE, &size); - ok(hr == S_OK, "IPicture_SaveasFile error %#lx\n", hr); -- todo_wine - ok(size == -1, "expected -1, got %ld\n", size); - - size = -1; - hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &size); - ok(hr == S_OK, "IPicture_SaveasFile error %#lx\n", hr); -- todo_wine - ok(size == -1, "expected -1, got %ld\n", size); - - hr = IPicture_QueryInterface(pic, &IID_IPersistStream, (void **)&src_stream); --- -2.43.0 - diff --git a/patches/oleaut32-OLEPictureImpl_SaveAsFile/0003-oleaut32-Implement-SaveAsFile-for-PICTYPE_ENHMETAFIL.patch b/patches/oleaut32-OLEPictureImpl_SaveAsFile/0003-oleaut32-Implement-SaveAsFile-for-PICTYPE_ENHMETAFIL.patch deleted file mode 100644 index 9f2a1457..00000000 --- a/patches/oleaut32-OLEPictureImpl_SaveAsFile/0003-oleaut32-Implement-SaveAsFile-for-PICTYPE_ENHMETAFIL.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 517bb10261069abd3ffd642dddd6338b7cacd094 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Sun, 15 May 2016 19:08:44 +0200 -Subject: oleaut32: Implement SaveAsFile for PICTYPE_ENHMETAFILE. - ---- - dlls/oleaut32/olepicture.c | 17 +++++++++++++++-- - dlls/oleaut32/tests/olepicture.c | 3 --- - 2 files changed, 15 insertions(+), 5 deletions(-) - -diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c -index 7d13942..db90c4c 100644 ---- a/dlls/oleaut32/olepicture.c -+++ b/dlls/oleaut32/olepicture.c -@@ -1961,9 +1961,22 @@ static HRESULT WINAPI OLEPictureImpl_SaveAsFile(IPicture *iface, - case PICTYPE_METAFILE: - FIXME("PICTYPE_METAFILE is not implemented\n"); - return E_NOTIMPL; -+ - case PICTYPE_ENHMETAFILE: -- FIXME("ENHMETAFILE is not implemented\n"); -- return E_NOTIMPL; -+ if (!mem_copy) return E_FAIL; -+ -+ if (This->bIsDirty || !This->data) -+ { -+ if (!serializeEMF(This->desc.emf.hemf, &data, &data_size)) -+ return E_FAIL; -+ HeapFree(GetProcessHeap(), 0, This->data); -+ This->data = data; -+ This->datalen = data_size; -+ } -+ hr = IStream_Write(stream, This->data, This->datalen, &written); -+ if (hr == S_OK && size) *size = written; -+ return hr; -+ - default: - FIXME("%#x is not implemented\n", This->desc.picType); - break; -diff --git a/dlls/oleaut32/tests/olepicture.c b/dlls/oleaut32/tests/olepicture.c -index 29d787e..7b1178e 100644 ---- a/dlls/oleaut32/tests/olepicture.c -+++ b/dlls/oleaut32/tests/olepicture.c -@@ -1338,7 +1338,6 @@ static void test_load_save_emf(void) - size = -1; - hr = IPicture_SaveAsFile(pic, dst_stream, TRUE, &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); - if (size) -@@ -1350,9 +1349,7 @@ if (size) - - size = -1; - hr = IPicture_SaveAsFile(pic, dst_stream, FALSE, &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; --- -2.8.0 - diff --git a/patches/oleaut32-OLEPictureImpl_SaveAsFile/definition b/patches/oleaut32-OLEPictureImpl_SaveAsFile/definition deleted file mode 100644 index 174be939..00000000 --- a/patches/oleaut32-OLEPictureImpl_SaveAsFile/definition +++ /dev/null @@ -1,3 +0,0 @@ -Fixes: [8532] Implement a better stub for IPicture::SaveAsFile -Depends: oleaut32-Load_Save_EMF -Disabled: True