注册表如何快速定位ProgID? CLSIDFromProgID()的计算复杂度是多少?

staek23 2013-10-07 05:57:49
HK_CLASS_ROOT是按照CLSID排序形成一个类似查找树的结构,在查找CLSID的时候可以做到快速定位。
但是对于使用ProgID的程序/代码而言,CLSIDFromProgID的内部总不能挨个CLSID查找其下面的ProgID吧?

CLSIDFromProgID()它的运行效率大概是什么样子?
...全文
1298 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjryym 2015-11-04
  • 打赏
  • 举报
回复
有HKEY_CLASSES_ROOT\ProgID\CLSID,比如查找一个ProgID叫MSScriptControl.ScriptControl对应的CLSID,可以到HKEY_CLASSES_ROOT\MSScriptControl.ScriptControl\CLSID里快速定位获得。 而你说的那个位置里的ProgID是给ProgIDFromCLSID函数用的。
oyljerry 2013-10-07
  • 打赏
  • 举报
回复
http://stackoverflow.com/questions/13416722/where-does-clsidfromprogid-look-in-the-registry
threenewbee 2013-10-07
  • 打赏
  • 举报
回复
而不是每次都查注册表。
threenewbee 2013-10-07
  • 打赏
  • 举报
回复
CLSIDFromProgID内部是做Cache的。也就是系统会维护一个内存中的副本,而不是每次都查数据库。
worldy 2013-10-07
  • 打赏
  • 举报
回复
注册表有键progid的项目,可以很方便的找到clsid,你看一下注册表就知道

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧