Bruno Jesus : wlanapi: Semi-stub WlanEnumInterfaces.

Alexandre Julliard julliard at winehq.org
Wed Feb 8 15:52:13 CST 2017


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

Author: Bruno Jesus <00cpxxx at gmail.com>
Date:   Tue Feb  7 16:05:40 2017 -0200

wlanapi: Semi-stub WlanEnumInterfaces.

Signed-off-by: Bruno Jesus <00cpxxx at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wlanapi/main.c          | 24 ++++++++++++++++++++++--
 dlls/wlanapi/tests/wlanapi.c |  5 -----
 2 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/dlls/wlanapi/main.c b/dlls/wlanapi/main.c
index 3fae765..6955245 100644
--- a/dlls/wlanapi/main.c
+++ b/dlls/wlanapi/main.c
@@ -63,8 +63,28 @@ static HANDLE handle_new(struct wine_wlan **entry)
 
 DWORD WINAPI WlanEnumInterfaces(HANDLE handle, void *reserved, WLAN_INTERFACE_INFO_LIST **interface_list)
 {
-    FIXME("(%p, %p, %p) stub\n", handle, reserved, interface_list);
-    return ERROR_CALL_NOT_IMPLEMENTED;
+    struct wine_wlan *wlan;
+    WLAN_INTERFACE_INFO_LIST *ret_list;
+
+    FIXME("(%p, %p, %p) semi-stub\n", handle, reserved, interface_list);
+
+    if (!handle || reserved || !interface_list)
+        return ERROR_INVALID_PARAMETER;
+
+    wlan = handle_index(handle);
+    if (!wlan)
+        return ERROR_INVALID_HANDLE;
+
+    ret_list = WlanAllocateMemory(sizeof(WLAN_INTERFACE_INFO_LIST));
+    if (!ret_list)
+        return ERROR_NOT_ENOUGH_MEMORY;
+
+    memset(&ret_list->InterfaceInfo[0], 0, sizeof(WLAN_INTERFACE_INFO));
+    ret_list->dwNumberOfItems = 0;
+    ret_list->dwIndex = 0; /* unused in this function */
+    *interface_list = ret_list;
+
+    return ERROR_SUCCESS;
 }
 
 DWORD WINAPI WlanCloseHandle(HANDLE handle, void *reserved)
diff --git a/dlls/wlanapi/tests/wlanapi.c b/dlls/wlanapi/tests/wlanapi.c
index e0c55f6..882aa82 100644
--- a/dlls/wlanapi/tests/wlanapi.c
+++ b/dlls/wlanapi/tests/wlanapi.c
@@ -134,24 +134,19 @@ static void test_WlanEnumInterfaces(void)
 
     /* invalid parameters */
     ret = WlanEnumInterfaces(NULL, NULL, &list);
-todo_wine
     ok(ret == ERROR_INVALID_PARAMETER, "Expected 87, got %d\n", ret);
     ok(list == bad_list, "list changed\n");
     ret = WlanEnumInterfaces(handle, &reserved, &list);
-todo_wine
     ok(ret == ERROR_INVALID_PARAMETER, "Expected 87, got %d\n", ret);
     ok(list == bad_list, "list changed\n");
     ret = WlanEnumInterfaces(handle, NULL, NULL);
-todo_wine
     ok(ret == ERROR_INVALID_PARAMETER, "Expected 87, got %d\n", ret);
     ok(list == bad_list, "list changed\n");
 
     /* good tests */
     list = NULL;
     ret = WlanEnumInterfaces(handle, NULL, &list);
-todo_wine
     ok(ret == ERROR_SUCCESS, "Expected 0, got %d\n", ret);
-todo_wine
     ok(list != NULL, "bad interface list\n");
     if (!list || !list->dwNumberOfItems)
     {




More information about the wine-cvs mailing list