次の方法で共有


OBJECT_ENTRY_NON_CREATEABLE

更新 : 2007 年 11 月

オブジェクト エントリ マクロをオブジェクト マップに配置すると、クラスの登録、初期化、および作成ができるようになります。

ATL 4.0 以降、OBJECT_ENTRY_NON_CREATEABLE マクロはサポートされなくなり、代わりに OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO マクロが使用されています。このマクロは、ATL のカテゴリ マップを使用するコンポーネント カテゴリの登録を完全にサポートします。

今後作成するコードでは、以前のマクロの代わりにこの新しいマクロを必ず使用する必要があります。同じクラスに対して OBJECT_ENTRY_NON_CREATEABLE マクロおよび ATL のコンポーネント カテゴリ登録マクロを使用していた既存のコードも、この新しいマクロを使用するように更新する必要があります。

下位互換性のために、OBJECT_ENTRY_NON_CREATEABLE マクロは ATL ヘッダーに残されているため、既存のコードも機能します。元のマクロのドキュメントは、以下に用意されています。

OBJECT_ENTRY_NON_CREATEABLE( class )

パラメータ

  • class
    [入力] 登録して初期化するオブジェクトのクラス。

解説

このマクロを使用すると、クラスを登録して初期化する一方で、そのクラスのインスタンスは標準の COM 関数 (CoCreateInstance など) を使用して外部で作成できないようにすることができます。標準の C++ の技術を使用して、同じプロジェクト内でこのようなクラスのインスタンスを作成することはできます。

必要条件

ヘッダー : atlcom.h

参照

参照

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

その他の技術情報

ATL マクロ