#include #include #include #include #include "Common.h" #include #include #include #if _MSC_VER > 1000 #pragma once #endif struct BSSIDInfo { BYTE BSSID[6]; //mac WCHAR SSID[32]; int RSSI; int Channel; int Infastructure; int Auth; }; class CWifi { public: CWifi(); ~CWifi(); BOOL IsWiFiPresent(); BOOL RefreshBSSIDs(wstring &pAdapter); BOOL GetBSSIDs(wstring &pAdapter, struct BSSIDInfo *pDest, DWORD dwBufSizeBytes, DWORD &dwReturnedItems); BOOL SetAdHocConnection(wstring &pAdapter, LPSTR pSsid); BOOL SetConnectionMode(wstring &pAdapter, NDIS_802_11_NETWORK_INFRASTRUCTURE iMode, NDIS_802_11_AUTHENTICATION_MODE aMode); BOOL SetSsid(wstring &pAdapter, LPCSTR pSsid); BOOL GetBSSID(wstring &pAdapter, LPWSTR pSsid, struct BSSIDInfo *pDest); BOOL SetEncryptionKey(wstring &pAdapter, BYTE* pKey, UINT uKeyLen); BOOL WZCCheckAssociation(wstring &pAdapterName); BOOL WZCConfigureNetwork(wstring &pAdapter, struct BSSIDInfo *pBssid, BYTE* pKey, UINT uKeyLen); BOOL WZCConnectToPreferred(wstring &pAdapterName); // Nome senza GUID BOOL WZCConnectToOpen(wstring &pAdapterName); // Nome senza GUID BOOL GetWiFiAdapterName(wstring &pDest); // Torna il nome della scheda WiFi senza GUID BOOL Disassociate(wstring &pAdapter); private: BOOL WZCGetAdapterName(wstring &pDest); // Torna il nome in pDest senza GUID BOOL GetAdapters(wstring &pDest); // Torna la lista degli adattatori WiFi separati da virgola BOOL OpenDriver(); void CloseDriver(); CRITICAL_SECTION m_Lock; HANDLE m_hNDUIO; }; .