﻿<?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>IT博客-我的学习园地</title><link>http://www.cnitblog.com/sonery/</link><description>昨夜西风凋碧树,独上高楼,望尽天涯路。</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 17:02:22 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 17:02:22 GMT</pubDate><ttl>60</ttl><item><title>关于activex在ie中自动升级的一些说明</title><link>http://www.cnitblog.com/sonery/archive/2012/11/01/86722.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Thu, 01 Nov 2012 03:23:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2012/11/01/86722.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/86722.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2012/11/01/86722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/86722.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/86722.html</trackback:ping><description><![CDATA[<p>最近帮同事找c#开发activex控件自动升级的方法,得到的一些细节。这些细节其实稍微动点脑子都能想出来的。</p>
<p>ie检测到本机控件的版本比html中codebase中版本低，就会下载codebase中指定的cab来安装。这个过程不管cab里面是什么东西，哪怕里面的版本更低，或者是其他的activex，顺便说下，关于下载跟cab内容无关，我跟某人说了几次，结果都左耳进右耳出。</p>
<p>ie检测本机控件版本的方法是，先读取控件信息（HKEY_CLASSES_ROOT\CLSID\html中指定的clsid\）中InstalledVersion项的默认值，这个值就是本机控件的版本号。如果不存在InstalledVersion项，则读InprocServer32项下默认值对应文件的版本号。</p>
<p>如果懂一点com原理的话，都应该知道InprocServer32项下默认值就是控件对应的文件。该文件中的DllGetClassObject函数是用来创建控件的。而C#开发的控件文件，里面没有导出任何函数，严格的说C#开发的控件并不是真正的com控件，它必须借助net的mscoree.dll来实现com的流程。</p>
<p>所以所有c#开发的控件InprocServer32项下默认值都是mscoree.dll。对于c#开发的控件，如果没有InstalledVersion项，检测本机控件版本的时候都是读的net系统文件mscoree.dll的文件版本。c#开发的控件要实现自动升级就必须写注册表的InstalledVersion项。</p>
<p>另外，补一句日志中的c#开发的控件应该改成.net开发的控件。</p><img src ="http://www.cnitblog.com/sonery/aggbug/86722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2012-11-01 11:23 <a href="http://www.cnitblog.com/sonery/archive/2012/11/01/86722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用CMarkup类操纵XML</title><link>http://www.cnitblog.com/sonery/archive/2008/03/21/41278.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Fri, 21 Mar 2008 01:36:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2008/03/21/41278.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/41278.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2008/03/21/41278.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/41278.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/41278.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用CMarkup类操纵XML&nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2008/03/21/41278.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/41278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2008-03-21 09:36 <a href="http://www.cnitblog.com/sonery/archive/2008/03/21/41278.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax的简单使用方法</title><link>http://www.cnitblog.com/sonery/archive/2008/03/03/40378.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Mon, 03 Mar 2008 01:54:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2008/03/03/40378.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/40378.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2008/03/03/40378.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/40378.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/40378.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Ajax的一般简单方法&nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2008/03/03/40378.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/40378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2008-03-03 09:54 <a href="http://www.cnitblog.com/sonery/archive/2008/03/03/40378.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用C API开发mysql数据库</title><link>http://www.cnitblog.com/sonery/archive/2008/02/25/40113.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Mon, 25 Feb 2008 04:41:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2008/02/25/40113.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/40113.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2008/02/25/40113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/40113.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/40113.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 利用C API开发mysql数据库&nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2008/02/25/40113.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/40113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2008-02-25 12:41 <a href="http://www.cnitblog.com/sonery/archive/2008/02/25/40113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]__cdecl __fastcall与 __stdcall </title><link>http://www.cnitblog.com/sonery/archive/2008/02/19/39925.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Tue, 19 Feb 2008 03:38:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2008/02/19/39925.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/39925.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2008/02/19/39925.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/39925.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/39925.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: __cdecl __fastcall与 __stdcall &nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2008/02/19/39925.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/39925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2008-02-19 11:38 <a href="http://www.cnitblog.com/sonery/archive/2008/02/19/39925.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vs2005下安装boost::regex 及简单的使用</title><link>http://www.cnitblog.com/sonery/archive/2008/01/17/38973.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Thu, 17 Jan 2008 05:07:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2008/01/17/38973.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/38973.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2008/01/17/38973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/38973.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/38973.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: vs2005下安装boost::regex 及简单的使用&nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2008/01/17/38973.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/38973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2008-01-17 13:07 <a href="http://www.cnitblog.com/sonery/archive/2008/01/17/38973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]经典的C++库</title><link>http://www.cnitblog.com/sonery/archive/2008/01/17/38971.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Thu, 17 Jan 2008 04:27:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2008/01/17/38971.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/38971.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2008/01/17/38971.html#Feedback</comments><slash:comments>54</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/38971.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/38971.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: c++的经典库&nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2008/01/17/38971.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/38971.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2008-01-17 12:27 <a href="http://www.cnitblog.com/sonery/archive/2008/01/17/38971.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]三种SQL分页法</title><link>http://www.cnitblog.com/sonery/archive/2007/12/15/37729.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Sat, 15 Dec 2007 06:02:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2007/12/15/37729.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/37729.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2007/12/15/37729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/37729.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/37729.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 三种SQL分页法&nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2007/12/15/37729.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/37729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2007-12-15 14:02 <a href="http://www.cnitblog.com/sonery/archive/2007/12/15/37729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]CWnd中PreCreateWindow、PreSubclassWindow、SubclassWindow的区别 </title><link>http://www.cnitblog.com/sonery/archive/2007/12/08/37484.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Sat, 08 Dec 2007 02:59:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2007/12/08/37484.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/37484.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2007/12/08/37484.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/37484.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/37484.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: CWnd中PreCreateWindow、PreSubclassWindow、SubclassWindow的区别 &nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2007/12/08/37484.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/37484.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2007-12-08 10:59 <a href="http://www.cnitblog.com/sonery/archive/2007/12/08/37484.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]精妙SQL语句</title><link>http://www.cnitblog.com/sonery/archive/2007/12/05/37347.html</link><dc:creator>冷夜月</dc:creator><author>冷夜月</author><pubDate>Wed, 05 Dec 2007 03:53:00 GMT</pubDate><guid>http://www.cnitblog.com/sonery/archive/2007/12/05/37347.html</guid><wfw:comment>http://www.cnitblog.com/sonery/comments/37347.html</wfw:comment><comments>http://www.cnitblog.com/sonery/archive/2007/12/05/37347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/sonery/comments/commentRss/37347.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sonery/services/trackbacks/37347.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 精妙SQL语句 &nbsp;&nbsp;<a href='http://www.cnitblog.com/sonery/archive/2007/12/05/37347.html'>阅读全文</a><img src ="http://www.cnitblog.com/sonery/aggbug/37347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sonery/" target="_blank">冷夜月</a> 2007-12-05 11:53 <a href="http://www.cnitblog.com/sonery/archive/2007/12/05/37347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>