Jacek Caban : mshtml: Added support for DOCHOSTUIFLAG_SCROLL_NO DOCHOSTINFO flag.

Alexandre Julliard julliard at winehq.org
Tue Jul 1 08:27:29 CDT 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jun 30 21:37:56 2008 +0200

mshtml: Added support for DOCHOSTUIFLAG_SCROLL_NO DOCHOSTINFO flag.

---

 dlls/mshtml/oleobj.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/oleobj.c b/dlls/mshtml/oleobj.c
index 5e7181c..0b1dd6b 100644
--- a/dlls/mshtml/oleobj.c
+++ b/dlls/mshtml/oleobj.c
@@ -61,6 +61,32 @@ static ULONG WINAPI OleObject_Release(IOleObject *iface)
     return IHTMLDocument2_Release(HTMLDOC(This));
 }
 
+static void update_hostinfo(HTMLDocument *This, DOCHOSTUIINFO *hostinfo)
+{
+    nsIScrollable *scrollable;
+    nsresult nsres;
+
+    if(!This->nscontainer)
+        return;
+
+    nsres = nsIWebBrowser_QueryInterface(This->nscontainer->webbrowser, &IID_nsIScrollable, (void**)&scrollable);
+    if(NS_SUCCEEDED(nsres)) {
+        nsres = nsIScrollable_SetDefaultScrollbarPreferences(scrollable, ScrollOrientation_Y,
+                (hostinfo->dwFlags & DOCHOSTUIFLAG_SCROLL_NO) ? Scrollbar_Never : Scrollbar_Always);
+        if(NS_FAILED(nsres))
+            ERR("Could not set default Y scrollbar prefs: %08x\n", nsres);
+
+        nsres = nsIScrollable_SetDefaultScrollbarPreferences(scrollable, ScrollOrientation_X,
+                hostinfo->dwFlags & DOCHOSTUIFLAG_SCROLL_NO ? Scrollbar_Never : Scrollbar_Auto);
+        if(NS_FAILED(nsres))
+            ERR("Could not set default X scrollbar prefs: %08x\n", nsres);
+
+        nsIScrollable_Release(scrollable);
+    }else {
+        ERR("Could not get nsIScrollable: %08x\n", nsres);
+    }
+}
+
 static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite *pClientSite)
 {
     HTMLDocument *This = OLEOBJ_THIS(iface);
@@ -103,6 +129,7 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
             TRACE("hostinfo = {%u %08x %08x %s %s}\n",
                     hostinfo.cbSize, hostinfo.dwFlags, hostinfo.dwDoubleClick,
                     debugstr_w(hostinfo.pchHostCss), debugstr_w(hostinfo.pchHostNS));
+            update_hostinfo(This, &hostinfo);
             This->hostinfo = hostinfo;
         }
 




More information about the wine-cvs mailing list