﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-南山狒狒-随笔分类-WinCE</title><link>http://www.cppblog.com/Jrong/category/9940.html</link><description>我梦江南好</description><language>zh-cn</language><lastBuildDate>Mon, 23 Mar 2009 02:38:26 GMT</lastBuildDate><pubDate>Mon, 23 Mar 2009 02:38:26 GMT</pubDate><ttl>60</ttl><item><title>[转]也谈EVC工程移植</title><link>http://www.cppblog.com/Jrong/archive/2009/03/20/77255.html</link><dc:creator>iJrong</dc:creator><author>iJrong</author><pubDate>Thu, 19 Mar 2009 16:19:00 GMT</pubDate><guid>http://www.cppblog.com/Jrong/archive/2009/03/20/77255.html</guid><wfw:comment>http://www.cppblog.com/Jrong/comments/77255.html</wfw:comment><comments>http://www.cppblog.com/Jrong/archive/2009/03/20/77255.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Jrong/comments/commentRss/77255.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Jrong/services/trackbacks/77255.html</trackback:ping><description><![CDATA[<p>原文：<a href="http://www.cnblogs.com/mengshu-lbq/archive/2007/03/19/675882.html">http://www.cnblogs.com/mengshu-lbq/archive/2007/03/19/675882.html</a></p>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文是针对作者本人的一个具体的移植项目，将碰到的所有问题列出来，并给出具体的解决方法。由于是一个具体的项目，因此不能把所有的EVC工程移植问题囊括进来。所以，在移植项目前，建议还是看看以下的文章：<br><a style="COLOR: #0000ff" href="http://www.microsoft.com/china/MSDN/library/Mobility/embedded/migrateappvs2k5.mspx?mfr=true" target=_blank><u>循序渐进：将 eMbedded Visual C++ 应用程序迁移到 Visual Studio 2005</u></a><br><a style="COLOR: #0000ff" href="http://msdn2.microsoft.com/zh-cn/library/ms228806(VS.80).aspx" target=_blank><u>eMbedded Visual C++ 到 Visual Studio 2005 升级向导</u></a>(注意其最后一句话：默认情况下，Embedded Visual C++ 4.0 版会将 MFC Pocket PC 应用程序的对话框样式(Border)设置为 DS_MODALFRAME。MFC 8.0 不支持此样式。&nbsp;—— 应改为Thin，如果不改的话，窗口就无法弹出。)<br><a style="COLOR: #0000ff" href="http://msdn2.microsoft.com/zh-cn/library/ms228698(VS.80).aspx" target=_blank><u>从 eVC 移植所带来的已知问题</u></a><br><span><a style="COLOR: #0000ff" href="http://msdn2.microsoft.com/en-us/library/ms838254.aspx" target=_blank><span><u>Migrating Microsoft eMbedded Visual C++ Projects to Visual Studio 2005<br></u></span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开发环境：</span><span>Windows XP +SP2</span><span>，</span><span> Visual Studio 2005 professional, Windows Mobile 6.0 Professional SDK。<br>注：(1)</span><span>对于</span><span>Windows Mobile 5.0 SDK </span><span>开发的程序在</span><span>Windows Mobile 6.0 </span>下也能运行，而且不需要对程序进行任何的修改。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)由于有些错误，是环境配置问题，所以在Debug/Resease模式下，都需要进行修改，以下错误中，如果是这类错误，都在标号后面写着&#8220;Resealse 模式也需要改&#8221;，当天切换到别的SDK下，如Windows Mobile 5.0 SDK，也需要修改。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以下是针对Debug模式下的：<br><span style="FONT-SIZE: 24pt">1、</span>StdAfx.cpp&nbsp;(Resealse 模式也需要改) <br>编译错误：D:\Program Files\Microsoft Visual Studio 8\VC\ce\atlmfc\include\afxver_.h(77) : fatal error C1189: #error :&nbsp;Please use the /MD switch for _AFXDLL builds<br><span style="COLOR: #0000ff">解决方法：</span>右击工程名，打开Project properties对话框，切换到C/C++-&gt;Code generation页，将Runtime Libarary 设置成&#8220;Multi-threaded DLL(/MD)&#8221;，即可解决此问题。<br><span style="FONT-SIZE: 24pt">2、</span>编译错误：error C2065: 'i' : undeclared identifier<br>原因：是由于存在以下的代码段：<br>for <span style="COLOR: #0000ff">(int i = 0</span>; i &lt; MAX_LEN; i ++)<br>{<br>&nbsp;&nbsp; //&#8230;&#8230;<br>}<br>for (i = 0; i &lt; MAX_NUM; i ++)<br>{<br>&nbsp;&nbsp;&nbsp; //&#8230;&#8230;<br>}<br>对于evc离开循环后，循环变量仍然有效，并且仍可以使用，但是在VS2005下是不行的，由此可见VS2005对变量的定义与审查更为严格，还有就是对数组越界问题也比EVC来的强。<br><span style="COLOR: #0000ff">解决方法：(不能完全相信编译器，也不能把所有的语法检查都丢给编译器) </span><br>int i = 0;<br>for (i = 0; i &lt; MAX_LEN; i ++)<br>{<br>&nbsp;&nbsp;&nbsp; //&#8230;&#8230;<br>}<br>for (i = 0; i &lt; MAX_NUM; i ++)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; //&#8230;&#8230;<br>}<br><span style="FONT-SIZE: 24pt">3、</span>error C2664: '_wcsnicmp' : cannot convert parameter 2 from 'LPWORD' to 'const wchar_t *'<br>&nbsp;需要<span style="COLOR: #0000ff">强制类型转换</span>。<br><span style="FONT-SIZE: 24pt">4、</span>error C2061: syntax error : identifier 'HELPINFO'<br>自己<span style="COLOR: #0000ff">增加HELPINFO的类型</span>，增加头文件<a title="Thanks John Belli(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=313980&amp;SiteID=1)" href="http://files.cnblogs.com/mengshu-lbq/HelpInfo.rar" target=_blank><u><font color=#0000ff>HelpInfo.h</font></u></a>。<br><span style="FONT-SIZE: 24pt">5、</span>error C2146: syntax error : missing ';' before identifier 'm_wndCommandBar' <br>原因：在Windows Mobile 5.0/6.0 下CCeCommandBar类被CCommandBar替换<br><span style="COLOR: #0000ff">解决方法：</span><br>CCeCommandBar&nbsp;&nbsp; m_wndCommandBar; ---- 〉CCommandBar&nbsp;&nbsp; m_wndCommandBar;<br><span style="FONT-SIZE: 24pt">6、</span>error C2065: 'NUM_TOOL_TIPS' : undeclared identifier<br><span style="COLOR: #0000ff">解决：</span><br><span style="COLOR: #ff0000">//</span>#if defined(_WIN32_WCE_PSPC) &amp;&amp; (_WIN32_WCE &gt;= 212)<br>#define NUM_TOOL_TIPS 8<br><span style="COLOR: #ff0000">//</span>#endif<br><span style="FONT-SIZE: 24pt">7、</span>error C3861: 'ON_WM_HELPINFO': identifier not found<br>同 4 <br><span style="FONT-SIZE: 24pt">8、</span>error C2440: 'static_cast' : cannot convert from 'void (__cdecl CMyAppView::* )(void)' to 'LRESULT (__cdecl CWnd::* )(WPARAM,LPARAM)'None of the functions with this name in scope match the target type<br><span style="COLOR: #0000ff">解决方法：</span><br>afx_msg void OnHotLinkExplain();&nbsp; --- 〉<br>afx_msg LRESULT OnHotLinkExplain(WPARAM wParam,LPARAM lParam);<br><span style="FONT-SIZE: 24pt">9、</span>error C2664: 'CSize CDC::GetTextExtent(LPCTSTR,int) const' : cannot convert parameter 1 from 'WORD *' to 'LPCTSTR'<br>Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast需要<span style="COLOR: #0000ff">强制转换<br></span>pDC-&gt;GetTextExtent(&amp;i, 1).cx);&nbsp;&nbsp; ——&gt;<br>pDC-&gt;GetTextExtent((LPCTSTR)&amp;i, 1).cx;<br><span style="FONT-SIZE: 24pt">10、</span>error C2039: 'OnHelpInfo' : is not a member of 'CView'<br>error C2039: 'OnHelpInfo' : is not a member of 'CFrameWnd'<br>error C2039: 'OnHelpInfo' : is not a member of 'CDialog'<br><span style="COLOR: #0000ff">解决方法</span>：用TRUE替换相应的类成员函数OnHelpInfo'<br>return CView::OnHelpInfo(pHelpInfo); ——&gt; return TRUE;<br><span style="FONT-SIZE: 24pt">11、</span>error C2039: 'm_bShowSharedNewButton' : is not a member of 'CCommandBar'<br>D:\Program Files\Microsoft Visual Studio 8\VC\ce\atlmfc\include\afxext.h(557) : see declaration of 'CCommandBar'<br><span style="COLOR: #0000ff">解决方法</span>：<br>直接注释掉 m_wndCommandBar.m_bShowSharedNewButton = FALSE;<br><span style="FONT-SIZE: 24pt">12、.</span>\MyApp.rc(380) : fatal error RC1015: cannot open include file 'wceres.rc'.<br><span style="COLOR: #0000ff">解决方法</span>：<br>直接注释掉：#include "wceres.rc"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // WCE-specific components<br>但是，这个错误很讨厌，<span style="COLOR: #ff0000">每次你修改资源文件后，都得修改该语句</span>，不知道为什么。<br><span style="FONT-SIZE: 24pt">13、</span>Resease 模式下也要修改<br>error LNK2019: unresolved external symbol SHInitExtraControls referenced in function "protected: __cdecl CMyAppView::CMyAppView(void)" (<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#63;&#63;&#48;&#67;&#77;&#121;&#65;&#112;&#112;&#86;&#105;&#101;&#119;&#64;&#64;&#73;&#65;&#65;&#64;&#88;&#90;"><u><font color=#0000ff>??0CMyAppView@@IAA@XZ</font></u></a>)<br>问题：程序中调用了SHInitExtraControls();<br>error LNK2019: unresolved external symbol SHSipPreference referenced in function "protected: void __cdecl CMyAppView::OnKillfocusWord(void)" (<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#63;&#79;&#110;&#75;&#105;&#108;&#108;&#102;&#111;&#99;&#117;&#115;&#87;&#111;&#114;&#100;&#64;&#67;&#77;&#121;&#65;&#112;&#112;&#86;&#105;&#101;&#119;&#64;&#64;&#73;&#65;&#65;&#88;&#88;&#90;"><u><font color=#0000ff>?OnKillfocusWord@CMyAppView@@IAAXXZ</font></u></a>)<br>问题：程序中调用了SHSipPreference<br>以上两个函数都在：Library: aygshell.lib里<br><span style="COLOR: #0000ff">解决方法：</span><br>工程--&gt;属性--&gt;Linker --&gt;input -- &gt; Additional Denpendencies ：aygshell.lib<br><span style="FONT-SIZE: 24pt">14、</span>Resease 模式下也要修改<br>orelibc.lib(wwinmain.obj) : error LNK2019: unresolved external symbol wWinMain referenced in function wWinMainCRTStartup<br>属性—〉Linker—〉Anvanced—〉EntryPoint<br><span style="COLOR: #0000ff">将 wWinMainCRTStartup 更改为 WinMainCRTStartup<br></span>Entry Point是WinMainCRTStartup(ANSI)或wWinMainCRTStartup(UINCODE)，即： ... WinMainCRTStartup 或wWinMainCRTStartup 会调用WinMain 或wWinMain。<br><span style="FONT-SIZE: 24pt">15、</span>&nbsp; error C3861: 'LoadStdProfileSettings': identifier not found<br><span style="COLOR: #0000ff">注释</span>掉函数<span style="COLOR: #0000ff"> LoadStdProfileSettings</span>；<br>该函数的具体功能，看MSDN。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BTW:编译的时候，有可能会出现一些由以上错误产生的连锁错误，俗称&#8220;蝴蝶效应&#8221;，如error C2143: syntax error : missing ';' before '}'<br>error C2143: syntax error : missing ';' before ','<br>error C2143: syntax error : missing ';' before '{'<br>少了了'{'、'}'、';'等等,把以上的错误—主要矛盾解决了，这些错误—错误矛盾也就迎刃而解了。何况，这个工程是以前在EVC IDE下编译通过，MS再怎么优化或改进编译器，也总不可能发生自相矛盾的事情吧，总要考虑兼容性吧，要对自己或公司的前辈有信心！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 到此，已经能够编译通过，但是运行的时候，又出现如下的问题：<br><span style="FONT-SIZE: 24pt">16、</span>Resease 模式下也要修改<br>按F5，出现如下的对话框：<br><img height=160 alt="" src="http://images.cnblogs.com/cnblogs_com/mengshu-lbq/Test.JPG" width=641 align=middle border=0><br><span style="COLOR: #0000ff">解决方法：<br></span>&nbsp;右击工程的属性—〉General—〉Project Defaults &#8211;〉Use MFC ：<br>Use MFC in a shared DLL&nbsp;——&gt;&nbsp;Use MFC in a static DLL <br>也正是因为这个，VS2005产生的EXE程序比EVC产生的要大200多k。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样，程序基本移植完成，但是还要把所有的功能过一遍，有可能还会碰到，诸如对话框出现乱码、菜单不对等问题。 
<img src ="http://www.cppblog.com/Jrong/aggbug/77255.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Jrong/" target="_blank">iJrong</a> 2009-03-20 00:19 <a href="http://www.cppblog.com/Jrong/archive/2009/03/20/77255.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WinCE 应用程序开机自动运行的又一种方法[转]</title><link>http://www.cppblog.com/Jrong/archive/2008/05/19/50423.html</link><dc:creator>iJrong</dc:creator><author>iJrong</author><pubDate>Mon, 19 May 2008 11:12:00 GMT</pubDate><guid>http://www.cppblog.com/Jrong/archive/2008/05/19/50423.html</guid><wfw:comment>http://www.cppblog.com/Jrong/comments/50423.html</wfw:comment><comments>http://www.cppblog.com/Jrong/archive/2008/05/19/50423.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Jrong/comments/commentRss/50423.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Jrong/services/trackbacks/50423.html</trackback:ping><description><![CDATA[<p>近日在开发过程中遇到WinCE应用程序开机自动运行的问题，在网上找了找，发现大概有以下三种方法：<br>1、将应用程序和应用程序快捷方式添加到映像里，再将快捷方式添加到StartUp目录下，这样当系统运行后应用程序就能自动运行；<br><br>2、直接替换Wince的SHELL，即修改注册表：<br>[HKEY_LOCAL_MACHINE\init]<br>"Launch50"="explorer.exe"<br>"Depend50"=hex:14,00, 1e,00<br>把这个explorer.exe改成你的应用程序（比如：MyApp.exe）；<br><br>3、把应用程序加入到映像，修改注册表：<br>[HKEY_LOCAL_MACHINE\init]<br>"Launch80"="MyApp.exe" <br>"Depend80"=hex:1E,00<br>可以设置启动顺序和依赖程序；<br>以上方法都可行，但是都存在一个问题，就是应用程序是集成到NK里面的，也就是说每次升级应用程序都要重新编译下载内核，很麻烦，尤其在程序调试阶段，大家都希望把应用程序放在SD卡上，这样更新起来比较容易；据说通过第三种方法可以实现，即修改"Launch80"="MyApp.exe"为"Launch80"="\STDCard\MyApp.exe"( STDCard为SD卡目录)，但是我试了一下没有成功，因为Launch80运行时SD卡的文件驱动还没有加载，找不到MyApp.exe文件。同样，采用快捷方式加载SD卡里的应用程序也不可行。<br>所以我采用了另一种方法，自己编了一个小程序，比如叫ShellExe.exe，将此程序加入到映像里，通过StartUp快捷方式调用ShellExe，ShellExe再去调用SD卡里的应用程序，具体实现步骤如下：<br>1、 在eVC下编译如下代码： <br>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)<br>{&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;WIN32_FIND_DATA fd;<br>&nbsp;HANDLE hd=INVALID_HANDLE_VALUE;&nbsp;&nbsp; </p>
<p>&nbsp;int iCount = 20; <br>&nbsp;&nbsp;&nbsp; while(iCount--)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;hd=::FindFirstFile(lpCmdLine,&amp;fd);&nbsp;&nbsp; <br>&nbsp;&nbsp;Sleep(500);&nbsp;&nbsp; <br>&nbsp;&nbsp;<br>&nbsp;&nbsp;if(INVALID_HANDLE_VALUE!=hd)<br>&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;}&nbsp;&nbsp;&nbsp; <br>&nbsp;<br>&nbsp;if(0==iCount) <br>&nbsp;&nbsp;return 0;&nbsp;&nbsp; </p>
<p>&nbsp;FindClose(hd);&nbsp;&nbsp; </p>
<p>&nbsp;SHELLEXECUTEINFO ShExeInfo={0};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.cbSize=sizeof(SHELLEXECUTEINFO);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.fMask=SEE_MASK_NOCLOSEPROCESS;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.hwnd=NULL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.lpVerb=NULL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.lpFile=lpCmdLine;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.lpParameters=L"";&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.lpDirectory=NULL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.nShow=SW_SHOW;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;ShExeInfo.hInstApp=NULL;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;ShellExecuteEx(&amp;ShExeInfo);<br>&nbsp;return 0;<br>}<br>　　生成ShellExe.exe的可执行文件，此段代码主要功能是查找指定的应用程序，然后执行；下面这段代码可以保证在SD卡文件系统正确加载后才去执行应用程序；&nbsp;<br><br>&nbsp;&nbsp;&nbsp; while(iCount--)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;hd=::FindFirstFile(lpCmdLine,&amp;fd);&nbsp;&nbsp; <br>&nbsp;&nbsp;Sleep(500);&nbsp;&nbsp; <br>&nbsp;&nbsp;<br>&nbsp;&nbsp;if(INVALID_HANDLE_VALUE!=hd)<br>&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;}&nbsp;&nbsp;<br><br>文件的名称和路径由命令行参数指定：ShExeInfo.lpFile=lpCmdLine;<br><br>2、 新建一个快捷方式，如Autorun.lnk，按如下方式编辑其内容：<br>21#\windows\shellexe.exe \stdcard\MyApp.exe其中\stdcard\MyApp.exe应用程序的绝对路径；<br><br>3、 将MyApp.exe和Autorun.lnk添加到NK里，方法是在project.bib文件内加入如下内容：<br>ShellExe.exe f:\WINCE420\PBWORKSPACES\LioetEnTer\RelDir\ShellExe.exe NK SAutorun.lnk f:\WINCE420\PBWORKSPACES\LioetEnTer\RelDir\Autorun.lnk NK S注意：ShellExe.exe的属性不能带H（隐藏）.<br><br>4、 在project.dat里加入如下内容：<br>Directory("\Windows\Startup"):-File("Autorun.lnk","\Windows\Autorun.lnk")5、 选择Make Image生成映像（当然Build也可以，就是慢点儿），烧到FLASH里，开机运行，可以看到SD卡里的MyApp.exe被正确执行。<br>总结<br>　　这种方法用起来比较方便，ShellExe.exe不用每次都重新编译，只要根据应用程序路径修改Autorun.lnk即可，可以加载Flash、U盘、SD卡里的应用程序。调试及升级应用程序就不用重新烧写内核了。 </p>
<img src ="http://www.cppblog.com/Jrong/aggbug/50423.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Jrong/" target="_blank">iJrong</a> 2008-05-19 19:12 <a href="http://www.cppblog.com/Jrong/archive/2008/05/19/50423.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows Mobile 中开关 WIFI 的“通用”代码[转自最帅http://www.yonsm.net]</title><link>http://www.cppblog.com/Jrong/archive/2008/05/05/48938.html</link><dc:creator>iJrong</dc:creator><author>iJrong</author><pubDate>Mon, 05 May 2008 15:13:00 GMT</pubDate><guid>http://www.cppblog.com/Jrong/archive/2008/05/05/48938.html</guid><wfw:comment>http://www.cppblog.com/Jrong/comments/48938.html</wfw:comment><comments>http://www.cppblog.com/Jrong/archive/2008/05/05/48938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Jrong/comments/commentRss/48938.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Jrong/services/trackbacks/48938.html</trackback:ping><description><![CDATA[从网上看到用SetDevicePower可以开关WIFI，但郁闷的是不同的OEM厂商，甚至不同型号的手机，WIFI设备名称都可能不一样。<br><br>不过我想了想，还是搞定了 Windows Mobile 中开关 WIFI 的&#8220;通用&#8221;代码，基本上在各种WM手机中都能正常工作。<br><br>看下面的代码，主要是枚举所有的通讯设备，如果设备显示名称中包含特定字符串（如Wi-Fi，802.11等）就认为是WIFI设备，接下来的问题迎刃而解，OK，&#8220;完美&#8221;收工：）<a name=entrymore></a><br>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Code_Closed_Image_091258 onclick="this.style.display='none'; Code_Closed_Text_091258.style.display='none'; Code_Open_Image_091258.style.display='inline'; Code_Open_Text_091258.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_091258 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_091258.style.display='none'; Code_Closed_Image_091258.style.display='inline'; Code_Closed_Text_091258.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_091258 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Code_Open_Text_091258 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#pragma&nbsp;once<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">UniBase.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Reg.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">PM.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CWiFiHelper<br><img id=Codehighlighter1_86_1608_Open_Image onclick="this.style.display='none'; Codehighlighter1_86_1608_Open_Text.style.display='none'; Codehighlighter1_86_1608_Closed_Image.style.display='inline'; Codehighlighter1_86_1608_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_86_1608_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_86_1608_Closed_Text.style.display='none'; Codehighlighter1_86_1608_Open_Image.style.display='inline'; Codehighlighter1_86_1608_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_86_1608_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_86_1608_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TCHAR&nbsp;m_tzDevice[MAX_NAME];&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CWiFiHelper()<br><img id=Codehighlighter1_160_1148_Open_Image onclick="this.style.display='none'; Codehighlighter1_160_1148_Open_Text.style.display='none'; Codehighlighter1_160_1148_Closed_Image.style.display='inline'; Codehighlighter1_160_1148_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_160_1148_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_160_1148_Closed_Text.style.display='none'; Codehighlighter1_160_1148_Open_Image.style.display='inline'; Codehighlighter1_160_1148_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_160_1148_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_160_1148_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TCHAR&nbsp;tzKey[MAX_PATH];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CReg&nbsp;reg(HKEY_LOCAL_MACHINE,&nbsp;TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Comm</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(UINT&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;reg.EnumKey(i,&nbsp;tzKey)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;S_OK;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_314_1115_Open_Image onclick="this.style.display='none'; Codehighlighter1_314_1115_Open_Text.style.display='none'; Codehighlighter1_314_1115_Closed_Image.style.display='inline'; Codehighlighter1_314_1115_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_314_1115_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_314_1115_Closed_Text.style.display='none'; Codehighlighter1_314_1115_Open_Image.style.display='inline'; Codehighlighter1_314_1115_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_314_1115_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_314_1115_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(tzKey[UStrLen(tzKey)&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_378_1105_Open_Image onclick="this.style.display='none'; Codehighlighter1_378_1105_Open_Text.style.display='none'; Codehighlighter1_378_1105_Closed_Image.style.display='inline'; Codehighlighter1_378_1105_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_378_1105_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_378_1105_Closed_Text.style.display='none'; Codehighlighter1_378_1105_Open_Image.style.display='inline'; Codehighlighter1_378_1105_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_378_1105_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_378_1105_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CReg&nbsp;dev(reg,&nbsp;tzKey);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TCHAR&nbsp;tzDisplayName[MAX_PATH];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(dev.GetStr(TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">DisplayName</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),&nbsp;tzDisplayName))<br><img id=Codehighlighter1_549_1091_Open_Image onclick="this.style.display='none'; Codehighlighter1_549_1091_Open_Text.style.display='none'; Codehighlighter1_549_1091_Closed_Image.style.display='inline'; Codehighlighter1_549_1091_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_549_1091_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_549_1091_Closed_Text.style.display='none'; Codehighlighter1_549_1091_Open_Image.style.display='inline'; Codehighlighter1_549_1091_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_549_1091_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_549_1091_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(UStrStrI(tzDisplayName,&nbsp;TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WiFi</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UStrStrI(tzDisplayName,&nbsp;TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Wi-Fi</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UStrStrI(tzDisplayName,&nbsp;TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Wireless</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UStrStr(tzDisplayName,&nbsp;TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">802.11</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)))<br><img id=Codehighlighter1_838_1073_Open_Image onclick="this.style.display='none'; Codehighlighter1_838_1073_Open_Text.style.display='none'; Codehighlighter1_838_1073_Closed_Image.style.display='inline'; Codehighlighter1_838_1073_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_838_1073_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_838_1073_Closed_Text.style.display='none'; Codehighlighter1_838_1073_Open_Image.style.display='inline'; Codehighlighter1_838_1073_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_838_1073_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_838_1073_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UStrPrint(m_tzDevice,&nbsp;PMCLASS_NDIS_MINIPORT&nbsp;TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\\%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),&nbsp;tzKey);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">MessageBox(NULL,&nbsp;m_tzDevice,&nbsp;STR_AppName,&nbsp;MB_ICONINFORMATION);</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_tzDevice[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;IsEnabled()<br><img id=Codehighlighter1_1176_1347_Open_Image onclick="this.style.display='none'; Codehighlighter1_1176_1347_Open_Text.style.display='none'; Codehighlighter1_1176_1347_Closed_Image.style.display='inline'; Codehighlighter1_1176_1347_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1176_1347_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1176_1347_Closed_Text.style.display='none'; Codehighlighter1_1176_1347_Open_Image.style.display='inline'; Codehighlighter1_1176_1347_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1176_1347_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1176_1347_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CEDEVICE_POWER_STATE&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;D4;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(m_tzDevice&nbsp;[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">])<br><img id=Codehighlighter1_1251_1317_Open_Image onclick="this.style.display='none'; Codehighlighter1_1251_1317_Open_Text.style.display='none'; Codehighlighter1_1251_1317_Closed_Image.style.display='inline'; Codehighlighter1_1251_1317_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1251_1317_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1251_1317_Closed_Text.style.display='none'; Codehighlighter1_1251_1317_Open_Image.style.display='inline'; Codehighlighter1_1251_1317_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1251_1317_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1251_1317_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetDevicePower(m_tzDevice,&nbsp;POWER_NAME,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">s);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;s&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;D0;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;HRESULT&nbsp;Enable(BOOL&nbsp;bEnable&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;TRUE)<br><img id=Codehighlighter1_1394_1606_Open_Image onclick="this.style.display='none'; Codehighlighter1_1394_1606_Open_Text.style.display='none'; Codehighlighter1_1394_1606_Closed_Image.style.display='inline'; Codehighlighter1_1394_1606_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1394_1606_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1394_1606_Closed_Text.style.display='none'; Codehighlighter1_1394_1606_Open_Image.style.display='inline'; Codehighlighter1_1394_1606_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1394_1606_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1394_1606_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(m_tzDevice&nbsp;[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">])<br><img id=Codehighlighter1_1432_1520_Open_Image onclick="this.style.display='none'; Codehighlighter1_1432_1520_Open_Text.style.display='none'; Codehighlighter1_1432_1520_Closed_Image.style.display='inline'; Codehighlighter1_1432_1520_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1432_1520_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1432_1520_Closed_Text.style.display='none'; Codehighlighter1_1432_1520_Open_Image.style.display='inline'; Codehighlighter1_1432_1520_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1432_1520_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1432_1520_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;SetDevicePower(m_tzDevice,&nbsp;POWER_NAME,&nbsp;bEnable&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;D0&nbsp;:&nbsp;D4);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1543_1600_Open_Image onclick="this.style.display='none'; Codehighlighter1_1543_1600_Open_Text.style.display='none'; Codehighlighter1_1543_1600_Closed_Image.style.display='inline'; Codehighlighter1_1543_1600_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1543_1600_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1543_1600_Closed_Text.style.display='none'; Codehighlighter1_1543_1600_Open_Image.style.display='inline'; Codehighlighter1_1543_1600_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1543_1600_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1543_1600_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ERROR_DEVICE_NOT_AVAILABLE;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></span></div>
<p><br>附件是一个小程序，无参数执行自动切换 WIFI 开关SP/PPC通用。<br><a title="点击这里下载文件: RadioSwitch.rar" href="http://www.yonsm.net/attachment.php?fid=3">点击这里下载文件: RadioSwitch.rar</a></p>
<img src ="http://www.cppblog.com/Jrong/aggbug/48938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Jrong/" target="_blank">iJrong</a> 2008-05-05 23:13 <a href="http://www.cppblog.com/Jrong/archive/2008/05/05/48938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>