Alistair Leslie-Hughes : hnetcfg: Add typeinfo support to INetFwOpenPort.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Sep 17 14:07:09 CDT 2014
Module: wine
Branch: master
Commit: ab7a707136997453de5a7ed87828899c4ba0b0cf
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab7a707136997453de5a7ed87828899c4ba0b0cf
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Wed Sep 17 15:59:35 2014 +1000
hnetcfg: Add typeinfo support to INetFwOpenPort.
---
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(
More information about the wine-cvs
mailing list