Module: wine Branch: master Commit: 91835d94e9ee5cfc1e29f7354cd331f19d6c3788 URL: http://source.winehq.org/git/wine.git/?a=commit;h=91835d94e9ee5cfc1e29f7354c...
Author: Hans Leidekker hans@codeweavers.com Date: Wed Sep 2 10:42:29 2015 +0200
netprofm: Implement INetworkConnection::GetNetwork.
---
dlls/netprofm/list.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/dlls/netprofm/list.c b/dlls/netprofm/list.c index 6afe13e..0aaeff8 100644 --- a/dlls/netprofm/list.c +++ b/dlls/netprofm/list.c @@ -67,6 +67,7 @@ struct connection LONG refs; struct list entry; GUID id; + INetwork *network; VARIANT_BOOL connected_to_internet; VARIANT_BOOL connected; }; @@ -934,6 +935,7 @@ static ULONG WINAPI connection_Release(
if (!(refs = InterlockedDecrement( &connection->refs ))) { + INetwork_Release( connection->network ); list_remove( &connection->entry ); heap_free( connection ); } @@ -989,8 +991,13 @@ static HRESULT WINAPI connection_GetNetwork( INetworkConnection *iface, INetwork **ppNetwork ) { - FIXME( "%p, %p\n", iface, ppNetwork ); - return E_NOTIMPL; + struct connection *connection = impl_from_INetworkConnection( iface ); + + TRACE( "%p, %p\n", iface, ppNetwork ); + + *ppNetwork = connection->network; + INetwork_AddRef( *ppNetwork ); + return S_OK; }
static HRESULT WINAPI connection_get_IsConnectedToInternet( @@ -1088,6 +1095,7 @@ static struct connection *create_connection( const GUID *id ) ret->INetworkConnection_iface.lpVtbl = &connection_vtbl; ret->refs = 1; ret->id = *id; + ret->network = NULL; ret->connected = VARIANT_FALSE; ret->connected_to_internet = VARIANT_FALSE; list_init( &ret->entry ); @@ -1139,6 +1147,9 @@ static void init_networks( struct list_manager *mgr ) connection->connected_to_internet = VARIANT_TRUE; }
+ connection->network = &network->INetwork_iface; + INetwork_AddRef( connection->network ); + list_add_tail( &mgr->networks, &network->entry ); list_add_tail( &mgr->connections, &connection->entry ); }