一、HKEY_CLASSES_ROOT的
1> CLSID子键记录了所有COM组件信息:
a>(进程内组件)对象CLSID子键的InprocServer32子键记录了组件程序的全路径文件名;
(进程外组件)对象CLSID子键的LocalServer32子键记录了组件程序的全路径文件名;
b> 对象CLSID子键的ProgID(program identifier,程序标识符)定义了组件的字符串名称
2> 组件的字符串名称可直接放在CLSID子键下
组件的字符串名称子键的Clsid子键则记录了组件的Clsid
3> Interface子键记录了组件接口信息:
如ProxyStubClsid32
4> TypeLib子键记录了类型库信息。
组件对象按是否支持同一组接口分类,每个分类有其CATID,
对象CLSID子键的Implemented Categories子键纪录其CATID
Component Categories则包含所有类别
使用OleView.exe可查看类别
二、组件的注册,
进程内组件必须实现DllRegisterServer函数和DllUnRegisterServer函数对注册表添加/删除相关信息,然后使用RegSvr32.exe实用程序进行注册;
进程外组件必须实现命令行参数/RegServer和/UnregServer对注册表添加/删除相关信息。

本文详细阐述了COM组件与注册表的关系,包括HKEY_CLASSES_ROOT下的CLSID子键、Interface子键和TypeLib子键的功能,以及组件的注册过程,涉及到DllRegisterServer和DllUnRegisterServer函数以及RegSvr32.exe的使用。
&spm=1001.2101.3001.5002&articleId=194399&d=1&t=3&u=47b9fdfd2cab4d038df55b713750b323)

被折叠的 条评论
为什么被折叠?



