Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Desteklenen en düşük SDK: Windows SDK sürüm 10.0.17134.0 (Windows 10, sürüm 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 | Desteklenmiyorsa oluşturarak bir arabirim isteğinde bulunur. |
| IUnknown::try_as function | Desteklenmiyorsa üreten null bir arabirim isteğinde bulunur. |
| IUnknown::try_as_with_reason function | Desteklenmediği takdirde nedenini bildirerek bir arabirim isteğinde bulunur. |
Member operators
| Operator | Description |
|---|---|
| IUnknown::operator bool | Checks whether or not the IUnknown object is referencing an interface. |
| IUnknown::operator= (atama işleci) | 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. Şu anda başvurulan herhangi bir arabirim veya nesnedeki başvuru sayısını azaltır, ham işaretçi parametresini kopyalar ve işaret ettiği arabirimin veya nesnenin ömrünü yönetmeye başlar. |
| copy_to_abi function | Copies to another pointer from an IUnknown object. Şu anda başvurulan herhangi bir arabirim veya nesnedeki başvuru sayısını artırır ve bu arabirimin veya nesnenin bellek adresini parametreye kopyalar. |
| 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!= (eşitsizlik operatörü) | İki parametrenin farklı hedeflere başvurup başvurmadığını belirten bir değer döndürür. |
| Operatör< (Küçüktür operatörü) | İlk parametrenin hedefinin bellekte ikinci parametreninkinden daha önce oluşup oluşmadığını belirten bir değer döndürür. |
| operator<= (küçüktür veya eşittir operatörü) | İlk parametrenin hedefinin bellekte ikinci parametreden daha önce mi yoksa ikinci parametreyle aynı konumda mı oluştuğunu gösteren bir değer döndürür. |
| operator== (eşitlik operatörü) | İki parametrenin aynı arabirime ve/veya nesneye başvurup başvurmadığını belirten bir değer döndürür. |
| operatör> (büyüktür operatörü) | İlk parametrenin hedefinin bellekte ikinci parametreninkinden daha sonra oluşup oluşmadığını belirten bir değer döndürür. |
| operator>= (büyüktür veya eşittir operatörü) | İlk parametrenin hedefinin bellekte ikinci parametreden daha sonra mı yoksa ikinci parametreyle aynı konumda mı oluştuğunu gösteren bir değer döndürür. |
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
belirtilen arabiriminden istemektedir IUnknown. Arabirim desteklenmiyorsa oluşturur. Arabirimin desteklenmesi bekleniyorsa bu yöntemi kullanın.
Syntax
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
Template parameters
typename To İstenen arabirimi açıklayan bir tür.
Bu tür bir C++/WinRT arabirim adı veya C++/WinRT çalışma zamanı sınıf adı olabilir.
auto-dönüş aşırı yüklemesi için, tür klasik bir COM arabirimi de olabilir.
void-dönüş aşırı yüklemesi için tür, klasik com arabiriminin olduğu yer I de olabilircom_ptr<I>.
Parameters
to İstenen arabirimi almak için bir değere başvuru.
Return value
auto-dönüş aşırı yüklemesi, istenen arabirimi CTo++/WinRT arabirimi veya çalışma zamanı sınıf adı veya klasik bir COM arabirimi olup olmadığını To biçiminde com_ptr<To> döndürür.
IUnknown ise autonull, -dönüş aşırı yüklemesi döndürür nullve void-dönüş aşırı yüklemesi olarak nullayarlanırto.
IUnknown
null değilse ancak arabirimi alınamıyorsa, yöntemi oluşturur.
IUnknown::try_as function
belirtilen arabiriminden istemektedir IUnknown. Arabirim desteklenmiyorsa üretir null .
Syntax
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
Template parameters
typename To İstenen arabirimi açıklayan bir tür.
Bu tür bir C++/WinRT arabirim adı veya C++/WinRT çalışma zamanı sınıf adı olabilir.
auto-dönüş aşırı yüklemesi için, tür klasik bir COM arabirimi de olabilir.
bool-dönüş aşırı yüklemesi için tür, klasik com arabiriminin olduğu yer I de olabilircom_ptr<I>.
Parameters
to İstenen arabirimi almak için bir değere başvuru.
Return value
auto-dönüş aşırı yüklemesi, istenen arabirimi CTo++/WinRT arabirimi veya çalışma zamanı sınıf adı veya klasik bir COM arabirimi olup olmadığını To biçiminde com_ptr<To> döndürür.
IUnknown ise null veya arabirimi alınamıyorsa, auto-dönüş aşırı yüklemesi döndürür nullve bool-dönüş aşırı yüklemesi olarak nullayarlanırto.
döndürülen bool aşırı yükleme, içinde to döndürülen değer değilsenull ve false ise nulldöndürürtrue.
IUnknown::try_as_with_reason function
Destekleniyorsa istenen arabirimi döndürür ve desteklenmiyorsa nedeni bildirir.
Syntax
template <typename To> auto try_as_with_reason(winrt::hresult& reason) const noexcept;
Template parameters
typename To İstenen arabirimi açıklayan bir tür.
Bu tür bir C++/WinRT arabirim adı, C++/WinRT çalışma zamanı sınıf adı veya klasik com arabirimi olabilir.
Parameters
reason Sorgunun winrt::hresult sonucunu açıklayan öğesini alır.
Return value
İstenen arabirimi, To C++/WinRT arabirimi veya çalışma zamanı sınıf adı veya klasik com arabirimi olup olmadığını To biçiminde com_ptr<To> döndürür.
IUnknown veya null arabirimi alınamıyorsa yöntemi döndürürnull.
Remarks
Bu yöntem C++/WinRT sürüm 2.0.250303.1'den itibaren kullanılabilir.
IUnknown ise nullyöntemi döndürür null ve olarak ayarlar reasonS_OK.
IUnknown
nulldeğilse, yöntemi sorgunun sonucunu döndürür ve reason sorgu tarafından üretileni winrt::hresult alır.
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= (atama işleci)
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. Gerekirse, başvuruları birleştirmek için bu işlevi kullanabilirsiniz.
Syntax
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value Hedefine bir başvuruya sahip olan ham bir işaretçi.
copy_from_abi function
Copies to an IUnknown object from another pointer. Şu anda başvurulan herhangi bir arabirim veya nesnedeki başvuru sayısını azaltır, ham işaretçi parametresini kopyalar ve işaret ettiği arabirimin veya nesnenin ömrünü yönetmeye başlar.
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. Şu anda başvurulan herhangi bir arabirim veya nesnedeki başvuru sayısını artırır ve bu arabirimin veya nesnenin bellek adresini parametreye kopyalar. 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!= (eşitsizlik operatörü)
İki parametrenin farklı hedeflere başvurup başvurmadığını belirten bir değer döndürür.
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 İki parametre farklı hedeflere işaret ediyorsa, aksi takdirde false.
Operatör< (Küçüktür operatörü)
İlk parametrenin hedefinin bellekte ikinci parametreninkinden daha önce oluşup oluşmadığını belirten bir değer döndürür.
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 İlk parametrenin hedefinin bellek adresi ikinci parametreninkinden küçükse, aksi takdirde false.
operator<= (küçüktür veya eşittir operatörü)
İlk parametrenin hedefinin bellekte ikinci parametreden daha önce mi yoksa ikinci parametreyle aynı konumda mı oluştuğunu gösteren bir değer döndürür.
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 İlk parametrenin hedefinin bellek adresi ikinci parametreninkinden küçük veya ona eşitse, aksi takdirde false.
operator== (eşitlik operatörü)
İki parametrenin aynı arabirime ve/veya nesneye başvurup başvurmadığını belirten bir değer döndürür.
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 iki parametre aynı hedefi gösteriyorsa, aksi takdirde false.
operatör> (büyüktür operatörü)
İlk parametrenin hedefinin bellekte ikinci parametreninkinden daha sonra oluşup oluşmadığını belirten bir değer döndürür.
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 İlk parametrenin hedefinin bellek adresi ikinci parametreninkinden büyükse, aksi takdirde false.
operator>= (büyüktür veya eşittir operatörü)
İlk parametrenin hedefinin bellekte ikinci parametreden daha sonra mı yoksa ikinci parametreyle aynı konumda mı oluştuğunu gösteren bir değer döndürür.
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 İlk parametrenin hedefinin bellek adresi ikinci parametreninkinden büyük veya ona eşitse, aksi takdirde 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.