⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wirelessdev.cpp

📁 Sample of work with wireless devices in Windows Mobile
💻 CPP
字号:
typedef enum _DEVTYPE
{
   DEV_WIFI = 1,
   DEV_PHONE,
   DEV_BLUETOOTH,
} DEVTYPE;

struct RDD 
{
   RDD() : pszDeviceName(NULL), pNext(NULL), pszDisplayName(NULL) {}
   ~RDD() { LocalFree(pszDeviceName); LocalFree(pszDisplayName); }
   LPTSTR   pszDeviceName;  
   LPTSTR   pszDisplayName; 
   DWORD    dwState;        
   DWORD    dwDesired;      
   DEVTYPE    DeviceType;         
   RDD * pNext;    
}; 


typedef HRESULT (*TPChangeRadioState)(RDD* pDev, DWORD dwState, SAVEACTION sa); //273
typedef HRESULT (*TPGetWirelessState)(BOOL *bState); //277
typedef HRESULT (*TPGetWirelessDevices)(RDD **pDevices, DWORD dwFlags); //276
typedef HRESULT (*TPChangeWirelessState)(BOOL bOn); //278
typedef void (*TPFreeDeviceList)(RDD *pRoot); //280


int setwifistate(int state)
{

   BOOL bState=false;
HRESULT res=E_FAIL;
TPGetWirelessDevices pTPGetWirelessDevices;
TPFreeDeviceList     pTPFreeDeviceList;
TPChangeRadioState   pTPChangeRadioState;
TPGetWirelessState   pTPGetWirelessState;
TPChangeWirelessState pTPChangeWirelessState;


HMODULE m=LoadLibrary(L"ossvcs.dll");

if(m)
{
 
 
 pTPGetWirelessDevices=(TPGetWirelessDevices)GetProcAddress(m,MAKEINTRESOURCE(276));
 pTPFreeDeviceList=(TPFreeDeviceList)GetProcAddress(m,MAKEINTRESOURCE(280));
 pTPChangeRadioState=(TPChangeRadioState)GetProcAddress(m,MAKEINTRESOURCE(273));
 pTPGetWirelessState=(TPGetWirelessState)GetProcAddress(m,MAKEINTRESOURCE(277));
 pTPChangeWirelessState=(TPChangeWirelessState)GetProcAddress(m,MAKEINTRESOURCE(278));
 
 
 RDD * pDevice = NULL;
 RDD * pTD;
 
 if(pTPChangeWirelessState && pTPGetWirelessState && pTPGetWirelessDevices && pTPFreeDeviceList && pTPChangeRadioState)
 {
  
  if(state==1)
  {
   pTPGetWirelessState(&bState);
   if(bState==false)
   pTPChangeWirelessState(true);
   
   
  }
  
  
  
  res=pTPGetWirelessDevices(&pDevice, 0);
  
  if (pDevice)
  {
   
   pTD = pDevice;
   
   
   while (pTD)
   { 
    
    switch (pTD->DeviceType)
    {
     
    case DEV_WIFI:

     
     if (pTD->dwState!=state)
     { 
      res = pTPChangeRadioState(pTD, state , 2);
     }
     else
      res=S_OK;
     break;
     
     
    default:
     break;
     
    }
    
    pTD = pTD->pNext;
    
   }
   
   pTPFreeDeviceList(pDevice);
  }
  
 }
 
 FreeLibrary(m);
 
}


return res==S_OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -