Module: wine Branch: master Commit: c42f38fd17a954337b77cc6aaea187107599a4cb URL: http://source.winehq.org/git/wine.git/?a=commit;h=c42f38fd17a954337b77cc6aae...
Author: Hans Leidekker hans@codeweavers.com Date: Fri Jul 24 10:34:15 2015 +0200
netprofm: Create a connection point object for INetworkCostManagerEvents.
---
dlls/netprofm/list.c | 3 ++- dlls/netprofm/tests/list.c | 6 +++++- include/netlistmgr.idl | 17 +++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/netprofm/list.c b/dlls/netprofm/list.c index 783b9cd..842f335 100644 --- a/dlls/netprofm/list.c +++ b/dlls/netprofm/list.c @@ -489,7 +489,8 @@ static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint(IConnectionPo if (!riid || !cp) return E_POINTER;
- if (IsEqualGUID( riid, &IID_INetworkListManagerEvents )) + if (IsEqualGUID( riid, &IID_INetworkListManagerEvents ) || + IsEqualGUID( riid, &IID_INetworkCostManagerEvents )) return connection_point_create( cp, riid, iface );
FIXME( "interface %s not implemented\n", debugstr_guid(riid) ); diff --git a/dlls/netprofm/tests/list.c b/dlls/netprofm/tests/list.c index 06a8086..7776f5c 100644 --- a/dlls/netprofm/tests/list.c +++ b/dlls/netprofm/tests/list.c @@ -103,8 +103,12 @@ static void test_INetworkListManager( void ) ok( hr == S_OK, "got %08x\n", hr ); ok( !memcmp( &iid, &IID_INetworkListManagerEvents, sizeof(iid) ), "Expected iid to be IID_INetworkListManagerEvents\n" ); - IConnectionPoint_Release( pt ); + + hr = IConnectionPointContainer_FindConnectionPoint( cpc, &IID_INetworkCostManagerEvents, &pt ); + ok( hr == S_OK || hr == CO_E_FAILEDTOIMPERSONATE, "got %08x\n", hr ); + if (hr == S_OK) IConnectionPoint_Release( pt ); + IConnectionPointContainer_Release( cpc ); INetworkListManager_Release( mgr ); } diff --git a/include/netlistmgr.idl b/include/netlistmgr.idl index 5d2c811..fd3ef77 100644 --- a/include/netlistmgr.idl +++ b/include/netlistmgr.idl @@ -68,6 +68,8 @@ typedef struct NLM_SOCKADDR BYTE data[128]; } NLM_SOCKADDR;
+const UINT32 NLM_UNKNOWN_DATAPLAN_STATUS = 0xffffffff; + typedef struct NLM_USAGE_DATA { DWORD UsageInMegabytes; @@ -108,6 +110,21 @@ interface INetworkCostManager : IUnknown }
[ + object, + pointer_default(unique), + uuid(dcb00009-570f-4a9b-8d69-199fdba5723b) +] +interface INetworkCostManagerEvents : IUnknown +{ + HRESULT CostChanged( + [in] DWORD newCost, + [in, unique] NLM_SOCKADDR *pDestAddr); + + HRESULT DataPlanStatusChanged( + [in, unique] NLM_SOCKADDR *pDestAddr); +} + +[ dual, object, oleautomation,