[PATCH] netprofm: Create a connection point object for INetworkEvents.
Gijs Vermeulen
gijsvrm at gmail.com
Tue Nov 3 11:32:34 CST 2020
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50054
Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
---
dlls/netprofm/list.c | 6 ++++++
dlls/netprofm/tests/list.c | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/dlls/netprofm/list.c b/dlls/netprofm/list.c
index def2aa6cf67..f9b9e2ea312 100644
--- a/dlls/netprofm/list.c
+++ b/dlls/netprofm/list.c
@@ -84,6 +84,7 @@ struct list_manager
struct connection_point list_mgr_cp;
struct connection_point cost_mgr_cp;
struct connection_point conn_mgr_cp;
+ struct connection_point events_cp;
};
struct sink_entry
@@ -1110,6 +1111,7 @@ static ULONG WINAPI list_manager_Release(
TRACE( "destroying %p\n", mgr );
+ connection_point_release( &mgr->events_cp );
connection_point_release( &mgr->conn_mgr_cp );
connection_point_release( &mgr->cost_mgr_cp );
connection_point_release( &mgr->list_mgr_cp );
@@ -1394,6 +1396,8 @@ static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint(IConnectionPo
ret = &This->cost_mgr_cp;
else if (IsEqualGUID( riid, &IID_INetworkConnectionEvents ))
ret = &This->conn_mgr_cp;
+ else if (IsEqualGUID( riid, &IID_INetworkEvents))
+ ret = &This->events_cp;
else
{
FIXME( "interface %s not implemented\n", debugstr_guid(riid) );
@@ -1784,6 +1788,8 @@ HRESULT list_manager_create( void **obj )
&mgr->IConnectionPointContainer_iface);
connection_point_init( &mgr->conn_mgr_cp, &IID_INetworkConnectionEvents,
&mgr->IConnectionPointContainer_iface );
+ connection_point_init( &mgr->events_cp, &IID_INetworkEvents,
+ &mgr->IConnectionPointContainer_iface );
*obj = &mgr->INetworkListManager_iface;
TRACE( "returning iface %p\n", *obj );
diff --git a/dlls/netprofm/tests/list.c b/dlls/netprofm/tests/list.c
index 0a1f854c00b..ff7755162cc 100644
--- a/dlls/netprofm/tests/list.c
+++ b/dlls/netprofm/tests/list.c
@@ -331,6 +331,10 @@ static void test_INetworkListManager( void )
hr = IConnectionPointContainer_FindConnectionPoint( cpc, &IID_INetworkConnectionEvents, &pt );
ok( hr == S_OK || hr == CO_E_FAILEDTOIMPERSONATE, "got %08x\n", hr );
if (hr == S_OK) IConnectionPoint_Release( pt );
+
+ hr = IConnectionPointContainer_FindConnectionPoint( cpc, &IID_INetworkEvents, &pt );
+ ok( hr == S_OK, "got %08x\n", hr );
+ IConnectionPoint_Release( pt );
IConnectionPointContainer_Release( cpc );
network_iter = NULL;
--
2.29.2
More information about the wine-devel
mailing list