﻿<?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++博客-我的C++</title><link>http://www.cppblog.com/yefuhai/</link><description>我的C++</description><language>zh-cn</language><lastBuildDate>Mon, 07 Jul 2008 03:02:15 GMT</lastBuildDate><pubDate>Mon, 07 Jul 2008 03:02:15 GMT</pubDate><ttl>60</ttl><item><title>VFW视频问题</title><link>http://www.cppblog.com/yefuhai/archive/2008/07/06/55471.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Sun, 06 Jul 2008 09:17:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/07/06/55471.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/55471.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/07/06/55471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/55471.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/55471.html</trackback:ping><description><![CDATA[哎呀 今天借了王明的 程序员成长攻略一书，发现里头好多错误的。 不过自己还是看出了 后来看看网上的 哎呀别人写的好多了。就转下来把！<br><br><br><br>
<table cellPadding=4 width="100%" border=0>
    <tbody>
        <tr>
            <td><span id=ArticleContent1_ArticleContent1_lblContent>
            <p><span><font face="Times New Roman"><font face=宋体><em><span><font face="Times New Roman"><font size=3><span></span></font></font></span></em></font></font></span>&nbsp;</p>
            <h3><font size=5><span><font face="Times New Roman">3.2</font></span><span>使用视频捕获</span></font></h3>
            <h4><span>3.2.1创建捕获窗体
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span>下面的例子通过使用</span><strong><span><font face="Times New Roman">capCreateCaptureWindow</font></span></strong><span>函数来创建一个捕获窗体</span></font></p>
            <p><span><font face="Times New Roman" size=3>hWndC = capCreateCaptureWindow (</font></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>(LPSTR) "My Capture Window", <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>// </span></font></span><span>如果是</span><span><font face="Times New Roman">Pop-up</font></span><span>窗口的窗口名称</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>WS_CHILD | WS_VISIBLE,<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;</span><span>// </span></font></span><span>窗口类型</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>0, 0, 160, 120,<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>// </span></font></span><span>窗口位置和尺寸</span></font></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>(HWND) hwndParent, </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>(int) nID<span> /* child ID */</span>); </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke>
            <formulas>
            <f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f>
            </formulas>
            <path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path>
            <lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id=_x0000_i1026 alt="" type="#_x0000_t75"></shape></font></font></span></p>
            <p><strong><span><font size=3>&nbsp;
            <p>&#160;</p>
            </font></span></strong>
            <p>&#160;</p>
            <h4><span>3.2.2连接到一个捕获驱动器
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span>下面举例，如何通过捕获窗口的句柄</span><span><font face="Times New Roman">hWndC</font></span><span>连接到</span><span><font face="Times New Roman">MS VIDEO</font></span><span>驱动程序上，同时还演示了如何断开连接。使用</span><span><font face="Times New Roman">capDriverDisconnect</font></span><span>：</span></font></p>
            <p><span><font face="Times New Roman" size=3>fOK = SendMessage (hWndC, WM_CAP_DRIVER_CONNECT, 0, 0L); </font></span></p>
            <p><font size=3><span><font face="Times New Roman">// </font></span><span>或者使用宏连接：</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">// fOK = capDriverConnect(hWndC, 0);
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// </font></span><span>关闭连接</span></font></p>
            <p><span><font face="Times New Roman" size=3>capDriverDisconnect (hWndC); </font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.3</font></span><span>列举安装的捕获驱动程序</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span>使用</span><font face="Times New Roman"><strong><span>capGetDriverDescription</span></strong><span> </span></font><span>函数来获得系统已经安装的所有捕获驱动程序的名称和版本。</span></font></p>
            <p><span><font face="Times New Roman" size=3>char szDeviceName[80];</font></span></p>
            <p><span><font face="Times New Roman" size=3>char szDeviceVersion[80];</font></span></p>
            <p><span><font face="Times New Roman" size=3>for (wIndex = 0; wIndex &lt; 10; wIndex++) </font></span></p>
            <p><span><font face="Times New Roman" size=3>{</font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>if (capGetDriverDescription (wIndex, szDeviceName, </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>sizeof (szDeviceName), szDeviceVersion, </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>sizeof (szDeviceVersion)) </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>{</font></font></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;// </span></font></span><span>加入名字到一个已经安装的设备列表中</span><span>
            <p>&#160;</p>
            </span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// </font></span><span>让用户选择一个使用。</span></font></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>}</font></font></span></p>
            <p><span><font face="Times New Roman" size=3>} </font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.4</font></span><span>获得捕获驱动器的性能参数</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>WM_CAP_DRIVER_GET_CAPS</font></span><span>消息可以返回捕获驱动程序以及其硬件的性能参数。这些信息存放在一个</span><span><font face="Times New Roman">CAPDRIVERCAPS</font></span><span>的数据结构中。当你的应用程序的捕获窗口连接到一个新的捕获驱动器后，都会刷新这个</span><span><font face="Times New Roman">CAPDRIVERCAPS</font></span><span>数据结构。下面将使用</span><span><font face="Times New Roman">capDriverGetCaps</font></span><span>宏来获得捕获设备的性能参数。</span></font></p>
            <p><span><font face="Times New Roman" size=3>CAPDRIVERCAPS CapDrvCaps; </font></span></p>
            <p><span><font face="Times New Roman" size=3>SendMessage (hWndC, WM_CAP_DRIVER_GET_CAPS, </font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>sizeof (CAPDRIVERCAPS), (LONG) (LPVOID) &amp;CapDrvCaps); </font></font></span></p>
            <p><font size=3><span><font face="Times New Roman">// </font></span><span>或者，使用宏来获得驱动器的新能参数</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">// capDriverGetCaps(hWndC, &amp;CapDrvCaps, sizeof (CAPDRIVERCAPS));
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.5</font></span><span>获得捕获窗口状态</span><font face="Times New Roman"><span>(Status)</span><span>
            <p>&#160;</p>
            </span></font></h4>
            <p><font size=3><span>下面例子使用</span><span><font face="Times New Roman">SetWindowPos</font></span><span>函数区设置捕获窗口的尺寸，这个尺寸的大小是基于输入的视频流大小的。输入视频流的尺寸大小由</span><span><font face="Times New Roman">capGetStatus</font></span><span>宏来获得，获得信息放在一个</span><span><font face="Times New Roman">CAPSTATUS</font></span><span>的数据结构体中。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>CAPSTATUS CapStatus;</font></span></p>
            <p><span><font face="Times New Roman" size=3>capGetStatus(hWndC, &amp;CapStatus, sizeof (CAPSTATUS)); </font></span></p>
            <p><span><font face="Times New Roman" size=3>SetWindowPos(hWndC, NULL, 0, 0, CapStatus.uiImageWidth, </font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE); </font></font></span></p>
            <p><span><shape id=_x0000_i1027 alt="" type="#_x0000_t75"><font face="Times New Roman" size=3></font></shape></span></p>
            <h4><span><font face="Times New Roman">3.2.6</font></span><span>显示对话框区设置视频属性</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span><span><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span><span>每个捕获驱动器都可以提高</span><span><font face="Times New Roman">3</font></span><span>个以上的不同对话框来控制数字视频的特性和捕获处理。下面的例子示范如何显示这些对话框。在显示每个对话框前，该例会调用</span><strong><span><font face="Times New Roman">capDriverGetCaps</font></span></strong><span>宏并且检查返回的</span><span><font face="Times New Roman">CAPDRIVERCAPS</font></span><span>对象来查看是否可以能够显示特定的对话框。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>CAPDRIVERCAPS CapDrvCaps; </font></span></p>
            <p><span><font size=3><font face="Times New Roman">capDriverGetCaps(hWndC, &amp;CapDrvCaps, sizeof (CAPDRIVERCAPS));&nbsp;</font></font></span></p>
            <p><font size=3><span><font face="Times New Roman">// </font></span><span>视频源对话框</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>if (CapDriverCaps.fHasDlgVideoSource)</font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capDlgVideoSource(hWndC);&nbsp;</font></font></span></p>
            <p><font size=3><span><font face="Times New Roman">// </font></span><span>视频格式对话框</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>if (CapDriverCaps.fHasDlgVideoFormat) </font></span></p>
            <p><span><font face="Times New Roman" size=3>{</font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capDlgVideoFormat(hWndC); </font></font></span></p>
            <p><font size=3><span><font face="Times New Roman">&nbsp;<span><span>&nbsp;&nbsp;</span>// </span></font></span><span>是否由新的图像尺寸？</span><span><font face="Times New Roman">Are there new image dimensions?
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capGetStatus(hWndC, &amp;CapStatus, sizeof (CAPSTATUS));</font></font></span></p>
            <p><font size=3><span><font face="Times New Roman">&nbsp;<span><span>&nbsp;&nbsp;</span>// </span></font></span><span>如果有，发送通知给父窗口，告诉它尺寸改变了</span><span>
            <p>&#160;</p>
            </span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">}&nbsp;</font></font></span></p>
            <p><font size=3><span><font face="Times New Roman">// </font></span><span>视频显示对话框</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>if (CapDriverCaps.fHasDlgVideoDisplay)</font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capDlgVideoDisplay(hWndC); </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.7</font></span><span>获得和设定视频格式</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><strong><span><font face="Times New Roman">BITMAPINFO</font></span></strong><span>数据结构体可以实现长度可调节地去适应标准压缩的数据格式。因为它的长度可以变，所以在每次获得当前视频格式前，都必须去查询这个结构的长度以及分配的内存大小。该例子使用了</span><strong><span><font face="Times New Roman">capGetVideoFormatSize</font></span></strong><span>宏去获得缓存区大小，使用</span><strong><span><font face="Times New Roman">capGetVideoFormat</font></span></strong><span>宏区获得当前视频格式。</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>LPBITMAPINFO lpbi;</font></span></p>
            <p><span><font face="Times New Roman" size=3>DWORD dwSize;</font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>dwSize = capGetVideoFormatSize(hWndC);</font></span></p>
            <p><span><font face="Times New Roman" size=3>lpbi = GlobalAllocPtr (GHND, dwSize);</font></span></p>
            <p><span><font face="Times New Roman" size=3>capGetVideoFormat(hWndC, lpbi, dwSize); </font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// </font></span><span>访问视频格式，并且释放分配的内存。</span><span>
            <p>&#160;</p>
            </span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><font size=3><span>应用程序使用</span><span><font face="Times New Roman">capSetVideoFormat</font></span><span>宏</span><span><font face="Times New Roman">(WM_CAP_SET_VIDEOFORMAT)</font></span><span>，把一个</span><span><font face="Times New Roman">BITMAPINFO</font></span><span>结构发送给捕获窗口，显示修改。因为视频格式由设备指定的，你的应用程序可以去检查获得的返回值，来知道这个视频格式是不是公开的。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.8</font></span><span>预览视频</span></h4>
            <p><font size=3><span><span><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span><span>下面使用</span><span><font face="Times New Roman">capPreviewRate</font></span><span>宏来设置预览模式的帧频率为</span><span><font face="Times New Roman">66</font></span><span>毫秒</span><span><font face="Times New Roman">/</font></span><span>帧，使用</span><span><font face="Times New Roman">capPreview</font></span><span>宏在捕获窗口预览图像。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">capPreviewRate(hWndC, 66);<span>&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;<span>// </span></font></span><span>速度</span><span><font face="Times New Roman">,</font></span><span>微秒</span><span>
            <p>&#160;</p>
            </span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">capPreview(hWndC, TRUE);<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>// </span></font></span><span>开始预览</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">capPreview(hWnd, FALSE);<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;// </span></font></span><span>屏蔽预览</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.9</font></span><span>允许视频覆盖</span><font face="Times New Roman"><span>(Overlay)</span><span>
            <p>&#160;</p>
            </span></font></h4>
            <p><font size=3><span>下面使用</span><span><font face="Times New Roman">capDriverGetCaps</font></span><span>宏去检测这个捕获驱动是否支持覆盖</span><span><font face="Times New Roman">(Overlay)</font></span><span>模式</span><span><font face="Times New Roman">,</font></span><span>如果支持，就允许视频覆盖模式；</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>CAPDRIVERCAPS CapDrvCaps; </font></span></p>
            <p><span><font face="Times New Roman" size=3>capDriverGetCaps(hWndC, &amp;CapDrvCaps, sizeof (CAPDRIVERCAPS)); </font></span></p>
            <p><span><font face="Times New Roman" size=3>if (CapDrvCaps.fHasOverlay) </font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capOverlay(hWndC, TRUE);</font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.10</font></span><span>捕获文件命名</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span><span><font face="Times New Roman">&nbsp;&nbsp;&nbsp; </font></span></span><span>下例使用</span><span><font face="Times New Roman">capFileSetCaptureFile</font></span><span>宏来指定一个要命名的文件名（</span><span><font face="Times New Roman">mycap.avi</font></span><span>），使用</span><span><font face="Times New Roman">capFileAlloc</font></span><span>宏去预分配</span><span><font face="Times New Roman">5MB</font></span><span>的文件。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>char szCaptureFile[] = "MYCAP.AVI";</font></span></p>
            <p><span><font face="Times New Roman" size=3>capFileSetCaptureFile( hWndC, szCaptureFile); </font></span></p>
            <p><span><font face="Times New Roman" size=3>capFileAlloc( hWndC, (1024L * 1024L * 5)); </font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <h4><span><font face="Times New Roman">3.2.11</font></span><span>格式化音频捕获</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span>下例使用</span><span><font face="Times New Roman">capSetAudioFormat</font></span><span>来设置音频格式为</span><span><font face="Times New Roman">11-KHz PCM 8-bit,</font></span><span>立体声。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>WAVEFORMATEX wfex;</font></span></p>
            <p><span><font face="Times New Roman" size=3>wfex.wFormatTag = WAVE_FORMAT_PCM;</font></span></p>
            <p><font size=3><span><font face="Times New Roman">wfex.nChannels = 2;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>// </span></font></span><span>使用立体声</span></font></p>
            <p><span><font face="Times New Roman" size=3>wfex.nSamplesPerSec = 11025;</font></span></p>
            <p><span><font face="Times New Roman" size=3>wfex.nAvgBytesPerSec = 22050;</font></span></p>
            <p><span><font face="Times New Roman" size=3>wfex.nBlockAlign = 2;</font></span></p>
            <p><span><font face="Times New Roman" size=3>wfex.wBitsPerSample = 8;</font></span></p>
            <p><span><font face="Times New Roman" size=3>wfex.cbSize = 0;</font></span></p>
            <p><span><font face="Times New Roman" size=3>capSetAudioFormat(hWndC, &amp;wfex, sizeof(WAVEFORMATEX)); </font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><shape id=_x0000_i1028 alt="" type="#_x0000_t75"></shape><font face="Times New Roman">3.2.12</font></span><span>改变视频捕获设置</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span><span><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span><span>下例使用</span><span><font face="Times New Roman">capCaptureGetSetup</font></span><span>和</span><span><font face="Times New Roman">capCaptureSetSetup</font></span><span>宏来改变捕获速度，从默认值</span><span><font face="Times New Roman">(15</font></span><span>帧</span><span><font face="Times New Roman">/</font></span><span>秒</span><span><font face="Times New Roman">)</font></span><span>到</span><span><font face="Times New Roman">10</font></span><span>帧</span><span><font face="Times New Roman">/</font></span><span>秒。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>CAPTUREPARMS CaptureParms;</font></span></p>
            <p><span><font face="Times New Roman" size=3>float FramesPerSec = 10.0;</font></span></p>
            <p><span><font face="Times New Roman" size=3>capCaptureGetSetup(hWndC, &amp;CaptureParms, sizeof(CAPTUREPARMS));</font></span></p>
            <p><span><font face="Times New Roman" size=3>CaptureParms.dwRequestMicroSecPerFrame = (DWORD) (1.0e6 / </font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>FramesPerSec);</font></font></span></p>
            <p><span><font face="Times New Roman" size=3>capCaptureSetSetup(hWndC, &amp;CaptureParms, sizeof (CAPTUREPARMS)); </font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.13</font></span><span>捕获数据</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span><span><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span><span>下例使用</span><span><font face="Times New Roman">capCaptureSequence</font></span><span>宏开始视频捕获，使用</span><span><font face="Times New Roman">capFileSaveAs</font></span><span>宏从捕获文件拷贝数据到其他文件</span><span><font face="Times New Roman">NEWFILE.AVI</font></span><span>中。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>char szNewName[] = "NEWFILE.AVI";</font></span></p>
            <p><span><font face="Times New Roman" size=3>// Set up the capture operation.</font></span></p>
            <p><span><font face="Times New Roman" size=3>capCaptureSequence(hWndC); </font></span></p>
            <p><span><font face="Times New Roman" size=3>// Capture.</font></span></p>
            <p><span><font face="Times New Roman" size=3>capFileSaveAs(hWndC, szNewName); </font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><shape id=_x0000_i1025 alt="" type="#_x0000_t75"></shape><font face="Times New Roman">3.2.14</font></span><span>加入信息块</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span>如果你想添加其他信息（除了音视频），你可以建一个信息块并把它们插入到一个捕获文件中去。信息块可以包含这个方面的内容。比如版权信息，视频源的</span><span><font face="Times New Roman">ID</font></span><span>，外部显示的时间信息。下面的例子保存外部时间信息</span><span><font face="Times New Roman">SMPTE()</font></span><span>到一个信息块中，并加入使用</span><span><font face="Times New Roman">capFileSetInfoChunk</font></span><span>宏加入到捕获文件中。</span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">//&nbsp;This example assumes the application controls
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>//&nbsp;the video source for preroll and postroll. </font></span></p>
            <p><span><font face="Times New Roman" size=3>CAPINFOCHUNK cic;</font></span></p>
            <p><span><font face="Times New Roman" size=3>// . </font></span></p>
            <p><span><font face="Times New Roman" size=3>// . </font></span></p>
            <p><span><font face="Times New Roman" size=3>// . </font></span></p>
            <p><span><font face="Times New Roman" size=3>cic.fccInfoID = infotypeSMPTE_TIME;</font></span></p>
            <p><span><font face="Times New Roman" size=3>cic.lpData = "00:20:30:12"; </font></span></p>
            <p><span><font face="Times New Roman" size=3>cic.cbData = strlen (cic.lpData) + 1;</font></span></p>
            <p><span><font face="Times New Roman" size=3>capFileSetInfoChunk (hwndC, &amp;cic); </font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.15</font></span><span>在程序中加入回调函数</span></h4>
            <p><span><font size=3>应用程序可以注册捕获窗口的回调函数，这样就可以把下面的情况通知给应用程序：</font></span></p>
            <p><span><font size=3>l</font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><font size=3><span>状态变化了</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font size=3>l</font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><font size=3><span>错误发生了</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font size=3>l</font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><font size=3><span>视频和音频的缓冲区的数据可以使用了</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font size=3>l</font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><font size=3><span>在捕获期间，应用程序将</span><span><font face="Times New Roman">yield </font></span></font></p>
            <p><span><font size=3>下面的例子将创建一个捕获窗口并在应用的消息循环中，注状态、错误、视频流、帧的回调函数。</font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font face="Times New Roman" size=3>case WM_CREATE: </font></span></p>
            <p><span><font face="Times New Roman" size=3>{ </font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>char<span>&nbsp;&nbsp;&nbsp; </span>achDeviceName[80] ; </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>char<span>&nbsp;&nbsp;&nbsp; </span>achDeviceVersion[100] ; </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>char<span>&nbsp;&nbsp;&nbsp; </span>achBuffer[100] ; </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>WORD<span>&nbsp;&nbsp;&nbsp; </span>wDriverCount = 0 ; </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>WORD<span>&nbsp;&nbsp;&nbsp; </span>wIndex ; </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>WORD<span>&nbsp;&nbsp;&nbsp; </span>wError ; </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>HMENU<span>&nbsp;&nbsp; </span>hMenu ; </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>// </font></span><span>使用</span><strong><span><font face="Times New Roman">capCreateCaptureWindow</font></span></strong><span>宏创建一个捕获窗体</span><span><font face="Times New Roman">.
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>ghWndCap = capCreateCaptureWindow((LPSTR)"Capture Window", </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>WS_CHILD | WS_VISIBLE, 0, 0, 160, 120, (HWND) hWnd, (int) 0); </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>// </font></span><span>使用</span><strong><span><font face="Times New Roman">capSetCallbackOnError</font></span></strong><span>宏注册错误回调函数</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp; </span>&nbsp;&nbsp;capSetCallbackOnError(ghWndCap, fpErrorCallback); </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>// </font></span><span>使用</span><strong><span><font face="Times New Roman">capSetCallbackOnStatus</font></span></strong><span>宏注册状态回调函数</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capSetCallbackOnStatus(ghWndCap, fpStatusCallback); </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>//</font></span><span>使用</span><strong><span><font face="Times New Roman">capSetCallbackOnVideoStream</font></span></strong><span>宏注册视频流回调函数</span></font></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capSetCallbackOnVideoStream(ghWndCap, fpVideoCallback); </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>//</font></span><span>使用</span><strong><span><font face="Times New Roman">capSetCallbackOnFrame</font></span></strong><span>宏注册帧回调函数</span></font></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capSetCallbackOnFrame(ghWndCap, fpFrameCallback); </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>// </font></span><span>连接到一个捕获驱动器上</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>break; </font></font></span></p>
            <p><span><font face="Times New Roman" size=3>} </font></span></p>
            <p><span><font face="Times New Roman" size=3>case WM_CLOSE: </font></span></p>
            <p><span><font face="Times New Roman" size=3>{ </font></span></p>
            <p><font size=3><span><font face="Times New Roman">//</font></span><span>使用</span><strong><span><font face="Times New Roman">capSetCallbackOnFrame</font></span></strong><span>宏关闭帧回调函数</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><font size=3><span><font face="Times New Roman">// </font></span><span>类似可调用其他存在的回调函数。</span><span>
            <p>&#160;</p>
            </span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>capSetCallbackOnFrame(hWndC, NULL); </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;break; </font></font></span></p>
            <p><span><font face="Times New Roman" size=3>} </font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.16</font></span><span>创建一个状态回调函数</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span>下面的例子是一个简单的状态回调函数，使用</span><span><font face="Times New Roman">capSetCallbackOnStatus</font></span><span>宏来注册这个回调函数。</span></font></p>
            <p><font size=3><span><font face="Times New Roman">// StatusCallbackProc: </font></span><span>状态回调函数</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// hWnd:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span><span>捕获窗体句柄</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// nID:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span><span>当前状态的状态码</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// lpStatusText:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span><span>当前状态的文本字符</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font face="Times New Roman" size=3>// </font></span></p>
            <p><span><font face="Times New Roman" size=3>LRESULT PASCAL StatusCallbackProc(HWND hWnd, int nID, </font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>LPSTR lpStatusText) </font></font></span></p>
            <p><span><font face="Times New Roman" size=3>{ </font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>if (!ghWndMain) </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return FALSE; </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>if (nID == 0) {<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>// </span></font></span><span>清除旧的状态信息</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>SetWindowText(ghWndMain, (LPSTR) gachAppName); </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return (LRESULT) TRUE; </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>} </font></font></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp; </span><span>&nbsp;// </span></font></span><span>显示状态</span><span><font face="Times New Roman">ID</font></span><span>和状态文本</span><span><font face="Times New Roman">..
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>wsprintf(gachBuffer, "Status# %d: %s", nID, lpStatusText); </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>SetWindowText(ghWndMain, (LPSTR)gachBuffer); </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>return (LRESULT) TRUE; </font></font></span></p>
            <p><span><font face="Times New Roman" size=3>} </font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <h4><span><font face="Times New Roman">3.2.17</font></span><span>创建一个错误的回调函数</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span>下面例子是一个简单的错误回调函数。通过</span><span><font face="Times New Roman">capSetCallbackOnError</font></span><span>宏来注册回调。</span></font></p>
            <p><font size=3><span><font face="Times New Roman">// ErrorCallbackProc: <span>&nbsp;&nbsp;&nbsp;</span></font></span><span>错误回调函数</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// hWnd:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span><span>捕获窗口句柄</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// nErrID:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span></font></span><span>错误代码</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// lpErrorText:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;</span></font></span><span>关于错误的文本信息</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font face="Times New Roman" size=3>// </font></span></p>
            <p><span><font face="Times New Roman" size=3>LRESULT PASCAL ErrorCallbackProc(HWND hWnd, int nErrID,</font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>LPSTR lpErrorText) </font></font></span></p>
            <p><span><font face="Times New Roman" size=3>{ </font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>if (!ghWndMain) </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return FALSE; </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>if (nErrID == 0)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// Starting a new major function. </font></font></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return TRUE;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>// </span></font></span><span>清除旧的错误</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><font size=3><span><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span><span>// </span></font></span><span>显示错误</span><span><font face="Times New Roman">ID</font></span><span>和错误文本信息</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>wsprintf(gachBuffer, "Error# %d", nErrID); </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>MessageBox(hWnd, lpErrorText, gachBuffer, </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>MB_OK | MB_ICONEXCLAMATION); </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>return (LRESULT) TRUE; </font></font></span></p>
            <p><span><font face="Times New Roman" size=3>} </font></span></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <h4><span><font face="Times New Roman">3.2.18</font></span><span>创建一个帧回调函数</span><span>
            <p>&#160;</p>
            </span></h4>
            <p><font size=3><span>下面是一个简单的帧回调函数。通过</span><span><font face="Times New Roman">capSetCallbackFrame</font></span><span>宏来注册回调函数。</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font size=3><font face="Times New Roman">&nbsp;
            <p>&#160;</p>
            </font></font></span>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// FrameCallbackProc: <span>&nbsp;&nbsp;</span></font></span><span>帧回调函数</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// hWnd:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span><span>捕获窗体句柄</span><span><font face="Times New Roman">
            <p>&#160;</p>
            </font></span></font>
            <p>&#160;</p>
            <p><font size=3><span><font face="Times New Roman">// lpVHdr:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;</font></span><span>指向一个包含帧信息的数据结构体</span><span><font face="Times New Roman"> </font></span></font></p>
            <p><span><font face="Times New Roman" size=3>// </font></span></p>
            <p><span><font face="Times New Roman" size=3>LRESULT PASCAL FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr) </font></span></p>
            <p><span><font face="Times New Roman" size=3>{ </font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>if (!ghWndMain) </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return FALSE; </font></font></span></p>
            <p><span><span><font face="Times New Roman" size=3>&nbsp;</font></span></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>wsprintf(gachBuffer, "Preview frame# %ld ", gdwFrameNum++); </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>SetWindowText(ghWndMain, (LPSTR)gachBuffer); </font></font></span></p>
            <p><span><font size=3><font face="Times New Roman"><span>&nbsp;&nbsp;&nbsp; </span>return (LRESULT) TRUE ; </font></font></span></p>
            <p><span><font face="Times New Roman" size=3>} </font></span></p>
            <p>&#160;</p>
            </span><br></td>
        </tr>
    </tbody>
</table>
<!-- 版权 -->
<img src ="http://www.cppblog.com/yefuhai/aggbug/55471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-07-06 17:17 <a href="http://www.cppblog.com/yefuhai/archive/2008/07/06/55471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个程序员的成长的六个阶段(转 )</title><link>http://www.cppblog.com/yefuhai/archive/2008/05/01/48585.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Thu, 01 May 2008 07:47:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/05/01/48585.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/48585.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/05/01/48585.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/48585.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/48585.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 看了之后你有什么感想呢 你又处在什么阶段呢？&nbsp;&nbsp;<a href='http://www.cppblog.com/yefuhai/archive/2008/05/01/48585.html'>阅读全文</a><img src ="http://www.cppblog.com/yefuhai/aggbug/48585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-05-01 15:47 <a href="http://www.cppblog.com/yefuhai/archive/2008/05/01/48585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC ODBC连接SQL2005的问题！</title><link>http://www.cppblog.com/yefuhai/archive/2008/04/30/48528.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Wed, 30 Apr 2008 09:18:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/04/30/48528.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/48528.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/04/30/48528.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/48528.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/48528.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: //VC.NET 2005 ODBC数据源 <br>//举个例子&nbsp;&nbsp;<a href='http://www.cppblog.com/yefuhai/archive/2008/04/30/48528.html'>阅读全文</a><img src ="http://www.cppblog.com/yefuhai/aggbug/48528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-04-30 17:18 <a href="http://www.cppblog.com/yefuhai/archive/2008/04/30/48528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络和软件相通吗？</title><link>http://www.cppblog.com/yefuhai/archive/2008/03/07/43929.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Fri, 07 Mar 2008 15:12:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/03/07/43929.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/43929.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/03/07/43929.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/43929.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/43929.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 网络和软件相通吗？(看完留言)&nbsp;&nbsp;<a href='http://www.cppblog.com/yefuhai/archive/2008/03/07/43929.html'>阅读全文</a><img src ="http://www.cppblog.com/yefuhai/aggbug/43929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-03-07 23:12 <a href="http://www.cppblog.com/yefuhai/archive/2008/03/07/43929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NoDriveTypeAutoRun不同设备用以下数值</title><link>http://www.cppblog.com/yefuhai/archive/2008/02/27/43353.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Wed, 27 Feb 2008 11:55:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/02/27/43353.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/43353.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/02/27/43353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/43353.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/43353.html</trackback:ping><description><![CDATA[<font size=2>在Windows系统有允许和阻止自动运行的键值的方法：<br><br>在注册表中找到如下键：</font>
<blockquote>
<blockquote>
<p><font size=2>键路径：[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Exploer]<br><br>在右侧窗格中有 "NoDriveTypeAutoRun"这个键决定了是否执行Autorun功能.其中每一位代表一个设备,不同设备用以下数值表示:<br></font></p>
<table height=232 width=618 border=0>
    <tbody>
        <tr>
            <td align=middle width=124><font size=2>设备名称</font></td>
            <td width=73>
            <div align=center><font size=2>第几位</font></div>
            </td>
            <td width=77>
            <div align=center><font size=2>数值</font></div>
            </td>
            <td width=116>
            <div align=center><font size=2>设备用如下数值表示</font></div>
            </td>
            <td align=middle width=118><font size=2>设备名称含义</font></td>
        </tr>
        <tr>
            <td><font size=2>DRIVE_UNKNOWN</font></td>
            <td>
            <div align=center><font size=2>0</font></div>
            </td>
            <td>
            <div align=center><font size=2>1</font></div>
            </td>
            <td>
            <div align=center><font size=2>01H</font></div>
            </td>
            <td><font size=2>不能识别的类型设备</font></td>
        </tr>
        <tr>
            <td><font size=2>DRIVE_NO_ROOT_DIR</font></td>
            <td>
            <div align=center><font size=2>1</font></div>
            </td>
            <td>
            <div align=center><font size=2>0</font></div>
            </td>
            <td>
            <div align=center><font size=2>02H</font></div>
            </td>
            <td><font size=2>没有根目录的驱动器</font></td>
        </tr>
        <tr>
            <td><font size=2>DRIVE_REMOVABLE</font></td>
            <td>
            <div align=center><font size=2>2</font></div>
            </td>
            <td>
            <div align=center><font size=2>1</font></div>
            </td>
            <td>
            <div align=center><font size=2>04H</font></div>
            </td>
            <td><font size=2>可移动驱动器</font></td>
        </tr>
        <tr>
            <td><font color=#0000ff size=2>DRIVE_FIXED</font></td>
            <td>
            <div align=center><font size=2>3</font></div>
            </td>
            <td>
            <div align=center><font color=#ff6600 size=2>0</font></div>
            </td>
            <td>
            <div align=center><font size=2>08H</font></div>
            </td>
            <td><font size=2>固定的驱动器</font></td>
        </tr>
        <tr>
            <td><font size=2>DRIVE_REMOTE</font></td>
            <td>
            <div align=center><font size=2>4</font></div>
            </td>
            <td>
            <div align=center><font size=2>1</font></div>
            </td>
            <td>
            <div align=center><font size=2>10H</font></div>
            </td>
            <td><font size=2>网络驱动器</font></td>
        </tr>
        <tr>
            <td><font size=2>DRIVE_CDROM</font></td>
            <td>
            <div align=center><font size=2>5</font></div>
            </td>
            <td>
            <div align=center><font size=2>0</font></div>
            </td>
            <td>
            <div align=center><font size=2>20H</font></div>
            </td>
            <td><font size=2>光驱</font></td>
        </tr>
        <tr>
            <td><font size=2>DRIVE_RAMDISK</font></td>
            <td>
            <div align=center><font size=2>6</font></div>
            </td>
            <td>
            <div align=center><font size=2>0</font></div>
            </td>
            <td>
            <div align=center><font size=2>40H</font></div>
            </td>
            <td><font size=2>RAM磁盘</font></td>
        </tr>
    </tbody>
</table>
<p><font size=2>其中： 保留 7 1 80h 　未指定的驱动器类型<br></font></p>
</blockquote></blockquote>
<p><font size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#ff0000> 以上值"0"表示设备运行，"1"表示设备不运行。</font><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从上面可以看出，对应的<strong><font color=#ff6600>DRIVE_CDROM、</font></strong><strong><font color=#ff6600>DRIVE_NO_ROOT_DIR、DRIVE_FIXED、DRIVE_RAMDISK</font></strong>是可以自动运 行的。所以要禁止硬盘自动运行AutoRun.inf文件，就必须将<font color=#ff0000><strong>DRIVE_FIXED</strong></font>这些键的值设为<font color=#ff6600><strong>1</strong></font>，由于DRIVE_FIXED代表固定的驱动 器(即硬盘)。如果仅想禁止软件光盘的AutoRun功能，但又保留对CD音频碟的自动播放能力，这时只需将&#8220;<font color=#0000ff>NoDriveTypeAutoRun</font>&#8221;的 键值改为：<font color=#0000ff>BD,00,00,00</font>即可。 　　 <br></font></p>
<img src ="http://www.cppblog.com/yefuhai/aggbug/43353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-02-27 19:55 <a href="http://www.cppblog.com/yefuhai/archive/2008/02/27/43353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASAPI</title><link>http://www.cppblog.com/yefuhai/archive/2008/02/21/43057.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Thu, 21 Feb 2008 09:55:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/02/21/43057.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/43057.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/02/21/43057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/43057.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/43057.html</trackback:ping><description><![CDATA[<p>学CWinInet的时候，开始感觉比较轻松。可是到人机交互的时候就晕了，就是ASAPI，在服务器中实现人机交互，咳，都是些看不懂的脚本语言！烦，不知道怎么办呀！</p>
<img src ="http://www.cppblog.com/yefuhai/aggbug/43057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-02-21 17:55 <a href="http://www.cppblog.com/yefuhai/archive/2008/02/21/43057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件重新命名</title><link>http://www.cppblog.com/yefuhai/archive/2008/02/07/42586.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Thu, 07 Feb 2008 08:21:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/02/07/42586.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/42586.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/02/07/42586.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/42586.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/42586.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 重新命名文件！有会用SHFILEOPSTRUCT重新命名的顶一下 吧代码贴上去！ 感激不尽&nbsp;&nbsp;<a href='http://www.cppblog.com/yefuhai/archive/2008/02/07/42586.html'>阅读全文</a><img src ="http://www.cppblog.com/yefuhai/aggbug/42586.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-02-07 16:21 <a href="http://www.cppblog.com/yefuhai/archive/2008/02/07/42586.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Visual C++ MFC 中常用宏的含义</title><link>http://www.cppblog.com/yefuhai/archive/2008/02/06/42569.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Wed, 06 Feb 2008 07:33:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/02/06/42569.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/42569.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/02/06/42569.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/42569.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/42569.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 当初阅读这本书，里面设计到了太多的宏，自我感觉来讲，虽然MFC的宏设计有些精妙之处，但是对于我确实一件头疼的事情！MFC内部的关系也足以可以让一个人窒息掉。MFC技术感觉有点陈旧了，可能这也是微软自身抛弃MFC的原因！包括整个VC编译环境，随着网络程序的泛滥，vc不是一个好的并且高效的程序编辑环境了。&nbsp;&nbsp;<a href='http://www.cppblog.com/yefuhai/archive/2008/02/06/42569.html'>阅读全文</a><img src ="http://www.cppblog.com/yefuhai/aggbug/42569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-02-06 15:33 <a href="http://www.cppblog.com/yefuhai/archive/2008/02/06/42569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CFileDialog构造函数 </title><link>http://www.cppblog.com/yefuhai/archive/2008/02/06/42568.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Wed, 06 Feb 2008 03:13:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/02/06/42568.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/42568.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/02/06/42568.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/42568.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/42568.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: CFileDialog文件选择对话框的使用：&nbsp;&nbsp;<a href='http://www.cppblog.com/yefuhai/archive/2008/02/06/42568.html'>阅读全文</a><img src ="http://www.cppblog.com/yefuhai/aggbug/42568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-02-06 11:13 <a href="http://www.cppblog.com/yefuhai/archive/2008/02/06/42568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CDib类</title><link>http://www.cppblog.com/yefuhai/archive/2008/02/03/42477.html</link><dc:creator>叶付海的C++</dc:creator><author>叶付海的C++</author><pubDate>Sun, 03 Feb 2008 10:26:00 GMT</pubDate><guid>http://www.cppblog.com/yefuhai/archive/2008/02/03/42477.html</guid><wfw:comment>http://www.cppblog.com/yefuhai/comments/42477.html</wfw:comment><comments>http://www.cppblog.com/yefuhai/archive/2008/02/03/42477.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/yefuhai/comments/commentRss/42477.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yefuhai/services/trackbacks/42477.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一个比较好的对DIB位图进行操作的类，如有不足的地方，希望给大家给出评价！&nbsp;&nbsp;<a href='http://www.cppblog.com/yefuhai/archive/2008/02/03/42477.html'>阅读全文</a><img src ="http://www.cppblog.com/yefuhai/aggbug/42477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yefuhai/" target="_blank">叶付海的C++</a> 2008-02-03 18:26 <a href="http://www.cppblog.com/yefuhai/archive/2008/02/03/42477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>