winrt::Windows::Foundation::IUnknown 構造体 (C++/WinRT)

すべての C++/WinRT ランタイム クラス (Windows またはサード パーティのランタイム クラス) は、winrt::Windows::Foundation::IUnknownから派生します。 これは、IUnknown インターフェイス COM を表し、別のインターフェイス、abi 関数、および比較演算子のクエリなどの機能を提供します。

構文

struct IUnknown

必要条件

サポートされる最小 SDK: Windows SDK バージョン 10.0.17134.0 (Windows 10 バージョン 1803) を

Namespace: winrt

ヘッダー: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (既定で含まれます)

コンス トラクター

コンストラクタ 形容
IUnknown::IUnknown コンストラクター 必要に応じて、入力データのコピーまたは移動を使用して、IUnknown 構造体の新しいインスタンスを初期化します。

メンバー関数

機能 形容
IUnknown::as function サポートされている場合は、要求されたインターフェイスを返します。 そうでない場合はスローします。
IUnknown::try_as 関数の サポートされている場合は、要求されたインターフェイスを返します。 nullを返します。そうでない場合は falseを返します。

メンバー演算子

演算子 形容
IUnknown::operator bool IUnknown オブジェクトがインターフェイスを参照しているかどうかを確認します。
IUnknown::operator= (代入演算子) IUnknown オブジェクトに値を割り当てます。

無料の関数

機能 形容
attach_abi 関数の IUnknown オブジェクトを、そのターゲットへの参照を所有する生ポインターにアタッチします。追加の参照は追加されません。
copy_from_abi 関数の 別のポインターから IUnknown オブジェクトにコピーします。 現在参照されているインターフェイスまたはオブジェクトの参照カウントをデクリメントし、生ポインター パラメーターをコピーして、そのパラメーターが指すインターフェイスまたはオブジェクトの有効期間の管理を開始します。
copy_to_abi 関数の IUnknown オブジェクトから別のポインターにコピーします。 現在参照されているインターフェイスまたはオブジェクトの参照カウントをインクリメントし、そのインターフェイスまたはオブジェクトのメモリ アドレスをパラメーターにコピーします。
関数 detach_abi 呼び出し元に返すために、参照カウントを減らさずに、生の IUnknown インターフェイス からデタッチします。
get_abi 関数の 関数に渡す必要がある場合は、基になる生 IUnknown インターフェイス ポインターを返します。
get_unknown 関数の 投影された型のオブジェクトの基になる生 IUnknown インターフェイス のアドレスを返すヘルパー関数。
put_abi 関数の 基になる生の IUnknown インターフェイス ポインターのアドレスを、voidへのポインターへのポインター 返します。この関数は、voidへのポインターへのポインターを介して out パラメーターとして参照を返すメソッド (COM メソッドなど) 呼び出すのに役立ちます。
スワップ関数 を する 2 つの IUnknown パラメーターの内容を入れ替えて、互いにターゲットを指します。

Free 演算子

機能 形容
演算子!= (等しくない演算子) 2 つのパラメーターが異なるターゲットを参照しているかどうかを示す値を返します。
演算子 < (演算子より小さい) 最初のパラメーターのターゲットが 2 番目のパラメーターのターゲットよりもメモリ内で前に発生するかどうかを示す値を返します。
演算子<= (以下の演算子) 1 つ目のパラメーターのターゲットが、2 番目のパラメーターのターゲットよりも前のメモリ内で発生するか、または 2 番目のパラメーターと同じ場所にあるかを示す値を返します。
operator== (等値演算子) 2 つのパラメーターが同じインターフェイスまたはオブジェクトを参照しているかどうかを示す値を返します。
演算子> (より大きい演算子) 1 番目のパラメーターのターゲットが、2 番目のパラメーターのターゲットよりも後でメモリ内で発生するかどうかを示す値を返します。
演算子>= (以上の演算子) 1 番目のパラメーターのターゲットが、2 番目のパラメーターのターゲットよりも後で発生するか、2 番目のパラメーターと同じ場所に配置されるかを示す値を返します。

IUnknown::IUnknown コンストラクター

必要に応じて、入力データのコピーまたは移動を使用して、IUnknown 構造体の新しいインスタンスを初期化します。

構文

IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;

パラメーター

IUnknown オブジェクトを初期化する別の IUnknownother します。

IUnknown::as 関数

サポートされている場合は、要求されたインターフェイスを返します。 そうでない場合はスローします。 この関数は、呼び出し元に戻す必要のないインターフェイスを照会する場合に便利です。

構文

template <typename To> auto as() const;
template <typename To> void as(To& to) const;

テンプレート パラメーター

typename To 要求されたインターフェイスの種類。

パラメーター

to 要求されたインターフェイスを受け取る値への参照。

戻り値

要求されたインターフェイスを参照する com_ptr、または要求されたインターフェイスの厳密に型指定されたスマート ポインター (C++/WinRT またはサード パーティによって宣言されます)。

IUnknown::try_as 関数

サポートされている場合は、要求されたインターフェイスを返します。 null (auto-returning オーバーロード) または false (boolを返すオーバーロード) を返します (そうでない場合)。 この関数は、呼び出し元に戻す必要のないインターフェイスを照会する場合に便利です。

構文

template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;

テンプレート パラメーター

typename To 要求されたインターフェイスの種類。

パラメーター

to 要求されたインターフェイスを受け取る値への参照。 null 参照を指定できます。

戻り値

要求されたインターフェイスを参照する com_ptr、または要求されたインターフェイス (C++/WinRT またはサード パーティによって宣言された) の厳密に型指定されたスマート ポインター。要求されたインターフェイスがサポートされている場合は、null (auto-returning オーバーロード) または false (bool-returning オーバーロード)。

to が null 参照の場合は、null または falseを返します。

IUnknown::operator bool

IUnknown オブジェクトがインターフェイスを参照しているかどうかを確認します。 IUnknown オブジェクトがインターフェイスを参照していない場合は、論理的に null になります。それ以外の場合は、論理的に null ではありません。

構文

explicit operator bool() const noexcept;

戻り値

IUnknown オブジェクトがインターフェイスを参照している (論理的に null ではない) 場合は true。それ以外の場合は false (論理的に null)。

IUnknown::operator= (代入演算子)

IUnknown オブジェクトに値を割り当てます。

構文

winrt::Windows::Foundation::IUnknown& operator=(winrt::Windows::Foundation::IUnknown const& other) noexcept;
winrt::Windows::Foundation::IUnknown& operator=(winrt::Windows::Foundation::IUnknown&& other) noexcept;
winrt::Windows::Foundation::IUnknown& operator=(std::nullptr_t) noexcept;

パラメーター

other IUnknown 値をコピーまたは移動によって、IUnknown オブジェクトに割り当てます。

戻り値

IUnknown オブジェクトへの参照。

attach_abi関数

IUnknown オブジェクトを、そのターゲットへの参照を所有する生ポインターにアタッチします。追加の参照は追加されません。 必要に応じて、この関数を使用して参照を結合できます。

構文

void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;

パラメーター

object 操作する IUnknown 値です。

value ターゲットへの参照を所有する生ポインター。

copy_from_abi関数

別のポインターから IUnknown オブジェクトにコピーします。 現在参照されているインターフェイスまたはオブジェクトの参照カウントをデクリメントし、生ポインター パラメーターをコピーして、そのパラメーターが指すインターフェイスまたはオブジェクトの有効期間の管理を開始します。

構文

void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;

パラメーター

object 操作する IUnknown 値です。

value IUnknown オブジェクトによって有効期間を管理する必要があるターゲットへの生ポインター。

copy_to_abi関数

IUnknown オブジェクトから別のポインターにコピーします。 現在参照されているインターフェイスまたはオブジェクトの参照カウントをインクリメントし、そのインターフェイスまたはオブジェクトのメモリ アドレスをパラメーターにコピーします。 この関数を使用すると、QueryInterfaceを呼び出さずに、同じインターフェイス 参照を渡すことができます。

構文

void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;

パラメーター

object 操作する IUnknown 値です。

value 生ポインター参照。を使用して、IUnknown オブジェクトのターゲットへのポインターをコピーします。

detach_abi関数

IUnknown オブジェクトを、呼び出し元に返すために参照カウントを減らさずに、生の IUnknown インターフェイス からデタッチします。

構文

void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;

パラメーター

object 操作する IUnknown 値です。

戻り値

IUnknown オブジェクトによって参照 生 IUnknown インターフェイスへのポインター。

get_abi関数

関数に渡す必要がある場合は、基になる生 IUnknown インターフェイス ポインターを返します。 返されたポインター Release、または QueryInterface を呼び出 できます。

構文

void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;

パラメーター

object 操作する IUnknown 値です。

戻り値

IUnknown オブジェクトによって参照 生 IUnknown インターフェイスへのポインター。

operator!= (等しくない演算子)

2 つのパラメーターが異なるターゲットを参照しているかどうかを示す値を返します。

構文

bool operator!=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

パラメーター

left right ターゲットのメモリ アドレスが他のパラメーターのメモリ アドレスと比較される IUnknown 値です。

戻り値

2 つのパラメーターが異なるターゲットを指している場合は true。それ以外の場合は false

operator< (less-than 演算子)

最初のパラメーターのターゲットが 2 番目のパラメーターのターゲットよりもメモリ内で前に発生するかどうかを示す値を返します。

構文

bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

パラメーター

left right ターゲットのメモリ アドレスが他のパラメーターのメモリ アドレスと比較される IUnknown 値です。

戻り値

最初のパラメーターのターゲットのメモリ アドレスが 2 番目のパラメーターのメモリ アドレスより小さい場合は true。それ以外の場合は false

operator<= (less-than-or-equal-to 演算子)

1 つ目のパラメーターのターゲットが、2 番目のパラメーターのターゲットよりも前のメモリ内で発生するか、または 2 番目のパラメーターと同じ場所にあるかを示す値を返します。

構文

bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

パラメーター

left right ターゲットのメモリ アドレスが他のパラメーターのメモリ アドレスと比較される IUnknown 値です。

戻り値

最初のパラメーターのターゲットのメモリ アドレスが 2 番目のパラメーターのメモリ アドレス以下の場合は true。それ以外の場合は false

operator== (等値演算子)

2 つのパラメーターが同じインターフェイスまたはオブジェクトを参照しているかどうかを示す値を返します。

構文

bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

パラメーター

left right ターゲットのメモリ アドレスが他のパラメーターのメモリ アドレスと比較される IUnknown 値です。

戻り値

2 つのパラメーターが同じターゲットを指している場合は true。それ以外の場合は false

演算子> (より大きい演算子)

1 番目のパラメーターのターゲットが、2 番目のパラメーターのターゲットよりも後でメモリ内で発生するかどうかを示す値を返します。

構文

bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

パラメーター

left right ターゲットのメモリ アドレスが他のパラメーターのメモリ アドレスと比較される IUnknown 値です。

戻り値

最初のパラメーターのターゲットのメモリ アドレスが 2 番目のパラメーターのメモリ アドレスより大きい場合は true。それ以外の場合は false

operator>= (より大きい演算子または等しい演算子)

1 番目のパラメーターのターゲットが、2 番目のパラメーターのターゲットよりも後で発生するか、2 番目のパラメーターと同じ場所に配置されるかを示す値を返します。

構文

bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

パラメーター

left right ターゲットのメモリ アドレスが他のパラメーターのメモリ アドレスと比較される IUnknown 値です。

戻り値

最初のパラメーターのターゲットのメモリ アドレスが 2 番目のパラメーターのメモリ アドレス以上の場合は true。それ以外の場合は false

put_abi関数

基になる生の IUnknown インターフェイス ポインターのアドレスを、voidへのポインターへのポインター 返します。この関数は、voidへのポインターへのポインターを介して out パラメーターとして参照を返すメソッド (COM メソッドなど) 呼び出すのに役立ちます。

構文

void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;

パラメーター

object 操作する IUnknown 値です。

戻り値

基になる生の IUnknown インターフェイス ポインターのアドレス。

swap 関数

2 つの IUnknown パラメーターの内容を入れ替えて、互いにターゲットを指します。

構文

void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;

パラメーター

left right IUnknown、他のパラメーターの値と相互にスワップするポインターを持つ値です。

関連項目

  • winrt 名前空間 を する