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