VC++用wlanapi进展WIFI网络的获取与连接时,wlansetprofile和wlanConnect函数的使用

VC++用wlanapi进行WIFI网络的获取与连接时,wlansetprofile和wlanConnect函数的使用
本人近接着手于实现VC++调用wlanapi,实现WIFI网络的扫描获取以及选择其中一个进行连接,但是始终达不到所想要的效果,因此在这里求高人指点.关于wlanConnect与wlanSetProfile这两个的函数的使用方法,特别是后一个,以及wlanSetProfile函数的,关于wifi加密认证方式的xml文件的细则,就是wlanSetProfile函数的中第四个参数:strProfileXml
------解决方案--------------------
我也在找这个内容
WlanSetProfile 这个方法如何创建一个新的wifi热点呢?
不过我大概知道第4个参数是这样的
strProfileXml = "<?xml version=\"1.0\"?><WLANProfile xmlns=\"http://www.microsoft.com/networking/WLAN/profile/v1\"><name>11111</name><SSIDConfig><SSID><name>11111</name></SSID></SSIDConfig><connectionType>ESS</connectionType><MSM><security><authEncryption><authentication>open</authentication><encryption>WEP</encryption><useOneX>false</useOneX></authEncryption><sharedKey><keyType>networkKey</keyType><protected>false</protected><keyMaterial>11111</keyMaterial></sharedKey><keyIndex>0</keyIndex></security></MSM></WLANProfile>";

------解决方案--------------------
贴代码了,好害怕啊
头文件
#ifndef _WIFI_SEARCH_CONNECTION_H_
#define _WIFI_SEARCH_CONNECTION_H_

#define WM_WLAN_NOTIFICATION WM_USER+200 

#define DOT11_SSID_MAX_LENGTH 32
#define WLAN_MAX_PHY_TYPE_NUMBER 8
#define WLAN_MAX_NAME_LENGTH 256

class WifiConnection
{
public:
WifiConnection();

~WifiConnection();

private:
typedef enum _WLAN_INTERFACE_STATE
{
wlan_interface_state_not_ready = 0,
wlan_interface_state_connected = 1,
wlan_interface_state_ad_hoc_network_formed = 2,
wlan_interface_state_disconnecting = 3,
wlan_interface_state_disconnected = 4,
wlan_interface_state_associating = 5,
wlan_interface_state_discovering = 6,
wlan_interface_state_authenticating =7
}WLAN_INTERFACE_STATE, *PWLAN_INTERFACE_STATE;

typedef struct _WLAN_INTERFACE_INFO
{
GUID InterfaceGuid;
WCHAR strInterfaceDescription[256];
WLAN_INTERFACE_STATE isState;
}WLAN_INTERFACE_INFO,*PWLAN_INTERFACE_INFO;

typedef struct _WLAN_INTERFACE_INFO_LIST
{
DWORD dwNumberOfItems;
DWORD dwIndex;
WLAN_INTERFACE_INFO InterfaceInfo[];
}WLAN_INTERFACE_INFO_LIST, *PWLAN_INTERFACE_INFO_LIST;

typedef struct _DOT11_SSID 
{
ULONG uSSIDLength;
UCHAR ucSSID[DOT11_SSID_MAX_LENGTH];
}DOT11_SSID, *PDOT11_SSID;

typedef enum _DOT11_BSS_TYPE 
{
dot11_BSS_type_infrastructure   = 1,
dot11_BSS_type_independent      = 2,
dot11_BSS_type_any              = 3 
}DOT11_BSS_TYPE, *PDOT11_BSS_TYPE;

typedef DWORD WLAN_REASON_CODE, *PWLAN_REASON_CODE;

typedef enum _DOT11_PHY_TYPE 
{
dot11_phy_type_unknown      = 0,
dot11_phy_type_any          = 0,
dot11_phy_type_fhss         = 1,
dot11_phy_type_dsss         = 2,
dot11_phy_type_irbaseband   = 3,
dot11_phy_type_ofdm         = 4,
dot11_phy_type_hrdsss       = 5,
dot11_phy_type_erp          = 6,
dot11_phy_type_ht           = 7,
dot11_phy_type_IHV_start    = 0x80000000,
dot11_phy_type_IHV_end      = 0xffffffff 
}DOT11_PHY_TYPE, *PDOT11_PHY_TYPE;

typedef ULONG WLAN_SIGNAL_QUALITY, *PWLAN_SIGNAL_QUALITY;

typedef enum _DOT11_AUTH_ALGORITHM 
{
  DOT11_AUTH_ALGO_80211_OPEN         = 1,
  DOT11_AUTH_ALGO_80211_SHARED_KEY   = 2,
  DOT11_AUTH_ALGO_WPA                = 3,
  DOT11_AUTH_ALGO_WPA_PSK            = 4,
  DOT11_AUTH_ALGO_WPA_NONE           = 5,
  DOT11_AUTH_ALGO_RSNA               = 6,
  DOT11_AUTH_ALGO_RSNA_PSK           = 7,
  DOT11_AUTH_ALGO_IHV_START          = 0x80000000,
  DOT11_AUTH_ALGO_IHV_END            = 0xffffffff
} DOT11_AUTH_ALGORITHM, *PDOT11_AUTH_ALGORITHM;

typedef enum _DOT11_CIPHER_ALGORITHM 
{
  DOT11_CIPHER_ALGO_NONE            = 0x00,
  DOT11_CIPHER_ALGO_WEP40           = 0x01,