// WARNING: Please don't edit this file. It was generated by C++/WinRT // v2.0.250303.1 #pragma once #ifndef WINRT_Microsoft_Windows_AI_MachineLearning_0_H #define WINRT_Microsoft_Windows_AI_MachineLearning_0_H WINRT_EXPORT namespace winrt::Windows::ApplicationModel { struct PackageId; } WINRT_EXPORT namespace winrt::Windows::Foundation { struct HResult; struct Uri; } WINRT_EXPORT namespace winrt::Windows::Foundation::Collections { template struct WINRT_IMPL_EMPTY_BASES IIterable; template struct WINRT_IMPL_EMPTY_BASES IKeyValuePair; } WINRT_EXPORT namespace winrt::Microsoft::Windows::AI::MachineLearning { enum class CatalogModelInstanceStatus : int32_t { Available = 0, InProgress = 1, Unavailable = 2, }; enum class CatalogModelStatus : int32_t { Ready = 0, NotReady = 1, }; enum class ExecutionProviderCertification : int32_t { Unknown = 0, Certified = 1, Uncertified = 2, }; enum class ExecutionProviderReadyResultState : int32_t { InProgress = 0, Success = 1, Failure = 2, }; enum class ExecutionProviderReadyState : int32_t { Ready = 0, NotReady = 1, NotPresent = 2, }; struct ICatalogModelInfo; struct ICatalogModelInstance; struct ICatalogModelInstanceResult; struct IExecutionProvider; struct IExecutionProviderCatalog; struct IExecutionProviderCatalogStatics; struct IExecutionProviderReadyResult; struct IModelCatalog; struct IModelCatalogFactory; struct IModelCatalogSource; struct IModelCatalogSourceStatics; struct CatalogModelInfo; struct CatalogModelInstance; struct CatalogModelInstanceResult; struct ExecutionProvider; struct ExecutionProviderCatalog; struct ExecutionProviderReadyResult; struct ModelCatalog; struct ModelCatalogSource; struct MachineLearningContract; } namespace winrt::impl { template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInfo> { using type = interface_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInstance> { using type = interface_category; }; template <> struct category { using type = interface_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProvider> { using type = interface_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProviderCatalog> { using type = interface_category; }; template <> struct category { using type = interface_category; }; template <> struct category { using type = interface_category; }; template <> struct category { using type = interface_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogFactory> { using type = interface_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogSource> { using type = interface_category; }; template <> struct category { using type = interface_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::CatalogModelInfo> { using type = class_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::CatalogModelInstance> { using type = class_category; }; template <> struct category { using type = class_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::ExecutionProvider> { using type = class_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::ExecutionProviderCatalog> { using type = class_category; }; template <> struct category { using type = class_category; }; template <> struct category { using type = class_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::ModelCatalogSource> { using type = class_category; }; template <> struct category { using type = enum_category; }; template <> struct category< winrt::Microsoft::Windows::AI::MachineLearning::CatalogModelStatus> { using type = enum_category; }; template <> struct category { using type = enum_category; }; template <> struct category { using type = enum_category; }; template <> struct category { using type = enum_category; }; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.CatalogModelInfo"; template <> inline constexpr auto& name_v< winrt::Microsoft::Windows::AI::MachineLearning::CatalogModelInstance> = L"Microsoft.Windows.AI.MachineLearning.CatalogModelInstance"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.CatalogModelInstanceResult"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ExecutionProvider"; template <> inline constexpr auto& name_v< winrt::Microsoft::Windows::AI::MachineLearning::ExecutionProviderCatalog> = L"Microsoft.Windows.AI.MachineLearning.ExecutionProviderCatalog"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ExecutionProviderReadyResult"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ModelCatalog"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ModelCatalogSource"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.CatalogModelInstanceStatus"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.CatalogModelStatus"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ExecutionProviderCertification"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ExecutionProviderReadyResultState"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ExecutionProviderReadyState"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ICatalogModelInfo"; template <> inline constexpr auto& name_v< winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInstance> = L"Microsoft.Windows.AI.MachineLearning.ICatalogModelInstance"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.ICatalogModelInstanceResult"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.IExecutionProvider"; template <> inline constexpr auto& name_v< winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProviderCatalog> = L"Microsoft.Windows.AI.MachineLearning.IExecutionProviderCatalog"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.IExecutionProviderCatalogStatics"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.IExecutionProviderReadyResult"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.IModelCatalog"; template <> inline constexpr auto& name_v< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogFactory> = L"Microsoft.Windows.AI.MachineLearning.IModelCatalogFactory"; template <> inline constexpr auto& name_v< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogSource> = L"Microsoft.Windows.AI.MachineLearning.IModelCatalogSource"; template <> inline constexpr auto& name_v = L"Microsoft.Windows.AI.MachineLearning.IModelCatalogSourceStatics"; template <> inline constexpr auto& name_v< winrt::Microsoft::Windows::AI::MachineLearning::MachineLearningContract> = L"Microsoft.Windows.AI.MachineLearning.MachineLearningContract"; template <> inline constexpr guid guid_v{ 0x62057FAA, 0x3DEF, 0x509F, {0x9E, 0xD2, 0xAE, 0xF1, 0xE0, 0xDE, 0x21, 0xA4}}; // 62057FAA-3DEF-509F-9ED2-AEF1E0DE21A4 template <> inline constexpr guid guid_v< winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInstance>{ 0x9E920521, 0x5E06, 0x5C30, {0xB0, 0xC2, 0x8A, 0xF3, 0x13, 0xEF, 0xB7, 0x56}}; // 9E920521-5E06-5C30-B0C2-8AF313EFB756 template <> inline constexpr guid guid_v{ 0xB3701B71, 0x61FA, 0x5185, {0xA2, 0xCE, 0x8D, 0xF6, 0xE6, 0xA5, 0xC6, 0x6D}}; // B3701B71-61FA-5185-A2CE-8DF6E6A5C66D template <> inline constexpr guid guid_v{ 0x98356468, 0xCF23, 0x504F, {0xB2, 0x9C, 0x93, 0x47, 0x78, 0x19, 0x25, 0xFF}}; // 98356468-CF23-504F-B29C-9347781925FF template <> inline constexpr guid guid_v< winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProviderCatalog>{ 0xAA9BFE14, 0x2222, 0x5921, {0x80, 0x02, 0x4D, 0x2A, 0x20, 0x5E, 0xA0, 0x3C}}; // AA9BFE14-2222-5921-8002-4D2A205EA03C template <> inline constexpr guid guid_v{ 0x550DEF98, 0x2611, 0x5433, {0xAF, 0xB8, 0x43, 0x67, 0x3B, 0x61, 0x08, 0x48}}; // 550DEF98-2611-5433-AFB8-43673B610848 template <> inline constexpr guid guid_v{ 0x91C1724D, 0x93C7, 0x5284, {0xAD, 0xBE, 0xBA, 0x2B, 0xD7, 0xBE, 0x7C, 0x79}}; // 91C1724D-93C7-5284-ADBE-BA2BD7BE7C79 template <> inline constexpr guid guid_v{ 0x8CAE018C, 0x49F5, 0x5080, {0xAB, 0xB8, 0xEF, 0x4A, 0x1D, 0xF3, 0x56, 0xDA}}; // 8CAE018C-49F5-5080-ABB8-EF4A1DF356DA template <> inline constexpr guid guid_v< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogFactory>{ 0x2942D7BD, 0x6243, 0x511F, {0xA1, 0x2C, 0x42, 0xCB, 0x15, 0x1B, 0x62, 0x5F}}; // 2942D7BD-6243-511F-A12C-42CB151B625F template <> inline constexpr guid guid_v{ 0x3117952C, 0x8DC3, 0x54C9, {0x94, 0xFA, 0xBF, 0x6F, 0x38, 0xCB, 0xFC, 0xE9}}; // 3117952C-8DC3-54C9-94FA-BF6F38CBFCE9 template <> inline constexpr guid guid_v< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogSourceStatics>{ 0xDEBA0A9B, 0x6EDA, 0x571A, {0x9A, 0x05, 0x5A, 0x7E, 0x2A, 0x05, 0x31, 0xEF}}; // DEBA0A9B-6EDA-571A-9A05-5A7E2A0531EF template <> struct default_interface< winrt::Microsoft::Windows::AI::MachineLearning::CatalogModelInfo> { using type = winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInfo; }; template <> struct default_interface< winrt::Microsoft::Windows::AI::MachineLearning::CatalogModelInstance> { using type = winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInstance; }; template <> struct default_interface { using type = winrt::Microsoft::Windows::AI::MachineLearning:: ICatalogModelInstanceResult; }; template <> struct default_interface< winrt::Microsoft::Windows::AI::MachineLearning::ExecutionProvider> { using type = winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProvider; }; template <> struct default_interface< winrt::Microsoft::Windows::AI::MachineLearning::ExecutionProviderCatalog> { using type = winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProviderCatalog; }; template <> struct default_interface { using type = winrt::Microsoft::Windows::AI::MachineLearning:: IExecutionProviderReadyResult; }; template <> struct default_interface< winrt::Microsoft::Windows::AI::MachineLearning::ModelCatalog> { using type = winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalog; }; template <> struct default_interface< winrt::Microsoft::Windows::AI::MachineLearning::ModelCatalogSource> { using type = winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogSource; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(void**) noexcept = 0; virtual int32_t __stdcall get_Name(void**) noexcept = 0; virtual int32_t __stdcall get_Publisher(void**) noexcept = 0; virtual int32_t __stdcall get_SourceId(void**) noexcept = 0; virtual int32_t __stdcall get_Uri(void**) noexcept = 0; virtual int32_t __stdcall get_ExecutionProviders(void**) noexcept = 0; virtual int32_t __stdcall get_ModelSizeInBytes(uint64_t*) noexcept = 0; virtual int32_t __stdcall get_Version(void**) noexcept = 0; virtual int32_t __stdcall get_License(void**) noexcept = 0; virtual int32_t __stdcall get_LicenseUri(void**) noexcept = 0; virtual int32_t __stdcall get_LicenseText(void**) noexcept = 0; virtual int32_t __stdcall GetStatus(int32_t*) noexcept = 0; virtual int32_t __stdcall GetInstanceAsync(void**) noexcept = 0; virtual int32_t __stdcall GetInstanceAsync2(void*, void**) noexcept = 0; }; }; template <> struct abi< winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInstance> { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_ModelPaths(void**) noexcept = 0; virtual int32_t __stdcall get_ModelInfo(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0; virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0; virtual int32_t __stdcall get_DiagnosticText(void**) noexcept = 0; virtual int32_t __stdcall GetInstance(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Name(void**) noexcept = 0; virtual int32_t __stdcall get_LibraryPath(void**) noexcept = 0; virtual int32_t __stdcall get_PackageId(void**) noexcept = 0; virtual int32_t __stdcall get_ReadyState(int32_t*) noexcept = 0; virtual int32_t __stdcall get_Certification(int32_t*) noexcept = 0; virtual int32_t __stdcall EnsureReadyAsync(void**) noexcept = 0; virtual int32_t __stdcall TryRegister(bool*) noexcept = 0; }; }; template <> struct abi< winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProviderCatalog> { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall FindAllProviders(uint32_t* __resultSize, void***) noexcept = 0; virtual int32_t __stdcall EnsureAndRegisterCertifiedAsync( void**) noexcept = 0; virtual int32_t __stdcall RegisterCertifiedAsync(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetDefault(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0; virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0; virtual int32_t __stdcall get_DiagnosticText(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Sources(void**) noexcept = 0; virtual int32_t __stdcall get_ExecutionProviders(void**) noexcept = 0; virtual int32_t __stdcall GetAvailableModel(void*, void**) noexcept = 0; virtual int32_t __stdcall GetAvailableModels(void**) noexcept = 0; virtual int32_t __stdcall FindModelAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall FindAllModelsAsync(void**) noexcept = 0; }; }; template <> struct abi< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogFactory> { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateInstance(uint32_t, void**, void**) noexcept = 0; }; }; template <> struct abi< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogSource> { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(void**) noexcept = 0; virtual int32_t __stdcall get_Uri(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateFromUriAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall CreateFromUriAsync2(void*, void*, void**) noexcept = 0; }; }; template struct consume_Microsoft_Windows_AI_MachineLearning_ICatalogModelInfo { [[nodiscard]] auto Id() const; [[nodiscard]] auto Name() const; [[nodiscard]] auto Publisher() const; [[nodiscard]] auto SourceId() const; [[nodiscard]] auto Uri() const; [[nodiscard]] auto ExecutionProviders() const; [[nodiscard]] auto ModelSizeInBytes() const; [[nodiscard]] auto Version() const; [[nodiscard]] auto License() const; [[nodiscard]] auto LicenseUri() const; [[nodiscard]] auto LicenseText() const; auto GetStatus() const; auto GetInstanceAsync() const; auto GetInstanceAsync(param::async_iterable< winrt::Windows::Foundation::Collections::IKeyValuePair< hstring, hstring>> const& additionalHeaders) const; }; template <> struct consume< winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInfo> { template using type = consume_Microsoft_Windows_AI_MachineLearning_ICatalogModelInfo; }; template struct consume_Microsoft_Windows_AI_MachineLearning_ICatalogModelInstance { [[nodiscard]] auto ModelPaths() const; [[nodiscard]] auto ModelInfo() const; }; template <> struct consume< winrt::Microsoft::Windows::AI::MachineLearning::ICatalogModelInstance> { template using type = consume_Microsoft_Windows_AI_MachineLearning_ICatalogModelInstance; }; template struct consume_Microsoft_Windows_AI_MachineLearning_ICatalogModelInstanceResult { [[nodiscard]] auto Status() const; [[nodiscard]] auto ExtendedError() const; [[nodiscard]] auto DiagnosticText() const; auto GetInstance() const; }; template <> struct consume { template using type = consume_Microsoft_Windows_AI_MachineLearning_ICatalogModelInstanceResult< D>; }; template struct consume_Microsoft_Windows_AI_MachineLearning_IExecutionProvider { [[nodiscard]] auto Name() const; [[nodiscard]] auto LibraryPath() const; [[nodiscard]] auto PackageId() const; [[nodiscard]] auto ReadyState() const; [[nodiscard]] auto Certification() const; auto EnsureReadyAsync() const; auto TryRegister() const; }; template <> struct consume< winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProvider> { template using type = consume_Microsoft_Windows_AI_MachineLearning_IExecutionProvider; }; template struct consume_Microsoft_Windows_AI_MachineLearning_IExecutionProviderCatalog { auto FindAllProviders() const; auto EnsureAndRegisterCertifiedAsync() const; auto RegisterCertifiedAsync() const; }; template <> struct consume< winrt::Microsoft::Windows::AI::MachineLearning::IExecutionProviderCatalog> { template using type = consume_Microsoft_Windows_AI_MachineLearning_IExecutionProviderCatalog; }; template struct consume_Microsoft_Windows_AI_MachineLearning_IExecutionProviderCatalogStatics { auto GetDefault() const; }; template <> struct consume { template using type = consume_Microsoft_Windows_AI_MachineLearning_IExecutionProviderCatalogStatics< D>; }; template struct consume_Microsoft_Windows_AI_MachineLearning_IExecutionProviderReadyResult { [[nodiscard]] auto Status() const; [[nodiscard]] auto ExtendedError() const; [[nodiscard]] auto DiagnosticText() const; }; template <> struct consume { template using type = consume_Microsoft_Windows_AI_MachineLearning_IExecutionProviderReadyResult< D>; }; template struct consume_Microsoft_Windows_AI_MachineLearning_IModelCatalog { [[nodiscard]] auto Sources() const; [[nodiscard]] auto ExecutionProviders() const; auto GetAvailableModel(param::hstring const& idOrName) const; auto GetAvailableModels() const; auto FindModelAsync(param::hstring const& idOrName) const; auto FindAllModelsAsync() const; }; template <> struct consume { template using type = consume_Microsoft_Windows_AI_MachineLearning_IModelCatalog; }; template struct consume_Microsoft_Windows_AI_MachineLearning_IModelCatalogFactory { auto CreateInstance(array_view sources) const; }; template <> struct consume< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogFactory> { template using type = consume_Microsoft_Windows_AI_MachineLearning_IModelCatalogFactory; }; template struct consume_Microsoft_Windows_AI_MachineLearning_IModelCatalogSource { [[nodiscard]] auto Id() const; [[nodiscard]] auto Uri() const; }; template <> struct consume< winrt::Microsoft::Windows::AI::MachineLearning::IModelCatalogSource> { template using type = consume_Microsoft_Windows_AI_MachineLearning_IModelCatalogSource; }; template struct consume_Microsoft_Windows_AI_MachineLearning_IModelCatalogSourceStatics { auto CreateFromUriAsync( winrt::Windows::Foundation::Uri const& location) const; auto CreateFromUriAsync( winrt::Windows::Foundation::Uri const& location, param::async_iterable< winrt::Windows::Foundation::Collections::IKeyValuePair< hstring, hstring>> const& additionalHeaders) const; }; template <> struct consume { template using type = consume_Microsoft_Windows_AI_MachineLearning_IModelCatalogSourceStatics< D>; }; } // namespace winrt::impl #endif