Detlef Riekenberg : shdocvw/tests: Add IServiceProvider to the webbrowser test.

Alexandre Julliard julliard at winehq.org
Mon Mar 2 09:01:56 CST 2009


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

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Sun Mar  1 23:09:02 2009 +0100

shdocvw/tests: Add IServiceProvider to the webbrowser test.

---

 dlls/shdocvw/tests/webbrowser.c |   69 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index c6c204a..5aae312 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -31,12 +31,14 @@
 #include "htiframe.h"
 #include "mshtmhst.h"
 #include "mshtmcid.h"
+#include "mshtml.h"
 #include "idispids.h"
 #include "olectl.h"
 #include "mshtmdid.h"
 #include "shobjidl.h"
 #include "shlguid.h"
 #include "exdispid.h"
+#include "mimeinfo.h"
 
 DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
 
@@ -1270,6 +1272,71 @@ static const IDocHostUIHandler2Vtbl DocHostUIHandlerVtbl = {
 
 static IDocHostUIHandler2 DocHostUIHandler = { &DocHostUIHandlerVtbl };
 
+
+static HRESULT WINAPI ServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
+{
+    return QueryInterface(riid, ppv);
+}
+
+static ULONG WINAPI ServiceProvider_AddRef(IServiceProvider *iface)
+{
+    return 2;
+}
+
+static ULONG WINAPI ServiceProvider_Release(IServiceProvider *iface)
+{
+    return 1;
+}
+
+static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface,
+                                    REFGUID guidService, REFIID riid, void **ppv)
+{
+    *ppv = NULL;
+
+    if (IsEqualGUID(&SID_STopLevelBrowser, guidService))
+        trace("Service SID_STopLevelBrowser\n");
+    else if (IsEqualGUID(&SID_SEditCommandTarget, guidService))
+        trace("Service SID_SEditCommandTarget\n");
+    else if (IsEqualGUID(&IID_ITargetFrame2, guidService))
+        trace("Service IID_ITargetFrame2\n");
+    else if (IsEqualGUID(&SID_SInternetSecurityManager, guidService))
+        trace("Service SID_SInternetSecurityManager\n");
+    else if (IsEqualGUID(&SID_SOleUndoManager, guidService))
+        trace("Service SID_SOleUndoManager\n");
+    else if (IsEqualGUID(&SID_IMimeInfo, guidService))
+        trace("Service SID_IMimeInfo\n");
+    else if (IsEqualGUID(&SID_STopWindow, guidService))
+        trace("Service SID_STopWindow\n");
+
+    /* 30D02401-6A81-11D0-8274-00C04FD5AE38 Explorer Bar: Search */
+    /* D1E7AFEC-6A2E-11D0-8C78-00C04FD918B4 no info */
+    /* A9227C3C-7F8E-11D0-8CB0-00A0C92DBFE8 no info */
+    /* 371EA634-DC5C-11D1-BA57-00C04FC2040E one reference to IVersionHost */
+    /* 3050F429-98B5-11CF-BB82-00AA00BDCE0B IID_IElementBehaviorFactory */
+    /* 6D12FE80-7911-11CF-9534-0000C05BAE0B SID_DefView */
+    /* AD7F6C62-F6BD-11D2-959B-006097C553C8 no info */
+    /* 53A2D5B1-D2FC-11D0-84E0-006097C9987D no info */
+    /* 3050F312-98B5-11CF-BB82-00AA00BDCE0B HTMLFrameBaseClass */
+    /* 639447BD-B2D3-44B9-9FB0-510F23CB45E4 no info */
+    /* 20C46561-8491-11CF-960C-0080C7F4EE85 no info */
+
+    else
+        trace("Service %s not supported\n", debugstr_guid(guidService));
+
+    return E_NOINTERFACE;
+}
+
+
+static const IServiceProviderVtbl ServiceProviderVtbl = {
+    ServiceProvider_QueryInterface,
+    ServiceProvider_AddRef,
+    ServiceProvider_Release,
+    ServiceProvider_QueryService
+};
+
+static IServiceProvider ServiceProvider = { &ServiceProviderVtbl };
+
+
 static HRESULT QueryInterface(REFIID riid, void **ppv)
 {
     *ppv = NULL;
@@ -1286,6 +1353,8 @@ static HRESULT QueryInterface(REFIID riid, void **ppv)
         *ppv = &DocHostUIHandler;
     else if(IsEqualGUID(&IID_IDispatch, riid))
         *ppv = &Dispatch;
+    else if(IsEqualGUID(&IID_IServiceProvider, riid))
+        *ppv = &ServiceProvider;
 
     if(*ppv)
         return S_OK;




More information about the wine-cvs mailing list