关于ATL的rgs注册文件
来源:互联网 发布:ubuntu 32位下载 编辑:程序博客网 时间:2024/05/16 06:28
使用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文件
- 转载只为记录经典之<linux tcpdump>
- SPSS中八类常用非参数检验之四:单样本K-S检验
- T-SQL中GO的意思
- ORA-00603: ORACLE 服务器会话因致命错误而终止
- JSTL实现for(int i)循环
- 关于ATL的rgs注册文件
- POJ-3740(dfs边界点和还原处理)(Easy Finding)
- Android中WebView和JavaScript通信
- 关于xen的杂七杂八 (DomU安装)
- 【Android Training - Connectivity】优化下载的效率[Lesson 2 - 调整定时更新的频率(C2DM与退避算法)]
- 关于v4l2,一些注意de地方
- zend framework的使用(1)
- RED HAT Enterprise Linux 5 JAVA 安装
- linux下usb camera图像采集(V4l2)