关于ATL的rgs注册文件
2012-03-26 15:38
351 查看
关于ATL的rgs注册文件
2009-12-23 17:36
2009-12-23 17:36
使用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原文如下
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注册脚本文件操作注册表注册Com组件
- 关于PHP-Zend framework2 框架 学习过程。 阅前须知: ZF2中的配置文件是可以静态文件配置来注册和通过相关函数动态注册。 1.EventManager(事件驱动),关于事件驱动,在ZF2相关资料没有详细说明,可以参考ANDROID的事件驱动,MFC的消息响应/事件驱动。
- 关于实现ASP导出Excel文件开关可能会碰到的组件注册问题!
- 关于注册清单的一些文件
- 关于Linux环境下ArcGIS产品许可文件的查看和注册
- ATL中的RGS文件介绍
- ATL产生的RGS文件介绍
- 关于.dll文件的注册,如何注册.dll文件
- 关于32位DLL文件在64位操作系统中无法注册办法
- ATL中关于进程内服务器注册机制的改变
- 关于//注册客户端id ,以及注册js文件到page里
- 关于ubuntu的“没有为此类型文件注册相应的处理程序”
- 关于实现ASP导出Excel文件开关可能会碰到的组件注册问题!
- 关于使用Entity Framework时遇到的问题 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序。请确保在应用程序配置文件的“entityFramework”节中注册了该提供程序
- 关于Linux环境下ArcGIS产品许可文件的查看和注册
- ATL中的RGS文件介绍