From c42f38fd17a954337b77cc6aaea187107599a4cb Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Fri, 24 Jul 2015 10:34:15 +0200 Subject: [PATCH] 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 783b9cdcc45..842f335810d 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 06a8086305c..7776f5c3ea8 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 5d2c8115112..fd3ef77a881 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, -- 2.11.4.GIT