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 |
無効な属性 |
なし |
属性コンテキストの詳細については、「属性コンテキスト」を参照してください。