From: Qian Hong Subject: [PATCH] riched20: Handle QI failure in ME_GetOLEObjectSize. Message-Id: <5403D35B.9000707@codeweavers.com> Date: Mon, 01 Sep 2014 10:00:59 +0800 Fixed https://bugs.winehq.org/show_bug.cgi?id=21042, should improve https://bugs.winehq.org/show_bug.cgi?id=29636 as well. --- dlls/riched20/richole.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c index 487fcda..b18b648 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c @@ -1586,7 +1586,12 @@ void ME_GetOLEObjectSize(const ME_Context *c, ME_Run *run, SIZE *pSize) return; } - IOleObject_QueryInterface(run->ole_obj->poleobj, &IID_IDataObject, (void**)&ido); + if (IOleObject_QueryInterface(run->ole_obj->poleobj, &IID_IDataObject, (void**)&ido) != S_OK) + { + FIXME("Query Interface IID_IDataObject failed!\n"); + pSize->cx = pSize->cy = 0; + return; + } fmt.cfFormat = CF_BITMAP; fmt.ptd = NULL; fmt.dwAspect = DVASPECT_CONTENT;