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

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

オブジェクトを noncreatable にするには

  1. オブジェクトの OBJECT_ENTRY_AUTO を削除します。 オブジェクトを noncreatable にするが、コントロールを登録されるようにするには、OBJECT_ENTRY_AUTO を OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO に置き換えます。

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

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

関連項目

ATL プロジェクト ウィザード
Visual Studio の C++ プロジェクトの種類
ATL および C ランタイム コードによるプログラミング
ATL COM オブジェクトの基礎
ATL プロジェクトの既定の構成