﻿<?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++博客-lijiakxl的专栏-随笔分类-WIN32 应用开发</title><link>http://www.cppblog.com/lijiakxl/category/11597.html</link><description>Make it right before you make it faster. 
Keep it right when you make it faster. 
Make it clear before you make it faster. 
Do not sacrifice clarity for small gains in efficiency.</description><language>zh-cn</language><lastBuildDate>Thu, 24 Sep 2009 18:23:51 GMT</lastBuildDate><pubDate>Thu, 24 Sep 2009 18:23:51 GMT</pubDate><ttl>60</ttl><item><title>推荐一个不错的OutLook样式的类</title><link>http://www.cppblog.com/lijiakxl/archive/2009/09/21/96856.html</link><dc:creator>李佳</dc:creator><author>李佳</author><pubDate>Mon, 21 Sep 2009 08:02:00 GMT</pubDate><guid>http://www.cppblog.com/lijiakxl/archive/2009/09/21/96856.html</guid><wfw:comment>http://www.cppblog.com/lijiakxl/comments/96856.html</wfw:comment><comments>http://www.cppblog.com/lijiakxl/archive/2009/09/21/96856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lijiakxl/comments/commentRss/96856.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lijiakxl/services/trackbacks/96856.html</trackback:ping><description><![CDATA[这段时间上网算是找疯了...界面真是相当的麻烦<br>下面推荐一个OutLook类&nbsp;&nbsp; 可以很方便的给自己的程序增加一个OutLook样式的视图<br>文件上传下来了&nbsp;&nbsp; 又需要的&nbsp; 自己研究研究吧<br>这段时间一直在用一个国内的VC知识库上的一个OutLook类&nbsp;&nbsp; 今天再和这个国外的OutLook类一比较.. 汗...<br>以后&nbsp;&nbsp; 还是应该多多上上国外网站&nbsp;&nbsp;&nbsp;&nbsp; <br><br>效果图就不上了&nbsp;&nbsp; 自己看吧&nbsp;&nbsp; 比较华丽<br><br>下载地址<br><a  href="http://www.cppblog.com/Files/lijiakxl/OutBarDemo.rar">http://www.cppblog.com/Files/lijiakxl/OutBarDemo.rar</a><br> <img src ="http://www.cppblog.com/lijiakxl/aggbug/96856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lijiakxl/" target="_blank">李佳</a> 2009-09-21 16:02 <a href="http://www.cppblog.com/lijiakxl/archive/2009/09/21/96856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第一次遇到 User-Agent 检测的网站  记录下来</title><link>http://www.cppblog.com/lijiakxl/archive/2009/09/01/94948.html</link><dc:creator>李佳</dc:creator><author>李佳</author><pubDate>Tue, 01 Sep 2009 02:19:00 GMT</pubDate><guid>http://www.cppblog.com/lijiakxl/archive/2009/09/01/94948.html</guid><wfw:comment>http://www.cppblog.com/lijiakxl/comments/94948.html</wfw:comment><comments>http://www.cppblog.com/lijiakxl/archive/2009/09/01/94948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lijiakxl/comments/commentRss/94948.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lijiakxl/services/trackbacks/94948.html</trackback:ping><description><![CDATA[最近在做一个网站的模拟登录程序&nbsp; 前段时间一直忙于做验证码&nbsp; 算是做好了<br>今天才正式登陆&nbsp;&nbsp; 发送了无数次的登录信息&nbsp;&nbsp; 一直增&nbsp; 改&nbsp; 就是登陆不了&nbsp; 总是提示错误<br>但是利用IE截获的HTTP封包来看&nbsp;&nbsp; 几乎都是一摸一样的...<br>这个是截获的IE封包<br><br>POST /app HTTP/1.1<br>Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-silverlight, application/msword, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*<br>Referer: ***<br>Accept-Language: zh-cn<br>Content-Type: application/x-www-form-urlencoded<br>Accept-Encoding: gzip, deflate<br>User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 1.7; TencentTraveler 4.0;&nbsp; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA)<br>Host: ***<br>Content-Length: 264<br>Connection: Keep-Alive<br>Cache-Control: no-cache<br>Cookie: CHANNEL_JSESSIONID=Kc8GLn0Gvvn4Vl7sLjh5kN1nT5DZQknp1nXDRxch9GnTr5TYKncf!2134775339!730718407<br><br>service=direct%2F1%2FHome%2F%24Form&amp;sp=S0&amp;Form0=%24FormConditional%2Cblogin%2C%24FormConditional%240&amp;%24FormConditional=T&amp;%24FormConditional%240=F&amp;select=%B8%F6%C8%CB%BF%CD%BB%A7&amp;SERIAL_NUMBER=111222333&amp;USER_PASSWD=123123&amp;EFFICACY_CODE=2598&amp;blogin=+%B5%C7%C2%BC+
<br><br>以下是我发送出去的封包<br>POST /app HTTP/1.1<br>Content-Type: application/x-www-form-urlencoded<br>Referer: ***<br>Accept: */*<br>User-Agent: GetBalance<br>Host: ***<br>Content-Length: 300<br>Cache-Control: no-cache<br>Cookie: CHANNEL_JSESSIONID=Kc3V7JTn32G0G6yj8KnyhYpRHvHp1gf9pX033l5WjZV6gRh75ZRn!-1722555788!2134775339<br><br>service=direct%2F1%2Ffeequery.FeeQuery%2F%24HHeader.%24GHHeader.%24Form&amp;sp=S0&amp;Form0=%24FormConditional%2Cblogin%2C%24FormConditional%240&amp;%24FormConditional=T&amp;%24FormConditional%240=F&amp;select=%B8%F6%C8%CB%BF%CD%BB%A7&amp;SERIAL_NUMBER=111222333&amp;USER_PASSWD=123123&amp;EFFICACY_CODE=1204&amp;blogin=+%B5%C7%C2%BC+
<br><br>几乎都无误&nbsp; 以前登陆的无数的网站&nbsp; 都还没有这么多头&nbsp;&nbsp; 这次一个一个的增加&nbsp; 加了这么多的头&nbsp; 居然还是不行<br>烦的狠&nbsp; 就用火狐打开看看&nbsp; 显示 "Components Head not exist"&nbsp;&nbsp;&nbsp; 我的IE可没有显示这个信息<br>联想到以前在邪八里面看到的文章&nbsp; 里面似乎提过User-Agent检测&nbsp;&nbsp;&nbsp; 是不是这个网站也增加了这个检测呢???<br>于是 在Post数据中在增加一行<br>pFile -&gt; AddRequestHeaders("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 1.7; TencentTraveler 4.0;&nbsp; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA)");
<br>提交&nbsp; 居然显示成功了...<br>汗...<br>保留下来&nbsp; 以备不时之需<br><br> <img src ="http://www.cppblog.com/lijiakxl/aggbug/94948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lijiakxl/" target="_blank">李佳</a> 2009-09-01 10:19 <a href="http://www.cppblog.com/lijiakxl/archive/2009/09/01/94948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决了VC ADO链接数据库查询时返回空值 报错的问题</title><link>http://www.cppblog.com/lijiakxl/archive/2009/08/21/94025.html</link><dc:creator>李佳</dc:creator><author>李佳</author><pubDate>Fri, 21 Aug 2009 08:01:00 GMT</pubDate><guid>http://www.cppblog.com/lijiakxl/archive/2009/08/21/94025.html</guid><wfw:comment>http://www.cppblog.com/lijiakxl/comments/94025.html</wfw:comment><comments>http://www.cppblog.com/lijiakxl/archive/2009/08/21/94025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lijiakxl/comments/commentRss/94025.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lijiakxl/services/trackbacks/94025.html</trackback:ping><description><![CDATA[当数据库的选项允许为空时&nbsp; 而且此时内容为空 <br>则一下查询会出错<br>strPosInfo= m_pRecordset-&gt;GetCollect("posInfo");&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <br>更加奇怪的是&nbsp; catch(...)也抓不到异常<br>今天碰着个问题算是头弄大了&nbsp; 最后终于弄好了<br>原因很简单<br>
<meta http-equiv="Content-Type" content="text/html; charset=" utf-8="">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 11">
<meta name="Originator" content="Microsoft Word 11">
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cexlive%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><xml>
</xml><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:微软雅黑;
panose-1:2 11 5 3 2 2 4 2 2 4;
mso-font-charset:134;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-2147483001 705641554 22 0 262175 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@微软雅黑";
panose-1:2 11 5 3 2 2 4 2 2 4;
mso-font-charset:134;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-2147483001 705641554 22 0 262175 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:宋体;
mso-font-kerning:1.0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
<p>报错的问题</p>
<p>错误原因&nbsp;&nbsp; 在GetCollct返回了NULL之后&nbsp;&nbsp;
由于strPosInfo是一个CString对象&nbsp;
编译器自动将_varint_t转换成CString&nbsp; 而此时_varint_t为空&nbsp; 因此转换失败&nbsp; 不是数据库的异常
而且根本就不是异常 所以&nbsp; catch(&#8230;)无法抓住</p>
<p><span style="font-weight: bold;">解决方案</span> <br></p>
<p> 在可能为空的地方 利用</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">_variant_t&nbsp;var;<br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">var</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;m_pRecordset</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">GetCollect(</span><span style="color: #000000;">"</span><span style="color: #000000;">posInfo</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">可能为空</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(var.vt&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;VT_NULL)&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">为NULL</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strPosInfo&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;var;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strPosInfo&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&#8220;&#8221;;</span></div>
<br>
<p>就可以检测NULL值了</p>
<br><br><br>  <img src ="http://www.cppblog.com/lijiakxl/aggbug/94025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lijiakxl/" target="_blank">李佳</a> 2009-08-21 16:01 <a href="http://www.cppblog.com/lijiakxl/archive/2009/08/21/94025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件下载功能的实现 (一)</title><link>http://www.cppblog.com/lijiakxl/archive/2009/08/17/93581.html</link><dc:creator>李佳</dc:creator><author>李佳</author><pubDate>Mon, 17 Aug 2009 04:10:00 GMT</pubDate><guid>http://www.cppblog.com/lijiakxl/archive/2009/08/17/93581.html</guid><wfw:comment>http://www.cppblog.com/lijiakxl/comments/93581.html</wfw:comment><comments>http://www.cppblog.com/lijiakxl/archive/2009/08/17/93581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lijiakxl/comments/commentRss/93581.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lijiakxl/services/trackbacks/93581.html</trackback:ping><description><![CDATA[最近工作比较轻松&nbsp; 现在没事不能不写代码&nbsp; 呵呵 闲着没事&nbsp; 想做个下载工具<br>先大致分成三步做吧&nbsp; <br>第一步&nbsp; 文件的下载&nbsp; 最基础<br>第二步&nbsp; 多线程连接下载文件&nbsp;&nbsp;&nbsp; 提高速度的关键<br>第三部&nbsp; 断点续传&nbsp;&nbsp;&nbsp; 非常实用<br><br>今天来实现第一步吧<br>文件的下载&nbsp; http协议的<br><br>使用了一个VC知识库的Http类&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不多说 上代码<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">确定按钮</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #008000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;CHttpDownloadDlg::OnBnClickedOk()<br></span><span style="color: #008080;">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #000000;">{&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;::CreateThread(NULL,</span><span style="color: #000000;">0</span><span style="color: #000000;">,DownloadThreadProc,(PVOID)</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,NULL,NULL);&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">//</span><span style="color: #008000;">退出按钮</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #008000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;CHttpDownloadDlg::OnBnClickedCancel()<br></span><span style="color: #008080;">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO:&nbsp;在此添加控件通知处理程序代码</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;11</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;OnCancel();<br></span><span style="color: #008080;">&nbsp;12</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;13</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;14</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">//</span><span style="color: #008000;">获取存储的文件夹</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;15</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">CString&nbsp;CHttpDownloadDlg::GetStorgeFolde(</span><span style="color: #0000ff;">void</span><span style="color: #000000;">)<br></span><span style="color: #008080;">&nbsp;16</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;strFold;<br></span><span style="color: #008080;">&nbsp;18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;BROWSEINFO&nbsp;&nbsp;&nbsp;bi;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;TCHAR&nbsp;&nbsp;&nbsp;buffer[MAX_PATH];&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ZeroMemory(buffer,&nbsp;&nbsp;&nbsp;MAX_PATH);&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;bi.hwndOwner&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;GetSafeHwnd();&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;bi.pidlRoot&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;NULL;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;bi.pszDisplayName&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;buffer;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;24</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;bi.lpszTitle&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;_T(</span><span style="color: #000000;">"</span><span style="color: #000000;">选择一个文件夹</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;bi.ulFlags&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;BIF_EDITBOX;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;bi.lpfn&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;NULL;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;bi.lParam&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;bi.iImage&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;30</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;LPITEMIDLIST&nbsp;&nbsp;&nbsp;pList&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;NULL;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;((pList&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;SHBrowseForFolder(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">bi))&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;NULL)&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TCHAR&nbsp;&nbsp;&nbsp;path[MAX_PATH];&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZeroMemory(path,&nbsp;&nbsp;&nbsp;MAX_PATH);&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHGetPathFromIDList(pList,&nbsp;&nbsp;&nbsp;path);&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strFold&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;path;<br></span><span style="color: #008080;">&nbsp;38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateData(FALSE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;strFold;<br></span><span style="color: #008080;">&nbsp;41</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;42</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;43</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">//</span><span style="color: #008000;">线程函数</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;44</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">DWORD&nbsp;WINAPI&nbsp;DownloadThreadProc(LPVOID&nbsp;pDate)<br></span><span style="color: #008080;">&nbsp;45</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;CHttpDownloadDlg&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;pMainDlg&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(CHttpDownloadDlg</span><span style="color: #000000;">*</span><span style="color: #000000;">)pDate;<br></span><span style="color: #008080;">&nbsp;47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">pMainDlg-&gt;m_DownloadProg.SetPos(30);</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;48</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;CHttpSocket&nbsp;HttpSocket;<br></span><span style="color: #008080;">&nbsp;49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;strServer&nbsp;,&nbsp;strObject&nbsp;;<br></span><span style="color: #008080;">&nbsp;50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;USHORT&nbsp;uPort;<br></span><span style="color: #008080;">&nbsp;51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;dwServerType;<br></span><span style="color: #008080;">&nbsp;52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;lLenth;<br></span><span style="color: #008080;">&nbsp;53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;pRequestHeader&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;NULL;<br></span><span style="color: #008080;">&nbsp;54</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">通过URL获取相关参数</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;56</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;AfxParseURL(pMainDlg</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">m_strDownloadAddr&nbsp;,&nbsp;dwServerType&nbsp;,&nbsp;strServer&nbsp;,&nbsp;strObject&nbsp;,&nbsp;uPort);<br></span><span style="color: #008080;">&nbsp;57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;pRequestHeader&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;HttpSocket.FormatRequestHeader((LPTSTR)(LPCTSTR)strServer&nbsp;,&nbsp;(LPTSTR)(LPCTSTR)strObject&nbsp;,&nbsp;lLenth&nbsp;);<br></span><span style="color: #008080;">&nbsp;58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;HttpSocket.Socket();<br></span><span style="color: #008080;">&nbsp;59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;HttpSocket.Connect((LPTSTR)(LPCTSTR)strServer&nbsp;);<br></span><span style="color: #008080;">&nbsp;60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;HttpSocket.SendRequest();<br></span><span style="color: #008080;">&nbsp;61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;HttpSocket.SetTimeout(</span><span style="color: #000000;">100</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;62</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;szLength[</span><span style="color: #000000;">15</span><span style="color: #000000;">];<br></span><span style="color: #008080;">&nbsp;64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;HttpSocket.GetField(</span><span style="color: #000000;">"</span><span style="color: #000000;">Content-Length</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;,&nbsp;szLength&nbsp;,&nbsp;</span><span style="color: #000000;">15</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;65</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;iServerState&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;HttpSocket.GetServerState();<br></span><span style="color: #008080;">&nbsp;66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;iFileSize&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;atoi(szLength);<br></span><span style="color: #008080;">&nbsp;67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;pMainDlg</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">m_DownloadProg.SetRange(</span><span style="color: #000000;">0</span><span style="color: #000000;">,iFileSize</span><span style="color: #000000;">/</span><span style="color: #000000;">1024</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">设置进度条</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;68</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;CFile&nbsp;file;<br></span><span style="color: #008080;">&nbsp;69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;file.Open(pMainDlg</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">m_strStorgePath&nbsp;,&nbsp;CFile::modeCreate&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;CFile::modeWrite);<br></span><span style="color: #008080;">&nbsp;70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;szDate[</span><span style="color: #000000;">2048</span><span style="color: #000000;">];<br></span><span style="color: #008080;">&nbsp;71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;iRecvSize&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">读取的文件大小</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;72</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;iCompleteSize&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">DWORD&nbsp;dwStartTime&nbsp;,&nbsp;dwEndTime;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">暂时不计算速度</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;74</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(iCompleteSize&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;iFileSize)<br></span><span style="color: #008080;">&nbsp;75</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;76</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">dwStartTime&nbsp;=&nbsp;GetTickCount();</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;77</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRecvSize&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;HttpSocket.Receive(szDate&nbsp;,&nbsp;</span><span style="color: #000000;">2048</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(iRecvSize&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br></span><span style="color: #008080;">&nbsp;79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::AfxMessageBox(</span><span style="color: #000000;">"</span><span style="color: #000000;">服务器关闭链接</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;81</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(iRecvSize&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;">)<br></span><span style="color: #008080;">&nbsp;84</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;85</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::AfxMessageBox(</span><span style="color: #000000;">"</span><span style="color: #000000;">接收数据超时</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;86</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;87</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;88</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">dwEndTime&nbsp;=&nbsp;GetTickCount();</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;89</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.Write(szDate&nbsp;,&nbsp;iRecvSize);<br></span><span style="color: #008080;">&nbsp;90</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iCompleteSize&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;iRecvSize;<br></span><span style="color: #008080;">&nbsp;91</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pMainDlg</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">m_DownloadProg.SetPos(iCompleteSize&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1024</span><span style="color: #000000;">&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;92</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;93</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;file.Close();<br></span><span style="color: #008080;">&nbsp;94</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;pMainDlg</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">m_DownloadProg.SetPos(</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;95</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(</span><span style="color: #000000;">"</span><span style="color: #000000;">下载完成</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;96</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;97</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;98</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;99</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">//</span><span style="color: #008000;">获取存储路径&nbsp;&nbsp;&nbsp;仿造迅雷的获取存储名称&nbsp;尽量不要用户使用键盘</span><span style="color: #008000;"><br></span><span style="color: #008080;">100</span>&nbsp;<span style="color: #008000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;CHttpDownloadDlg::OnBnClickedGetStorgePath()<br></span><span style="color: #008080;">101</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">102</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;UpdateData(TRUE);<br></span><span style="color: #008080;">103</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(m_strDownloadAddr&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">""</span><span style="color: #000000;">)<br></span><span style="color: #008080;">104</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">105</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(</span><span style="color: #000000;">"</span><span style="color: #000000;">请输入下载地址</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;,&nbsp;MB_OK);<br></span><span style="color: #008080;">106</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;;<br></span><span style="color: #008080;">107</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">108</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">109</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;strFileName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;m_strDownloadAddr;<br></span><span style="color: #008080;">110</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;m_strStorgePath&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;GetStorgeFolde();<br></span><span style="color: #008080;">111</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">112</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(strFileName.Find(</span><span style="color: #000000;">"</span><span style="color: #000000;">/</span><span style="color: #000000;">"</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;">)<br></span><span style="color: #008080;">113</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">114</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;strFileName.Find(</span><span style="color: #000000;">"</span><span style="color: #000000;">/</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">115</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strFileName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;strFileName.Mid(i&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;,&nbsp;strFileName.GetLength()&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br></span><span style="color: #008080;">116</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">117</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">118</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;m_strStorgePath&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;strFileName;<br></span><span style="color: #008080;">119</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;UpdateData(FALSE);<br></span><span style="color: #008080;">120</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">121</span>&nbsp;<span style="color: #000000;"></span></div>
界面很简陋&nbsp; <br><img src="http://www.cppblog.com/images/cppblog_com/lijiakxl/11484/o_Download%20Deomo%201.jpg" border="0"><br><br>今天就先做到这 <br><br> <img src ="http://www.cppblog.com/lijiakxl/aggbug/93581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lijiakxl/" target="_blank">李佳</a> 2009-08-17 12:10 <a href="http://www.cppblog.com/lijiakxl/archive/2009/08/17/93581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>