可以更改基于 ATL 的 COM 对象的特性,使客户端不能直接创建该对象。 这种情况下,将通过另一对象上的方法调用返回对象,而不是直接创建对象。
使对象不可创建
移除对象的 OBJECT_ENTRY_AUTO。 如果希望对象不可创建而控件能注册,则用 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 替换 OBJECT_ENTRY_AUTO。
在 .idl 文件中向 coclass 添加 noncreatable 特性。 例如:
[ uuid(A1992E3D-3CF0-11D0-826F-00A0C90F2851), helpstring("MyObject"), noncreatable ] coclass MyObject { [default] interface IMyInterface; }
请参见
任务
参考
Fundamentals of ATL COM Objects