winrt::Windows::Foundation::IUnknown struct (C++/WinRT)

Setiap kelas runtime C++/WinRT (baik Windows atau kelas runtime pihak ketiga) berasal dari winrt::Windows::Foundation::IUnknown. Ini mewakili antarmuka COM IUnknown , dan menyediakan fasilitas seperti mengkueri antarmuka yang berbeda, fungsi abi, dan operator perbandingan.

Sintaks

struct IUnknown

Persyaratan

SDK minimum yang didukung: Windows SDK versi 10.0.17134.0 (Windows 10, versi 1803)

Namespace: winrt

Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (disertakan secara default)

Konstruktor

Konstruktor Deskripsi
IUnknown::Konstruktor IUnknown Menginisialisasi instans baru struct IUnknown , secara opsional dengan salinan atau pemindahan data input.

Fungsi anggota

Fungsi Deskripsi
IUnknown::as function Mengembalikan antarmuka yang diminta, jika didukung. Melemparkan jika tidak.
Fungsi IUnknown::try_as Mengembalikan antarmuka yang diminta, jika didukung. Mengembalikan null, atau false, jika tidak.

Operator anggota

Operator Deskripsi
IUnknown::operator bool Memeriksa apakah objek IUnknown mereferensikan antarmuka atau tidak.
IUnknown::operator= (operator penugasan) Menetapkan nilai ke objek IUnknown .

Fungsi gratis

Fungsi Deskripsi
fungsi attach_abi Melampirkan objek IUnknown ke pointer mentah yang memiliki referensi ke targetnya; referensi tambahan tidak ditambahkan.
fungsi copy_from_abi Menyalin ke objek IUnknown dari pointer lain. Mengurangi jumlah referensi pada antarmuka atau objek yang saat ini direferensikan, menyalin parameter pointer mentah, dan mulai mengelola masa pakai antarmuka atau objek yang diacu olehnya.
fungsi copy_to_abi Menyalin ke pointer lain dari objek IUnknown . Menaikkan jumlah referensi pada antarmuka atau objek yang saat ini direferensikan, dan menyalin alamat memori antarmuka atau objek tersebut ke dalam parameter.
detach_abi (Fungsi detach_abi) Melepaskan dari antarmuka IUnknown mentah tanpa mengurangi jumlah referensi, mungkin untuk mengembalikannya ke pemanggil.
get_abi (Fungsi get_abi) Mengembalikan penunjuk antarmuka IUnknown mentah yang mendasar jika Anda perlu meneruskannya ke fungsi.
fungsi get_unknown Fungsi pembantu yang mengembalikan alamat antarmuka IUnknown mentah yang mendasar dari objek dari jenis yang diproyeksikan.
fungsi put_abi Mengembalikan alamat penunjuk antarmuka IUnknown mentah yang mendasar sebagai penunjuk ke pointer untuk dibatalkan; fungsi ini membantu Anda memanggil metode (seperti metode COM) yang mengembalikan referensi sebagai parameter keluar melalui penunjuk ke pointer untuk dibatalkan.
fungsi pertukaran Tukar isi dua parameter IUnknown sehingga mereka menunjuk satu sama lain target.

Operator gratis

Fungsi Deskripsi
operator!= (operator tidak sama) Mengembalikan nilai yang menunjukkan apakah dua parameter merujuk ke target yang berbeda.
operator< (operator kurang dari) Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi lebih awal dalam memori daripada parameter kedua.
operator<= (operator kurang dari atau sama dengan) Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi lebih awal dalam memori daripada, atau di lokasi yang sama dengan, parameter kedua.
operator== (operator kesetaraan) Mengembalikan nilai yang menunjukkan apakah dua parameter merujuk ke antarmuka dan/atau objek yang sama.
operator> (operator yang lebih besar dari) Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi nanti dalam memori daripada parameter kedua.
operator>= (operator yang lebih besar dari atau sama dengan) Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi nanti dalam memori daripada, atau di lokasi yang sama dengan parameter kedua.

IUnknown::Konstruktor IUnknown

Menginisialisasi instans baru struct IUnknown , secara opsional dengan salinan atau pemindahan data input.

Sintaks

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

Parameter

otherIUnknown lain yang menginisialisasi objek IUnknown.

IUnknown::as function

Mengembalikan antarmuka yang diminta, jika didukung. Melemparkan jika tidak. Fungsi ini berguna jika Anda ingin mengkueri antarmuka yang tidak perlu Anda teruskan kembali ke pemanggil Anda.

Sintaks

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

Parameter templat

typename To Jenis antarmuka yang diminta.

Parameter

to Referensi ke nilai untuk menerima antarmuka yang diminta.

Mengembalikan nilai

com_ptr mereferensikan antarmuka yang diminta, atau penunjuk cerdas yang diketik dengan kuat untuk antarmuka yang diminta (baik dinyatakan oleh C++/WinRT atau oleh pihak ketiga).

Fungsi IUnknown::try_as

Mengembalikan antarmuka yang diminta, jika didukung. Mengembalikan null ( autooverload -returning), atau false ( booloverload -returning), jika tidak. Fungsi ini berguna jika Anda ingin mengkueri antarmuka yang tidak perlu Anda teruskan kembali ke pemanggil Anda.

Sintaks

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

Parameter templat

typename To Jenis antarmuka yang diminta.

Parameter

to Referensi ke nilai untuk menerima antarmuka yang diminta. Dapat berupa referensi null.

Mengembalikan nilai

com_ptr yang mereferensikan antarmuka yang diminta, atau penunjuk cerdas yang diketik dengan kuat untuk antarmuka yang diminta (baik dinyatakan oleh C++/WinRT atau oleh pihak ketiga), jika antarmuka yang diminta didukung, jika tidak null (autokelebihan beban yang dikembalikan) atau false (boolkelebihan beban yang dikembalikan).

Jika to adalah referensi null, mengembalikan null atau false.

IUnknown::operator bool

Memeriksa apakah objek IUnknown mereferensikan antarmuka atau tidak. Jika objek IUnknown tidak mereferensikan antarmuka, maka secara logis null; jika tidak, secara logis tidak null.

Sintaks

explicit operator bool() const noexcept;

Mengembalikan nilai

true jika objek IUnknown mereferensikan antarmuka (secara logis tidak null), jika tidak false (secara logis null).

IUnknown::operator= (operator penugasan)

Menetapkan nilai ke objek IUnknown .

Sintaks

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;

Parameter

other Nilai IUnknown untuk ditetapkan ke objek IUnknown , baik dengan menyalin atau dengan memindahkan.

Nilai kembali

Referensi ke objek IUnknown .

attach_abi (Fungsi attach_abi)

Melampirkan objek IUnknown ke pointer mentah yang memiliki referensi ke targetnya; referensi tambahan tidak ditambahkan. Jika diperlukan, Anda dapat menggunakan fungsi ini untuk menyaring referensi.

Sintaks

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

Parameter

object Nilai IUnknown untuk dioperasikan.

value Pointer mentah yang memiliki referensi ke targetnya.

fungsi copy_from_abi

Menyalin ke objek IUnknown dari pointer lain. Mengurangi jumlah referensi pada antarmuka atau objek yang saat ini direferensikan, menyalin parameter pointer mentah, dan mulai mengelola masa pakai antarmuka atau objek yang diacu olehnya.

Sintaks

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

Parameter

object Nilai IUnknown untuk dioperasikan.

value Pointer mentah ke target yang masa pakainya harus dikelola oleh objek IUnknown .

copy_to_abi fungsi

Menyalin ke pointer lain dari objek IUnknown . Menaikkan jumlah referensi pada antarmuka atau objek yang saat ini direferensikan, dan menyalin alamat memori antarmuka atau objek tersebut ke dalam parameter . Fungsi ini memungkinkan Anda membagikan referensi ke antarmuka yang sama tanpa memanggil QueryInterface.

Sintaks

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

Parameter

object Nilai IUnknown untuk dioperasikan.

value Referensi pointer mentah; untuk menyalin pointer ke target objek IUnknown .

detach_abi (Fungsi detach_abi)

Melepaskan objek IUnknown dari antarmuka IUnknown mentah tanpa mengurangi jumlah referensi, mungkin untuk mengembalikannya ke penelepon.

Sintaks

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

Parameter

object Nilai IUnknown untuk dioperasikan.

Nilai kembali

Penunjuk ke antarmuka IUnknown mentah yang direferensikan oleh objek IUnknown .

fungsi get_abi

Mengembalikan penunjuk antarmuka IUnknown mentah yang mendasar jika Anda perlu meneruskannya ke fungsi. Anda dapat memanggil AddRef, Release, atau QueryInterface pada pointer yang dikembalikan.

Sintaks

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

Parameter

object Nilai IUnknown untuk dioperasikan.

Mengembalikan nilai

Penunjuk ke antarmuka IUnknown mentah yang direferensikan oleh objek IUnknown .

operator!= (operator ketidaksamaan)

Mengembalikan nilai yang menunjukkan apakah dua parameter merujuk ke target yang berbeda.

Sintaks

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

Parameter

leftright Nilai IUnknown yang alamat memori targetnya dibandingkan dengan parameter lainnya.

Mengembalikan nilai

true jika kedua parameter menunjuk ke target yang berbeda, jika tidak false.

operator< (operator kurang dari)

Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi lebih awal dalam memori daripada parameter kedua.

Sintaks

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

Parameter

leftright Nilai IUnknown yang alamat memori targetnya dibandingkan dengan parameter lainnya.

Nilai kembali

true jika alamat memori target parameter pertama kurang dari parameter kedua, jika tidak false.

operator<= (operator kurang dari atau sama dengan)

Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi lebih awal dalam memori daripada, atau di lokasi yang sama dengan parameter kedua.

Sintaks

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

Parameter

leftright Nilai IUnknown yang alamat memori targetnya dibandingkan dengan parameter lainnya.

Nilai kembali

true jika alamat memori target parameter pertama kurang dari atau sama dengan parameter kedua, jika tidak false.

operator== (operator kesetaraan)

Mengembalikan nilai yang menunjukkan apakah dua parameter merujuk ke antarmuka dan/atau objek yang sama.

Sintaks

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

Parameter

leftright Nilai IUnknown yang alamat memori targetnya dibandingkan dengan parameter lainnya.

Mengembalikan nilai

true jika kedua parameter menunjuk ke target yang sama, jika tidak false.

operator> (operator lebih besar dari)

Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi nanti dalam memori daripada parameter kedua.

Sintaks

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

Parameter

leftright Nilai IUnknown yang alamat memori targetnya dibandingkan dengan parameter lainnya.

Mengembalikan nilai

true jika alamat memori target parameter pertama lebih besar dari parameter kedua, jika tidak false.

operator>= (operator lebih besar dari atau sama dengan)

Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi nanti dalam memori daripada, atau di lokasi yang sama dengan parameter kedua.

Sintaks

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

Parameter

leftright Nilai IUnknown yang alamat memori targetnya dibandingkan dengan parameter lainnya.

Nilai kembali

true jika alamat memori target parameter pertama lebih besar dari atau sama dengan parameter kedua, jika tidak false.

put_abi (Fungsi put_abi)

Mengembalikan alamat penunjuk antarmuka IUnknown mentah yang mendasar sebagai penunjuk ke penunjuk untuk membatalkan; fungsi ini membantu Anda memanggil metode (seperti metode COM) yang mengembalikan referensi sebagai parameter keluar melalui pointer ke pointer untuk membatalkan.

Sintaks

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

Parameter

object Nilai IUnknown untuk dioperasikan.

Mengembalikan nilai

Alamat penunjuk antarmuka IUnknown mentah yang mendasar.

fungsi pertukaran

Tukar isi dari dua parameter IUnknown sehingga mereka menunjuk satu sama lain target.

Sintaks

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

Parameter

leftright Nilai IUnknown yang penunjuknya saling menukar dengan parameter lainnya.

Lihat juga