Windows客户端开发

【Windows】COM组件注册时写入的注册表信息

2016-11-24  本文已影响93人  mercurygear

之前只是有零散的概念,这次把这些信息都组织起来,备忘。
COM组件注册的时候,会往注册表中写入下面这几类信息:

Interface

接口的信息会写入到HKEY_CLASSES_ROOT\Interface{Interface GUID}中
一般有两个子key:ProxyStubClsid32和TypeLib
看名知其意,这两个子key就是代理dll和类型库的信息

Class

COM类的信息会写入到HKEY_CLASSES_ROOT\CLSID{Class GUID}
这里写入的是关键信息,有下面几个子key:

TypeLibrary

类型库的信息会写入到HKEY_CLASSES_ROOT\TypeLib{TypeLib GUID}
这里写入的是对应的组件dll路径
这里有个疑惑,构建时生成的tlb信息是放到注册表中还是dll的资源段,像js、vb等脚本语言是如何找到并加载这些类型库信息的?

AppID

注册表写入位置:HKEY_CLASSES_ROOT\AppID{组件文件名|{AppID GUID}}
写入内容:AppID的GUID,GUID对应的AppID,这个GUID好像是自动生成的,一般用不到

ProgID

注册表写入位置:HKEY_CLASSES_ROOT{带版本号和不带版本号的ProgID}
写入内容:对应的CLSID

上一篇 下一篇

猜你喜欢

热点阅读