CComCoClass クラス
このクラスは、クラスのインスタンスを作成し、そのプロパティを取得するメソッドを提供します。
template<
class T,
const CLSID* pclsid = &CLSID_NULL
>
class CComCoClass
パラメーター
T
CComCoClassから派生したクラス。pclsid
オブジェクトの CLSID へのポインター。
メンバー
パブリック メソッド
名前 |
説明 |
---|---|
(静的) インターフェイスのためのクラスとクエリのインスタンスを作成します。 |
|
(静的) クライアントに豊富なエラー情報を返します。 |
|
(静的) オブジェクトのクラス ID を返します。 |
|
(オブジェクトの記述を返す静的) をオーバーライドします。 |
解説
CComCoClass は、オブジェクトの CLSID を取得し、エラー情報を設定し、クラスのインスタンスを作成するメソッドを提供します。オブジェクト マップ に登録されているすべてのクラスに CComCoClassから派生する必要があります。
CComCoClass により、オブジェクトの既定のクラス ファクトリと集約モデルを定義します。CComCoClass は、2 種類のマクロを使用します:
DECLARE_CLASSFACTORY は CComClassFactoryにクラス ファクトリを宣言します。
DECLARE_AGGREGATABLE は、オブジェクトが集約できることを宣言します。
は、をクラス定義で別のマクロを指定することによってこれらの既定値をオーバーライドできます。たとえば、CComClassFactoryの代わりに CComClassFactory2 を使用するには、DECLARE_CLASSFACTORY2 のマクロを指定する:
class ATL_NO_VTABLE CMyClass2 :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMyClass2, &CLSID_MyClass>,
public IDispatchImpl<IMyClass, &IID_IMyClass, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IDispatchImpl<IMyDualInterface, &__uuidof(IMyDualInterface), &LIBID_NVC_ATL_COMLib, /* wMajor = */ 1, /* wMinor = */ 0>
{
public:
DECLARE_CLASSFACTORY2(CMyLicense)
// Remainder of class declaration omitted
必要条件
ヘッダー : atlcom.h