Juan Lang : cryptui: Fix crash with native riched20.

Alexandre Julliard julliard at winehq.org
Fri Jan 9 09:52:35 CST 2009


Module: wine
Branch: master
Commit: e50e78f1cbcb10358c49aa044d63ae9561327482
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e50e78f1cbcb10358c49aa044d63ae9561327482

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Jan  8 21:06:34 2009 -0800

cryptui: Fix crash with native riched20.

---

 dlls/cryptui/main.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 1abeff4..a5fb580 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -1666,6 +1666,7 @@ static void add_icon_to_control(HWND hwnd, int id)
     HBITMAP bitmap = NULL;
     RECT rect;
     STGMEDIUM stgm;
+    LPOLECLIENTSITE clientSite = NULL;
     REOBJECT reObject;
 
     TRACE("(%p, %d)\n", hwnd, id);
@@ -1695,6 +1696,9 @@ static void add_icon_to_control(HWND hwnd, int id)
      (void**)&dataObject);
     if (FAILED(hr))
         goto end;
+    hr = IRichEditOle_GetClientSite(richEditOle, &clientSite);
+    if (FAILED(hr))
+        goto end;
     bitmap = LoadImageW(hInstance, MAKEINTRESOURCEW(id), IMAGE_BITMAP, 0, 0,
      LR_DEFAULTSIZE | LR_LOADTRANSPARENT);
     if (!bitmap)
@@ -1714,7 +1718,7 @@ static void add_icon_to_control(HWND hwnd, int id)
     reObject.clsid = clsid;
     reObject.poleobj = object;
     reObject.pstg = NULL;
-    reObject.polesite = NULL;
+    reObject.polesite = clientSite;
     reObject.sizel.cx = reObject.sizel.cy = 0;
     reObject.dvaspect = DVASPECT_CONTENT;
     reObject.dwFlags = 0;
@@ -1723,6 +1727,8 @@ static void add_icon_to_control(HWND hwnd, int id)
     IRichEditOle_InsertObject(richEditOle, &reObject);
 
 end:
+    if (clientSite)
+        IOleClientSite_Release(clientSite);
     if (dataObject)
         IDataObject_Release(dataObject);
     if (oleCache)




More information about the wine-cvs mailing list