ATL オブジェクトを作成できないようにする
ATL ベースの COM オブジェクトの属性を変更して、クライアントがオブジェクトを直接作成できないように指定できます。 この場合、オブジェクトは直接作成されるのではなく、ほかのオブジェクトに対するメソッド呼び出しを通じて返されます。
オブジェクトを作成できないようにするには
オブジェクトの OBJECT_ENTRY_AUTO を削除します。 オブジェクトは作成できないようにして、コントロールを登録する場合は、OBJECT_ENTRY_AUTO を OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO に置き換えます。
.idl ファイルのコクラスに属性 noncreatable を追加します。 以下に例を示します。
[ uuid(A1992E3D-3CF0-11D0-826F-00A0C90F2851), helpstring("MyObject"), noncreatable ] coclass MyObject { [default] interface IMyInterface; }