Alistair Leslie-Hughes : dpnet: Show SetSP adds a component.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Sep 26 16:35:49 CDT 2014


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

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Fri Sep 26 13:28:53 2014 +1000

dpnet: Show SetSP adds a component.

---

 dlls/dpnet/address.c       |  3 +++
 dlls/dpnet/tests/address.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/dlls/dpnet/address.c b/dlls/dpnet/address.c
index 6add842..2cea1ea 100644
--- a/dlls/dpnet/address.c
+++ b/dlls/dpnet/address.c
@@ -259,6 +259,9 @@ static HRESULT WINAPI IDirectPlay8AddressImpl_SetSP(IDirectPlay8Address *iface,
 
     This->init = TRUE;
     This->SP_guid = *pguidSP;
+
+    IDirectPlay8Address_AddComponent(iface, DPNA_KEY_PROVIDER, &This->SP_guid, sizeof(GUID), DPNA_DATATYPE_GUID);
+
     return DPN_OK;
 }
 
diff --git a/dlls/dpnet/tests/address.c b/dlls/dpnet/tests/address.c
index 2d38d8c..4d825bb 100644
--- a/dlls/dpnet/tests/address.c
+++ b/dlls/dpnet/tests/address.c
@@ -171,6 +171,49 @@ static void address_addcomponents(void)
     }
 }
 
+static void address_setsp(void)
+{
+    HRESULT hr;
+    IDirectPlay8Address *localaddr = NULL;
+
+    hr = CoCreateInstance( &CLSID_DirectPlay8Address, NULL, CLSCTX_ALL, &IID_IDirectPlay8Address, (LPVOID*)&localaddr);
+    ok(hr == S_OK, "Failed to create IDirectPlay8Address object\n");
+    if(SUCCEEDED(hr))
+    {
+        DWORD components;
+        WCHAR *name;
+        GUID  guid = IID_Random;
+        DWORD type;
+        DWORD namelen = 0;
+        DWORD bufflen = 0;
+
+        hr = IDirectPlay8Address_GetNumComponents(localaddr, &components);
+        ok(hr == S_OK, "got 0x%08x\n", hr);
+        ok(components == 0, "components=%d", components);
+
+        hr = IDirectPlay8Address_SetSP(localaddr, &CLSID_DP8SP_TCPIP);
+        ok(hr == S_OK, "got 0x%08x\n", hr);
+
+        hr = IDirectPlay8Address_GetNumComponents(localaddr, &components);
+        ok(hr == S_OK, "got 0x%08x\n", hr);
+        ok(components == 1, "components=%d", components);
+
+        hr = IDirectPlay8Address_GetComponentByIndex(localaddr, 0, NULL, &namelen, NULL, &bufflen, &type);
+        todo_wine ok(hr == DPNERR_BUFFERTOOSMALL, "got 0x%08x\n", hr);
+
+        name =  HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, namelen * sizeof(WCHAR));
+
+        hr = IDirectPlay8Address_GetComponentByIndex(localaddr, 0, name, &namelen, (void*)&guid, &bufflen, &type);
+        ok(hr == S_OK, "got 0x%08x\n", hr);
+        todo_wine ok(type == DPNA_DATATYPE_GUID, "wrong datatype: %d\n", type);
+        todo_wine ok(IsEqualGUID(&guid, &CLSID_DP8SP_TCPIP), "wrong guid\n");
+
+        HeapFree(GetProcessHeap(), 0, name);
+
+        IDirectPlay8Address_Release(localaddr);
+    }
+}
+
 START_TEST(address)
 {
     HRESULT hr;
@@ -182,6 +225,7 @@ START_TEST(address)
 
     create_directplay_address();
     address_addcomponents();
+    address_setsp();
 
     CoUninitialize();
 }




More information about the wine-cvs mailing list