Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Every C++/WinRT runtime class (whether a Windows or a third party runtime class) derives from winrt::Windows::Foundation::IUnknown. It represents the COM IUnknown interface, and it provides facilities such as querying for a different interface, abi functions, and comparison operators.
Syntax
struct IUnknown
Requirements
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 (included by default)
Constructors
| Constructor | Description |
|---|---|
| IUnknown::IUnknown constructor | Initializes a new instance of the IUnknown struct, optionally with a copy or move of the input data. |
Member functions
| Function | Description |
|---|---|
| IUnknown::as function | Meminta antarmuka, melemparkan jika tidak didukung. |
| IUnknown::try_as function | Meminta antarmuka, menghasilkan null jika tidak didukung. |
| IUnknown::try_as_with_reason function | Meminta antarmuka, melaporkan alasan jika tidak didukung. |
Member operators
| Operator | Description |
|---|---|
| IUnknown::operator bool | Checks whether or not the IUnknown object is referencing an interface. |
| IUnknown::operator= (operator penugasan) | Assigns a value to the IUnknown object. |
Free functions
| Function | Description |
|---|---|
| attach_abi function | Attaches an IUnknown object to a raw pointer that owns a reference to its target; an additional reference is not added. |
| copy_from_abi function | Copies to an IUnknown object from another pointer. Mengurangi jumlah referensi pada antarmuka atau objek yang saat ini direferensikan, menyalin parameter pointer mentah, dan mulai mengelola masa pakai antarmuka atau objek yang ditunjukkan olehnya. |
| copy_to_abi function | Copies to another pointer from an IUnknown object. Menaikkan jumlah referensi pada antarmuka atau objek yang saat ini direferensikan, dan menyalin antarmuka atau alamat memori objek tersebut ke dalam parameter . |
| detach_abi function | Detaches from the raw IUnknown interface without decrementing the reference count, perhaps to return it to a caller. |
| get_abi function | Returns the underlying raw IUnknown interface pointer should you need to pass it to a function. |
| get_unknown function | A helper function that returns the address of the underlying raw IUnknown interface of an object of a projected type. |
| put_abi function | Returns the address of the underlying raw IUnknown interface pointer as a pointer to a pointer to void; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer to void. |
| swap function | Swaps the contents of the two IUnknown parameters so that they point at one another's target. |
Free operators
| Function | Description |
|---|---|
| operator!= (operator ketidaksetaraan) | Mengembalikan nilai yang menunjukkan apakah kedua 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<= (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 kedua 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::IUnknown constructor
Initializes a new instance of the IUnknown struct, optionally with a copy or move of the input data.
Syntax
IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;
Parameters
other Another IUnknown that initializes the IUnknown object.
IUnknown::as function
Meminta antarmuka yang ditentukan dari IUnknown. Melempar jika antarmuka tidak didukung. Gunakan metode ini jika Anda mengharapkan antarmuka didukung.
Syntax
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
Template parameters
typename To Jenis yang menjelaskan antarmuka yang diminta.
Jenis ini dapat berupa nama antarmuka C++/WinRT atau nama kelas runtime C++/WinRT.
autoUntuk kelebihan beban yang dikembalikan, jenisnya juga dapat menjadi antarmuka COM klasik.
voidUntuk kelebihan beban -returning, jenisnya juga dapat menjadi com_ptr<I> tempat I antarmuka COM klasik.
Parameters
to Referensi ke nilai untuk menerima antarmuka yang diminta.
Return value
Overload auto-returning mengembalikan antarmuka yang diminta, dalam bentuk To apakah itu adalah antarmuka C++/WinRT atau nama kelas runtime, atau dalam bentuk com_ptr<To> jika To adalah antarmuka COM klasik.
IUnknown Jika adalah null, maka autokelebihan beban yang dikembalikan mengembalikan null, dan voidkelebihan beban -returning diatur to ke null.
IUnknown Jika bukan-null tetapi antarmuka tidak dapat diperoleh, metode akan melemparkan.
IUnknown::try_as function
Meminta antarmuka yang ditentukan dari IUnknown.
null Menghasilkan jika antarmuka tidak didukung.
Syntax
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
Template parameters
typename To Jenis yang menjelaskan antarmuka yang diminta.
Jenis ini dapat berupa nama antarmuka C++/WinRT atau nama kelas runtime C++/WinRT.
autoUntuk kelebihan beban yang dikembalikan, jenisnya juga dapat menjadi antarmuka COM klasik.
boolUntuk kelebihan beban -returning, jenisnya juga dapat menjadi com_ptr<I> tempat I antarmuka COM klasik.
Parameters
to Referensi ke nilai untuk menerima antarmuka yang diminta.
Return value
Overload auto-returning mengembalikan antarmuka yang diminta, dalam bentuk To apakah itu adalah antarmuka C++/WinRT atau nama kelas runtime, atau dalam bentuk com_ptr<To> jika To adalah antarmuka COM klasik.
IUnknown Jika adalah null atau jika antarmuka tidak dapat diperoleh, maka autokelebihan beban -returning mengembalikan null, dan booloverload -returning diatur to ke null.
Kelebihan bool beban yang true dikembalikan mengembalikan jika nilai yang dikembalikan to adalah non-null dan false jika itu adalah null.
IUnknown::try_as_with_reason function
Mengembalikan antarmuka yang diminta, jika didukung, dan melaporkan alasannya jika tidak didukung.
Syntax
template <typename To> auto try_as_with_reason(winrt::hresult& reason) const noexcept;
Template parameters
typename To Jenis yang menjelaskan antarmuka yang diminta.
Jenis ini dapat berupa nama antarmuka C++/WinRT, nama kelas runtime C++/WinRT, atau antarmuka COM klasik.
Parameters
reason
winrt::hresult Menerima yang menjelaskan hasil kueri.
Return value
Mengembalikan antarmuka yang diminta, dalam bentuk To apakah itu adalah antarmuka C++/WinRT atau nama kelas runtime, atau dalam bentuk com_ptr<To> jika To adalah antarmuka COM klasik.
IUnknown Jika adalah null atau jika antarmuka tidak dapat diperoleh, maka metode mengembalikan null.
Remarks
Metode ini tersedia mulai dari C++/WinRT versi 2.0.250303.1.
Jika adalah null, maka metode mengembalikan null dan mengatur ke reasonS_OK.IUnknown
IUnknown Jika non-null, maka metode mengembalikan hasil kueri, dan reason menerima yang winrt::hresult dihasilkan oleh kueri.
IUnknown::operator bool
Checks whether or not the IUnknown object is referencing an interface. If the IUnknown object is not referencing an interface, then it is logically null; otherwise it is logically not null.
Syntax
explicit operator bool() const noexcept;
Return value
true if the IUnknown object is referencing an interface (logically not null), otherwise false (logically null).
IUnknown::operator= (operator penugasan)
Assigns a value to the IUnknown object.
Syntax
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;
Parameters
other An IUnknown value to assign to the IUnknown object, either by copy or by move.
Return value
A reference to the IUnknown object.
attach_abi function
Attaches an IUnknown object to a raw pointer that owns a reference to its target; an additional reference is not added. Jika diperlukan, Anda dapat menggunakan fungsi ini untuk menyaring referensi.
Syntax
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value Penunjuk mentah yang memiliki referensi ke targetnya.
copy_from_abi function
Copies to an IUnknown object from another pointer. Mengurangi jumlah referensi pada antarmuka atau objek yang saat ini direferensikan, menyalin parameter pointer mentah, dan mulai mengelola masa pakai antarmuka atau objek yang ditunjukkan olehnya.
Syntax
void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value A raw pointer to a target whose lifetime should be managed by the IUnknown object.
copy_to_abi function
Copies to another pointer from an IUnknown object. Menaikkan jumlah referensi pada antarmuka atau objek yang saat ini direferensikan, dan menyalin antarmuka atau alamat memori objek tersebut ke dalam parameter . This function lets you hand out a reference to the same interface without calling QueryInterface.
Syntax
void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;
Parameters
object An IUnknown value to operate on.
value A raw pointer reference; via which to copy the pointer to the IUnknown object's target.
detach_abi function
Detaches an IUnknown object from its raw IUnknown interface without decrementing the reference count, perhaps to return it to a caller.
Syntax
void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
A pointer to the raw IUnknown interface referenced by the IUnknown object.
get_abi function
Returns the underlying raw IUnknown interface pointer should you need to pass it to a function. You may call AddRef, Release, or QueryInterface on the returned pointer.
Syntax
void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
A pointer to the raw IUnknown interface referenced by the IUnknown object.
operator!= (operator ketidaksamaan)
Mengembalikan nilai yang menunjukkan apakah kedua parameter merujuk ke target yang berbeda.
Syntax
bool operator!=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
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.
Syntax
bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Jika alamat memori target parameter pertama kurang dari parameter kedua, jika tidak false.
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.
Syntax
bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
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 kedua parameter merujuk ke antarmuka dan/atau objek yang sama.
Syntax
bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Jika kedua parameter menunjuk ke target yang sama, jika tidak false.
operator> (operator yang lebih besar dari)
Mengembalikan nilai yang menunjukkan apakah target parameter pertama terjadi nanti dalam memori daripada parameter kedua.
Syntax
bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Jika alamat memori target parameter pertama lebih besar dari parameter kedua, jika tidak false.
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.
Syntax
bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Jika alamat memori target parameter pertama lebih besar dari atau sama dengan parameter kedua, jika tidak false.
put_abi function
Returns the address of the underlying raw IUnknown interface pointer as a pointer to a pointer to void; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer to void.
Syntax
void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
The address of the underlying raw IUnknown interface pointer.
swap function
Swaps the contents of the two IUnknown parameters so that they point at one another's target.
Syntax
void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;
Parameters
left
right An IUnknown value whose pointer to mutually swap with that of the other parameter.