关于ATL的rgs注册文件
来源:互联网 发布:淘宝海报图片男装 编辑:程序博客网 时间:2024/05/19 22:57
使用ATL向导的话,会在resource中产生一个rgs的注册脚本文件放在"REGISTRY"目录中用来注册组件,会在程序中通过函数DECLARE_REGISTRY_RESOURCEID(IDR_OPCSERVER)使用,IDR_OPCSERVER就是向导产生的资源文件的ID,当服务器调用CComModule::RegisterServer()时,便会使用这些脚本来载入注册表的设置,并在调用CComModule::UnregisterServer()时移除它们。所有COM的注册键都放在HKEY_CLASSES_ROOT中。
例子如下
HKCR
{
FactorySoft.myShell.1 = s 'FactorySoft myShell'
{
CLSID = s '{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}'
}
FactorySoft.myShell = s 'FactorySoft myShell'
{
CLSID = s '{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}'
OPC
{
Vendor = s 'FactorySoft, Inc'
}
}
NoRemove CLSID
{
ForceRemove {C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F} = s 'FactorySoft myShell'
{
ProgID = s 'FactorySoft.myShell.1'
VersionIndependentProgID = s 'FactorySoft.myShell'
LocalServer32 = s '%MODULE%'
{
val ThreadingModel = s 'both'
}
}
}
NoRemove AppID
{
ForceRemove {C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F} = s 'FactorySoft myShell'
}
}
HKCR 表示注册表中COM对象的注册项是HKEY_CLASS_ROOT 的缩写
NoRemove表示在反注册过程中不要删除这层注册表项;ForceRemove表示要要完全删除后面的项然后重新创建。MSDN原文如下
String LiteralDescriptionForceRemoveCompletely remove the following key (if it exists) and then recreate it.NoRemoveDo not remove the following key during Unregister.valThe following <Key Name>
is actually a named value.DeleteDelete the following key during Register.sThe following value is a string.dThe following value is a DWORD.
注册后的注册表主要修改如下
1、HKEY_CLASSES_ROOT/AppID/
[HKEY_CLASSES_ROOT/AppID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}]
@="FactorySoft myShell"
2、HKEY_CLASSES_ROOT/CLSID/
[HKEY_CLASSES_ROOT/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}]
@="FactorySoft myShell"
[HKEY_CLASSES_ROOT/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/Implemented Categories]
[HKEY_CLASSES_ROOT/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/Implemented Categories/{63D5F430-CFE4-11D1-B2C8-0060083BA1FB}]
[HKEY_CLASSES_ROOT/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/Implemented Categories/{63D5F432-CFE4-11D1-B2C8-0060083BA1FB}]
[HKEY_CLASSES_ROOT/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/LocalServer32]
@="D://temp//test//Debug//myShell.exe"
"ThreadingModel"="both"
[HKEY_CLASSES_ROOT/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/ProgID]
@="FactorySoft.myShell.1"
[HKEY_CLASSES_ROOT/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/VersionIndependentProgID]
@="FactorySoft.myShell"
3、HKEY_CLASSES_ROOT/FactorySoft.myShell
[HKEY_CLASSES_ROOT/FactorySoft.myShell]
@="FactorySoft myShell"
[HKEY_CLASSES_ROOT/FactorySoft.myShell/CLSID]
@="{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}"
[HKEY_CLASSES_ROOT/FactorySoft.myShell/OPC]
[HKEY_CLASSES_ROOT/FactorySoft.myShell/OPC/Vendor]
@="FactorySoft, Inc"
[HKEY_CLASSES_ROOT/FactorySoft.myShell.1]
@="FactorySoft myShell"
[HKEY_CLASSES_ROOT/FactorySoft.myShell.1/CLSID]
@="{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}"
4、HKEY_LOCAL_MACHINE/SOFTWARE/Classes/AppID
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/AppID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}]
@="FactorySoft myShell"
5、HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}]
@="FactorySoft myShell"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/Implemented Categories]
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/Implemented Categories/{63D5F430-CFE4-11D1-B2C8-0060083BA1FB}]
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/Implemented Categories/{63D5F432-CFE4-11D1-B2C8-0060083BA1FB}]
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/LocalServer32]
@="D://temp//test//Debug//myShell.exe"
"ThreadingModel"="both"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/ProgID]
@="FactorySoft.myShell.1"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}/VersionIndependentProgID]
@="FactorySoft.myShell"
6、HKEY_LOCAL_MACHINE/SOFTWARE/Classes/
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/FactorySoft.myShell]
@="FactorySoft myShell"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/FactorySoft.myShell/CLSID]
@="{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/FactorySoft.myShell/OPC]
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/FactorySoft.myShell/OPC/Vendor]
@="FactorySoft, Inc"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/FactorySoft.myShell.1]
@="FactorySoft myShell"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/FactorySoft.myShell.1/CLSID]
@="{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}"
从中可以看出s '%MODULE%'被替换成了@="D://temp//test//Debug//myShell.exe"程序的路径
- 关于ATL的rgs注册文件
- 关于ATL的rgs注册文件
- 关于ATL的rgs注册文件
- 关于ATL的rgs文件
- ATL产生的RGS文件介绍
- ATL中的rgs文件
- ATL中的RGS文件介绍
- ATL中的RGS文件介绍
- ATL中的RGS文件介绍
- ATL使用.rgs注册脚本文件操作注册表注册Com组件
- 关于一个模块中所有rgs文件中有注册项无法全部写入注册表的问题
- 注册脚本(rgs) 基本语法
- rgs文件研究
- rgs文件研究
- rgs文件研究
- ATL中关于进程内服务器注册机制的改变
- ATL 服务注册的具体操作
- 关于.dll文件的注册,如何注册.dll文件
- busybox简介
- 无下拉箭头的SELECT下拉选框
- 局部功能的写作流程
- 专业软件外包开发团队承接软件系统及互联网应用开发项目(委托开发/程序员外派开发/技术难题的解决)
- VS2005中加载符号
- 关于ATL的rgs注册文件
- C#winform建立一个共用的数据库连接
- 最近查到一个JAVA网址导航,感觉还不错
- 采用ajax的评论系统,回复后再刷新也不见最新的回复
- Lotus Notes 利用Ado防问Access 数据库
- VSExpress版本上WTL开发支持,意见收集
- (最新整理)国内网页设计网站网址大全(转)
- 永不言败的曾道人
- jQuery colspan and rowspan table using cell break