From: Alistair Leslie-Hughes Subject: [2/2] hnetcfg: Add typeinfo support to INetFwOpenPort Message-Id: <541925A4.2070800@hotmail.com> Date: Wed, 17 Sep 2014 16:09:40 +1000 Hi, Changelog: hnetcfg: Add typeinfo support to INetFwOpenPort Best Regards Alistair Leslie-Hughes From facd60413d503013ef404f151a1888dc1cd66d60 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 17 Sep 2014 15:59:35 +1000 Subject: [PATCH] Add typeinfo support to INetFwOpenPort To: wine-patches --- dlls/hnetcfg/apps.c | 1 + dlls/hnetcfg/hnetcfg_private.h | 1 + dlls/hnetcfg/port.c | 36 ++++++++++++++++++++++++++++-------- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/dlls/hnetcfg/apps.c b/dlls/hnetcfg/apps.c index 7fd6b55..dded141 100644 --- a/dlls/hnetcfg/apps.c +++ b/dlls/hnetcfg/apps.c @@ -108,6 +108,7 @@ static REFIID tid_id[] = &IID_INetFwAuthorizedApplication, &IID_INetFwAuthorizedApplications, &IID_INetFwMgr, + &IID_INetFwOpenPort, &IID_INetFwPolicy, &IID_INetFwProfile }; diff --git a/dlls/hnetcfg/hnetcfg_private.h b/dlls/hnetcfg/hnetcfg_private.h index 273c97b..1045347 100644 --- a/dlls/hnetcfg/hnetcfg_private.h +++ b/dlls/hnetcfg/hnetcfg_private.h @@ -21,6 +21,7 @@ enum type_id INetFwAuthorizedApplication_tid, INetFwAuthorizedApplications_tid, INetFwMgr_tid, + INetFwOpenPort_tid, INetFwPolicy_tid, INetFwProfile_tid, last_tid diff --git a/dlls/hnetcfg/port.c b/dlls/hnetcfg/port.c index 9c3babc..8468d30 100644 --- a/dlls/hnetcfg/port.c +++ b/dlls/hnetcfg/port.c @@ -95,8 +95,9 @@ static HRESULT WINAPI fw_port_GetTypeInfoCount( { fw_port *This = impl_from_INetFwOpenPort( iface ); - FIXME("%p %p\n", This, pctinfo); - return E_NOTIMPL; + TRACE("%p %p\n", This, pctinfo); + *pctinfo = 1; + return S_OK; } static HRESULT WINAPI fw_port_GetTypeInfo( @@ -107,8 +108,8 @@ static HRESULT WINAPI fw_port_GetTypeInfo( { fw_port *This = impl_from_INetFwOpenPort( iface ); - FIXME("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + TRACE("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo); + return get_typeinfo( INetFwOpenPort_tid, ppTInfo ); } static HRESULT WINAPI fw_port_GetIDsOfNames( @@ -120,9 +121,18 @@ static HRESULT WINAPI fw_port_GetIDsOfNames( DISPID *rgDispId ) { fw_port *This = impl_from_INetFwOpenPort( iface ); + ITypeInfo *typeinfo; + HRESULT hr; - FIXME("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); - return E_NOTIMPL; + TRACE("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); + + hr = get_typeinfo( INetFwOpenPort_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames( typeinfo, rgszNames, cNames, rgDispId ); + ITypeInfo_Release( typeinfo ); + } + return hr; } static HRESULT WINAPI fw_port_Invoke( @@ -137,10 +147,20 @@ static HRESULT WINAPI fw_port_Invoke( UINT *puArgErr ) { fw_port *This = impl_from_INetFwOpenPort( iface ); + ITypeInfo *typeinfo; + HRESULT hr; - FIXME("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid), + TRACE("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid), lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + + hr = get_typeinfo( INetFwOpenPort_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke( typeinfo, &This->INetFwOpenPort_iface, dispIdMember, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr ); + ITypeInfo_Release( typeinfo ); + } + return hr; } static HRESULT WINAPI fw_port_get_Name( -- 1.9.1