COM笔记-Widows 注册表
来源:互联网 发布:新加坡dfs免税店 mac 编辑:程序博客网 时间:2024/05/13 22:49
Widows 注册表
HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字。在CLSID关键字之下列有系统中安装的所有组件的CLSID。注册表CLSID是一个具有如下格式的串:00000010-0000-0010-8000-00AA006D2EA4
HKEY_CLASSES_ROOT的开头,列出的将是各种应用程序所注册的文件扩展名。在扩展名之后,可以看到许多其他的名字。此类名字的大多数被称作是ProgID,表示是程序员定义的标识符。某些名称表示的不是ProgID而是一些特殊的关键字.
如
- CLSID
- AppID—此关键字下的子关键字的作用是将某个APPID(应用程序ID)映射成某个远程服务器名称。分式COM(DCOM)将用到此关键字。
- 组件类别—注册表的这一分支可以将CATID(组件类别ID)映射成某个特定的组件类别。
- Interface—此关键字用于将IID映射成与某个接口相关的信息。这些信息主要用于在跨进程边界使用接口的情况。
- Licenses—保存的是授权使用COM组件的一些认可信息。
- TypeLib—类型库关键字所保存的是关于接口成员函数所用参数的信息。另外还有其他一些信息。此关键字可以将一个LIBID映射成存储类型库的文件名称。
ProgID:所谓ProgID指的是程序员给某个CLSID指定的一个程序员易记的名称。
ProgID命名约定
<Program>.<Component>.<Version>
如下图:
在许多情况下,客户并不关心它所连接的组件的版本究竟是什么。因为组件经常会有一个与版本号无关的ProgID。此ProgID被映射成所安装的最新版本的组件。与版本无关的 的命名约定是将上面约定中的版本号去掉。
ProgID注册表格式
ProgID及与版本无关的ProgID被列在组件CLSID下面。
ProgID的主要作用是获取相应的CLSID。在每一个CLSID项中查找查个ProgID将是非常低效的。因此在 的下面也将直接列出ProgID。由于ProgID不是针对最终用户而定义的,因此ProgID关键字的缺省值为用户易记的名称。在 之下有一个名为CLSID的关键字,其缺省值为组件的CLSID。如下图所示:
与版本号无关的ProgID 也直接被列在HKEY_CLASSES_ROOT下面。它们还有另外一个关键字CurVer,其缺少值为组件当前版本的ProgID
ProgID和CLSID的转换
CLSIDFromProgID
ProgIDFromCLSID
组件的自注册
为把组件注册到注册表,在DLL一定要输出如下两个函数:
STDAPI DllRegisterServer(); // 注册
STDAPI DllUnregisterServer(); // 反注册
我们使用REGSVR32.exe注册某个组件或反注册某个组,其实就是调用这两个函数的。
- COM笔记-Widows 注册表
- COM笔记-Widows 注册表
- Widows 注册表
- COM与注册表(COM笔记)
- com学习笔记(5)HRESULT,GUID,注册表
- COM---注册表
- widows
- COM学习笔记(四):注册表、内存管理、GUID<->字符串
- COM学习笔记六《COM技术内幕》§6 —— HRESULT、GUID和注册表
- com组件与注册表
- COM 和注册表
- com 注册表信息
- 注册表笔记
- Widows Socket编程笔记---非本机无法正常通信
- 无注册表的COM调用
- 注册表学习笔记
- 注册表学习笔记
- 学习笔记--注册表2
- 使用sysbench测试mysql5.5和postgre9.1性能
- Objective-C面向对象-如何在程序中使用多个分数
- Objective-C面向对象-实例变量的访问以及数据封装
- COM笔记-COM库函数
- Discuz!NT 中的LLServer架构设计
- COM笔记-Widows 注册表
- Objective-C数量类型-Objective-C 基本数据类型和常量
- linux网络编程并发进程,select和epoll(二)
- SWFupload的用法
- Objective-C数量类型-Objective-C int 整数类型
- COM笔记-关于GUID
- Objective-C数量类型-Objective-C float 浮点类型
- oraclehelper
- TCP/IP详解学习笔记(1)-基本概念