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注册某个组件或反注册某个组,其实就是调用这两个函数的。

原文地址:http://www.cnblogs.com/fangyukuan/archive/2010/06/10/1755958.html

Widows 注册表相关推荐

  1. COM笔记-Widows 注册表

    Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...

  2. Widows 注册表 HKEY_CLASSES_ROOT

    Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...

  3. C#中如何获取注册表信息

    实现方式:利用Microsoft.win32类提供的注册表类访问系统注册表获取ODBC数据服务列表. 具体实现: Microsoft.win32提供了RegistryKey类,用来访问系统的注册表. ...

  4. Windows 2000/XP 注册表终极修改(转载)

    Microsoft Windows 2000/XP 是一个强大的操作系统,为我们提供了以往Windows 9x从未有过的安全性能,可是你是否感觉某些地方的设置还不够呢,这里就对Windows 2000 ...

  5. 一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现2

    上一篇博文中主要介绍了Reactos中大部分函数的思路和HKEY和HANDLE之间的关系,本文将介绍一些Reactos中有意思的函数和存在bug的函数.(转载请指明出处) CreateNestedKe ...

  6. 一种注册表沙箱的思路、实现——注册表的一些基础知识

    要做注册表沙箱,就必须要了解部分注册表知识.而注册表的知识很多,本文主要讲述如何在win32系统是上识别注册表映射的.(转载请指明出处) 在我的xp 32bit系统上,Win+R regedit之后打 ...

  7. 一种注册表沙箱的思路、实现

    从今年4月份开始,我接触到一个沙箱项目.该项目的需求要求我们的沙箱具有良好的安全性和兼容性.当时我们研究了SandBoxIE和360的沙箱,基本确定通过"重定向"思路来实现这款沙箱 ...

  8. docker注册表回传失败 群晖6.2_Glances实时监视群晖运行状况

    安装 在 docker 注册表中搜索 glances ,选择第一个 nicolargo/glances,版本 latest. 端口 环境 运行 发现问题 在浏览器中输入 http://群晖IP:612 ...

  9. VISTA中注册表项LEGACY_****的删除

    在VISTA中如果你错误安装了某个驱动软件,而如果这个驱动安装软件考虑不周,无法卸载,那么你就麻烦了! 比如我的U盘以前一直使用优易U盘加密软件1.2来做一个隐蔽的U盘. 某天我在VISTA上运行了这 ...

最新文章

  1. ListView Viewholder的坑 线性布局的坑
  2. WindowManager.LayoutParams.type属性
  3. 变分贝叶斯深度学习综述
  4. 01-Windows Server 2012 R2 远程桌面服务部署指南
  5. Cannot resolve bean 'xxx' less... (Ctrl+F1) Inspection info:Checks autowir
  6. STL笔记(4)关于erase,remove
  7. 2017年,Java程序猿10本经典好书推荐
  8. 漫画:千万别在同事面前装逼
  9. pythonmkdir语法错误_Python mkdir一个有难度的问题
  10. 和nptf螺纹一样吗_常用数控加工计算公式和最全螺纹标准
  11. iOS底层探索之LLVM(一)——初识LLVM
  12. 全源最短路径 - floyd算法 - O(N ^ 3)
  13. linux抓包查看请求接口源ip,linux 抓包
  14. Jenkins HTML Publisher 插件
  15. Python 已知三角形三边求三角形面积
  16. 【NOIP2016提高组】天天爱跑步
  17. elementUI表格自动刷新
  18. 18935 贪吃的小Q
  19. P3386 【模板】二分图最大匹配
  20. 怀旧服默认服务器文件,《魔兽世界》怀旧服:这些服务器名称的小知识你得知道...

热门文章

  1. 手用计算机电池,MacBook 篇一:二手MacBook pro 2017上手+换电池体验
  2. python能做word和excel吗_Python 操作Word(Excel、PPT等通用)
  3. layui的轮播图片自适应大小_解决Layui 表格自适应高度的问题
  4. 基于法线的点云双边滤波
  5. Java_持久层_MyBatis
  6. SqlMDF数据提取工具
  7. 安娜Anna:世界最快的超级伸缩的KVS, 秒杀Redis
  8. OCR识别PDF文件
  9. Java加密与解密笔记(四) 高级应用
  10. Selenium IDE使用指南四(代码导出)