Making an ATL Object Noncreatable

You can change the attributes of an ATL-based COM object so that the automation client cannot directly create the object. In this case, the object would be returned via a method call on another object rather than created directly.

To make an object noncreatable

  1. Remove the OBJECT_ENTRY for the object from the ATL object map.

  2. Add the noncreatable attribute to the coclass. For example:
[
   uuid(A1992E3D-3CF0-11D0-826F-00A0C90F2851),
   helpstring(“MyObject”),
  noncreatable
]
coclass MyObject
{
   [default] interface IMyInterface;
}