// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Media_FaceAnalysis_0_H #define WINRT_Windows_Media_FaceAnalysis_0_H WINRT_EXPORT namespace winrt::Windows::Graphics::Imaging { struct BitmapBounds; enum class BitmapPixelFormat : int32_t; struct BitmapSize; struct SoftwareBitmap; } WINRT_EXPORT namespace winrt::Windows::Media { struct VideoFrame; } WINRT_EXPORT namespace winrt::Windows::Media::FaceAnalysis { struct IDetectedFace; struct IFaceDetector; struct IFaceDetectorStatics; struct IFaceTracker; struct IFaceTrackerStatics; struct DetectedFace; struct FaceDetector; struct FaceTracker; } namespace winrt::impl { template <> struct category{ 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{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> inline constexpr auto& name_v = L"Windows.Media.FaceAnalysis.DetectedFace"; template <> inline constexpr auto& name_v = L"Windows.Media.FaceAnalysis.FaceDetector"; template <> inline constexpr auto& name_v = L"Windows.Media.FaceAnalysis.FaceTracker"; template <> inline constexpr auto& name_v = L"Windows.Media.FaceAnalysis.IDetectedFace"; template <> inline constexpr auto& name_v = L"Windows.Media.FaceAnalysis.IFaceDetector"; template <> inline constexpr auto& name_v = L"Windows.Media.FaceAnalysis.IFaceDetectorStatics"; template <> inline constexpr auto& name_v = L"Windows.Media.FaceAnalysis.IFaceTracker"; template <> inline constexpr auto& name_v = L"Windows.Media.FaceAnalysis.IFaceTrackerStatics"; template <> inline constexpr guid guid_v{ 0x8200D454,0x66BC,0x34DF,{ 0x94,0x10,0xE8,0x94,0x00,0x19,0x54,0x14 } }; // 8200D454-66BC-34DF-9410-E89400195414 template <> inline constexpr guid guid_v{ 0x16B672DC,0xFE6F,0x3117,{ 0x8D,0x95,0xC3,0xF0,0x4D,0x51,0x63,0x0C } }; // 16B672DC-FE6F-3117-8D95-C3F04D51630C template <> inline constexpr guid guid_v{ 0xBC042D67,0x9047,0x33F6,{ 0x88,0x1B,0x67,0x46,0xC1,0xB2,0x18,0xB8 } }; // BC042D67-9047-33F6-881B-6746C1B218B8 template <> inline constexpr guid guid_v{ 0x6BA67D8C,0xA841,0x4420,{ 0x93,0xE6,0x24,0x20,0xA1,0x88,0x4F,0xCF } }; // 6BA67D8C-A841-4420-93E6-2420A1884FCF template <> inline constexpr guid guid_v{ 0xE9629198,0x1801,0x3FA5,{ 0x93,0x2E,0x31,0xD7,0x67,0xAF,0x6C,0x4D } }; // E9629198-1801-3FA5-932E-31D767AF6C4D template <> struct default_interface{ using type = winrt::Windows::Media::FaceAnalysis::IDetectedFace; }; template <> struct default_interface{ using type = winrt::Windows::Media::FaceAnalysis::IFaceDetector; }; template <> struct default_interface{ using type = winrt::Windows::Media::FaceAnalysis::IFaceTracker; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_FaceBox(struct struct_Windows_Graphics_Imaging_BitmapBounds*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall DetectFacesAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall DetectFacesWithSearchAreaAsync(void*, struct struct_Windows_Graphics_Imaging_BitmapBounds, void**) noexcept = 0; virtual int32_t __stdcall get_MinDetectableFaceSize(struct struct_Windows_Graphics_Imaging_BitmapSize*) noexcept = 0; virtual int32_t __stdcall put_MinDetectableFaceSize(struct struct_Windows_Graphics_Imaging_BitmapSize) noexcept = 0; virtual int32_t __stdcall get_MaxDetectableFaceSize(struct struct_Windows_Graphics_Imaging_BitmapSize*) noexcept = 0; virtual int32_t __stdcall put_MaxDetectableFaceSize(struct struct_Windows_Graphics_Imaging_BitmapSize) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateAsync(void**) noexcept = 0; virtual int32_t __stdcall GetSupportedBitmapPixelFormats(void**) noexcept = 0; virtual int32_t __stdcall IsBitmapPixelFormatSupported(int32_t, bool*) noexcept = 0; virtual int32_t __stdcall get_IsSupported(bool*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall ProcessNextFrameAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall get_MinDetectableFaceSize(struct struct_Windows_Graphics_Imaging_BitmapSize*) noexcept = 0; virtual int32_t __stdcall put_MinDetectableFaceSize(struct struct_Windows_Graphics_Imaging_BitmapSize) noexcept = 0; virtual int32_t __stdcall get_MaxDetectableFaceSize(struct struct_Windows_Graphics_Imaging_BitmapSize*) noexcept = 0; virtual int32_t __stdcall put_MaxDetectableFaceSize(struct struct_Windows_Graphics_Imaging_BitmapSize) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateAsync(void**) noexcept = 0; virtual int32_t __stdcall GetSupportedBitmapPixelFormats(void**) noexcept = 0; virtual int32_t __stdcall IsBitmapPixelFormatSupported(int32_t, bool*) noexcept = 0; virtual int32_t __stdcall get_IsSupported(bool*) noexcept = 0; }; }; template struct consume_Windows_Media_FaceAnalysis_IDetectedFace { [[nodiscard]] auto FaceBox() const; }; template <> struct consume { template using type = consume_Windows_Media_FaceAnalysis_IDetectedFace; }; template struct consume_Windows_Media_FaceAnalysis_IFaceDetector { auto DetectFacesAsync(winrt::Windows::Graphics::Imaging::SoftwareBitmap const& image) const; auto DetectFacesAsync(winrt::Windows::Graphics::Imaging::SoftwareBitmap const& image, winrt::Windows::Graphics::Imaging::BitmapBounds const& searchArea) const; [[nodiscard]] auto MinDetectableFaceSize() const; auto MinDetectableFaceSize(winrt::Windows::Graphics::Imaging::BitmapSize const& value) const; [[nodiscard]] auto MaxDetectableFaceSize() const; auto MaxDetectableFaceSize(winrt::Windows::Graphics::Imaging::BitmapSize const& value) const; }; template <> struct consume { template using type = consume_Windows_Media_FaceAnalysis_IFaceDetector; }; template struct consume_Windows_Media_FaceAnalysis_IFaceDetectorStatics { auto CreateAsync() const; auto GetSupportedBitmapPixelFormats() const; auto IsBitmapPixelFormatSupported(winrt::Windows::Graphics::Imaging::BitmapPixelFormat const& bitmapPixelFormat) const; [[nodiscard]] auto IsSupported() const; }; template <> struct consume { template using type = consume_Windows_Media_FaceAnalysis_IFaceDetectorStatics; }; template struct consume_Windows_Media_FaceAnalysis_IFaceTracker { auto ProcessNextFrameAsync(winrt::Windows::Media::VideoFrame const& videoFrame) const; [[nodiscard]] auto MinDetectableFaceSize() const; auto MinDetectableFaceSize(winrt::Windows::Graphics::Imaging::BitmapSize const& value) const; [[nodiscard]] auto MaxDetectableFaceSize() const; auto MaxDetectableFaceSize(winrt::Windows::Graphics::Imaging::BitmapSize const& value) const; }; template <> struct consume { template using type = consume_Windows_Media_FaceAnalysis_IFaceTracker; }; template struct consume_Windows_Media_FaceAnalysis_IFaceTrackerStatics { auto CreateAsync() const; auto GetSupportedBitmapPixelFormats() const; auto IsBitmapPixelFormatSupported(winrt::Windows::Graphics::Imaging::BitmapPixelFormat const& bitmapPixelFormat) const; [[nodiscard]] auto IsSupported() const; }; template <> struct consume { template using type = consume_Windows_Media_FaceAnalysis_IFaceTrackerStatics; }; } #endif