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;
    }
    
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft