Making an ATL Object Noncreatable

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at Making an ATL Object Noncreatable.

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

To make an object noncreatable

  1. Remove the OBJECT_ENTRY_AUTO for the object. If you want the object to be noncreatable but the control to be registered, replace OBJECT_ENTRY_AUTO with OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO.

  2. Add the noncreatable attribute to the coclass in the .idl file. For example:

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

See Also

ATL Project Wizard
Visual C++ Project Types
Creating Desktop Projects By Using Application Wizards
Programming with ATL and C Run-Time Code
Fundamentals of ATL COM Objects
Default ATL Project Configurations