From 57fa2ddd5ee99661a35ecc244d93731b9e094877 Mon Sep 17 00:00:00 2001 From: Robert Wilhelm Date: Sat, 26 Nov 2022 23:48:21 +0100 Subject: [PATCH] wshom.ocx: Add IWshNetwork2 interface stub implementation. --- dlls/wshom.ocx/network.c | 85 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/dlls/wshom.ocx/network.c b/dlls/wshom.ocx/network.c index 64b8551e6cc..8ac3f35ad41 100644 --- a/dlls/wshom.ocx/network.c +++ b/dlls/wshom.ocx/network.c @@ -17,13 +17,96 @@ */ #include "wshom_private.h" +#include "wshom.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(wshom); +static HRESULT WINAPI WshNetwork2_QueryInterface(IWshNetwork2 *iface, REFIID riid, void **ppv) +{ + if(IsEqualGUID(riid, &IID_IUnknown)) { + TRACE("(IID_IUnknown %p)\n", ppv); + *ppv = iface; + }else if(IsEqualGUID(riid, &IID_IDispatch)) { + TRACE("(IID_IDispatch %p)\n", ppv); + *ppv = iface; + }else if(IsEqualGUID(riid, &IID_IWshNetwork2)) { + TRACE("(IID_IWshNetwork2 %p)\n", ppv); + *ppv = iface; + }else { + FIXME("Unknown iface %s\n", debugstr_guid(riid)); + *ppv = NULL; + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +} + +static ULONG WINAPI WshNetwork2_AddRef(IWshNetwork2 *iface) +{ + TRACE("()\n"); + return 2; +} + +static ULONG WINAPI WshNetwork2_Release(IWshNetwork2 *iface) +{ + TRACE("()\n"); + return 2; +} + +static HRESULT WINAPI WshNetwork2_GetTypeInfoCount(IWshNetwork2 *iface, UINT *pctinfo) +{ + TRACE("(%p)\n", pctinfo); + + *pctinfo = 1; + return S_OK; +} + +static HRESULT WINAPI WshNetwork2_GetTypeInfo(IWshNetwork2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) +{ + FIXME("%p, %u, %lx, %p.\n", iface, iTInfo, lcid, ppTInfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshNetwork2_GetIDsOfNames(IWshNetwork2 *iface, REFIID riid, LPOLESTR *rgszNames, + UINT cNames, LCID lcid, DISPID *rgDispId) +{ + FIXME("%p, %s, %p, %u, %lx, %p.\n", iface, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshNetwork2_Invoke(IWshNetwork2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, + WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + FIXME("%p, %ld, %s, %lx, %d, %p, %p, %p, %p.\n", iface, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + return E_NOTIMPL; +} + +static HRESULT WINAPI WshNetwork2_get_UserDomain(IWshNetwork2 *iface, BSTR *UserDomain) +{ + FIXME("(%p)\n", UserDomain); + return E_NOTIMPL; +} + +static const IWshNetwork2Vtbl WshNetwork2Vtbl = { + WshNetwork2_QueryInterface, + WshNetwork2_AddRef, + WshNetwork2_Release, + WshNetwork2_GetTypeInfoCount, + WshNetwork2_GetTypeInfo, + WshNetwork2_GetIDsOfNames, + WshNetwork2_Invoke, + WshNetwork2_get_UserDomain, +}; + +static IWshNetwork2 WshNetwork2 = { &WshNetwork2Vtbl }; + HRESULT WINAPI WshNetworkFactory_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv) { FIXME("(%p %s %p)\n", outer, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + + return IWshNetwork2_QueryInterface(&WshNetwork2, riid, ppv); }