Robert Shearman : ole32: Don' t send data changes in DataAdviseHolder_Advise for

Alexandre Julliard julliard at wine.codeweavers.com
Thu Sep 7 05:07:25 CDT 2006


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

Author: Robert Shearman <rob at codeweavers.com>
Date:   Thu Aug 31 17:20:09 2006 +0100

ole32: Don't send data changes in DataAdviseHolder_Advise for
ADVF_PRIMEFIRST connections if we are connected to a data object,
since it will send the data change for us.

---

 dlls/ole32/oleobj.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/ole32/oleobj.c b/dlls/ole32/oleobj.c
index 7a00d8f..ae06f18 100644
--- a/dlls/ole32/oleobj.c
+++ b/dlls/ole32/oleobj.c
@@ -728,9 +728,6 @@ static HRESULT WINAPI DataAdviseHolder_A
 
   if (This->Connections[index].sink != NULL) {
     IAdviseSink_AddRef(This->Connections[index].sink);
-    if(advf & ADVF_PRIMEFIRST) {
-      IDataAdviseHolder_SendOnDataChange(iface, pDataObject, 0, advf);
-    }
 
     /* if we are already connected advise the remote object */
     if (This->delegate)
@@ -748,6 +745,10 @@ static HRESULT WINAPI DataAdviseHolder_A
         }
         This->Connections[index].advf |= WINE_ADVF_REMOTE;
     }
+    else if(advf & ADVF_PRIMEFIRST)
+      /* only do this if we have no delegate, since in the above case the
+       * delegate will do the priming for us */
+      IDataAdviseHolder_SendOnDataChange(iface, pDataObject, 0, advf);
   }
   /*
    * Return the index as the cookie.




More information about the wine-cvs mailing list