Windows XP SP3から標準搭載される予定の、Wireless LAN APIを使ってみています。Windows XP SP3でなくても、SP2ならばKB918997をインストールすれば使えます。
まず、Windows側で無線LANを管理していないといけないので、サードパーティ製ツールで接続管理をしている場合は、Windows側で管理するようにします。
それから、Windows Zero Configurationを有効にする必要がありますので、起動していなかったらサービスを見つけて立ち上げましょう。
とりあえず、Wireless LANのNIC一覧を取得するコードを書いてみました。
#include <windows.h> #include <iostream> #include <Wlanapi.h> #pragma comment(lib, "wlanapi.lib") int main(void) { unsigned i; DWORD err, ver; HANDLE hClient; WLAN_INTERFACE_INFO_LIST *ifList; if((err = WlanOpenHandle(WLAN_API_MAKE_VERSION(1, 0), NULL, &ver, &hClient)) != ERROR_SUCCESS) { std::cerr << "error: WlanOpenHandle()" << std::endl; return 1; } // get interface list WlanEnumInterfaces(hClient, NULL, &ifList); std::cout << ifList->dwNumberOfItems << " interfaces found" << std::endl; for(i = 0; i < ifList->dwNumberOfItems; ++i) { WLAN_INTERFACE_INFO wii = ifList->InterfaceInfo[i]; std::wcout << wii.strInterfaceDescription << std::endl; } WlanFreeMemory(ifList); WlanCloseHandle(hClient, NULL); return 0; }