From e7c3d0157ad429dda8f6dafbd43a878d12310da0 Mon Sep 17 00:00:00 2001
From: Jacek Caban <jacek@codeweavers.com>
Date: Sun, 5 Nov 2006 17:46:54 +0100
Subject: [PATCH] shdocvw: Added
 OnAmbientPropertyChange(DISPID_AMBIENT_OFFLINECONNECTED) implementation.

---
 dlls/shdocvw/oleobject.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/dlls/shdocvw/oleobject.c b/dlls/shdocvw/oleobject.c
index ad657b8235b..488b06c0806 100644
--- a/dlls/shdocvw/oleobject.c
+++ b/dlls/shdocvw/oleobject.c
@@ -212,6 +212,20 @@ static HRESULT get_client_disp_property(IOleClientSite *client, DISPID dispid, V
     return hres;
 }
 
+static HRESULT on_offlineconnected_change(WebBrowser *This)
+{
+    VARIANT offline;
+
+    get_client_disp_property(This->client, DISPID_AMBIENT_OFFLINEIFNOTCONNECTED, &offline);
+
+    if(V_VT(&offline) == VT_BOOL)
+        IWebBrowser2_put_Offline(WEBBROWSER2(This), V_BOOL(&offline));
+    else if(V_VT(&offline) != VT_EMPTY)
+        WARN("wrong V_VT(silent) %d\n", V_VT(&offline));
+
+    return S_OK;
+}
+
 static HRESULT on_silent_change(WebBrowser *This)
 {
     VARIANT silent;
@@ -683,6 +697,8 @@ static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DIS
     TRACE("(%p)->(%d)\n", This, dispID);
 
     switch(dispID) {
+    case DISPID_AMBIENT_OFFLINEIFNOTCONNECTED:
+        return on_offlineconnected_change(This);
     case DISPID_AMBIENT_SILENT:
         return on_silent_change(This);
     }
-- 
GitLab