// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Media_Editing_0_H #define WINRT_Windows_Media_Editing_0_H WINRT_EXPORT namespace winrt::Windows::Foundation { struct IAsyncAction; struct Rect; } WINRT_EXPORT namespace winrt::Windows::Foundation::Collections { template struct WINRT_IMPL_EMPTY_BASES IIterable; } WINRT_EXPORT namespace winrt::Windows::Graphics::DirectX::Direct3D11 { struct IDirect3DSurface; } WINRT_EXPORT namespace winrt::Windows::Media::Core { struct MediaStreamSource; } WINRT_EXPORT namespace winrt::Windows::Media::Effects { struct IVideoCompositorDefinition; } WINRT_EXPORT namespace winrt::Windows::Media::MediaProperties { struct AudioEncodingProperties; struct MediaEncodingProfile; struct VideoEncodingProperties; } WINRT_EXPORT namespace winrt::Windows::Storage { struct IStorageFile; struct StorageFile; } WINRT_EXPORT namespace winrt::Windows::UI { struct Color; } WINRT_EXPORT namespace winrt::Windows::Media::Editing { enum class MediaTrimmingPreference : int32_t { Fast = 0, Precise = 1, }; enum class VideoFramePrecision : int32_t { NearestFrame = 0, NearestKeyFrame = 1, }; struct IBackgroundAudioTrack; struct IBackgroundAudioTrackStatics; struct IEmbeddedAudioTrack; struct IMediaClip; struct IMediaClipStatics; struct IMediaClipStatics2; struct IMediaComposition; struct IMediaComposition2; struct IMediaCompositionStatics; struct IMediaOverlay; struct IMediaOverlayFactory; struct IMediaOverlayLayer; struct IMediaOverlayLayerFactory; struct BackgroundAudioTrack; struct EmbeddedAudioTrack; struct MediaClip; struct MediaComposition; struct MediaOverlay; struct MediaOverlayLayer; } 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 = 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 = 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 <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.BackgroundAudioTrack"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.EmbeddedAudioTrack"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.MediaClip"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.MediaComposition"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.MediaOverlay"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.MediaOverlayLayer"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.MediaTrimmingPreference"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.VideoFramePrecision"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IBackgroundAudioTrack"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IBackgroundAudioTrackStatics"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IEmbeddedAudioTrack"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaClip"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaClipStatics"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaClipStatics2"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaComposition"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaComposition2"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaCompositionStatics"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaOverlay"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaOverlayFactory"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaOverlayLayer"; template <> inline constexpr auto& name_v = L"Windows.Media.Editing.IMediaOverlayLayerFactory"; template <> inline constexpr guid guid_v{ 0x4B91B3BD,0x9E21,0x4266,{ 0xA9,0xC2,0x67,0xDD,0x01,0x1A,0x23,0x57 } }; // 4B91B3BD-9E21-4266-A9C2-67DD011A2357 template <> inline constexpr guid guid_v{ 0xD9B1C0D7,0xD018,0x42A8,{ 0xA5,0x59,0xCB,0x4D,0x9E,0x97,0xE6,0x64 } }; // D9B1C0D7-D018-42A8-A559-CB4D9E97E664 template <> inline constexpr guid guid_v{ 0x55EE5A7A,0x2D30,0x3FBA,{ 0xA1,0x90,0x4F,0x1A,0x64,0x54,0xF8,0x8F } }; // 55EE5A7A-2D30-3FBA-A190-4F1A6454F88F template <> inline constexpr guid guid_v{ 0x53F25366,0x5FBA,0x3EA4,{ 0x86,0x93,0x24,0x76,0x18,0x11,0x14,0x0A } }; // 53F25366-5FBA-3EA4-8693-24761811140A template <> inline constexpr guid guid_v{ 0xFA402B68,0x928F,0x43C4,{ 0xBC,0x6E,0x78,0x3A,0x1A,0x35,0x96,0x56 } }; // FA402B68-928F-43C4-BC6E-783A1A359656 template <> inline constexpr guid guid_v{ 0x5B1DD7B3,0x854E,0x4D9B,{ 0x87,0x7D,0x47,0x74,0xA5,0x56,0xCD,0x12 } }; // 5B1DD7B3-854E-4D9B-877D-4774A556CD12 template <> inline constexpr guid guid_v{ 0x2E06E605,0xDC71,0x41D6,{ 0xB8,0x37,0x2D,0x2B,0xC1,0x4A,0x29,0x47 } }; // 2E06E605-DC71-41D6-B837-2D2BC14A2947 template <> inline constexpr guid guid_v{ 0xA59E5372,0x2366,0x492C,{ 0xBE,0xC8,0xE6,0xDF,0xBA,0x6D,0x02,0x81 } }; // A59E5372-2366-492C-BEC8-E6DFBA6D0281 template <> inline constexpr guid guid_v{ 0x87A08F04,0xE32A,0x45CE,{ 0x8F,0x66,0xA3,0x0D,0xF0,0x76,0x62,0x24 } }; // 87A08F04-E32A-45CE-8F66-A30DF0766224 template <> inline constexpr guid guid_v{ 0xA902AE5D,0x7869,0x4830,{ 0x8A,0xB1,0x94,0xDC,0x01,0xC0,0x5F,0xA4 } }; // A902AE5D-7869-4830-8AB1-94DC01C05FA4 template <> inline constexpr guid guid_v{ 0xB584828A,0x6188,0x4F8F,{ 0xA2,0xE0,0xAA,0x55,0x2D,0x59,0x8E,0x18 } }; // B584828A-6188-4F8F-A2E0-AA552D598E18 template <> inline constexpr guid guid_v{ 0xA6D9BA57,0xEEDA,0x46C6,{ 0xBB,0xE5,0xE3,0x98,0xC8,0x41,0x68,0xAC } }; // A6D9BA57-EEDA-46C6-BBE5-E398C84168AC template <> inline constexpr guid guid_v{ 0x947CB473,0xA39E,0x4362,{ 0xAB,0xBF,0x9F,0x8B,0x50,0x70,0xA0,0x62 } }; // 947CB473-A39E-4362-ABBF-9F8B5070A062 template <> struct default_interface{ using type = winrt::Windows::Media::Editing::IBackgroundAudioTrack; }; template <> struct default_interface{ using type = winrt::Windows::Media::Editing::IEmbeddedAudioTrack; }; template <> struct default_interface{ using type = winrt::Windows::Media::Editing::IMediaClip; }; template <> struct default_interface{ using type = winrt::Windows::Media::Editing::IMediaComposition; }; template <> struct default_interface{ using type = winrt::Windows::Media::Editing::IMediaOverlay; }; template <> struct default_interface{ using type = winrt::Windows::Media::Editing::IMediaOverlayLayer; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_TrimTimeFromStart(int64_t*) noexcept = 0; virtual int32_t __stdcall put_TrimTimeFromStart(int64_t) noexcept = 0; virtual int32_t __stdcall get_TrimTimeFromEnd(int64_t*) noexcept = 0; virtual int32_t __stdcall put_TrimTimeFromEnd(int64_t) noexcept = 0; virtual int32_t __stdcall get_OriginalDuration(int64_t*) noexcept = 0; virtual int32_t __stdcall get_TrimmedDuration(int64_t*) noexcept = 0; virtual int32_t __stdcall get_UserData(void**) noexcept = 0; virtual int32_t __stdcall put_Delay(int64_t) noexcept = 0; virtual int32_t __stdcall get_Delay(int64_t*) noexcept = 0; virtual int32_t __stdcall put_Volume(double) noexcept = 0; virtual int32_t __stdcall get_Volume(double*) noexcept = 0; virtual int32_t __stdcall Clone(void**) noexcept = 0; virtual int32_t __stdcall GetAudioEncodingProperties(void**) noexcept = 0; virtual int32_t __stdcall get_AudioEffectDefinitions(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateFromEmbeddedAudioTrack(void*, void**) noexcept = 0; virtual int32_t __stdcall CreateFromFileAsync(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetAudioEncodingProperties(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_TrimTimeFromStart(int64_t*) noexcept = 0; virtual int32_t __stdcall put_TrimTimeFromStart(int64_t) noexcept = 0; virtual int32_t __stdcall get_TrimTimeFromEnd(int64_t*) noexcept = 0; virtual int32_t __stdcall put_TrimTimeFromEnd(int64_t) noexcept = 0; virtual int32_t __stdcall get_OriginalDuration(int64_t*) noexcept = 0; virtual int32_t __stdcall get_TrimmedDuration(int64_t*) noexcept = 0; virtual int32_t __stdcall get_UserData(void**) noexcept = 0; virtual int32_t __stdcall Clone(void**) noexcept = 0; virtual int32_t __stdcall get_StartTimeInComposition(int64_t*) noexcept = 0; virtual int32_t __stdcall get_EndTimeInComposition(int64_t*) noexcept = 0; virtual int32_t __stdcall get_EmbeddedAudioTracks(void**) noexcept = 0; virtual int32_t __stdcall get_SelectedEmbeddedAudioTrackIndex(uint32_t*) noexcept = 0; virtual int32_t __stdcall put_SelectedEmbeddedAudioTrackIndex(uint32_t) noexcept = 0; virtual int32_t __stdcall put_Volume(double) noexcept = 0; virtual int32_t __stdcall get_Volume(double*) noexcept = 0; virtual int32_t __stdcall GetVideoEncodingProperties(void**) noexcept = 0; virtual int32_t __stdcall get_AudioEffectDefinitions(void**) noexcept = 0; virtual int32_t __stdcall get_VideoEffectDefinitions(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateFromColor(struct struct_Windows_UI_Color, int64_t, void**) noexcept = 0; virtual int32_t __stdcall CreateFromFileAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall CreateFromImageFileAsync(void*, int64_t, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateFromSurface(void*, int64_t, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Duration(int64_t*) noexcept = 0; virtual int32_t __stdcall get_Clips(void**) noexcept = 0; virtual int32_t __stdcall get_BackgroundAudioTracks(void**) noexcept = 0; virtual int32_t __stdcall get_UserData(void**) noexcept = 0; virtual int32_t __stdcall Clone(void**) noexcept = 0; virtual int32_t __stdcall SaveAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall GetThumbnailAsync(int64_t, int32_t, int32_t, int32_t, void**) noexcept = 0; virtual int32_t __stdcall GetThumbnailsAsync(void*, int32_t, int32_t, int32_t, void**) noexcept = 0; virtual int32_t __stdcall RenderToFileAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall RenderToFileWithTrimmingPreferenceAsync(void*, int32_t, void**) noexcept = 0; virtual int32_t __stdcall RenderToFileWithProfileAsync(void*, int32_t, void*, void**) noexcept = 0; virtual int32_t __stdcall CreateDefaultEncodingProfile(void**) noexcept = 0; virtual int32_t __stdcall GenerateMediaStreamSource(void**) noexcept = 0; virtual int32_t __stdcall GenerateMediaStreamSourceWithProfile(void*, void**) noexcept = 0; virtual int32_t __stdcall GeneratePreviewMediaStreamSource(int32_t, int32_t, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_OverlayLayers(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall LoadAsync(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Position(winrt::Windows::Foundation::Rect*) noexcept = 0; virtual int32_t __stdcall put_Position(winrt::Windows::Foundation::Rect) noexcept = 0; virtual int32_t __stdcall put_Delay(int64_t) noexcept = 0; virtual int32_t __stdcall get_Delay(int64_t*) noexcept = 0; virtual int32_t __stdcall get_Opacity(double*) noexcept = 0; virtual int32_t __stdcall put_Opacity(double) noexcept = 0; virtual int32_t __stdcall Clone(void**) noexcept = 0; virtual int32_t __stdcall get_Clip(void**) noexcept = 0; virtual int32_t __stdcall get_AudioEnabled(bool*) noexcept = 0; virtual int32_t __stdcall put_AudioEnabled(bool) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Create(void*, void**) noexcept = 0; virtual int32_t __stdcall CreateWithPositionAndOpacity(void*, winrt::Windows::Foundation::Rect, double, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Clone(void**) noexcept = 0; virtual int32_t __stdcall get_Overlays(void**) noexcept = 0; virtual int32_t __stdcall get_CustomCompositorDefinition(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateWithCompositorDefinition(void*, void**) noexcept = 0; }; }; template struct consume_Windows_Media_Editing_IBackgroundAudioTrack { [[nodiscard]] auto TrimTimeFromStart() const; auto TrimTimeFromStart(winrt::Windows::Foundation::TimeSpan const& value) const; [[nodiscard]] auto TrimTimeFromEnd() const; auto TrimTimeFromEnd(winrt::Windows::Foundation::TimeSpan const& value) const; [[nodiscard]] auto OriginalDuration() const; [[nodiscard]] auto TrimmedDuration() const; [[nodiscard]] auto UserData() const; auto Delay(winrt::Windows::Foundation::TimeSpan const& value) const; [[nodiscard]] auto Delay() const; auto Volume(double value) const; [[nodiscard]] auto Volume() const; auto Clone() const; auto GetAudioEncodingProperties() const; [[nodiscard]] auto AudioEffectDefinitions() const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IBackgroundAudioTrack; }; template struct consume_Windows_Media_Editing_IBackgroundAudioTrackStatics { auto CreateFromEmbeddedAudioTrack(winrt::Windows::Media::Editing::EmbeddedAudioTrack const& embeddedAudioTrack) const; auto CreateFromFileAsync(winrt::Windows::Storage::IStorageFile const& file) const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IBackgroundAudioTrackStatics; }; template struct consume_Windows_Media_Editing_IEmbeddedAudioTrack { auto GetAudioEncodingProperties() const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IEmbeddedAudioTrack; }; template struct consume_Windows_Media_Editing_IMediaClip { [[nodiscard]] auto TrimTimeFromStart() const; auto TrimTimeFromStart(winrt::Windows::Foundation::TimeSpan const& value) const; [[nodiscard]] auto TrimTimeFromEnd() const; auto TrimTimeFromEnd(winrt::Windows::Foundation::TimeSpan const& value) const; [[nodiscard]] auto OriginalDuration() const; [[nodiscard]] auto TrimmedDuration() const; [[nodiscard]] auto UserData() const; auto Clone() const; [[nodiscard]] auto StartTimeInComposition() const; [[nodiscard]] auto EndTimeInComposition() const; [[nodiscard]] auto EmbeddedAudioTracks() const; [[nodiscard]] auto SelectedEmbeddedAudioTrackIndex() const; auto SelectedEmbeddedAudioTrackIndex(uint32_t value) const; auto Volume(double value) const; [[nodiscard]] auto Volume() const; auto GetVideoEncodingProperties() const; [[nodiscard]] auto AudioEffectDefinitions() const; [[nodiscard]] auto VideoEffectDefinitions() const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaClip; }; template struct consume_Windows_Media_Editing_IMediaClipStatics { auto CreateFromColor(winrt::Windows::UI::Color const& color, winrt::Windows::Foundation::TimeSpan const& originalDuration) const; auto CreateFromFileAsync(winrt::Windows::Storage::IStorageFile const& file) const; auto CreateFromImageFileAsync(winrt::Windows::Storage::IStorageFile const& file, winrt::Windows::Foundation::TimeSpan const& originalDuration) const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaClipStatics; }; template struct consume_Windows_Media_Editing_IMediaClipStatics2 { auto CreateFromSurface(winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface, winrt::Windows::Foundation::TimeSpan const& originalDuration) const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaClipStatics2; }; template struct consume_Windows_Media_Editing_IMediaComposition { [[nodiscard]] auto Duration() const; [[nodiscard]] auto Clips() const; [[nodiscard]] auto BackgroundAudioTracks() const; [[nodiscard]] auto UserData() const; auto Clone() const; auto SaveAsync(winrt::Windows::Storage::IStorageFile const& file) const; auto GetThumbnailAsync(winrt::Windows::Foundation::TimeSpan const& timeFromStart, int32_t scaledWidth, int32_t scaledHeight, winrt::Windows::Media::Editing::VideoFramePrecision const& framePrecision) const; auto GetThumbnailsAsync(param::async_iterable const& timesFromStart, int32_t scaledWidth, int32_t scaledHeight, winrt::Windows::Media::Editing::VideoFramePrecision const& framePrecision) const; auto RenderToFileAsync(winrt::Windows::Storage::IStorageFile const& destination) const; auto RenderToFileAsync(winrt::Windows::Storage::IStorageFile const& destination, winrt::Windows::Media::Editing::MediaTrimmingPreference const& trimmingPreference) const; auto RenderToFileAsync(winrt::Windows::Storage::IStorageFile const& destination, winrt::Windows::Media::Editing::MediaTrimmingPreference const& trimmingPreference, winrt::Windows::Media::MediaProperties::MediaEncodingProfile const& encodingProfile) const; auto CreateDefaultEncodingProfile() const; auto GenerateMediaStreamSource() const; auto GenerateMediaStreamSource(winrt::Windows::Media::MediaProperties::MediaEncodingProfile const& encodingProfile) const; auto GeneratePreviewMediaStreamSource(int32_t scaledWidth, int32_t scaledHeight) const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaComposition; }; template struct consume_Windows_Media_Editing_IMediaComposition2 { [[nodiscard]] auto OverlayLayers() const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaComposition2; }; template struct consume_Windows_Media_Editing_IMediaCompositionStatics { auto LoadAsync(winrt::Windows::Storage::StorageFile const& file) const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaCompositionStatics; }; template struct consume_Windows_Media_Editing_IMediaOverlay { [[nodiscard]] auto Position() const; auto Position(winrt::Windows::Foundation::Rect const& value) const; auto Delay(winrt::Windows::Foundation::TimeSpan const& value) const; [[nodiscard]] auto Delay() const; [[nodiscard]] auto Opacity() const; auto Opacity(double value) const; auto Clone() const; [[nodiscard]] auto Clip() const; [[nodiscard]] auto AudioEnabled() const; auto AudioEnabled(bool value) const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaOverlay; }; template struct consume_Windows_Media_Editing_IMediaOverlayFactory { auto Create(winrt::Windows::Media::Editing::MediaClip const& clip) const; auto CreateWithPositionAndOpacity(winrt::Windows::Media::Editing::MediaClip const& clip, winrt::Windows::Foundation::Rect const& position, double opacity) const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaOverlayFactory; }; template struct consume_Windows_Media_Editing_IMediaOverlayLayer { auto Clone() const; [[nodiscard]] auto Overlays() const; [[nodiscard]] auto CustomCompositorDefinition() const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaOverlayLayer; }; template struct consume_Windows_Media_Editing_IMediaOverlayLayerFactory { auto CreateWithCompositorDefinition(winrt::Windows::Media::Effects::IVideoCompositorDefinition const& compositorDefinition) const; }; template <> struct consume { template using type = consume_Windows_Media_Editing_IMediaOverlayLayerFactory; }; } #endif