私はwi-fiネットワークのリストを正常に反復し、利用可能なネットワークに関するフィードバックを提供するコードをいくつか持っています。ここに示した基本的な呼び出し...接続マネージャーからwi-fi接続ステータスを取得する
WlanOpenHandle(WLAN_API_VERSION, NULL, &dwVersion, &hSession);
PWLAN_INTERFACE_INFO_LIST pInterfaceInfoList = NULL;
WlanEnumInterfaces(hSession, NULL, &pInterfaceInfoList);
for(int i ...)
{
PWLAN_AVAILABLE_NETWORK_LIST pAvailableNetworkList = NULL;
WlanGetAvailableNetworkList(hSession, &interfaceGUID,
WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_ADHOC_PROFILES |
WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES,
NULL, &pAvailableNetworkList);
for(int j ...)
{
WLAN_AVAILABLE_NETWORK network = pAvailableNetworkList->Network[j];
:
}
}
このすべてが正常に動作し、内部ループ内で私は、このような経由など信号強度、セキュリティフラグ、として私は必要な属性のすべてにアクセスすることができますよネットワークデータ構造。
私が取得することはできませんよ一つのことは、このようななどAUTHENTICATINGやAUTHENTICATION_FAILED、などの接続状況に関する情報であるので、私は次のようにループ内で別のコールを導入しようとしています...
CM_CONNECTION_DETAILS connectionDetails;
memset(&connectionDetails, 0, sizeof(CM_CONNECTION_DETAILS));
connectionDetails.Version = CM_CURRENT_VERSION;
const char* ccp = reinterpret_cast<const char*>(network.dot11Ssid.ucSSID);
mbstowcs(connectionDetails.szName, &ccp[0], network.dot11Ssid.uSSIDLength);
DWORD dwCount = sizeof(CM_CONNECTION_DETAILS);
CM_RESULT cmr = CmGetConnectionDetailsByName(connectionDetails.szName,
&connectionDetails, &dwCount);
if (cmr == CMRE_SUCCESS)
{
:
}
CmGetConnectionDetailsByName()関数を呼び出すと、CM_CONNECTION_DETAILS構造体の内部の詳細(名前とバージョン)が正しいように見えますが、この関数はCMRE_INVALID_CONNECTIONとともに返され、構造体は移入されません。
このコールの成功例は見つかりませんでした(同じCMRE_INVALID_CONNECTIONコードを返すコールへの参照が2つしかありません)。
誰でも、コールを正常に使用した経験がありますか、ネットワークの接続状態を知る良い方法を示唆していますか(つまり、認証が進行中か、認証が失敗した場合など)
[Iは、Visual Studio 2013 C++(ネイティブのWindowsアプリではなく、MFC)を使用しています、目標は、Windowsコンパクト2013上で実行されている、32ビットおよびUnicodeである]