[PATCH] wlanapi: Semi-stub WlanEnumInterfaces

Bruno Jesus 00cpxxx at gmail.com
Tue Feb 7 12:05:40 CST 2017


Signed-off-by: Bruno Jesus <00cpxxx at gmail.com>
---
 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 ccca465..d3f7b85 100644
--- a/dlls/wlanapi/main.c
+++ b/dlls/wlanapi/main.c
@@ -64,8 +64,28 @@ 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 82007ee..f5c12cb 100644
--- a/dlls/wlanapi/tests/wlanapi.c
+++ b/dlls/wlanapi/tests/wlanapi.c
@@ -134,24 +134,19 @@ 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)
     {
-- 
2.9.3




More information about the wine-patches mailing list