winrt 命名空間 (C++/WinRT)

winrt命名空間提供屬於C++/WinRT的自訂資料類型,這是適用于 Windows 執行階段 (WinRT) API 的標準新式 C++17 語言投影。 這些自訂類型提供與標準類型之間的適當轉換,如此一來,您便可以繼續使用您習慣使用的標準 C++ 語言功能,以及您已經擁有的原始程式碼。

winrt 命名空間中也提供函式 (,可用來建立執行時間類別實例、boxing 和 unboxing 等 ) 、智慧型指標和其他設施。

winrt 命名空間中的類型

類型 描述
agile_ref 結構範本 類型,表示 C++/WinRT 物件或介面的敏捷式參考。
apartment_context 結構 擷取協同程式內的執行緒內容,以便稍後還原。
array_view 結構範本 連續數列值的檢視或範圍。
auto_revoke_t 標記結構 註冊委派以處理事件時,用來要求事件撤銷的標記類型。
封閉標記結構範本 標記類型,用來指出實作的介面不應該由IInspectable::GetIids報告
clock 結構 類型,包含靜態協助程式函式,用於轉換Windows::Foundation::D ateTime (,也就是std::chrono:::time_point) ,以及從 winrt::file_time和 time_t。
com_array 結構範本 用於傳入Windows 執行階段 API 之連續數列值的檢視或範圍。
com_ptr 結構範本 參考計數的 COM 智慧型指標範本。
可撰寫標記結構 標記類型,用來指出類型可以是可撰寫類別的內部類別。
撰寫標記結構 標記類型,用來指出類型是可撰寫類別的外部類別。
deferrable_event_args 一種類型,可用來實作 (產生延遲事件模式) 。
delegate 結構範本 一種類型,可用來宣告您自己的事件的自訂委派類型。
event 結構範本 一種類型,可用來宣告和實作指定之委派類型的事件。
event_revoker 結構範本 當您註冊委派時,您可以要求事件撤銷器,以便自動或手動撤銷委派。
event_token 結構 向事件註冊事件處理委派時傳回的權杖;可用來撤銷相同委派的註冊。
file_handle 結構 表示 Windows 檔案控制碼物件。
fire_and_forget 結構 使用此傳回類型讓您的協同程式成為引發和忘記。
guid 結構 表示全域唯一識別碼 (GUID) 。
handle 結構 表示 Windows 控制碼物件。
handle_type 結構範本 winrt::handlewinrt::file_handle結構的範本。
hstring 結構 代表文字字串的 UTF-16 Unicode 字元循序集合。
hresult_access_denied 結構 衍生自 winrt::hresult_error的類型,表示E_ACCESSDENIED HRESULT 錯誤碼。
hresult_canceled 結構 衍生自 winrt::hresult_error的類型,表示ERROR_CANCELLED HRESULT 錯誤碼。
hresult_changed_state 結構 衍生自 winrt::hresult_error的類型,表示E_CHANGED_STATE HRESULT 錯誤碼。
hresult_class_not_available 結構 衍生自 winrt::hresult_error的類型,表示CLASS_E_CLASSNOTAVAILABLE HRESULT 錯誤碼。
hresult_error 結構 類型,表示 HRESULT 錯誤碼。
hresult_illegal_delegate_assignment 結構 衍生自 winrt::hresult_error的類型,表示E_ILLEGAL_DELEGATE_ASSIGNMENT HRESULT 錯誤碼。
hresult_illegal_method_call 結構 衍生自 winrt::hresult_error的類型,表示E_ILLEGAL_METHOD_CALL HRESULT 錯誤碼。
hresult_illegal_state_change 結構 衍生自 winrt::hresult_error的類型,表示E_ILLEGAL_STATE_CHANGE HRESULT 錯誤碼。
hresult_invalid_argument 結構 衍生自 winrt::hresult_error的類型,表示E_INVALIDARG HRESULT 錯誤碼。
hresult_no_interface 結構 衍生自 winrt::hresult_error的類型,表示E_NOINTERFACE HRESULT 錯誤碼。
hresult_not_implemented 結構 衍生自 winrt::hresult_error的類型,表示E_NOTIMPL HRESULT 錯誤碼。
hresult_out_of_bounds 結構 衍生自 winrt::hresult_error的類型,表示E_BOUNDS HRESULT 錯誤碼。
hresult_wrong_thread 結構 衍生自 winrt::hresult_error的類型,表示RPC_E_WRONG_THREAD HRESULT 錯誤碼。
implements 結構範本 基底結構範本,代表衍生類型實作一或多個Windows 執行階段介面。
map_base 結構範本 基類,可讓您衍生自 ,表示不可觀察的關聯集合。
map_view_base 結構範本 基類,可讓您衍生自 ,代表關聯集合中連續專案序列的檢視。
no_module_lock標記結構 標記類型,用來指出類型的實例不會計入模組物件計數。
no_weak_ref 標記結構 用來退出宣告弱式參考支援的標記類型。
non_agile 標記結構 標記類型,用來指出您的類型不是敏捷式,因此不會實作 IAgileObject 介面
observable_map_base 結構範本 基類,可讓您衍生自 ,表示可觀察的關聯集合。
observable_vector_base 結構範本 基類,可讓您衍生自 ,代表可觀察的向量。
static_lifetime 標記結構 用來將啟用處理站加入靜態存留期的標記類型。
vector_base 結構範本 基類,可讓您衍生自 ,代表稱為向量的非可觀察一般用途集合。
vector_view_base 結構範本 基類,您可以從中衍生來實作一般用途集合中連續專案序列的自訂檢視或範圍。
weak_ref 結構範本 類型,表示 C++/WinRT 物件或介面的弱式參考。
Windows::Foundation::IUnknown 結構 每個 C++/WinRT 執行時間類別都會 (Windows 或協力廠商執行時間類別) 衍生自 winrt::Windows::Foundation::IUnknown。

winrt 命名空間中的函式

函式 描述
attach_abi 函式 將 C++/WinRT 物件附加至控制碼的協助程式函式,或附加至擁有其目標參考的原始指標。
box_value 函式範本 函式範本,會將 (或 塊包裝) 參考類別物件內的純量或陣列值,以便傳遞給預期 IInspectable的函式。
capture 函式範本 呼叫指定函式或方法的函式範本、擷取產生的介面指標,並將它傳回為 winrt::com_ptr
check_bool 函式範本 協助程式函式,檢查值是否為 false,如果為 false,則會擷取呼叫執行緒的最後一個錯誤碼值,並使用代表該錯誤碼的 C++/WinRT 物件擲回例外狀況。
check_hresult 函式 協助程式函式,檢查 HRESULT 程式碼是否代表錯誤,如果是,則會使用代表錯誤碼的 C++/WinRT 物件擲回例外狀況。
check_nt 函式範本 協助程式函式,檢查程式碼是否代表錯誤,如果是,則會將錯誤碼的 NT 狀態值對應至 HRESULT 值,並使用代表錯誤碼的 C++/WinRT 物件擲回例外狀況。
check_pointer 函式範本 協助程式函式,檢查指標是否為 Null,如果是,則會擷取呼叫執行緒的最後一個錯誤碼值,並使用代表該錯誤碼的 C++/WinRT 物件擲回例外狀況。
check_win32 函式範本 協助程式函式,檢查程式碼是否代表錯誤,如果是,則會將值的系統錯誤碼對應至 HRESULT 值,並使用代表錯誤碼的 C++/WinRT 物件擲回例外狀況。
copy_from_abi 函式 從控制碼或原始指標複製到 C++/WinRT 物件的協助程式函式。
copy_to_abi 函式 複製到控制碼的協助程式函式,或從 C++/WinRT 物件複製到指標。
create_instance 函式範本 函式範本,它會建立與指定 CLSID 相關聯之類別的單一未初始化物件,並在未成功時以 winrt::com_ptr 傳回它,或擲回 。
detach_abi 函式 協助程式函式,會將 C++/WinRT 物件與其參考的控制碼或其參考的介面中斷連結。
from_abi 函式範本 協助程式函式,指定投影類型的 物件,會擷取實作的指標。
get_abi函式 協助程式函式,可擷取 C++/WinRT 物件基礎 IUnknown 介面的指標。
get_activation_factory 函式範本 協助程式函式,可擷取指定之Windows 執行階段類別類型的啟用處理站。
get_cancellation_token 函式 在協同程式中,使用 winrt::get_cancellation_token 傳回的物件來輪詢或回應取消。
get_class_name 函式 協助程式函式,擷取字串,其中包含指定之Windows 執行階段類別的完整型別名稱。
get_interfaces 函式 協助程式函式,擷取陣列,其中包含 C++/WinRT 物件所實作之介面的識別碼。
get_progress_token 函式 在協同程式中,使用 winrt::get_progress_token 傳回的物件,將進度回報回進度處理常式。
get_self 函式範本 協助程式函式,指定投影類型的 物件,會擷取實作的指標。
get_trust_level 函式 可擷取 C++/WinRT 物件信任層級的協助程式函式。
get_unknown 函式 協助程式函式,會傳回投影類型物件之基礎原始 IUnknown 介面 的位址。
guid_of 函式範本 協助程式函式範本,可擷取執行時間類別、coclass 或介面的 GUID。
is_guid_of函式範本 協助程式函式範本,判斷提供的 GUID 是否為其中一個指定執行時間類別、coclasses 或介面的 GUID。
make 函式範本 使用對應實作類型參數化時,會傳回投影型別或介面實例的 Factory 方法。
make_agile 函式範本 傳回 agile_ref 物件的協助程式函式,代表 C++/WinRT 物件或介面的敏捷式參考。
make_self 函式範本 com_ptr 傳回執行時間類別實作類型的實例的 Factory 方法。
make_weak 函式範本 傳回 weak_ref 物件的協助程式函式,代表 C++/WinRT 物件或介面的弱式參考。
name_of函式範本 協助程式函式,可擷取字串檢視,其中包含特定Windows 執行階段類別的完整型別名稱。
put_abi函式 協助程式函式,可擷取 C++/WinRT 物件基礎 IUnknown 介面指標的位址,以便將其設定為另一個值。
resume_after 函式 協助程式函式,會將控制權傳回給呼叫端,然後在延遲之後繼續線上程集區執行緒上執行。
resume_background 函式 協助程式函式,會將控制權傳回給呼叫端,並線上程集區執行緒上繼續執行。
resume_foreground 函式 協助程式函式,用於協同程式內,您可以將 co_await 執行切換至特定的前景執行緒。
resume_on_signal 您可以用來暫停的函式,直到發出核心事件訊號為止。
single_threaded_map 函式範本 函式範本,會建立並傳回實作不可觀察之關聯集合之型別的物件 (對應) 。 物件會以 IMap的形式傳回。
single_threaded_observable_map 函式範本 函式範本,會建立並傳回實作可觀察關聯集合之型別的物件, (對應) 。 物件會以 IObservableMap的形式傳回。
single_threaded_observable_vector 函式範本 函式範本,可建立並傳回實作可觀察集合之型別的物件。 物件會以 IObservableVector的形式傳回。
single_threaded_vector 函式範本 函式範本,可建立並傳回實作一般用途集合之型別的物件。 物件會以 IVector的形式傳回。
swap 函式 交換兩個值內容的協助程式函式。
throw_hresult 函式 採用 HRESULT 錯誤碼的協助程式函式,並使用代表該錯誤碼的 C++/WinRT 物件擲回例外狀況。
throw_last_error 函式 協助程式函式,會擷取呼叫執行緒的最後一個錯誤碼值,並使用代表該錯誤碼的 C++/WinRT 物件擲回例外狀況。
to_hresult 函式 協助程式函式,用於 catch 區塊,會將最後一個擲回的例外狀況轉換成 HRESULT 錯誤碼。
to_hstring 函式 協助程式函式,可將輸入值轉換成 winrt::hstring ,其中包含值的字串表示。
to_string 函式 協助程式函式,可將輸入寬字元串轉換成包含 UTF-8 窄字串的 std::string
try_capture 函式範本 呼叫指定函式或方法的函式範本、擷取函式或方法輸出的介面指標,並在未成功時傳回它做為 winrt::com_ptr 或空 的com_ptr
try_create_instance 函式範本 函式範本,會建立與指定 CLSID 相關聯之類別的單一未初始化物件,並在未成功時將其傳回為 winrt::com_ptr 或空白 com_ptr
try_get_activation_factory函式範本 協助程式函式,會擷取指定之Windows 執行階段類別類型的啟用處理站,如果沒有成功,則會擷取空的com_ptr
unbox_value 函式範本 函式範本,會將 (或 取消包裝) 參考類別物件內的純量或陣列值,以便在預期 IInspectable的函式中進行處理。
unbox_value_or 函式範本 將 (或 取消包裝 的函式範本) 參考類別物件內的純量值,且具有後援值,以便在預期 IInspectable的函式中進行處理。
xaml_typename 函式範本 Windows::UI::Xaml::Interop::TypeName物件的形式傳回Windows 執行階段類型的協助程式函式。

擴充 Windows 執行階段 API 的 C++/WinRT 函式

延伸模組函式存在於特定Windows 執行階段 API 的 C++/WinRT 投影類型上。 例如,winrt::Windows::Foundation::IAsyncAction 是 IAsyncAction的 C++/WinRT 投影類型。 擴充函式不是應用程式二進位介面的一部分, (實際Windows 執行階段類型的 ABI) 介面,因此它們不會列為Windows 執行階段 API 的成員。 但您可以從任何 C++/WinRT 專案內呼叫它們。

WinRT API 函式 描述
IAsyncAction getwait_for 請參閱 IAsyncAction C++/WinRT 擴充功能函式
IAsyncActionWithProgress getwait_for 請參閱 IAsyncActionWithProgress C++/WinRT 擴充功能函式
IAsyncOperation getwait_for 請參閱 IAsyncOperation C++/WinRT 擴充功能函式
IAsyncOperationWithProgress getwait_for 請參閱 IAsyncOperationWithProgress C++/WinRT 擴充功能函式
IBindableIterable beginend 請參閱 IBindableIterable C++/WinRT 擴充功能函式
IBindableIterator beginendoperator++operator++ (int) operator* 請參閱 IBindableIterator C++/WinRT 擴充功能函式
IBuffer data 請參閱 IBuffer C++/WinRT 延伸模組函式
IIterable beginend 請參閱 IIterable C++/WinRT 延伸模組函式
IIterator operator++operator++ (int) operator* 請參閱 IIterator C++/WinRT 延伸模組函式
IKeyValuePair operator== 請參閱 IKeyValuePair C++/WinRT 延伸模組函式
Imap beginendTryLookupTryRemove 請參閱 IMap C++/WinRT 延伸模組函式
IMapView beginendTryLookup 請參閱 IMapView C++/WinRT 延伸模組函式
IMemoryBufferReference data 請參閱 IMemoryBufferReference C++/WinRT 擴充功能函式
IVector beginend 請參閱 IVector C++/WinRT 延伸模組函式
IVectorView beginend 請參閱 IVectorView C++/WinRT 延伸模組函式

其他函式

函式 描述
GetRuntimeClassName 函式 所產生實作類型的成員函式 () 傳回字串,其中包含所實作之Windows 執行階段類別的完整型別名稱。

另請參閱

C++/WinRT