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
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.
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