使用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
{
Force