ATL オブジェクトを作成できないようにする

ATL ベースの COM オブジェクトの属性を変更して、クライアントがオブジェクトを直接作成できないように指定できます。 この場合、オブジェクトは直接作成されるのではなく、ほかのオブジェクトに対するメソッド呼び出しを通じて返されます。

オブジェクトを作成できないようにするには

  1. オブジェクトの OBJECT_ENTRY_AUTO を削除します。 オブジェクトは作成できないようにして、コントロールを登録する場合は、OBJECT_ENTRY_AUTO を OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO に置き換えます。

  2. .idl ファイルのコクラスに属性 noncreatable を追加します。 次に例を示します。

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

参照

関連項目

ATL プロジェクト ウィザード

ATL COM オブジェクトの基本事項

ATL プロジェクトの既定の構成

概念

Visual C++ プロジェクトの種類

ATL および C ランタイム コードによるプログラミング

その他の技術情報

アプリケーション ウィザードを使用したデスクトップ プロジェクトの作成