Hans Leidekker : netprofm: Create a connection point object for INetworkCostManagerEvents.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jul 28 13:30:06 CDT 2015


Module: wine
Branch: master
Commit: c42f38fd17a954337b77cc6aaea187107599a4cb
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c42f38fd17a954337b77cc6aaea187107599a4cb

Author: Hans Leidekker <hans at 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,




More information about the wine-cvs mailing list