Почему для этих простых объектов ATL не создается ProgId?
У меня есть ATL DLL с кучей простых объектов ATL (= COM-объектов), все сгенерированные мастером.
Файл 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
атрибут должен автоматически генерироваться для каждого кокласса. Однако в моем реестре их нет. В остальном DLL обычно полностью регистрируется при каждой компиляции и может использоваться без проблем с COM-клиентами.
Как это может случиться, что progid
с не генерируются автоматически?
1 ответ
Решение
Кажется, я принял документацию и для IDL-классов ProgID не генерируется автоматически. Очень плохо.
Во всяком случае, здесь объясняется, как добавить их в файлы.rgs позже.