我有一个带有一堆 ATL 简单对象(= COM 对象)的 ATL DLL,所有这些都是由向导生成的。
IDL 文件包含许多接口和一个库部分,例如:
[
object,
uuid(00000000-0000-0000-0000-000000000000),
dual,
nonextensible,
pointer_default(unique)
]
interface IFoo : IDispatch{
[id(1)] HRESULT FooMethod();
};
[
uuid(00000000-0000-0000-0000-000000000000),
version(1.0),
]
library MyLib
{
importlib("stdole2.tlb");
[
uuid(00000000-0000-0000-0000-000000000000)
]
coclass Foo
{
[default] interface IFoo;
};
}
MSDN似乎说progid
应该为每个coclass自动生成一个属性。但是,我的注册表中没有。否则,DLL 在每次编译时完全正常注册,并且可以从 COM 客户端使用而不会出现任何问题。
progid
s 不是自动生成的怎么会发生?