使用ATL向导的话,会在resource中产生一个rgs的注册脚本文件放在"REGISTRY"目录中用来注册组件,会在程序中通过函数DECLARE_REGISTRY_RESOURCEID(IDR_OPCSERVER)使用,IDR_OPCSERVER就是向导产生的资源文件的ID,当服务器调用CComModule::RegisterServer()时,便会使用这些脚本来载入注册表的设置,并在调用CComModule::UnregisterServer()时移除它们。所有COM的注册键都放在HKEY_CLASSES_ROOT中。 例子如下 HKCR HKCR 表示注册表中COM对象的注册项是HKEY_CLASS_ROOT 的缩写 NoRemove表示在反注册过程中不要删除这层注册表项;ForceRemove表示要要完全删除后面的项然后重新创建。MSDN原文如下
注册后的注册表主要修改如下 1、HKEY_CLASSES_ROOT\AppID\ [HKEY_CLASSES_ROOT\AppID\{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}] 2、HKEY_CLASSES_ROOT\CLSID\ [HKEY_CLASSES_ROOT\CLSID\{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}] [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] [HKEY_CLASSES_ROOT\CLSID\{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}\ProgID] [HKEY_CLASSES_ROOT\CLSID\{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}\VersionIndependentProgID] 3、HKEY_CLASSES_ROOT\FactorySoft.myShell [HKEY_CLASSES_ROOT\FactorySoft.myShell] [HKEY_CLASSES_ROOT\FactorySoft.myShell\CLSID] [HKEY_CLASSES_ROOT\FactorySoft.myShell\OPC] [HKEY_CLASSES_ROOT\FactorySoft.myShell\OPC\Vendor] [HKEY_CLASSES_ROOT\FactorySoft.myShell.1] [HKEY_CLASSES_ROOT\FactorySoft.myShell.1\CLSID] 4、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}] 5、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}] [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] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}\ProgID] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C9B70C6C-2BEE-4589-96B3-01E2F4D21C9F}\VersionIndependentProgID] 6、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FactorySoft.myShell] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FactorySoft.myShell\CLSID] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FactorySoft.myShell\OPC] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FactorySoft.myShell\OPC\Vendor] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FactorySoft.myShell.1] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FactorySoft.myShell.1\CLSID] 从中可以看出s '%MODULE%'被替换成了@="D:\\temp\\test\\Debug\\myShell.exe"程序的路径 |
关于ATL的rgs注册文件
最新推荐文章于 2021-04-30 10:39:50 发布
关于ATL的rgs注册文件
2009-12-23 17:36