Aric Stewart : shlwapi: DISPPARAMS on Invoke are never NULL.

Alexandre Julliard julliard at winehq.org
Fri Dec 11 11:04:44 CST 2009


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

Author: Aric Stewart <aric at codeweavers.com>
Date:   Thu Dec 10 13:16:14 2009 -0600

shlwapi: DISPPARAMS on Invoke are never NULL.

---

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

diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
index 0b9999e..6b0a9bc 100644
--- a/dlls/shlwapi/ordinal.c
+++ b/dlls/shlwapi/ordinal.c
@@ -2930,18 +2930,24 @@ static HRESULT SHLWAPI_InvokeByIID(
 {
   IEnumConnections *enumerator;
   CONNECTDATA rgcd;
+  static DISPPARAMS empty = {NULL, NULL, 0, 0};
+  DISPPARAMS* params = dispParams;
 
   HRESULT result = IConnectionPoint_EnumConnections(iCP, &enumerator);
   if (FAILED(result))
     return result;
 
+  /* Invoke is never happening with an NULL dispParams */
+  if (!params)
+    params = &empty;
+
   while(IEnumConnections_Next(enumerator, 1, &rgcd, NULL)==S_OK)
   {
     IDispatch *dispIface;
     if ((iid && SUCCEEDED(IUnknown_QueryInterface(rgcd.pUnk, iid, (LPVOID*)&dispIface))) ||
         SUCCEEDED(IUnknown_QueryInterface(rgcd.pUnk, &IID_IDispatch, (LPVOID*)&dispIface)))
     {
-      IDispatch_Invoke(dispIface, dispId, &IID_NULL, 0, DISPATCH_METHOD, dispParams, NULL, NULL, NULL);
+      IDispatch_Invoke(dispIface, dispId, &IID_NULL, 0, DISPATCH_METHOD, params, NULL, NULL, NULL);
       IDispatch_Release(dispIface);
     }
   }




More information about the wine-cvs mailing list