Tornando um objeto ATL não passível de criação

Você pode alterar os atributos de um objeto COM baseado em ATL para que um cliente não possa criar diretamente o objeto. Nesse caso, o objeto seria retornado por meio de uma chamada de método em outro objeto, em vez de ser criado diretamente.

Para tornar um objeto não passível de criação

  1. Remova o OBJECT_ENTRY_AUTO do objeto. Para que o objeto seja não criável, mas o controle seja registrado, substitua OBJECT_ENTRY_AUTO por OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO.

  2. Adicione o atributo noncreatable à coclass no arquivo .idl. Por exemplo:

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

Confira também

Assistente de Projeto da ATL
Tipos de projeto do C++ no Visual Studio
Programando com código de tempo de execução C e da ATL
Princípios básicos de objetos COM da ATL
Configurações de projeto padrão da ATL