RuntimeClass
クラス
指定したインターフェイスを継承し、指定した Windows ランタイム、クラシック COM、および弱い参照のサポートを提供する、WinRT クラスまたは COM クラスを表します。
このクラスを使用すると、WinRT クラスと COM クラスの定型実装が提供されます。これにより、QueryInterface
、AddRef
、Release
などの実装の提供、モジュールの参照数の管理、アクティブ化可能なオブジェクトのクラス ファクトリの提供がサポートされます。
構文
template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;
パラメーター
classFlags
省略可能な 型のパラメーターです。 1 つ以上の RuntimeClassType
列挙値の組み合わせ。 __WRL_CONFIGURATION_LEGACY__
マクロを定義して、プロジェクト内のすべてのランタイム クラスのclassFlags
の既定値を変更できます。 定義されている場合、 RuntimeClass
インスタンスは既定ではアジャイルで表示されます。 定義されていない場合、 RuntimeClass
インスタンスは既定でアジャイルになります。 あいまいさを回避するには、常にTInterfaces
またはRuntimeClassType::InhibitFtmBase
でMicrosoft::WRL::FtmBase
を指定します。 InhibitFtmBase
とFtmBase
の両方が使用されている場合、オブジェクトはアジャイルになります。
TInterfaces
オブジェクトが実装するインターフェイスの一覧は、 IUnknown
、 IInspectable
、または 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();