zoukankan      html  css  js  c++  java
  • progID

    ProgID程序员给CLSID指定的容易记住的名字
    ProgID命名约定:<Program>.<Component>.<Version>
    AppID:将某个APPID(应用程序ID)映射成某个远程服务器名称。分式COM(DCOM)将用到此关键字
    组件类别:将CATID(组件类别ID)映射成某个特定的组件类别
    Interface:将IID映射成某个接口相关的信息,这些信息主要用于跨进程边界使用接口的情况
    Licenses:保存的是授权使用COM组件的一些认可信息
    TypeLib:类型库关键字保存的是关于接口成员函数所用参数的信息和其他一些信息,可以将一根LIBID映射成存储类型库的
    文件名称

    ProgID及与版本无关的ProgID被列在CLSID下面
    ProgID的主要作用是获取相应的CLSID
    与版本号无关的ProgID也直接被列在HKEY_CLASSES_ROOT下面,他们另外一个关键字CurVer,其缺省值为组件当前版本的
    ProgID

    ProgID和CLSID的转换:CLSIDFromProgID,ProgIDFromCLSID

    组件的自注册:STDAPI DllRegisterServer(); STDAPI DllUnRegisterServer

    1.在HKEY_CLASSES_ROOT下查找ProgID,格式<Program>.<Component>.<Version>
    2.在ProgID下,查看CLSID子项的值
    3.在HKEY_CLASSES_ROOTCLSID下查找CLSID的值,里面将包含InprocServer32,ProgID,类型库,和版本的几个子项
    4.在HKEY_CLASSES_ROOTTypeLib下,查找ClassID TypeLibID,将找到包含有关您的组件的类型库的信息
    5.在HKEY_CLASSES_ROOTInterface下,查找该ClassID TypeLibID,查找到所有接口ID

    COM库在接到客户程序的请求后,会到注册表中检索COM对象的注册表条目,以此来定位COM对象
    COM对象要想成功的被COM库定位,则需要至少在注册表中写入HKEY_CLASSES_ROOTProgID注册和HKEY_CLASSES_ROOTCLSID
    注册
    InProcServer32的字符串值,代表此COM类的载体应当是个动态链接库,指明了组件所在的物理位置,对COM库查找和定位
    组件起了决定性作用


    LocalServer32:指定一个32字节的本地应用程序的路径
    Word.Application->CLSID
    可执行程序的路径:LocalServer,LocalServer32

    查找ProgID方法,在注册表的键值中查找可执行程序的名字

  • 相关阅读:
    java.lang.NoClassDefFoundError:org/apache/commons/lang/exception/NestableRuntimeException错误的解决
    json转换成对象
    16年4月20号 个人总结
    sql between and
    sql 中的运算符级别 如and or not
    mybatis int 类型判断<if>
    iOS地址编码解析
    iosiOS 地图 自定义以及添加锚点
    ios如何获取位置权限
    如何初始化一个iOS原生地图
  • 原文地址:https://www.cnblogs.com/xiaoxiaocaicai/p/3595240.html
Copyright © 2011-2022 走看看