Module: wine Branch: master Commit: 4619b529cf26ac923bca7b2a88a4548bd9f50d09 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4619b529cf26ac923bca7b2a88...
Author: Hans Leidekker hans@codeweavers.com Date: Wed Sep 26 09:37:23 2012 +0200
hnetcfg: Add IDispatch support for INetFwMgr, INetFwPolicy and INetFwProfile.
---
dlls/hnetcfg/apps.c | 5 ++++- dlls/hnetcfg/hnetcfg_private.h | 3 +++ dlls/hnetcfg/manager.c | 36 ++++++++++++++++++++++++++++-------- dlls/hnetcfg/policy.c | 36 ++++++++++++++++++++++++++++-------- dlls/hnetcfg/profile.c | 36 ++++++++++++++++++++++++++++-------- 5 files changed, 91 insertions(+), 25 deletions(-)
diff --git a/dlls/hnetcfg/apps.c b/dlls/hnetcfg/apps.c index 0418865..38c0d00 100644 --- a/dlls/hnetcfg/apps.c +++ b/dlls/hnetcfg/apps.c @@ -106,7 +106,10 @@ static ITypeInfo *typeinfo[last_tid]; static REFIID tid_id[] = { &IID_INetFwAuthorizedApplication, - &IID_INetFwAuthorizedApplications + &IID_INetFwAuthorizedApplications, + &IID_INetFwMgr, + &IID_INetFwPolicy, + &IID_INetFwProfile };
HRESULT get_typeinfo( enum type_id tid, ITypeInfo **ret ) diff --git a/dlls/hnetcfg/hnetcfg_private.h b/dlls/hnetcfg/hnetcfg_private.h index bd92392..05b0aee 100644 --- a/dlls/hnetcfg/hnetcfg_private.h +++ b/dlls/hnetcfg/hnetcfg_private.h @@ -20,6 +20,9 @@ enum type_id { INetFwAuthorizedApplication_tid, INetFwAuthorizedApplications_tid, + INetFwMgr_tid, + INetFwPolicy_tid, + INetFwProfile_tid, last_tid };
diff --git a/dlls/hnetcfg/manager.c b/dlls/hnetcfg/manager.c index 6192c2d..1d548b4 100644 --- a/dlls/hnetcfg/manager.c +++ b/dlls/hnetcfg/manager.c @@ -96,8 +96,9 @@ static HRESULT WINAPI fw_manager_GetTypeInfoCount( { fw_manager *This = impl_from_INetFwMgr( 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_manager_GetTypeInfo( @@ -108,8 +109,8 @@ static HRESULT WINAPI fw_manager_GetTypeInfo( { fw_manager *This = impl_from_INetFwMgr( 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( INetFwMgr_tid, ppTInfo ); }
static HRESULT WINAPI fw_manager_GetIDsOfNames( @@ -121,9 +122,18 @@ static HRESULT WINAPI fw_manager_GetIDsOfNames( DISPID *rgDispId ) { fw_manager *This = impl_from_INetFwMgr( 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( INetFwMgr_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames( typeinfo, rgszNames, cNames, rgDispId ); + ITypeInfo_Release( typeinfo ); + } + return hr; }
static HRESULT WINAPI fw_manager_Invoke( @@ -138,10 +148,20 @@ static HRESULT WINAPI fw_manager_Invoke( UINT *puArgErr ) { fw_manager *This = impl_from_INetFwMgr( 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( INetFwMgr_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke( typeinfo, &This->INetFwMgr_iface, dispIdMember, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr ); + ITypeInfo_Release( typeinfo ); + } + return hr; }
static HRESULT WINAPI fw_manager_get_LocalPolicy( diff --git a/dlls/hnetcfg/policy.c b/dlls/hnetcfg/policy.c index dd5a1fe..e340ffb 100644 --- a/dlls/hnetcfg/policy.c +++ b/dlls/hnetcfg/policy.c @@ -95,8 +95,9 @@ static HRESULT WINAPI fw_policy_GetTypeInfoCount( { fw_policy *This = impl_from_INetFwPolicy( 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_policy_GetTypeInfo( @@ -107,8 +108,8 @@ static HRESULT WINAPI fw_policy_GetTypeInfo( { fw_policy *This = impl_from_INetFwPolicy( 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( INetFwPolicy_tid, ppTInfo ); }
static HRESULT WINAPI fw_policy_GetIDsOfNames( @@ -120,9 +121,18 @@ static HRESULT WINAPI fw_policy_GetIDsOfNames( DISPID *rgDispId ) { fw_policy *This = impl_from_INetFwPolicy( 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( INetFwPolicy_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames( typeinfo, rgszNames, cNames, rgDispId ); + ITypeInfo_Release( typeinfo ); + } + return hr; }
static HRESULT WINAPI fw_policy_Invoke( @@ -137,10 +147,20 @@ static HRESULT WINAPI fw_policy_Invoke( UINT *puArgErr ) { fw_policy *This = impl_from_INetFwPolicy( 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( INetFwPolicy_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke( typeinfo, &This->INetFwPolicy_iface, dispIdMember, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr ); + ITypeInfo_Release( typeinfo ); + } + return hr; }
static HRESULT WINAPI fw_policy_get_CurrentProfile( diff --git a/dlls/hnetcfg/profile.c b/dlls/hnetcfg/profile.c index f1d724d..835e82e 100644 --- a/dlls/hnetcfg/profile.c +++ b/dlls/hnetcfg/profile.c @@ -95,8 +95,9 @@ static HRESULT WINAPI fw_profile_GetTypeInfoCount( { fw_profile *This = impl_from_INetFwProfile( 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_profile_GetTypeInfo( @@ -107,8 +108,8 @@ static HRESULT WINAPI fw_profile_GetTypeInfo( { fw_profile *This = impl_from_INetFwProfile( 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( INetFwProfile_tid, ppTInfo ); }
static HRESULT WINAPI fw_profile_GetIDsOfNames( @@ -120,9 +121,18 @@ static HRESULT WINAPI fw_profile_GetIDsOfNames( DISPID *rgDispId ) { fw_profile *This = impl_from_INetFwProfile( 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( INetFwProfile_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames( typeinfo, rgszNames, cNames, rgDispId ); + ITypeInfo_Release( typeinfo ); + } + return hr; }
static HRESULT WINAPI fw_profile_Invoke( @@ -137,10 +147,20 @@ static HRESULT WINAPI fw_profile_Invoke( UINT *puArgErr ) { fw_profile *This = impl_from_INetFwProfile( 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( INetFwProfile_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke( typeinfo, &This->INetFwProfile_iface, dispIdMember, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr ); + ITypeInfo_Release( typeinfo ); + } + return hr; }
static HRESULT WINAPI fw_profile_get_Type(