次の方法で共有


RuntimeClass クラス

指定したインターフェイスを継承し、指定した Windows ランタイム、クラシック COM、および弱い参照のサポートを提供する、WinRT クラスまたは COM クラスを表します。

このクラスを使用すると、WinRT クラスと COM クラスの定型実装が提供されます。これにより、QueryInterfaceAddRefRelease などの実装の提供、モジュールの参照数の管理、アクティブ化可能なオブジェクトのクラス ファクトリの提供がサポートされます。

構文

template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;

パラメーター

classFlags
省略可能な 型のパラメーターです。 1 つ以上の RuntimeClassType 列挙値の組み合わせ。 __WRL_CONFIGURATION_LEGACY__ マクロを定義して、プロジェクト内のすべてのランタイム クラスのclassFlagsの既定値を変更できます。 定義されている場合、 RuntimeClass インスタンスは既定ではアジャイルで表示されます。 定義されていない場合、 RuntimeClass インスタンスは既定でアジャイルになります。 あいまいさを回避するには、常にTInterfacesまたはRuntimeClassType::InhibitFtmBaseMicrosoft::WRL::FtmBaseを指定します。 InhibitFtmBaseFtmBaseの両方が使用されている場合、オブジェクトはアジャイルになります。

TInterfaces
オブジェクトが実装するインターフェイスの一覧は、 IUnknownIInspectable 、または RuntimeClassTypeによって制御されるその他のインターフェイスを超えています。 派生元としてその他のクラス (特に、オブジェクトをアジャイルにし、IMarshal を実装するために Microsoft::WRL::FtmBase) がリストされる場合があります。

メンバー

RuntimeClassInitialize
MakeAndInitialize関数テンプレートを使用してオブジェクトを構築する場合にオブジェクトを初期化する関数。 オブジェクトが正常に初期化された場合は S_OK を返し、初期化に失敗した場合は COM エラー コードを返します。 COM エラー コードは、MakeAndInitialize の戻り値として伝達されます。 Make関数テンプレートを使用してオブジェクトを構築する場合、RuntimeClassInitialize メソッドは呼び出されません。

パブリック コンストラクター

名前 説明
RuntimeClass::RuntimeClass RuntimeClass クラスの現在のインスタンスを初期化します。
RuntimeClass::~RuntimeClass RuntimeClass クラスの現在のインスタンスの初期化を解除します。

パブリック メソッド

名前 説明
RuntimeClass::AddRef 現在の RuntimeClass オブジェクトの参照カウントをインクリメントします。
RuntimeClass::DecrementReference 現在の RuntimeClass オブジェクトの参照カウントをデクリメントします。
RuntimeClass::GetIids 現在の RuntimeClass オブジェクトによって実装されているインターフェイス ID を格納できる配列を取得します。
RuntimeClass::GetRuntimeClassName 現在の RuntimeClass オブジェクトのランタイム クラス名を取得します。
RuntimeClass::GetTrustLevel 現在の RuntimeClass オブジェクトの信頼レベルを取得します。
RuntimeClass::GetWeakReference 現在の RuntimeClass オブジェクトの弱い参照オブジェクトへのポインターを取得します。
RuntimeClass::InternalAddRef 現在の RuntimeClass オブジェクトへの参照カウントをインクリメントします。
RuntimeClass::QueryInterface 指定したインターフェイス ID へのポインターを取得します。
RuntimeClass::Release 現在の RuntimeClass オブジェクトに対して COM リリース操作を実行します。

継承階層

階層は実装の詳細です。

要件

ヘッダー: implements.h

名前空間: Microsoft::WRL

RuntimeClass::~RuntimeClass

RuntimeClass クラスの現在のインスタンスの初期化を解除します。

virtual ~RuntimeClass();

RuntimeClass::AddRef

現在の RuntimeClass オブジェクトの参照カウントをインクリメントします。

STDMETHOD_(
   ULONG,
   AddRef
)();

戻り値

S_OK 成功した場合。それ以外の場合は、エラーを示す HRESULT

RuntimeClass::DecrementReference

現在の RuntimeClass オブジェクトの参照カウントをデクリメントします。

ULONG DecrementReference();

戻り値

S_OK 成功した場合。それ以外の場合は、エラーを示す HRESULT

RuntimeClass::GetIids

現在の RuntimeClass オブジェクトによって実装されているインターフェイス ID を格納できる配列を取得します。

STDMETHOD(
   GetIids
)
   (_Out_ ULONG *iidCount,
   _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

パラメーター

iidCount
この操作が完了すると、配列内の要素の合計数 iids

iids
この操作が完了した場合は、インターフェイス ID の配列へのポインター。

戻り値

成功した場合は S_OK、それ以外の場合は E_OUTOFMEMORY

RuntimeClass::GetRuntimeClassName

現在の RuntimeClass オブジェクトのランタイム クラス名を取得します。

STDMETHOD( GetRuntimeClassName )(
    _Out_ HSTRING* runtimeName
);

パラメーター

runtimeName
この操作が完了した場合は、ランタイム クラス名。

戻り値

S_OK 成功した場合。それ以外の場合は、エラーを示す HRESULT

解説

__WRL_STRICT____WRL_FORCE_INSPECTABLE_CLASS_MACRO__ も定義されていない場合は、アサート エラーが生成されます。

RuntimeClass::GetTrustLevel

現在の RuntimeClass オブジェクトの信頼レベルを取得します。

STDMETHOD(GetTrustLevel)(
    _Out_ TrustLevel* trustLvl
);

パラメーター

trustLvl
この操作が完了した場合は、現在の RuntimeClass オブジェクトの信頼レベル。

戻り値

常に S_OK です。

解説

__WRL_STRICT____WRL_FORCE_INSPECTABLE_CLASS_MACRO__ も定義されていない場合は、アサート エラーが生成されます。

RuntimeClass::GetWeakReference

現在の RuntimeClass オブジェクトの弱い参照オブジェクトへのポインターを取得します。

STDMETHOD(
   GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);

パラメーター

weakReference
この操作が完了した場合は、弱い参照オブジェクトへのポインター。

戻り値

常に S_OK です。

RuntimeClass::InternalAddRef

現在の RuntimeClass オブジェクトへの参照カウントをインクリメントします。

ULONG InternalAddRef();

戻り値

結果として得られる参照カウント。

RuntimeClass::QueryInterface

指定したインターフェイス ID へのポインターを取得します。

STDMETHOD(
   QueryInterface
)
   (REFIID riid,
   _Deref_out_ void **ppvObject);

パラメーター

riid
インターフェイス ID。

ppvObject
この操作が完了すると、 riid パラメーターで指定されたインターフェイスへのポインター。

戻り値

S_OK 成功した場合。それ以外の場合は、エラーを示す HRESULT

RuntimeClass::Release

現在の RuntimeClass オブジェクトに対して COM リリース操作を実行します。

STDMETHOD_(
   ULONG,
   Release
)();

戻り値

S_OK 成功した場合。それ以外の場合は、エラーを示す HRESULT

解説

参照カウントが 0 になると、RuntimeClass オブジェクトは削除されます。

RuntimeClass::RuntimeClass

RuntimeClass クラスの現在のインスタンスを初期化します。

RuntimeClass();