Поделиться через


Отключение возможности создания объекта ATL

Вы можете изменить атрибуты COM-объекта на основе ATL, чтобы клиент не смог напрямую создать объект. В этом случае объект будет возвращен с помощью вызова метода для другого объекта, а не непосредственного создания.

Создание несоотделимого объекта

  1. Удалите OBJECT_ENTRY_AUTO для объекта. Если вы хотите, чтобы объект был несоздаемым, но элемент управления, который будет зарегистрирован, замените OBJECT_ENTRY_AUTO на OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO.

  2. Добавьте атрибут noncreatable в coclass в IDL-файле. Например:

    [uuid(A1992E3D-3CF0-11D0-826F-00A0C90F2851),
    helpstring("MyObject"),
    noncreatable]
    coclass MyObject
    {
        [default] interface IMyInterface;
    }
    

См. также

Мастер проектов ATL
Типы проектов C++ в Visual Studio
Программирование с использованием ATL и кода среды выполнения C
Основы COM-объектов ATL
Конфигурации проектов ATL по умолчанию