使 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 项目向导

ATL COM对象的基本知识

默认 ATL 项目配置

概念

Visual C++ 项目类型

编程时ATL和C运行时代码