Почему для этих простых объектов 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 позже.

Другие вопросы по тегам