wine-staging/patches/oleaut32-OleLoadPictureFile/0001-oleaut32-Do-not-reimplement-OleLoadPicture-in-OleLoa.patch
2016-03-27 18:22:11 +02:00

69 lines
2.0 KiB
Diff

From 1d3c7baaddc652049995ffc1fbb41e3950dcd8dc Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Sun, 27 Mar 2016 12:30:00 +0800
Subject: oleaut32: Do not reimplement OleLoadPicture in OleLoadPicturePath.
punkCaller is ignored by StdPicture ClassFactory implementation anyway.
---
dlls/oleaut32/olepicture.c | 27 +--------------------------
1 file changed, 1 insertion(+), 26 deletions(-)
diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c
index 44157de..285afba 100644
--- a/dlls/oleaut32/olepicture.c
+++ b/dlls/oleaut32/olepicture.c
@@ -2332,16 +2332,13 @@ HRESULT WINAPI OleLoadPicturePath( LPOLESTR szURLorPath, LPUNKNOWN punkCaller,
LPVOID *ppvRet )
{
static const WCHAR file[] = { 'f','i','l','e',':',0 };
- IPicture *ipicture;
HANDLE hFile;
DWORD dwFileSize;
HGLOBAL hGlobal = NULL;
DWORD dwBytesRead;
IStream *stream;
BOOL bRead;
- IPersistStream *pStream;
HRESULT hRes;
- HRESULT init_res;
WCHAR *file_candidate;
WCHAR path_buf[MAX_PATH];
@@ -2418,32 +2415,10 @@ HRESULT WINAPI OleLoadPicturePath( LPOLESTR szURLorPath, LPUNKNOWN punkCaller,
return hRes;
}
- init_res = CoInitialize(NULL);
-
- hRes = CoCreateInstance(&CLSID_StdPicture, punkCaller, CLSCTX_INPROC_SERVER,
- &IID_IPicture, (LPVOID*)&ipicture);
- if (SUCCEEDED(hRes)) {
- hRes = IPicture_QueryInterface(ipicture, &IID_IPersistStream, (LPVOID*)&pStream);
-
- if (SUCCEEDED(hRes)) {
- hRes = IPersistStream_Load(pStream, stream);
-
- if (SUCCEEDED(hRes)) {
- hRes = IPicture_QueryInterface(ipicture, riid, ppvRet);
-
- if (FAILED(hRes))
- ERR("Failed to get interface %s from IPicture.\n", debugstr_guid(riid));
- }
- IPersistStream_Release(pStream);
- }
- IPicture_Release(ipicture);
- }
+ hRes = OleLoadPicture(stream, 0, FALSE, riid, ppvRet);
IStream_Release(stream);
- if (SUCCEEDED(init_res))
- CoUninitialize();
-
return hRes;
}
--
2.7.1