VC的ATL向导会生成com对象注册用的rgs文件。如果程序中有想写到注册表中的地方,可以手工编辑这个脚本,可以省去调用一堆操作注册表的API。
关于rgs的详细规则,MSDN上面有,搜索ATL Registrar这个主题即可以看到,下面只是一点简单的介绍:
HKCR //表示下面的注册表项都写到HKCR下面
{
SecEdit.EditCtrl.1 = s 'EditCtrl Class' //表示在HKCR下面增加项 SecEdit.EditCtrl.1 ,s 表示值的类型是字符串
{
CLSID = s '{E0E9F6EF-871B-42AE-89C9-CD6AF7A2E5D3}'
}
SecEdit.EditCtrl = s 'EditCtrl Class'
{
CLSID = s '{E0E9F6EF-871B-42AE-89C9-CD6AF7A2E5D3}'
CurVer = s 'SecEdit.EditCtrl.1'
}
NoRemove CLSID //表示在卸载时,不要把CLSID这个项给删除掉了
{
ForceRemove {E0E9F6EF-871B-42AE-89C9-CD6AF7A2E5D3} = s 'EditCtrl Class'
{
ProgID = s 'SecEdit.EditCtrl.1'
VersionIndependentProgID = s 'SecEdit.EditCtrl'
ForceRemove 'Programmable'
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment' //val表示ThreadingModel是InprocServer32的值,不是子项
}
ForceRemove 'Control'
ForceRemove 'Insertable'
ForceRemove 'ToolboxBitmap32' = s '%MODULE%, 101'
'MiscStatus' = s '0'
{
'1' = s '131473'
}
'TypeLib' = s '{42A31F29-B586-42B3-9F4A-45C73B38EA51}'
'Version' = s '1.0'
}
}
}