次の方法で共有


noncreatable

自身でインスタンスを作成できないオブジェクトを定義します。

[noncreatable]

解説

C++ 属性 noncreatable の機能は、Microsoft インターフェイス定義言語 (MIDL: Microsoft Interface Definition Language) 属性 noncreatable と同じであり、生成される .IDL ファイルを使ってコンパイラから自動的に渡されます。

ATL を使用するプロジェクト内でこの属性を使用すると、属性の動作が異なります。上の動作のほかに、OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO マクロを挿入します。このマクロは、オブジェクトを外部で作成できないことを ATL に示します。

使用例

// cpp_attr_ref_noncreatable.cpp
// compile with: /LD
#include <unknwn.h>
[module(name="MyLib")];

[object, uuid("11111111-1111-1111-1111-111111111111")]
__interface A 
{
};

[coclass, uuid("11111111-1111-1111-1111-111111111112"), noncreatable]
class CMyClass : public A 
{
   HRESULT xx();
};

必要条件

属性コンテキスト

対象

class、struct

複数回の適用

不可

必要な属性

coclass

無効な属性

なし

属性コンテキストの詳細については、「属性コンテキスト」を参照してください。

参照

概念

IDL 属性

クラス属性

ATL サンプル