• COM笔记-Widows 注册表


    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

     

    ProgIDCLSID的转换

    CLSIDFromProgID

    ProgIDFromCLSID

    组件的自注册

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

    STDAPI DllRegisterServer();     // 注册

    STDAPI DllUnregisterServer();   // 反注册

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

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

  • 相关阅读:
    语文文法
    1223 递归下降语法分析程序设计
    有穷的自动机构造
    文法分析
    text
    0916 词法分析(3)
    "firstday"-软件工程
    实验四 递归下降语法分析程序设计
    构造该正规式的有穷状态自动机
    评论
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14873373.html
Copyright © 2020-2023  润新知