[PATCH] ieframe: Add a IServiceProvider stub to IBindStatusCallback
Detlef Riekenberg
wine.dev at web.de
Sat May 18 08:11:38 CDT 2013
--
By by ... Detlef
---
dlls/ieframe/navigate.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/dlls/ieframe/navigate.c b/dlls/ieframe/navigate.c
index d730b10..65ab16d 100644
--- a/dlls/ieframe/navigate.c
+++ b/dlls/ieframe/navigate.c
@@ -40,6 +40,7 @@ typedef struct {
IBindStatusCallback IBindStatusCallback_iface;
IHttpNegotiate IHttpNegotiate_iface;
IHttpSecurity IHttpSecurity_iface;
+ IServiceProvider IServiceProvider_iface;
LONG ref;
@@ -172,6 +173,9 @@ static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallback *ifa
}else if(IsEqualGUID(&IID_IHttpSecurity, riid)) {
TRACE("(%p)->(IID_IHttpSecurity %p)\n", This, ppv);
*ppv = &This->IHttpSecurity_iface;
+ }else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
+ TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv);
+ *ppv = &This->IServiceProvider_iface;;
}else {
*ppv = NULL;
WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
@@ -534,6 +538,52 @@ static const IHttpSecurityVtbl HttpSecurityVtbl = {
HttpSecurity_OnSecurityProblem
};
+static inline BindStatusCallback *impl_from_IServiceProvider(IServiceProvider *iface)
+{
+ return CONTAINING_RECORD(iface, BindStatusCallback, IServiceProvider_iface);
+}
+
+static HRESULT WINAPI BSCServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
+{
+ BindStatusCallback *This = impl_from_IServiceProvider(iface);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
+ return IBindStatusCallback_QueryInterface(&This->IBindStatusCallback_iface, riid, ppv);
+}
+
+static ULONG WINAPI BSCServiceProvider_AddRef(IServiceProvider *iface)
+{
+ BindStatusCallback *This = impl_from_IServiceProvider(iface);
+ TRACE("(%p)\n", This);
+ return IBindStatusCallback_AddRef(&This->IBindStatusCallback_iface);
+}
+
+static ULONG WINAPI BSCServiceProvider_Release(IServiceProvider *iface)
+{
+ BindStatusCallback *This = impl_from_IServiceProvider(iface);
+ TRACE("(%p)\n", This);
+ return IBindStatusCallback_Release(&This->IBindStatusCallback_iface);
+}
+
+
+static HRESULT WINAPI BSCServiceProvider_QueryService(IServiceProvider *iface,
+ REFGUID guidService, REFIID riid, void **ppv)
+{
+ BindStatusCallback *This = impl_from_IServiceProvider(iface);
+
+ FIXME("(%p)->(%s, %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
+ *ppv = NULL;
+ return E_NOINTERFACE;
+}
+
+static const IServiceProviderVtbl BSCServiceProviderVtbl =
+{
+ BSCServiceProvider_QueryInterface,
+ BSCServiceProvider_AddRef,
+ BSCServiceProvider_Release,
+ BSCServiceProvider_QueryService
+};
+
+
static BindStatusCallback *create_callback(DocHost *doc_host, LPCWSTR url, PBYTE post_data,
ULONG post_data_len, LPCWSTR headers)
{
@@ -542,6 +592,7 @@ static BindStatusCallback *create_callback(DocHost *doc_host, LPCWSTR url, PBYTE
ret->IBindStatusCallback_iface.lpVtbl = &BindStatusCallbackVtbl;
ret->IHttpNegotiate_iface.lpVtbl = &HttpNegotiateVtbl;
ret->IHttpSecurity_iface.lpVtbl = &HttpSecurityVtbl;
+ ret->IServiceProvider_iface.lpVtbl = &BSCServiceProviderVtbl;
ret->ref = 1;
ret->url = SysAllocString(url);
--
1.7.5.4
More information about the wine-patches
mailing list