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>

如下图:

其中如WPP.Application是版本无关ProgID,根据其值可在CLSID下找到相应键,以此找到相应信息,如组件最新版本信息。WPP.Appplication.1是版本相关的ProgID,根据其CLSID值可在找到该版本组件的信息。

ProgID注册表格式

ProgID及与版本无关的ProgID被列在组件CLSID下面。

ProgID的主要作用是获取相应的CLSID。在每一个CLSID项中查找查个ProgID将是非常低效的。因此在 的下面也将直接列出ProgID。由于ProgID不是针对最终用户而定义的,因此ProgID关键字的缺省值为用户易记的名称。在 之下有一个名为CLSID的关键字,其缺省值为组件的CLSID。如下图所示:

与版本号无关的ProgID 也直接被列在HKEY_CLASSES_ROOT下面。它们还有另外一个关键字CurVer,其缺少值为组件当前版本的ProgID

 

ProgIDCLSID的转换

CLSIDFromProgID

ProgIDFromCLSID

组件的自注册

为把组件注册到注册表,在DLL一定要输出如下两个函数:

STDAPI DllRegisterServer();     // 注册

STDAPI DllUnregisterServer();   // 反注册

我们使用REGSVR32.exe注册某个组件或反注册某个组,其实就是调用这两个函数的。

最新文章

  1. pk8和x509.pem转换成keystore
  2. HDU Cow Sorting (树状数组)
  3. Microsoft Azure 01 (Summarize)
  4. JSP 原理
  5. HDU 3351 Seinfeld(括号匹配)
  6. Linux使用du和df查看磁盘和文件夹占用空间
  7. JavaSE复习_8 泛型程序设计
  8. Date的转换
  9. [JS]鼠标事件穿透的问题
  10. uva 10306
  11. IE input X 去掉文本框的叉叉和密码输入框的眼睛图标
  12. 去掉Enter字符(\r)的几个方法
  13. SQL server 数据库——数学函数、字符串函数、转换函数、时间日期函数
  14. RabbitMQ教程C#版 - Hello World
  15. PAT1017:Queueing at Bank
  16. 定时任务框架Quartz-(一)Quartz入门与Demo搭建
  17. 传统asp.net小心 async/await坑
  18. Python 进程池的同步方法和异步方法
  19. 【Java】 剑指offer(17) 在O(1)时间删除链表结点
  20. 初试PyOpenGL一 (Python+OpenGL)

热门文章

  1. bzoj 1880 最短路
  2. Python阶段复习 - part 1 - Python基础练习题
  3. MYSQL学习心得 优化
  4. python基础===文件对象的访问模式,以及计数循环的使用方法
  5. npm编译报错,缺少组件
  6. [转载]Go的50度灰:Golang新开发者要注意的陷阱和常见错误
  7. javascript 实现购物车页面
  8. js监听不到组合键
  9. MATLAB作图方法与技巧(三)
  10. [转载]数据层的多租户浅谈(SAAS多租户数据库设计)