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

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

構文

struct IUnknown

必要条件

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

名前空間: winrt

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

コンストラクター

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

メンバー関数

機能 説明
IUnknown::as 関数 要求されたインターフェイスがサポートされている場合は、それを返します。 そうでない場合は をスローします。
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 メソッドなど) を呼び出すのに役立ちます。
swap 関数 2 つの IUnknown パラメーターの内容を入れ替えて、相互のターゲットを指します。

Free 演算子

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

パラメーター

otherIUnknown オブジェクトを初期化する別の IUnknown

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 関数

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

構文

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 オーバーロード)。

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

IUnknown::operator bool

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

構文

explicit operator bool() const noexcept;

戻り値

trueIUnknown オブジェクトがインターフェイスを参照している場合は (論理的には null ではありません)、それ以外の場合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 値。

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

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 インターフェイス ポインターを返します。 返されたポインターで AddRefRelease、または 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;

パラメーター

leftright ターゲットのメモリ アドレスを他のパラメーターのメモリ アドレスと比較する IUnknown 値。

戻り値

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

演算子< (より小さい演算子)

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

構文

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

パラメーター

leftright ターゲットのメモリ アドレスを他のパラメーターのメモリ アドレスと比較する IUnknown 値。

戻り値

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

operator<= (より小さい演算子または等しい演算子)

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

構文

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

パラメーター

leftright ターゲットのメモリ アドレスを他のパラメーターのメモリ アドレスと比較する IUnknown 値。

戻り値

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

operator== (等値演算子)

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

構文

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

パラメーター

leftright ターゲットのメモリ アドレスを他のパラメーターのメモリ アドレスと比較する IUnknown 値。

戻り値

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

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

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

構文

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

パラメーター

leftright ターゲットのメモリ アドレスを他のパラメーターのメモリ アドレスと比較する IUnknown 値。

戻り値

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

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

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

構文

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

パラメーター

leftright ターゲットのメモリ アドレスを他のパラメーターのメモリ アドレスと比較する IUnknown 値。

戻り値

true 最初のパラメーターのターゲットのメモリ アドレスが 2 番目のパラメーターのメモリ アドレス以上の場合は 。それ以外の場合 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;

パラメーター

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

こちらもご覧ください