使 ATL 对象不可创建

可以更改基于 ATL 的 COM 对象的特性,使客户端不能直接创建该对象。 这种情况下,将通过另一对象上的方法调用返回对象,而不是直接创建对象。

使对象不可创建

  1. 移除对象的 OBJECT_ENTRY_AUTO。 如果希望对象不可创建而控件能注册,则用 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 替换 OBJECT_ENTRY_AUTO。

  2. 在 .idl 文件中向 coclass 添加 noncreatable 特性。 例如:

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

请参见

任务

使用应用程序向导创建项目

参考

ATL 项目向导

Fundamentals of ATL COM Objects

默认 ATL 项目配置

概念

Visual C++ 项目

Programming with ATL and C Run-Time Code