[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: [4/4] ole32: Fix IDataObject_GetDataHere may not implement
From: Huw Davies <huw () codeweavers ! com>
Date: 2017-04-27 12:10:19
Message-ID: 20170427121019.GD22652 () merlot ! physics ! ox ! ac ! uk
[Download RAW message or body]
On Wed, Apr 26, 2017 at 03:45:50PM +0800, Wei Xie wrote:
> Fix cann't insert any HBITMAP in RichEdit control
> From 2c5a9b4df394c6d50bcc24bcc7b489a864224155 Mon Sep 17 00:00:00 2001
> From: Wei xie <xiewei@linuxdeepin.com>
> Date: Wed, 26 Apr 2017 15:24:00 +0800
> Subject: [PATCH 4/4] ole32: Fix IDataObject_GetDataHere may not implement
>
> Fix cann't insert any HBITMAP in RichEdit control
>
> Signed-off-by: Wei xie <xiewei@linuxdeepin.com>
> ---
> dlls/ole32/ole2impl.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/dlls/ole32/ole2impl.c b/dlls/ole32/ole2impl.c
> index a0c4445..5ee031e 100644
> --- a/dlls/ole32/ole2impl.c
> +++ b/dlls/ole32/ole2impl.c
> @@ -115,6 +115,10 @@ static HRESULT get_storage(IDataObject *data, IStorage *stg, UINT *src_cf, BOOL
> med.u.pstg = stg;
> med.pUnkForRelease = NULL;
> hr = IDataObject_GetDataHere(data, &fmt, &med);
> + if (FAILED(hr))
> + {
> + hr = IDataObject_GetData(data, &fmt, &med);
> + }
This can't work. The STGMEDIUM is an [out]-only parameter
of _GetData(), meaning that the callee will return a new
stg in the STGMEDIUM. If this is indeed called (we need
tests to check), then you'd have to copy the returned stg
into the original one.
Huw.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic