ATL创建COM服务时必须注意的问题

来源:互联网 发布:java图形化设计 编辑:程序博客网 时间:2024/05/16 11:50

1:用ATL向导创建COM组件时,必须指定ProgID

2:ATL向导生成的RGS有BUG,必须手工添加一句 

val AppID = s '%APPID%'
像下面这样

HKCR{ProgIDMyInterface.1 = s 'CMyInterface Class'{CLSID = s '{5B91E508-D66E-4F27-A371-E0D5FC3AAA0B}'}ProgIDMyInterface = s 'CMyInterface Class'{CurVer = s 'ProgIDMyInterface.1'}NoRemove CLSID{ForceRemove {5B91E508-D66E-4F27-A371-E0D5FC3AAA0B} = s 'CMyInterface Class'{ProgID = s 'ProgIDMyInterface.1'VersionIndependentProgID = s 'ProgIDMyInterface'ForceRemove ProgrammableLocalServer32 = s '%MODULE%'{val ServerExecutable = s '%MODULE_RAW%'}val AppID = s '%APPID%'TypeLib = s '{E57E6FF7-264C-4753-8393-FF512A651C7B}'Version = s '1.0'}}}

否则,客户端在使用CoCreateInstance创建服务形式的COM组件时会返回服务器启动失败的诡异的问题


0 0