﻿<?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++博客-行胜于言</title><link>http://www.cppblog.com/davyy/</link><description>于无声处</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:07:10 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:07:10 GMT</pubDate><ttl>60</ttl><item><title>解决CFrameWnd的边框问题</title><link>http://www.cppblog.com/davyy/archive/2006/11/14/15152.html</link><dc:creator>行胜于言</dc:creator><author>行胜于言</author><pubDate>Tue, 14 Nov 2006 05:49:00 GMT</pubDate><guid>http://www.cppblog.com/davyy/archive/2006/11/14/15152.html</guid><wfw:comment>http://www.cppblog.com/davyy/comments/15152.html</wfw:comment><comments>http://www.cppblog.com/davyy/archive/2006/11/14/15152.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/davyy/comments/commentRss/15152.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/davyy/services/trackbacks/15152.html</trackback:ping><description><![CDATA[
		<p align="left">
				<br />大家都做过基于MFC Dialog的应用程序,我更喜欢用CFrameWnd派生类来实现应用程序的主框架,我不太喜欢SDI模板,又是Document又是View的,MFC背着你干了很多事情!<br />好了，说说问题,大家如果作过基于CFrameWnd的主窗口,可能会发现主窗口会有一个3D的边框,一开始我用ModifyStyle发现不行,那就在PreCreateWindow里面吧!呵呵,也不管用,跟进MFC的代码,发现CFrameWnd::PreCreateWindow会重置dwExStyle,好了看代码吧!<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">BOOL CMainFrame::PreCreateWindow(CREATESTRUCT</span>
				<span style="COLOR: #000000">&amp;</span>
				<span style="COLOR: #000000"> cs) <br /><img id="Codehighlighter1_52_182_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_182_Open_Text.style.display='none'; Codehighlighter1_52_182_Closed_Image.style.display='inline'; Codehighlighter1_52_182_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /></span>
				<span id="Codehighlighter1_52_182_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />  BOOL bRet</span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">CFrameWnd::PreCreateWindow(cs);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />  </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">(bRet)<br /><img id="Codehighlighter1_110_165_Open_Image" onclick="this.style.display='none'; Codehighlighter1_110_165_Open_Text.style.display='none'; Codehighlighter1_110_165_Closed_Image.style.display='inline'; Codehighlighter1_110_165_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /></span>
						<span id="Codehighlighter1_110_165_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />   cs.dwExStyle</span>
								<span style="COLOR: #000000">&amp;=~</span>
								<span style="COLOR: #000000">WS_EX_CLIENTEDGE;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />   </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> TRUE;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> FALSE;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
<img src ="http://www.cppblog.com/davyy/aggbug/15152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/davyy/" target="_blank">行胜于言</a> 2006-11-14 13:49 <a href="http://www.cppblog.com/davyy/archive/2006/11/14/15152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>又要过10-1了</title><link>http://www.cppblog.com/davyy/archive/2006/09/27/13035.html</link><dc:creator>行胜于言</dc:creator><author>行胜于言</author><pubDate>Wed, 27 Sep 2006 08:34:00 GMT</pubDate><guid>http://www.cppblog.com/davyy/archive/2006/09/27/13035.html</guid><wfw:comment>http://www.cppblog.com/davyy/comments/13035.html</wfw:comment><comments>http://www.cppblog.com/davyy/archive/2006/09/27/13035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/davyy/comments/commentRss/13035.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/davyy/services/trackbacks/13035.html</trackback:ping><description><![CDATA[
		<p>好象还是有点不开心,大概搞TMD 软件每天都有解决不完的问题,尤其象我这种不知道天高地厚的人更是如此!<br />牢骚要发,也得继续搞,屏幕捕获的算法终于优化出来了,下一步是用ASF Container把数据包装起来,效果应该不错,我有点搞不明白的是AVI的索引为什么那么慢,数据量大是一方面,关键还是数据组织上存在缺陷,不如MPEG4!<br />如果顺利,应该在10月份就可以拿出一个象样的版本的录制软件了,应该可以毙掉一批垃圾录屏软件了,这是我希望看到的!<img height="19" src="http://www.cppblog.com/Emoticons/77_77.gif" width="19" border="0" /><br />下面的事情还很多，每个都够啃的，我还得多些耐心，少些焦虑，也希望认识一些朋友大家一块合作！</p>
<img src ="http://www.cppblog.com/davyy/aggbug/13035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/davyy/" target="_blank">行胜于言</a> 2006-09-27 16:34 <a href="http://www.cppblog.com/davyy/archive/2006/09/27/13035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>征途</title><link>http://www.cppblog.com/davyy/archive/2006/09/18/12680.html</link><dc:creator>行胜于言</dc:creator><author>行胜于言</author><pubDate>Mon, 18 Sep 2006 05:55:00 GMT</pubDate><guid>http://www.cppblog.com/davyy/archive/2006/09/18/12680.html</guid><wfw:comment>http://www.cppblog.com/davyy/comments/12680.html</wfw:comment><comments>http://www.cppblog.com/davyy/archive/2006/09/18/12680.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/davyy/comments/commentRss/12680.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/davyy/services/trackbacks/12680.html</trackback:ping><description><![CDATA[
		<p>我要开始征途了,也许前面是坦途或荆棘,这已经都不重要了,更多在于我的机会也许只能在此征途体现了,如果失败,也许就意味着我在IT行业的彻底颠覆,我认了!<br />我把自己blog定为行胜于言,意义就在这里,我的计划开始了,从今天开始!</p>
<img src ="http://www.cppblog.com/davyy/aggbug/12680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/davyy/" target="_blank">行胜于言</a> 2006-09-18 13:55 <a href="http://www.cppblog.com/davyy/archive/2006/09/18/12680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何让你的程序安全通过windows防火墙</title><link>http://www.cppblog.com/davyy/archive/2006/07/24/10410.html</link><dc:creator>行胜于言</dc:creator><author>行胜于言</author><pubDate>Mon, 24 Jul 2006 08:01:00 GMT</pubDate><guid>http://www.cppblog.com/davyy/archive/2006/07/24/10410.html</guid><wfw:comment>http://www.cppblog.com/davyy/comments/10410.html</wfw:comment><comments>http://www.cppblog.com/davyy/archive/2006/07/24/10410.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/davyy/comments/commentRss/10410.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/davyy/services/trackbacks/10410.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Arial" size="1">大家开发网络程序,经常要连接其他主机,如果在xp上运行,一定会提示你,只有选择解除阻止才能实现正常的网络连接.那么有没有办法在防火墙的例外列表里面通过编程的方式加入自己的程序呢?<br /> 当然有了,不然就不要介绍了<img height="19" src="http://www.cppblog.com/Emoticons/teeth_smile.gif" width="19" border="0" /><br />xp的系统目录下面有个hnetcfg.dll就是这个编程接口,头文件是netfw.h,初始化代码如下:<br />INetFwProfile* m_pFireWallProfile=NULL;<br /></font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">HRESULT hr </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> S_FALSE;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    INetFwMgr</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000"> fwMgr </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> NULL;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    INetFwPolicy</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000"> fwPolicy </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> NULL;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    FW_ERROR_CODE ret </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> FW_NOERROR;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">try</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_120_710_Open_Image" onclick="this.style.display='none'; Codehighlighter1_120_710_Open_Text.style.display='none'; Codehighlighter1_120_710_Closed_Image.style.display='inline'; Codehighlighter1_120_710_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_120_710_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_120_710_Closed_Text.style.display='none'; Codehighlighter1_120_710_Open_Image.style.display='inline'; Codehighlighter1_120_710_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />    </span>
				<span id="Codehighlighter1_120_710_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cppblog.com/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_120_710_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">( m_pFireWallProfile )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
						<span style="COLOR: #0000ff">throw</span>
						<span style="COLOR: #000000"> FW_ERR_INITIALIZED;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000"> Create an instance of the firewall settings manager.</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">        hr </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> CoCreateInstance( __uuidof(NetFwMgr), NULL, CLSCTX_INPROC_SERVER, __uuidof( INetFwMgr), (</span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000">**</span>
						<span style="COLOR: #000000">)</span>
						<span style="COLOR: #000000">&amp;</span>
						<span style="COLOR: #000000">fwMgr );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">( FAILED( hr ))<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
						<span style="COLOR: #0000ff">throw</span>
						<span style="COLOR: #000000"> FW_ERR_CREATE_SETTING_MANAGER;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000"> Retrieve the local firewall policy.</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">        hr </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> fwMgr</span>
						<span style="COLOR: #000000">-&gt;</span>
						<span style="COLOR: #000000">get_LocalPolicy( </span>
						<span style="COLOR: #000000">&amp;</span>
						<span style="COLOR: #000000">fwPolicy );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">( FAILED( hr ))<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
						<span style="COLOR: #0000ff">throw</span>
						<span style="COLOR: #000000"> FW_ERR_LOCAL_POLICY;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000"> Retrieve the firewall profile currently in effect</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">        hr </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> fwPolicy</span>
						<span style="COLOR: #000000">-&gt;</span>
						<span style="COLOR: #000000">get_CurrentProfile( </span>
						<span style="COLOR: #000000">&amp;</span>
						<span style="COLOR: #000000">m_pFireWallProfile );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">( FAILED( hr ))<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
						<span style="COLOR: #0000ff">throw</span>
						<span style="COLOR: #000000"> FW_ERR_PROFILE;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">catch</span>
				<span style="COLOR: #000000">( FW_ERROR_CODE nError)<br /><img id="Codehighlighter1_743_762_Open_Image" onclick="this.style.display='none'; Codehighlighter1_743_762_Open_Text.style.display='none'; Codehighlighter1_743_762_Closed_Image.style.display='inline'; Codehighlighter1_743_762_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_743_762_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_743_762_Closed_Text.style.display='none'; Codehighlighter1_743_762_Open_Image.style.display='inline'; Codehighlighter1_743_762_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />    </span>
				<span id="Codehighlighter1_743_762_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cppblog.com/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_743_762_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        ret </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> nError;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000">( fwPolicy )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />        fwPolicy</span>
				<span style="COLOR: #000000">-&gt;</span>
				<span style="COLOR: #000000">Release();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000">( fwMgr )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />        fwMgr</span>
				<span style="COLOR: #000000">-&gt;</span>
				<span style="COLOR: #000000">Release();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">return</span>
				<span style="COLOR: #000000"> ret;</span>
		</div>将程序名称加入例外列表:<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">WinXPSP2FireWall::AddApplication( </span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> wchar_t</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> lpszProcessImageFileName, </span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> wchar_t</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> lpszRegisterName )<br /><img id="Codehighlighter1_109_2313_Open_Image" onclick="this.style.display='none'; Codehighlighter1_109_2313_Open_Text.style.display='none'; Codehighlighter1_109_2313_Closed_Image.style.display='inline'; Codehighlighter1_109_2313_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_109_2313_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_109_2313_Closed_Text.style.display='none'; Codehighlighter1_109_2313_Open_Image.style.display='inline'; Codehighlighter1_109_2313_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_109_2313_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_109_2313_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    FW_ERROR_CODE ret </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FW_NOERROR;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    HRESULT hr;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    BOOL bAppEnable;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    BSTR bstrProcessImageFileName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    BSTR bstrRegisterName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    INetFwAuthorizedApplication</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> pFWApp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    INetFwAuthorizedApplications</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> pFWApps </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_344_2090_Open_Image" onclick="this.style.display='none'; Codehighlighter1_344_2090_Open_Text.style.display='none'; Codehighlighter1_344_2090_Closed_Image.style.display='inline'; Codehighlighter1_344_2090_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_344_2090_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_344_2090_Closed_Text.style.display='none'; Codehighlighter1_344_2090_Open_Image.style.display='inline'; Codehighlighter1_344_2090_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_344_2090_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_344_2090_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( m_pFireWallProfile </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> NULL )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_INITIALIZED;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( lpszProcessImageFileName </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> NULL </span><span style="COLOR: #000000">||</span><span style="COLOR: #000000"> lpszRegisterName  </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> NULL )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_INVALID_ARG;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> First of all, check the application is already authorized;</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        FW_ERROR_CODE  nError </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">IsAppEnabled( lpszProcessImageFileName, bAppEnable );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( nError </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> FW_NOERROR )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> nError;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Only add the application if it isn't authorized</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( bAppEnable </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> FALSE )<br /><img id="Codehighlighter1_790_2087_Open_Image" onclick="this.style.display='none'; Codehighlighter1_790_2087_Open_Text.style.display='none'; Codehighlighter1_790_2087_Closed_Image.style.display='inline'; Codehighlighter1_790_2087_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_790_2087_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_790_2087_Closed_Text.style.display='none'; Codehighlighter1_790_2087_Open_Image.style.display='inline'; Codehighlighter1_790_2087_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span id="Codehighlighter1_790_2087_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_790_2087_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Retrieve the authorized application collection</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> m_pFireWallProfile</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">get_AuthorizedApplications( </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">pFWApps );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( FAILED( hr ))<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_AUTH_APPLICATIONS;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Create an instance of an authorized application</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CoCreateInstance( __uuidof(NetFwAuthorizedApplication), NULL, CLSCTX_INPROC_SERVER, __uuidof(INetFwAuthorizedApplication), (</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">**</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">pFWApp);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( FAILED( hr ))<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_CREATE_APP_INSTANCE;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Allocate a BSTR for the Process Image FileName</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            bstrProcessImageFileName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> SysAllocString( lpszProcessImageFileName );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( SysStringLen( bstrProcessImageFileName ) </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_SYS_ALLOC_STRING;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Set the process image file name</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> pFWApp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">put_ProcessImageFileName( bstrProcessImageFileName );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( FAILED( hr ) )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_PUT_PROCESS_IMAGE_NAME;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Allocate a BSTR for register name</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            bstrRegisterName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> SysAllocString( lpszRegisterName );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( SysStringLen( bstrRegisterName ) </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_SYS_ALLOC_STRING;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Set a registered name of the process</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> pFWApp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">put_Name( bstrRegisterName );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( FAILED( hr ))<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_PUT_REGISTER_NAME;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Add the application to the collection</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> pFWApps</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Add( pFWApp );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( FAILED( hr ))<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> FW_ERR_ADD_TO_COLLECTION;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">( FW_ERROR_CODE nError )<br /><img id="Codehighlighter1_2124_2143_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2124_2143_Open_Text.style.display='none'; Codehighlighter1_2124_2143_Closed_Image.style.display='inline'; Codehighlighter1_2124_2143_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2124_2143_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2124_2143_Closed_Text.style.display='none'; Codehighlighter1_2124_2143_Open_Image.style.display='inline'; Codehighlighter1_2124_2143_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_2124_2143_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_2124_2143_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        ret </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> nError;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    SysFreeString( bstrProcessImageFileName );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    SysFreeString( bstrRegisterName );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( pFWApp )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        pFWApp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Release();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( pFWApps )<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        pFWApps</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Release();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ret;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><img src ="http://www.cppblog.com/davyy/aggbug/10410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/davyy/" target="_blank">行胜于言</a> 2006-07-24 16:01 <a href="http://www.cppblog.com/davyy/archive/2006/07/24/10410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>视频压缩技术在桌面录制中的应用</title><link>http://www.cppblog.com/davyy/archive/2006/07/22/10342.html</link><dc:creator>行胜于言</dc:creator><author>行胜于言</author><pubDate>Sat, 22 Jul 2006 06:02:00 GMT</pubDate><guid>http://www.cppblog.com/davyy/archive/2006/07/22/10342.html</guid><wfw:comment>http://www.cppblog.com/davyy/comments/10342.html</wfw:comment><comments>http://www.cppblog.com/davyy/archive/2006/07/22/10342.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/davyy/comments/commentRss/10342.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/davyy/services/trackbacks/10342.html</trackback:ping><description><![CDATA[
		<p align="left">　现今的即时通信软件都实现了音频、视频互通的功能，这得益于视频编码技术的应用，目前市面上Microsoft 有MPEG4 v3,DIVX,XVID等等不一而足，但目前市场上好象对用户桌面录制技术关注不够，因为大家知道桌面图象和运动图象是不一样的，这也造成优秀的桌面录制软件非常缺乏。<br />为什么要讨论桌面压缩呢？因为起应用领域非常广泛，第一他用在课件制作技术方面，可以完整还原教师的培训过程，尤其是操作类培训的课程更有实际意义。第二桌面共享依赖于桌面压缩技术，更好的压缩效率和质量将使得低带宽下的高质量桌面共享成为可能？<br />大家都知道桌面压缩技术的实现可以基于RLE或HUFFMAN或其他更高级的算法进行实现，如何实现更为优秀的回放效果和质量，是目前这些方法所不能解决的。<br />同时，为了兼容应用需求，录制的输出格式也有很多要求，比如实现网上点播、录制成ASF格式等。<br />在最近一段时间的开发过程和实现过程中，我尝试了一些新的方法，取得了一些突破，但离自己最终的想法还有一定距离，如果大家感兴趣的话，可以到我的网站下载：<a class="" title="屏踪幻影" href="http://www.handytech.cn" target="_blank">屏踪幻影</a>，由于目前软件还不是非常完善，所以目前还无法公开代码，在后续的时间里我会公开程序结构和内部代码实现。<br />希望大家对我的软件实现提出建议和修改意见。</p>
<img src ="http://www.cppblog.com/davyy/aggbug/10342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/davyy/" target="_blank">行胜于言</a> 2006-07-22 14:02 <a href="http://www.cppblog.com/davyy/archive/2006/07/22/10342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>五行代码搞定"音量调节向导"</title><link>http://www.cppblog.com/davyy/archive/2006/07/06/9492.html</link><dc:creator>行胜于言</dc:creator><author>行胜于言</author><pubDate>Thu, 06 Jul 2006 09:05:00 GMT</pubDate><guid>http://www.cppblog.com/davyy/archive/2006/07/06/9492.html</guid><wfw:comment>http://www.cppblog.com/davyy/comments/9492.html</wfw:comment><comments>http://www.cppblog.com/davyy/archive/2006/07/06/9492.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/davyy/comments/commentRss/9492.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/davyy/services/trackbacks/9492.html</trackback:ping><description><![CDATA[ 音量调节是实现互联网语音通信的重要环节,很多公司自行实现了有关音量调节的向导,无奈水平各异,千差万别.微软公司也给出了解决方案,不过是在RTC实现,需要安装RTC运行时. 
<p>   今天给大家介绍的使用DirectX中有关DirectVoice中的实现来解决我们的问题:</p><p>//http://www.handytech.cn <br /><font face="Verdana">#include &lt;dvoice.h&gt;<br />#pragma  comment(lib,"dxguid.lib")<br />void CTestDlg::OnButton1() <br />{<br /> // TODO: Add your control notification handler code here<br /> IDirectPlayVoiceTest* pTest;<br /> HRESULT hr=CoCreateInstance(CLSID_DirectPlayVoiceTest,NULL,CLSCTX_INPROC_SERVER,IID_IDirectPlayVoiceTest,(void**)&amp;pTest);<br /> if(SUCCEEDED(hr))<br /> {<br />  pTest-&gt;CheckAudioSetup(&amp;DSDEVID_DefaultVoicePlayback,&amp;DSDEVID_DefaultCapture,NULL,DVFLAGS_ALLOWBACK);<br />  pTest-&gt;Release();<br /> }</font></p><p>  OK上面的代码就调用了DirectVoice中的实现,大家看看效果!<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" filled="f" stroked="f" path="m@4@5l@4@11@9@11@9@5xe"> </v:shapetype></span></p><p><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype coordsize="21600,21600" o:spt="75" o:preferrelative="t" filled="f" stroked="f" path="m@4@5l@4@11@9@11@9@5xe"></v:shapetype></span> </p><img src ="http://www.cppblog.com/davyy/aggbug/9492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/davyy/" target="_blank">行胜于言</a> 2006-07-06 17:05 <a href="http://www.cppblog.com/davyy/archive/2006/07/06/9492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>