/*** Autogenerated by WIDL 11.0 from ../ValveSoftware-winegit/include/windows.media.transcoding.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __windows_media_transcoding_h__
#define __windows_media_transcoding_h__

/* Forward declarations */

#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder;
#ifdef __cplusplus
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder ABI::Windows::Media::Transcoding::IMediaTranscoder
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                interface IMediaTranscoder;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2;
#ifdef __cplusplus
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 ABI::Windows::Media::Transcoding::IMediaTranscoder2
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                interface IMediaTranscoder2;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult;
#ifdef __cplusplus
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult ABI::Windows::Media::Transcoding::IPrepareTranscodeResult
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                interface IPrepareTranscodeResult;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CMediaTranscoder_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CMediaTranscoder_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                class MediaTranscoder;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CMedia_CTranscoding_CMediaTranscoder __x_ABI_CWindows_CMedia_CTranscoding_CMediaTranscoder;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CMedia_CTranscoding_CMediaTranscoder_FWD_DEFINED__ */

#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CPrepareTranscodeResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CPrepareTranscodeResult_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                class PrepareTranscodeResult;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CMedia_CTranscoding_CPrepareTranscodeResult __x_ABI_CWindows_CMedia_CTranscoding_CPrepareTranscodeResult;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CMedia_CTranscoding_CPrepareTranscodeResult_FWD_DEFINED__ */

#ifndef ____FIAsyncActionWithProgress_1_DOUBLE_FWD_DEFINED__
#define ____FIAsyncActionWithProgress_1_DOUBLE_FWD_DEFINED__
typedef interface __FIAsyncActionWithProgress_1_DOUBLE __FIAsyncActionWithProgress_1_DOUBLE;
#ifdef __cplusplus
#define __FIAsyncActionWithProgress_1_DOUBLE ABI::Windows::Foundation::IAsyncActionWithProgress<DOUBLE >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncActionProgressHandler_1_DOUBLE_FWD_DEFINED__
#define ____FIAsyncActionProgressHandler_1_DOUBLE_FWD_DEFINED__
typedef interface __FIAsyncActionProgressHandler_1_DOUBLE __FIAsyncActionProgressHandler_1_DOUBLE;
#ifdef __cplusplus
#define __FIAsyncActionProgressHandler_1_DOUBLE ABI::Windows::Foundation::IAsyncActionProgressHandler<DOUBLE >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_FWD_DEFINED__
#define ____FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_FWD_DEFINED__
typedef interface __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE;
#ifdef __cplusplus
#define __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE ABI::Windows::Foundation::IAsyncActionWithProgressCompletedHandler<DOUBLE >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult;
#ifdef __cplusplus
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperation_1_TranscodeFailureReason_FWD_DEFINED__
#define ____FIAsyncOperation_1_TranscodeFailureReason_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_TranscodeFailureReason __FIAsyncOperation_1_TranscodeFailureReason;
#ifdef __cplusplus
#define __FIAsyncOperation_1_TranscodeFailureReason ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::Transcoding::TranscodeFailureReason >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_FWD_DEFINED__
#define ____FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_FWD_DEFINED__
typedef interface __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE;
#ifdef __cplusplus
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE ABI::Windows::Foundation::IAsyncOperationWithProgress<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult;
#ifdef __cplusplus
#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason;
#ifdef __cplusplus
#define __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_FWD_DEFINED__
#define ____FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_FWD_DEFINED__
typedef interface __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE;
#ifdef __cplusplus
#define __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE ABI::Windows::Foundation::IAsyncOperationWithProgressCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_FWD_DEFINED__
#define ____FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_FWD_DEFINED__
typedef interface __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE;
#ifdef __cplusplus
#define __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE ABI::Windows::Foundation::IAsyncOperationProgressHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE >
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <inspectable.h>
#include <asyncinfo.h>
#include <eventtoken.h>
#include <windowscontracts.h>
#include <windows.foundation.h>
#include <windows.media.core.h>
#include <windows.media.mediaproperties.h>
#include <windows.storage.h>
#include <windows.storage.streams.h>

#ifdef __cplusplus
extern "C" {
#endif

#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xe0000
#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm_ENUM_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm_ENUM_DEFINED__
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                enum MediaVideoProcessingAlgorithm {
                    MediaVideoProcessingAlgorithm_Default = 0,
                    MediaVideoProcessingAlgorithm_MrfCrf444 = 1
                };
            }
        }
    }
}
extern "C" {
#else
enum __x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm {
    MediaVideoProcessingAlgorithm_Default = 0,
    MediaVideoProcessingAlgorithm_MrfCrf444 = 1
};
#ifdef WIDL_using_Windows_Media_Transcoding
#define MediaVideoProcessingAlgorithm __x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm
#endif /* WIDL_using_Windows_Media_Transcoding */
#endif

#endif /* ____x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm_ENUM_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
#ifndef __cplusplus
typedef enum __x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm __x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm;
#endif /* __cplusplus */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason_ENUM_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason_ENUM_DEFINED__
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                enum TranscodeFailureReason {
                    TranscodeFailureReason_None = 0,
                    TranscodeFailureReason_Unknown = 1,
                    TranscodeFailureReason_InvalidProfile = 2,
                    TranscodeFailureReason_CodecNotFound = 3
                };
            }
        }
    }
}
extern "C" {
#else
enum __x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason {
    TranscodeFailureReason_None = 0,
    TranscodeFailureReason_Unknown = 1,
    TranscodeFailureReason_InvalidProfile = 2,
    TranscodeFailureReason_CodecNotFound = 3
};
#ifdef WIDL_using_Windows_Media_Transcoding
#define TranscodeFailureReason __x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason
#endif /* WIDL_using_Windows_Media_Transcoding */
#endif

#endif /* ____x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason_ENUM_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
#ifndef __cplusplus
typedef enum __x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason __x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason;
#endif /* __cplusplus */

#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder;
#ifdef __cplusplus
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder ABI::Windows::Media::Transcoding::IMediaTranscoder
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                interface IMediaTranscoder;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2;
#ifdef __cplusplus
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 ABI::Windows::Media::Transcoding::IMediaTranscoder2
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                interface IMediaTranscoder2;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult;
#ifdef __cplusplus
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult ABI::Windows::Media::Transcoding::IPrepareTranscodeResult
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                interface IPrepareTranscodeResult;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncActionWithProgress_1_DOUBLE_FWD_DEFINED__
#define ____FIAsyncActionWithProgress_1_DOUBLE_FWD_DEFINED__
typedef interface __FIAsyncActionWithProgress_1_DOUBLE __FIAsyncActionWithProgress_1_DOUBLE;
#ifdef __cplusplus
#define __FIAsyncActionWithProgress_1_DOUBLE ABI::Windows::Foundation::IAsyncActionWithProgress<DOUBLE >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult;
#ifdef __cplusplus
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperation_1_TranscodeFailureReason_FWD_DEFINED__
#define ____FIAsyncOperation_1_TranscodeFailureReason_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_TranscodeFailureReason __FIAsyncOperation_1_TranscodeFailureReason;
#ifdef __cplusplus
#define __FIAsyncOperation_1_TranscodeFailureReason ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::Transcoding::TranscodeFailureReason >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_FWD_DEFINED__
#define ____FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_FWD_DEFINED__
typedef interface __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE;
#ifdef __cplusplus
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE ABI::Windows::Foundation::IAsyncOperationWithProgress<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE >
#endif /* __cplusplus */
#endif

/*****************************************************************************
 * IMediaTranscoder interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder, 0x190c99d2, 0xa0aa, 0x4d34, 0x86,0xbc, 0xee,0xd1,0xb1,0x2c,0x2f,0x5b);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                MIDL_INTERFACE("190c99d2-a0aa-4d34-86bc-eed1b12c2f5b")
                IMediaTranscoder : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE put_TrimStartTime(
                        ABI::Windows::Foundation::TimeSpan value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_TrimStartTime(
                        ABI::Windows::Foundation::TimeSpan *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE put_TrimStopTime(
                        ABI::Windows::Foundation::TimeSpan value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_TrimStopTime(
                        ABI::Windows::Foundation::TimeSpan *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE put_AlwaysReencode(
                        boolean value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_AlwaysReencode(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE put_HardwareAccelerationEnabled(
                        boolean value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_HardwareAccelerationEnabled(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE AddAudioEffect(
                        HSTRING activatable_class_id) = 0;

                    virtual HRESULT STDMETHODCALLTYPE AddAudioEffectWithSettings(
                        HSTRING activatable_class_id,
                        boolean effect_required,
                        ABI::Windows::Foundation::Collections::IPropertySet *configuration) = 0;

                    virtual HRESULT STDMETHODCALLTYPE AddVideoEffect(
                        HSTRING activatable_class_id) = 0;

                    virtual HRESULT STDMETHODCALLTYPE AddVideoEffectWithSettings(
                        HSTRING activatable_class_id,
                        boolean effect_required,
                        ABI::Windows::Foundation::Collections::IPropertySet *configuration) = 0;

                    virtual HRESULT STDMETHODCALLTYPE ClearEffects(
                        ) = 0;

                    virtual HRESULT STDMETHODCALLTYPE PrepareFileTranscodeAsync(
                        ABI::Windows::Storage::IStorageFile *source,
                        ABI::Windows::Storage::IStorageFile *destination,
                        ABI::Windows::Media::MediaProperties::IMediaEncodingProfile *profile,
                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > **operation) = 0;

                    virtual HRESULT STDMETHODCALLTYPE PrepareStreamTranscodeAsync(
                        ABI::Windows::Storage::Streams::IRandomAccessStream *source,
                        ABI::Windows::Storage::Streams::IRandomAccessStream *destination,
                        ABI::Windows::Media::MediaProperties::IMediaEncodingProfile *profile,
                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > **operation) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder, 0x190c99d2, 0xa0aa, 0x4d34, 0x86,0xbc, 0xee,0xd1,0xb1,0x2c,0x2f,0x5b)
#endif
#else
typedef struct __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoderVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        TrustLevel *trustLevel);

    /*** IMediaTranscoder methods ***/
    HRESULT (STDMETHODCALLTYPE *put_TrimStartTime)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        __x_ABI_CWindows_CFoundation_CTimeSpan value);

    HRESULT (STDMETHODCALLTYPE *get_TrimStartTime)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        __x_ABI_CWindows_CFoundation_CTimeSpan *value);

    HRESULT (STDMETHODCALLTYPE *put_TrimStopTime)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        __x_ABI_CWindows_CFoundation_CTimeSpan value);

    HRESULT (STDMETHODCALLTYPE *get_TrimStopTime)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        __x_ABI_CWindows_CFoundation_CTimeSpan *value);

    HRESULT (STDMETHODCALLTYPE *put_AlwaysReencode)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        boolean value);

    HRESULT (STDMETHODCALLTYPE *get_AlwaysReencode)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *put_HardwareAccelerationEnabled)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        boolean value);

    HRESULT (STDMETHODCALLTYPE *get_HardwareAccelerationEnabled)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *AddAudioEffect)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        HSTRING activatable_class_id);

    HRESULT (STDMETHODCALLTYPE *AddAudioEffectWithSettings)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        HSTRING activatable_class_id,
        boolean effect_required,
        __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet *configuration);

    HRESULT (STDMETHODCALLTYPE *AddVideoEffect)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        HSTRING activatable_class_id);

    HRESULT (STDMETHODCALLTYPE *AddVideoEffectWithSettings)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        HSTRING activatable_class_id,
        boolean effect_required,
        __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet *configuration);

    HRESULT (STDMETHODCALLTYPE *ClearEffects)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This);

    HRESULT (STDMETHODCALLTYPE *PrepareFileTranscodeAsync)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        __x_ABI_CWindows_CStorage_CIStorageFile *source,
        __x_ABI_CWindows_CStorage_CIStorageFile *destination,
        __x_ABI_CWindows_CMedia_CMediaProperties_CIMediaEncodingProfile *profile,
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult **operation);

    HRESULT (STDMETHODCALLTYPE *PrepareStreamTranscodeAsync)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder *This,
        __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream *source,
        __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream *destination,
        __x_ABI_CWindows_CMedia_CMediaProperties_CIMediaEncodingProfile *profile,
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult **operation);

    END_INTERFACE
} __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoderVtbl;

interface __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder {
    CONST_VTBL __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoderVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IMediaTranscoder methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_TrimStartTime(This,value) (This)->lpVtbl->put_TrimStartTime(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_TrimStartTime(This,value) (This)->lpVtbl->get_TrimStartTime(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_TrimStopTime(This,value) (This)->lpVtbl->put_TrimStopTime(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_TrimStopTime(This,value) (This)->lpVtbl->get_TrimStopTime(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_AlwaysReencode(This,value) (This)->lpVtbl->put_AlwaysReencode(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_AlwaysReencode(This,value) (This)->lpVtbl->get_AlwaysReencode(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_HardwareAccelerationEnabled(This,value) (This)->lpVtbl->put_HardwareAccelerationEnabled(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_HardwareAccelerationEnabled(This,value) (This)->lpVtbl->get_HardwareAccelerationEnabled(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddAudioEffect(This,activatable_class_id) (This)->lpVtbl->AddAudioEffect(This,activatable_class_id)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddAudioEffectWithSettings(This,activatable_class_id,effect_required,configuration) (This)->lpVtbl->AddAudioEffectWithSettings(This,activatable_class_id,effect_required,configuration)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddVideoEffect(This,activatable_class_id) (This)->lpVtbl->AddVideoEffect(This,activatable_class_id)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddVideoEffectWithSettings(This,activatable_class_id,effect_required,configuration) (This)->lpVtbl->AddVideoEffectWithSettings(This,activatable_class_id,effect_required,configuration)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_ClearEffects(This) (This)->lpVtbl->ClearEffects(This)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_PrepareFileTranscodeAsync(This,source,destination,profile,operation) (This)->lpVtbl->PrepareFileTranscodeAsync(This,source,destination,profile,operation)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_PrepareStreamTranscodeAsync(This,source,destination,profile,operation) (This)->lpVtbl->PrepareStreamTranscodeAsync(This,source,destination,profile,operation)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_QueryInterface(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddRef(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_Release(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetIids(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetTrustLevel(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IMediaTranscoder methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_TrimStartTime(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,__x_ABI_CWindows_CFoundation_CTimeSpan value) {
    return This->lpVtbl->put_TrimStartTime(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_TrimStartTime(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,__x_ABI_CWindows_CFoundation_CTimeSpan *value) {
    return This->lpVtbl->get_TrimStartTime(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_TrimStopTime(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,__x_ABI_CWindows_CFoundation_CTimeSpan value) {
    return This->lpVtbl->put_TrimStopTime(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_TrimStopTime(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,__x_ABI_CWindows_CFoundation_CTimeSpan *value) {
    return This->lpVtbl->get_TrimStopTime(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_AlwaysReencode(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,boolean value) {
    return This->lpVtbl->put_AlwaysReencode(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_AlwaysReencode(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,boolean *value) {
    return This->lpVtbl->get_AlwaysReencode(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_HardwareAccelerationEnabled(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,boolean value) {
    return This->lpVtbl->put_HardwareAccelerationEnabled(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_HardwareAccelerationEnabled(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,boolean *value) {
    return This->lpVtbl->get_HardwareAccelerationEnabled(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddAudioEffect(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,HSTRING activatable_class_id) {
    return This->lpVtbl->AddAudioEffect(This,activatable_class_id);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddAudioEffectWithSettings(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,HSTRING activatable_class_id,boolean effect_required,__x_ABI_CWindows_CFoundation_CCollections_CIPropertySet *configuration) {
    return This->lpVtbl->AddAudioEffectWithSettings(This,activatable_class_id,effect_required,configuration);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddVideoEffect(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,HSTRING activatable_class_id) {
    return This->lpVtbl->AddVideoEffect(This,activatable_class_id);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddVideoEffectWithSettings(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,HSTRING activatable_class_id,boolean effect_required,__x_ABI_CWindows_CFoundation_CCollections_CIPropertySet *configuration) {
    return This->lpVtbl->AddVideoEffectWithSettings(This,activatable_class_id,effect_required,configuration);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_ClearEffects(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This) {
    return This->lpVtbl->ClearEffects(This);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_PrepareFileTranscodeAsync(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,__x_ABI_CWindows_CStorage_CIStorageFile *source,__x_ABI_CWindows_CStorage_CIStorageFile *destination,__x_ABI_CWindows_CMedia_CMediaProperties_CIMediaEncodingProfile *profile,__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult **operation) {
    return This->lpVtbl->PrepareFileTranscodeAsync(This,source,destination,profile,operation);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_PrepareStreamTranscodeAsync(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder* This,__x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream *source,__x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream *destination,__x_ABI_CWindows_CMedia_CMediaProperties_CIMediaEncodingProfile *profile,__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult **operation) {
    return This->lpVtbl->PrepareStreamTranscodeAsync(This,source,destination,profile,operation);
}
#endif
#ifdef WIDL_using_Windows_Media_Transcoding
#define IID_IMediaTranscoder IID___x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder
#define IMediaTranscoderVtbl __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoderVtbl
#define IMediaTranscoder __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder
#define IMediaTranscoder_QueryInterface __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_QueryInterface
#define IMediaTranscoder_AddRef __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddRef
#define IMediaTranscoder_Release __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_Release
#define IMediaTranscoder_GetIids __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetIids
#define IMediaTranscoder_GetRuntimeClassName __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetRuntimeClassName
#define IMediaTranscoder_GetTrustLevel __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_GetTrustLevel
#define IMediaTranscoder_put_TrimStartTime __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_TrimStartTime
#define IMediaTranscoder_get_TrimStartTime __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_TrimStartTime
#define IMediaTranscoder_put_TrimStopTime __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_TrimStopTime
#define IMediaTranscoder_get_TrimStopTime __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_TrimStopTime
#define IMediaTranscoder_put_AlwaysReencode __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_AlwaysReencode
#define IMediaTranscoder_get_AlwaysReencode __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_AlwaysReencode
#define IMediaTranscoder_put_HardwareAccelerationEnabled __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_put_HardwareAccelerationEnabled
#define IMediaTranscoder_get_HardwareAccelerationEnabled __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_get_HardwareAccelerationEnabled
#define IMediaTranscoder_AddAudioEffect __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddAudioEffect
#define IMediaTranscoder_AddAudioEffectWithSettings __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddAudioEffectWithSettings
#define IMediaTranscoder_AddVideoEffect __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddVideoEffect
#define IMediaTranscoder_AddVideoEffectWithSettings __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_AddVideoEffectWithSettings
#define IMediaTranscoder_ClearEffects __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_ClearEffects
#define IMediaTranscoder_PrepareFileTranscodeAsync __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_PrepareFileTranscodeAsync
#define IMediaTranscoder_PrepareStreamTranscodeAsync __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_PrepareStreamTranscodeAsync
#endif /* WIDL_using_Windows_Media_Transcoding */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*****************************************************************************
 * IMediaTranscoder2 interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2, 0x40531d74, 0x35e0, 0x4f04, 0x85,0x74, 0xca,0x8b,0xc4,0xe5,0xa0,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                MIDL_INTERFACE("40531d74-35e0-4f04-8574-ca8bc4e5a082")
                IMediaTranscoder2 : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE PrepareMediaStreamSourceTranscodeAsync(
                        ABI::Windows::Media::Core::IMediaSource *source,
                        ABI::Windows::Storage::Streams::IRandomAccessStream *destination,
                        ABI::Windows::Media::MediaProperties::IMediaEncodingProfile *profile,
                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > **operation) = 0;

                    virtual HRESULT STDMETHODCALLTYPE put_VideoProcessingAlgorithm(
                        ABI::Windows::Media::Transcoding::MediaVideoProcessingAlgorithm value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_VideoProcessingAlgorithm(
                        ABI::Windows::Media::Transcoding::MediaVideoProcessingAlgorithm *value) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2, 0x40531d74, 0x35e0, 0x4f04, 0x85,0x74, 0xca,0x8b,0xc4,0xe5,0xa0,0x82)
#endif
#else
typedef struct __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This,
        TrustLevel *trustLevel);

    /*** IMediaTranscoder2 methods ***/
    HRESULT (STDMETHODCALLTYPE *PrepareMediaStreamSourceTranscodeAsync)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This,
        __x_ABI_CWindows_CMedia_CCore_CIMediaSource *source,
        __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream *destination,
        __x_ABI_CWindows_CMedia_CMediaProperties_CIMediaEncodingProfile *profile,
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult **operation);

    HRESULT (STDMETHODCALLTYPE *put_VideoProcessingAlgorithm)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This,
        __x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm value);

    HRESULT (STDMETHODCALLTYPE *get_VideoProcessingAlgorithm)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 *This,
        __x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm *value);

    END_INTERFACE
} __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2Vtbl;

interface __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2 {
    CONST_VTBL __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IMediaTranscoder2 methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_PrepareMediaStreamSourceTranscodeAsync(This,source,destination,profile,operation) (This)->lpVtbl->PrepareMediaStreamSourceTranscodeAsync(This,source,destination,profile,operation)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_put_VideoProcessingAlgorithm(This,value) (This)->lpVtbl->put_VideoProcessingAlgorithm(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_get_VideoProcessingAlgorithm(This,value) (This)->lpVtbl->get_VideoProcessingAlgorithm(This,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_QueryInterface(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_AddRef(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_Release(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetIids(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetTrustLevel(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IMediaTranscoder2 methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_PrepareMediaStreamSourceTranscodeAsync(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This,__x_ABI_CWindows_CMedia_CCore_CIMediaSource *source,__x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream *destination,__x_ABI_CWindows_CMedia_CMediaProperties_CIMediaEncodingProfile *profile,__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult **operation) {
    return This->lpVtbl->PrepareMediaStreamSourceTranscodeAsync(This,source,destination,profile,operation);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_put_VideoProcessingAlgorithm(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This,__x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm value) {
    return This->lpVtbl->put_VideoProcessingAlgorithm(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_get_VideoProcessingAlgorithm(__x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2* This,__x_ABI_CWindows_CMedia_CTranscoding_CMediaVideoProcessingAlgorithm *value) {
    return This->lpVtbl->get_VideoProcessingAlgorithm(This,value);
}
#endif
#ifdef WIDL_using_Windows_Media_Transcoding
#define IID_IMediaTranscoder2 IID___x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2
#define IMediaTranscoder2Vtbl __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2Vtbl
#define IMediaTranscoder2 __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2
#define IMediaTranscoder2_QueryInterface __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_QueryInterface
#define IMediaTranscoder2_AddRef __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_AddRef
#define IMediaTranscoder2_Release __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_Release
#define IMediaTranscoder2_GetIids __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetIids
#define IMediaTranscoder2_GetRuntimeClassName __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetRuntimeClassName
#define IMediaTranscoder2_GetTrustLevel __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_GetTrustLevel
#define IMediaTranscoder2_PrepareMediaStreamSourceTranscodeAsync __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_PrepareMediaStreamSourceTranscodeAsync
#define IMediaTranscoder2_put_VideoProcessingAlgorithm __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_put_VideoProcessingAlgorithm
#define IMediaTranscoder2_get_VideoProcessingAlgorithm __x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_get_VideoProcessingAlgorithm
#endif /* WIDL_using_Windows_Media_Transcoding */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CMedia_CTranscoding_CIMediaTranscoder2_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*****************************************************************************
 * IPrepareTranscodeResult interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult, 0x05f25dce, 0x994f, 0x4a34, 0x9d,0x68, 0x97,0xcc,0xce,0x17,0x30,0xd6);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Media {
            namespace Transcoding {
                MIDL_INTERFACE("05f25dce-994f-4a34-9d68-97ccce1730d6")
                IPrepareTranscodeResult : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE get_CanTranscode(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_FailureReason(
                        ABI::Windows::Media::Transcoding::TranscodeFailureReason *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE TranscodeAsync(
                        ABI::Windows::Foundation::IAsyncActionWithProgress<DOUBLE > **operation) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult, 0x05f25dce, 0x994f, 0x4a34, 0x9d,0x68, 0x97,0xcc,0xce,0x17,0x30,0xd6)
#endif
#else
typedef struct __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResultVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This,
        TrustLevel *trustLevel);

    /*** IPrepareTranscodeResult methods ***/
    HRESULT (STDMETHODCALLTYPE *get_CanTranscode)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *get_FailureReason)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This,
        __x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason *value);

    HRESULT (STDMETHODCALLTYPE *TranscodeAsync)(
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult *This,
        __FIAsyncActionWithProgress_1_DOUBLE **operation);

    END_INTERFACE
} __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResultVtbl;

interface __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult {
    CONST_VTBL __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResultVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IPrepareTranscodeResult methods ***/
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_get_CanTranscode(This,value) (This)->lpVtbl->get_CanTranscode(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_get_FailureReason(This,value) (This)->lpVtbl->get_FailureReason(This,value)
#define __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_TranscodeAsync(This,operation) (This)->lpVtbl->TranscodeAsync(This,operation)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_QueryInterface(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_AddRef(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_Release(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetIids(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetTrustLevel(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IPrepareTranscodeResult methods ***/
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_get_CanTranscode(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This,boolean *value) {
    return This->lpVtbl->get_CanTranscode(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_get_FailureReason(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This,__x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason *value) {
    return This->lpVtbl->get_FailureReason(This,value);
}
static inline HRESULT __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_TranscodeAsync(__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult* This,__FIAsyncActionWithProgress_1_DOUBLE **operation) {
    return This->lpVtbl->TranscodeAsync(This,operation);
}
#endif
#ifdef WIDL_using_Windows_Media_Transcoding
#define IID_IPrepareTranscodeResult IID___x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult
#define IPrepareTranscodeResultVtbl __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResultVtbl
#define IPrepareTranscodeResult __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult
#define IPrepareTranscodeResult_QueryInterface __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_QueryInterface
#define IPrepareTranscodeResult_AddRef __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_AddRef
#define IPrepareTranscodeResult_Release __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_Release
#define IPrepareTranscodeResult_GetIids __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetIids
#define IPrepareTranscodeResult_GetRuntimeClassName __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetRuntimeClassName
#define IPrepareTranscodeResult_GetTrustLevel __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_GetTrustLevel
#define IPrepareTranscodeResult_get_CanTranscode __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_get_CanTranscode
#define IPrepareTranscodeResult_get_FailureReason __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_get_FailureReason
#define IPrepareTranscodeResult_TranscodeAsync __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_TranscodeAsync
#endif /* WIDL_using_Windows_Media_Transcoding */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*
 * Class Windows.Media.Transcoding.MediaTranscoder
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Media_Transcoding_MediaTranscoder_DEFINED
#define RUNTIMECLASS_Windows_Media_Transcoding_MediaTranscoder_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Media_Transcoding_MediaTranscoder[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','T','r','a','n','s','c','o','d','i','n','g','.','M','e','d','i','a','T','r','a','n','s','c','o','d','e','r',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_Transcoding_MediaTranscoder[] = L"Windows.Media.Transcoding.MediaTranscoder";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_Transcoding_MediaTranscoder[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','T','r','a','n','s','c','o','d','i','n','g','.','M','e','d','i','a','T','r','a','n','s','c','o','d','e','r',0};
#endif
#endif /* RUNTIMECLASS_Windows_Media_Transcoding_MediaTranscoder_DEFINED */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*
 * Class Windows.Media.Transcoding.PrepareTranscodeResult
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Media_Transcoding_PrepareTranscodeResult_DEFINED
#define RUNTIMECLASS_Windows_Media_Transcoding_PrepareTranscodeResult_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Media_Transcoding_PrepareTranscodeResult[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','T','r','a','n','s','c','o','d','i','n','g','.','P','r','e','p','a','r','e','T','r','a','n','s','c','o','d','e','R','e','s','u','l','t',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_Transcoding_PrepareTranscodeResult[] = L"Windows.Media.Transcoding.PrepareTranscodeResult";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_Transcoding_PrepareTranscodeResult[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','T','r','a','n','s','c','o','d','i','n','g','.','P','r','e','p','a','r','e','T','r','a','n','s','c','o','d','e','R','e','s','u','l','t',0};
#endif
#endif /* RUNTIMECLASS_Windows_Media_Transcoding_PrepareTranscodeResult_DEFINED */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*****************************************************************************
 * IAsyncActionWithProgress<DOUBLE > interface
 */
#ifndef ____FIAsyncActionWithProgress_1_DOUBLE_INTERFACE_DEFINED__
#define ____FIAsyncActionWithProgress_1_DOUBLE_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncActionWithProgress_1_DOUBLE, 0x4f1430a6, 0xa825, 0x56ca, 0xb0,0x47, 0x1a,0x9b,0xad,0x52,0xba,0x67);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("4f1430a6-a825-56ca-b047-1a9bad52ba67")
            IAsyncActionWithProgress<DOUBLE > : IAsyncActionWithProgress_impl<DOUBLE >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncActionWithProgress_1_DOUBLE, 0x4f1430a6, 0xa825, 0x56ca, 0xb0,0x47, 0x1a,0x9b,0xad,0x52,0xba,0x67)
#endif
#else
typedef struct __FIAsyncActionWithProgress_1_DOUBLEVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncActionWithProgress_1_DOUBLE *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncActionWithProgress_1_DOUBLE *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncActionWithProgress_1_DOUBLE *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIAsyncActionWithProgress_1_DOUBLE *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIAsyncActionWithProgress_1_DOUBLE *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIAsyncActionWithProgress_1_DOUBLE *This,
        TrustLevel *trustLevel);

    /*** IAsyncActionWithProgress<DOUBLE > methods ***/
    HRESULT (STDMETHODCALLTYPE *put_Progress)(
        __FIAsyncActionWithProgress_1_DOUBLE *This,
        __FIAsyncActionProgressHandler_1_DOUBLE *handler);

    HRESULT (STDMETHODCALLTYPE *get_Progress)(
        __FIAsyncActionWithProgress_1_DOUBLE *This,
        __FIAsyncActionProgressHandler_1_DOUBLE **handler);

    HRESULT (STDMETHODCALLTYPE *put_Completed)(
        __FIAsyncActionWithProgress_1_DOUBLE *This,
        __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE *handler);

    HRESULT (STDMETHODCALLTYPE *get_Completed)(
        __FIAsyncActionWithProgress_1_DOUBLE *This,
        __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE **handler);

    HRESULT (STDMETHODCALLTYPE *GetResults)(
        __FIAsyncActionWithProgress_1_DOUBLE *This);

    END_INTERFACE
} __FIAsyncActionWithProgress_1_DOUBLEVtbl;

interface __FIAsyncActionWithProgress_1_DOUBLE {
    CONST_VTBL __FIAsyncActionWithProgress_1_DOUBLEVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncActionWithProgress_1_DOUBLE_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncActionWithProgress_1_DOUBLE_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncActionWithProgress_1_DOUBLE_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIAsyncActionWithProgress_1_DOUBLE_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIAsyncActionWithProgress_1_DOUBLE_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIAsyncActionWithProgress_1_DOUBLE_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IAsyncActionWithProgress<DOUBLE > methods ***/
#define __FIAsyncActionWithProgress_1_DOUBLE_put_Progress(This,handler) (This)->lpVtbl->put_Progress(This,handler)
#define __FIAsyncActionWithProgress_1_DOUBLE_get_Progress(This,handler) (This)->lpVtbl->get_Progress(This,handler)
#define __FIAsyncActionWithProgress_1_DOUBLE_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
#define __FIAsyncActionWithProgress_1_DOUBLE_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
#define __FIAsyncActionWithProgress_1_DOUBLE_GetResults(This) (This)->lpVtbl->GetResults(This)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_QueryInterface(__FIAsyncActionWithProgress_1_DOUBLE* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncActionWithProgress_1_DOUBLE_AddRef(__FIAsyncActionWithProgress_1_DOUBLE* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncActionWithProgress_1_DOUBLE_Release(__FIAsyncActionWithProgress_1_DOUBLE* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_GetIids(__FIAsyncActionWithProgress_1_DOUBLE* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_GetRuntimeClassName(__FIAsyncActionWithProgress_1_DOUBLE* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_GetTrustLevel(__FIAsyncActionWithProgress_1_DOUBLE* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IAsyncActionWithProgress<DOUBLE > methods ***/
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_put_Progress(__FIAsyncActionWithProgress_1_DOUBLE* This,__FIAsyncActionProgressHandler_1_DOUBLE *handler) {
    return This->lpVtbl->put_Progress(This,handler);
}
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_get_Progress(__FIAsyncActionWithProgress_1_DOUBLE* This,__FIAsyncActionProgressHandler_1_DOUBLE **handler) {
    return This->lpVtbl->get_Progress(This,handler);
}
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_put_Completed(__FIAsyncActionWithProgress_1_DOUBLE* This,__FIAsyncActionWithProgressCompletedHandler_1_DOUBLE *handler) {
    return This->lpVtbl->put_Completed(This,handler);
}
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_get_Completed(__FIAsyncActionWithProgress_1_DOUBLE* This,__FIAsyncActionWithProgressCompletedHandler_1_DOUBLE **handler) {
    return This->lpVtbl->get_Completed(This,handler);
}
static inline HRESULT __FIAsyncActionWithProgress_1_DOUBLE_GetResults(__FIAsyncActionWithProgress_1_DOUBLE* This) {
    return This->lpVtbl->GetResults(This);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncActionWithProgress_DOUBLE IID___FIAsyncActionWithProgress_1_DOUBLE
#define IAsyncActionWithProgress_DOUBLEVtbl __FIAsyncActionWithProgress_1_DOUBLEVtbl
#define IAsyncActionWithProgress_DOUBLE __FIAsyncActionWithProgress_1_DOUBLE
#define IAsyncActionWithProgress_DOUBLE_QueryInterface __FIAsyncActionWithProgress_1_DOUBLE_QueryInterface
#define IAsyncActionWithProgress_DOUBLE_AddRef __FIAsyncActionWithProgress_1_DOUBLE_AddRef
#define IAsyncActionWithProgress_DOUBLE_Release __FIAsyncActionWithProgress_1_DOUBLE_Release
#define IAsyncActionWithProgress_DOUBLE_GetIids __FIAsyncActionWithProgress_1_DOUBLE_GetIids
#define IAsyncActionWithProgress_DOUBLE_GetRuntimeClassName __FIAsyncActionWithProgress_1_DOUBLE_GetRuntimeClassName
#define IAsyncActionWithProgress_DOUBLE_GetTrustLevel __FIAsyncActionWithProgress_1_DOUBLE_GetTrustLevel
#define IAsyncActionWithProgress_DOUBLE_put_Progress __FIAsyncActionWithProgress_1_DOUBLE_put_Progress
#define IAsyncActionWithProgress_DOUBLE_get_Progress __FIAsyncActionWithProgress_1_DOUBLE_get_Progress
#define IAsyncActionWithProgress_DOUBLE_put_Completed __FIAsyncActionWithProgress_1_DOUBLE_put_Completed
#define IAsyncActionWithProgress_DOUBLE_get_Completed __FIAsyncActionWithProgress_1_DOUBLE_get_Completed
#define IAsyncActionWithProgress_DOUBLE_GetResults __FIAsyncActionWithProgress_1_DOUBLE_GetResults
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncActionWithProgress_1_DOUBLE_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncActionProgressHandler<DOUBLE > interface
 */
#ifndef ____FIAsyncActionProgressHandler_1_DOUBLE_INTERFACE_DEFINED__
#define ____FIAsyncActionProgressHandler_1_DOUBLE_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncActionProgressHandler_1_DOUBLE, 0x44825c7c, 0x0da9, 0x5691, 0xb2,0xb4, 0x91,0x4f,0x23,0x1e,0xec,0xed);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("44825c7c-0da9-5691-b2b4-914f231eeced")
            IAsyncActionProgressHandler<DOUBLE > : IAsyncActionProgressHandler_impl<DOUBLE >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncActionProgressHandler_1_DOUBLE, 0x44825c7c, 0x0da9, 0x5691, 0xb2,0xb4, 0x91,0x4f,0x23,0x1e,0xec,0xed)
#endif
#else
typedef struct __FIAsyncActionProgressHandler_1_DOUBLEVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncActionProgressHandler_1_DOUBLE *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncActionProgressHandler_1_DOUBLE *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncActionProgressHandler_1_DOUBLE *This);

    /*** IAsyncActionProgressHandler<DOUBLE > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FIAsyncActionProgressHandler_1_DOUBLE *This,
        __FIAsyncActionWithProgress_1_DOUBLE *info,
        DOUBLE progress);

    END_INTERFACE
} __FIAsyncActionProgressHandler_1_DOUBLEVtbl;

interface __FIAsyncActionProgressHandler_1_DOUBLE {
    CONST_VTBL __FIAsyncActionProgressHandler_1_DOUBLEVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncActionProgressHandler_1_DOUBLE_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncActionProgressHandler_1_DOUBLE_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncActionProgressHandler_1_DOUBLE_Release(This) (This)->lpVtbl->Release(This)
/*** IAsyncActionProgressHandler<DOUBLE > methods ***/
#define __FIAsyncActionProgressHandler_1_DOUBLE_Invoke(This,info,progress) (This)->lpVtbl->Invoke(This,info,progress)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncActionProgressHandler_1_DOUBLE_QueryInterface(__FIAsyncActionProgressHandler_1_DOUBLE* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncActionProgressHandler_1_DOUBLE_AddRef(__FIAsyncActionProgressHandler_1_DOUBLE* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncActionProgressHandler_1_DOUBLE_Release(__FIAsyncActionProgressHandler_1_DOUBLE* This) {
    return This->lpVtbl->Release(This);
}
/*** IAsyncActionProgressHandler<DOUBLE > methods ***/
static inline HRESULT __FIAsyncActionProgressHandler_1_DOUBLE_Invoke(__FIAsyncActionProgressHandler_1_DOUBLE* This,__FIAsyncActionWithProgress_1_DOUBLE *info,DOUBLE progress) {
    return This->lpVtbl->Invoke(This,info,progress);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncActionProgressHandler_DOUBLE IID___FIAsyncActionProgressHandler_1_DOUBLE
#define IAsyncActionProgressHandler_DOUBLEVtbl __FIAsyncActionProgressHandler_1_DOUBLEVtbl
#define IAsyncActionProgressHandler_DOUBLE __FIAsyncActionProgressHandler_1_DOUBLE
#define IAsyncActionProgressHandler_DOUBLE_QueryInterface __FIAsyncActionProgressHandler_1_DOUBLE_QueryInterface
#define IAsyncActionProgressHandler_DOUBLE_AddRef __FIAsyncActionProgressHandler_1_DOUBLE_AddRef
#define IAsyncActionProgressHandler_DOUBLE_Release __FIAsyncActionProgressHandler_1_DOUBLE_Release
#define IAsyncActionProgressHandler_DOUBLE_Invoke __FIAsyncActionProgressHandler_1_DOUBLE_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncActionProgressHandler_1_DOUBLE_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncActionWithProgressCompletedHandler<DOUBLE > interface
 */
#ifndef ____FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_INTERFACE_DEFINED__
#define ____FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncActionWithProgressCompletedHandler_1_DOUBLE, 0x94d64ac6, 0x4491, 0x53ef, 0x8b,0xe8, 0x36,0x48,0x1f,0x3f,0xf1,0xe8);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("94d64ac6-4491-53ef-8be8-36481f3ff1e8")
            IAsyncActionWithProgressCompletedHandler<DOUBLE > : IAsyncActionWithProgressCompletedHandler_impl<DOUBLE >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncActionWithProgressCompletedHandler_1_DOUBLE, 0x94d64ac6, 0x4491, 0x53ef, 0x8b,0xe8, 0x36,0x48,0x1f,0x3f,0xf1,0xe8)
#endif
#else
typedef struct __FIAsyncActionWithProgressCompletedHandler_1_DOUBLEVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE *This);

    /*** IAsyncActionWithProgressCompletedHandler<DOUBLE > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE *This,
        __FIAsyncActionWithProgress_1_DOUBLE *info,
        AsyncStatus status);

    END_INTERFACE
} __FIAsyncActionWithProgressCompletedHandler_1_DOUBLEVtbl;

interface __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE {
    CONST_VTBL __FIAsyncActionWithProgressCompletedHandler_1_DOUBLEVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_Release(This) (This)->lpVtbl->Release(This)
/*** IAsyncActionWithProgressCompletedHandler<DOUBLE > methods ***/
#define __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_QueryInterface(__FIAsyncActionWithProgressCompletedHandler_1_DOUBLE* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_AddRef(__FIAsyncActionWithProgressCompletedHandler_1_DOUBLE* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_Release(__FIAsyncActionWithProgressCompletedHandler_1_DOUBLE* This) {
    return This->lpVtbl->Release(This);
}
/*** IAsyncActionWithProgressCompletedHandler<DOUBLE > methods ***/
static inline HRESULT __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_Invoke(__FIAsyncActionWithProgressCompletedHandler_1_DOUBLE* This,__FIAsyncActionWithProgress_1_DOUBLE *info,AsyncStatus status) {
    return This->lpVtbl->Invoke(This,info,status);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncActionWithProgressCompletedHandler_DOUBLE IID___FIAsyncActionWithProgressCompletedHandler_1_DOUBLE
#define IAsyncActionWithProgressCompletedHandler_DOUBLEVtbl __FIAsyncActionWithProgressCompletedHandler_1_DOUBLEVtbl
#define IAsyncActionWithProgressCompletedHandler_DOUBLE __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE
#define IAsyncActionWithProgressCompletedHandler_DOUBLE_QueryInterface __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_QueryInterface
#define IAsyncActionWithProgressCompletedHandler_DOUBLE_AddRef __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_AddRef
#define IAsyncActionWithProgressCompletedHandler_DOUBLE_Release __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_Release
#define IAsyncActionWithProgressCompletedHandler_DOUBLE_Invoke __FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncActionWithProgressCompletedHandler_1_DOUBLE_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > interface
 */
#ifndef ____FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult, 0xf5f07c13, 0x3047, 0x5bab, 0x8e,0xb7, 0x6e,0x5d,0x7d,0x14,0xaf,0xae);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("f5f07c13-3047-5bab-8eb7-6e5d7d14afae")
            IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::Transcoding::PrepareTranscodeResult*, ABI::Windows::Media::Transcoding::IPrepareTranscodeResult* > >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult, 0xf5f07c13, 0x3047, 0x5bab, 0x8e,0xb7, 0x6e,0x5d,0x7d,0x14,0xaf,0xae)
#endif
#else
typedef struct __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResultVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        TrustLevel *trustLevel);

    /*** IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > methods ***/
    HRESULT (STDMETHODCALLTYPE *put_Completed)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *handler);

    HRESULT (STDMETHODCALLTYPE *get_Completed)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult **handler);

    HRESULT (STDMETHODCALLTYPE *GetResults)(
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        __x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult **results);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResultVtbl;

interface __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult {
    CONST_VTBL __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResultVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > methods ***/
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
#define __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_QueryInterface(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_AddRef(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Release(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetIids(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetTrustLevel(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IAsyncOperation<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > methods ***/
static inline HRESULT __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_put_Completed(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *handler) {
    return This->lpVtbl->put_Completed(This,handler);
}
static inline HRESULT __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_get_Completed(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult **handler) {
    return This->lpVtbl->get_Completed(This,handler);
}
static inline HRESULT __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetResults(__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,__x_ABI_CWindows_CMedia_CTranscoding_CIPrepareTranscodeResult **results) {
    return This->lpVtbl->GetResults(This,results);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperation_PrepareTranscodeResult IID___FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult
#define IAsyncOperation_PrepareTranscodeResultVtbl __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResultVtbl
#define IAsyncOperation_PrepareTranscodeResult __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult
#define IAsyncOperation_PrepareTranscodeResult_QueryInterface __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_QueryInterface
#define IAsyncOperation_PrepareTranscodeResult_AddRef __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_AddRef
#define IAsyncOperation_PrepareTranscodeResult_Release __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Release
#define IAsyncOperation_PrepareTranscodeResult_GetIids __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetIids
#define IAsyncOperation_PrepareTranscodeResult_GetRuntimeClassName __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetRuntimeClassName
#define IAsyncOperation_PrepareTranscodeResult_GetTrustLevel __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetTrustLevel
#define IAsyncOperation_PrepareTranscodeResult_put_Completed __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_put_Completed
#define IAsyncOperation_PrepareTranscodeResult_get_Completed __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_get_Completed
#define IAsyncOperation_PrepareTranscodeResult_GetResults __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_GetResults
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperation<ABI::Windows::Media::Transcoding::TranscodeFailureReason > interface
 */
#ifndef ____FIAsyncOperation_1_TranscodeFailureReason_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_TranscodeFailureReason_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperation_1_TranscodeFailureReason, 0x02132510, 0x3899, 0x5257, 0xbe,0xd9, 0xa4,0x3e,0x51,0x49,0xd2,0x8c);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("02132510-3899-5257-bed9-a43e5149d28c")
            IAsyncOperation<ABI::Windows::Media::Transcoding::TranscodeFailureReason > : IAsyncOperation_impl<ABI::Windows::Media::Transcoding::TranscodeFailureReason >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperation_1_TranscodeFailureReason, 0x02132510, 0x3899, 0x5257, 0xbe,0xd9, 0xa4,0x3e,0x51,0x49,0xd2,0x8c)
#endif
#else
typedef struct __FIAsyncOperation_1_TranscodeFailureReasonVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperation_1_TranscodeFailureReason *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperation_1_TranscodeFailureReason *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperation_1_TranscodeFailureReason *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIAsyncOperation_1_TranscodeFailureReason *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIAsyncOperation_1_TranscodeFailureReason *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIAsyncOperation_1_TranscodeFailureReason *This,
        TrustLevel *trustLevel);

    /*** IAsyncOperation<ABI::Windows::Media::Transcoding::TranscodeFailureReason > methods ***/
    HRESULT (STDMETHODCALLTYPE *put_Completed)(
        __FIAsyncOperation_1_TranscodeFailureReason *This,
        __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason *handler);

    HRESULT (STDMETHODCALLTYPE *get_Completed)(
        __FIAsyncOperation_1_TranscodeFailureReason *This,
        __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason **handler);

    HRESULT (STDMETHODCALLTYPE *GetResults)(
        __FIAsyncOperation_1_TranscodeFailureReason *This,
        __x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason *results);

    END_INTERFACE
} __FIAsyncOperation_1_TranscodeFailureReasonVtbl;

interface __FIAsyncOperation_1_TranscodeFailureReason {
    CONST_VTBL __FIAsyncOperation_1_TranscodeFailureReasonVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperation_1_TranscodeFailureReason_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperation_1_TranscodeFailureReason_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperation_1_TranscodeFailureReason_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIAsyncOperation_1_TranscodeFailureReason_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIAsyncOperation_1_TranscodeFailureReason_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIAsyncOperation_1_TranscodeFailureReason_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IAsyncOperation<ABI::Windows::Media::Transcoding::TranscodeFailureReason > methods ***/
#define __FIAsyncOperation_1_TranscodeFailureReason_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
#define __FIAsyncOperation_1_TranscodeFailureReason_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
#define __FIAsyncOperation_1_TranscodeFailureReason_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncOperation_1_TranscodeFailureReason_QueryInterface(__FIAsyncOperation_1_TranscodeFailureReason* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncOperation_1_TranscodeFailureReason_AddRef(__FIAsyncOperation_1_TranscodeFailureReason* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncOperation_1_TranscodeFailureReason_Release(__FIAsyncOperation_1_TranscodeFailureReason* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIAsyncOperation_1_TranscodeFailureReason_GetIids(__FIAsyncOperation_1_TranscodeFailureReason* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIAsyncOperation_1_TranscodeFailureReason_GetRuntimeClassName(__FIAsyncOperation_1_TranscodeFailureReason* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIAsyncOperation_1_TranscodeFailureReason_GetTrustLevel(__FIAsyncOperation_1_TranscodeFailureReason* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IAsyncOperation<ABI::Windows::Media::Transcoding::TranscodeFailureReason > methods ***/
static inline HRESULT __FIAsyncOperation_1_TranscodeFailureReason_put_Completed(__FIAsyncOperation_1_TranscodeFailureReason* This,__FIAsyncOperationCompletedHandler_1_TranscodeFailureReason *handler) {
    return This->lpVtbl->put_Completed(This,handler);
}
static inline HRESULT __FIAsyncOperation_1_TranscodeFailureReason_get_Completed(__FIAsyncOperation_1_TranscodeFailureReason* This,__FIAsyncOperationCompletedHandler_1_TranscodeFailureReason **handler) {
    return This->lpVtbl->get_Completed(This,handler);
}
static inline HRESULT __FIAsyncOperation_1_TranscodeFailureReason_GetResults(__FIAsyncOperation_1_TranscodeFailureReason* This,__x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason *results) {
    return This->lpVtbl->GetResults(This,results);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperation_TranscodeFailureReason IID___FIAsyncOperation_1_TranscodeFailureReason
#define IAsyncOperation_TranscodeFailureReasonVtbl __FIAsyncOperation_1_TranscodeFailureReasonVtbl
#define IAsyncOperation_TranscodeFailureReason __FIAsyncOperation_1_TranscodeFailureReason
#define IAsyncOperation_TranscodeFailureReason_QueryInterface __FIAsyncOperation_1_TranscodeFailureReason_QueryInterface
#define IAsyncOperation_TranscodeFailureReason_AddRef __FIAsyncOperation_1_TranscodeFailureReason_AddRef
#define IAsyncOperation_TranscodeFailureReason_Release __FIAsyncOperation_1_TranscodeFailureReason_Release
#define IAsyncOperation_TranscodeFailureReason_GetIids __FIAsyncOperation_1_TranscodeFailureReason_GetIids
#define IAsyncOperation_TranscodeFailureReason_GetRuntimeClassName __FIAsyncOperation_1_TranscodeFailureReason_GetRuntimeClassName
#define IAsyncOperation_TranscodeFailureReason_GetTrustLevel __FIAsyncOperation_1_TranscodeFailureReason_GetTrustLevel
#define IAsyncOperation_TranscodeFailureReason_put_Completed __FIAsyncOperation_1_TranscodeFailureReason_put_Completed
#define IAsyncOperation_TranscodeFailureReason_get_Completed __FIAsyncOperation_1_TranscodeFailureReason_get_Completed
#define IAsyncOperation_TranscodeFailureReason_GetResults __FIAsyncOperation_1_TranscodeFailureReason_GetResults
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperation_1_TranscodeFailureReason_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperationWithProgress<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > interface
 */
#ifndef ____FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__
#define ____FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE, 0x272eec20, 0x4b64, 0x5d53, 0xa6,0x44, 0xf9,0x91,0x7b,0x3d,0x19,0xd8);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("272eec20-4b64-5d53-a644-f9917b3d19d8")
            IAsyncOperationWithProgress<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > : IAsyncOperationWithProgress_impl<ABI::Windows::Media::Transcoding::TranscodeFailureReason, DOUBLE >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE, 0x272eec20, 0x4b64, 0x5d53, 0xa6,0x44, 0xf9,0x91,0x7b,0x3d,0x19,0xd8)
#endif
#else
typedef struct __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLEVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        TrustLevel *trustLevel);

    /*** IAsyncOperationWithProgress<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
    HRESULT (STDMETHODCALLTYPE *put_Progress)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE *handler);

    HRESULT (STDMETHODCALLTYPE *get_Progress)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE **handler);

    HRESULT (STDMETHODCALLTYPE *put_Completed)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE *handler);

    HRESULT (STDMETHODCALLTYPE *get_Completed)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE **handler);

    HRESULT (STDMETHODCALLTYPE *GetResults)(
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *This,
        __x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason *results);

    END_INTERFACE
} __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLEVtbl;

interface __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE {
    CONST_VTBL __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLEVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IAsyncOperationWithProgress<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_put_Progress(This,handler) (This)->lpVtbl->put_Progress(This,handler)
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_get_Progress(This,handler) (This)->lpVtbl->get_Progress(This,handler)
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
#define __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_QueryInterface(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_AddRef(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_Release(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetIids(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetRuntimeClassName(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetTrustLevel(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IAsyncOperationWithProgress<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_put_Progress(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,__FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE *handler) {
    return This->lpVtbl->put_Progress(This,handler);
}
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_get_Progress(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,__FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE **handler) {
    return This->lpVtbl->get_Progress(This,handler);
}
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_put_Completed(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,__FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE *handler) {
    return This->lpVtbl->put_Completed(This,handler);
}
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_get_Completed(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,__FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE **handler) {
    return This->lpVtbl->get_Completed(This,handler);
}
static inline HRESULT __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetResults(__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE* This,__x_ABI_CWindows_CMedia_CTranscoding_CTranscodeFailureReason *results) {
    return This->lpVtbl->GetResults(This,results);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE IID___FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLEVtbl __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLEVtbl
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_QueryInterface __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_QueryInterface
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_AddRef __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_AddRef
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_Release __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_Release
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_GetIids __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetIids
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_GetRuntimeClassName __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetRuntimeClassName
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_GetTrustLevel __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetTrustLevel
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_put_Progress __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_put_Progress
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_get_Progress __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_get_Progress
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_put_Completed __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_put_Completed
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_get_Completed __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_get_Completed
#define IAsyncOperationWithProgress_TranscodeFailureReason_DOUBLE_GetResults __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_GetResults
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > interface
 */
#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult, 0xa44d7d07, 0x8f74, 0x52ee, 0x9f,0x02, 0xc2,0xb2,0x44,0xb4,0xff,0x2a);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("a44d7d07-8f74-52ee-9f02-c2b244b4ff2a")
            IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::Transcoding::PrepareTranscodeResult*, ABI::Windows::Media::Transcoding::IPrepareTranscodeResult* > >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult, 0xa44d7d07, 0x8f74, 0x52ee, 0x9f,0x02, 0xc2,0xb2,0x44,0xb4,0xff,0x2a)
#endif
#else
typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResultVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This);

    /*** IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *This,
        __FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *info,
        AsyncStatus status);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResultVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult {
    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResultVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Release(This) (This)->lpVtbl->Release(This)
/*** IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > methods ***/
#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Release(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This) {
    return This->lpVtbl->Release(This);
}
/*** IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::PrepareTranscodeResult* > methods ***/
static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult* This,__FIAsyncOperation_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult *info,AsyncStatus status) {
    return This->lpVtbl->Invoke(This,info,status);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperationCompletedHandler_PrepareTranscodeResult IID___FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult
#define IAsyncOperationCompletedHandler_PrepareTranscodeResultVtbl __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResultVtbl
#define IAsyncOperationCompletedHandler_PrepareTranscodeResult __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult
#define IAsyncOperationCompletedHandler_PrepareTranscodeResult_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_QueryInterface
#define IAsyncOperationCompletedHandler_PrepareTranscodeResult_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_AddRef
#define IAsyncOperationCompletedHandler_PrepareTranscodeResult_Release __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Release
#define IAsyncOperationCompletedHandler_PrepareTranscodeResult_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CTranscoding__CPrepareTranscodeResult_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason > interface
 */
#ifndef ____FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_TranscodeFailureReason, 0xc42ae2bf, 0xe194, 0x5179, 0xb8,0xad, 0x03,0xb5,0x1c,0x04,0xe1,0xda);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("c42ae2bf-e194-5179-b8ad-03b51c04e1da")
            IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Media::Transcoding::TranscodeFailureReason >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_TranscodeFailureReason, 0xc42ae2bf, 0xe194, 0x5179, 0xb8,0xad, 0x03,0xb5,0x1c,0x04,0xe1,0xda)
#endif
#else
typedef struct __FIAsyncOperationCompletedHandler_1_TranscodeFailureReasonVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason *This);

    /*** IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason *This,
        __FIAsyncOperation_1_TranscodeFailureReason *info,
        AsyncStatus status);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_TranscodeFailureReasonVtbl;

interface __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason {
    CONST_VTBL __FIAsyncOperationCompletedHandler_1_TranscodeFailureReasonVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_Release(This) (This)->lpVtbl->Release(This)
/*** IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason > methods ***/
#define __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_QueryInterface(__FIAsyncOperationCompletedHandler_1_TranscodeFailureReason* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_AddRef(__FIAsyncOperationCompletedHandler_1_TranscodeFailureReason* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_Release(__FIAsyncOperationCompletedHandler_1_TranscodeFailureReason* This) {
    return This->lpVtbl->Release(This);
}
/*** IAsyncOperationCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason > methods ***/
static inline HRESULT __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_Invoke(__FIAsyncOperationCompletedHandler_1_TranscodeFailureReason* This,__FIAsyncOperation_1_TranscodeFailureReason *info,AsyncStatus status) {
    return This->lpVtbl->Invoke(This,info,status);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperationCompletedHandler_TranscodeFailureReason IID___FIAsyncOperationCompletedHandler_1_TranscodeFailureReason
#define IAsyncOperationCompletedHandler_TranscodeFailureReasonVtbl __FIAsyncOperationCompletedHandler_1_TranscodeFailureReasonVtbl
#define IAsyncOperationCompletedHandler_TranscodeFailureReason __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason
#define IAsyncOperationCompletedHandler_TranscodeFailureReason_QueryInterface __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_QueryInterface
#define IAsyncOperationCompletedHandler_TranscodeFailureReason_AddRef __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_AddRef
#define IAsyncOperationCompletedHandler_TranscodeFailureReason_Release __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_Release
#define IAsyncOperationCompletedHandler_TranscodeFailureReason_Invoke __FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperationCompletedHandler_1_TranscodeFailureReason_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperationWithProgressCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > interface
 */
#ifndef ____FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__
#define ____FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE, 0x080f1890, 0x4fca, 0x5165, 0xa9,0x89, 0x4b,0x07,0xda,0x8e,0x0b,0x53);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("080f1890-4fca-5165-a989-4b07da8e0b53")
            IAsyncOperationWithProgressCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > : IAsyncOperationWithProgressCompletedHandler_impl<ABI::Windows::Media::Transcoding::TranscodeFailureReason, DOUBLE >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE, 0x080f1890, 0x4fca, 0x5165, 0xa9,0x89, 0x4b,0x07,0xda,0x8e,0x0b,0x53)
#endif
#else
typedef struct __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLEVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE *This);

    /*** IAsyncOperationWithProgressCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE *This,
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *info,
        AsyncStatus status);

    END_INTERFACE
} __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLEVtbl;

interface __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE {
    CONST_VTBL __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLEVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_Release(This) (This)->lpVtbl->Release(This)
/*** IAsyncOperationWithProgressCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
#define __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_QueryInterface(__FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_AddRef(__FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_Release(__FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE* This) {
    return This->lpVtbl->Release(This);
}
/*** IAsyncOperationWithProgressCompletedHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
static inline HRESULT __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_Invoke(__FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE* This,__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *info,AsyncStatus status) {
    return This->lpVtbl->Invoke(This,info,status);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperationWithProgressCompletedHandler_TranscodeFailureReason_DOUBLE IID___FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE
#define IAsyncOperationWithProgressCompletedHandler_TranscodeFailureReason_DOUBLEVtbl __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLEVtbl
#define IAsyncOperationWithProgressCompletedHandler_TranscodeFailureReason_DOUBLE __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE
#define IAsyncOperationWithProgressCompletedHandler_TranscodeFailureReason_DOUBLE_QueryInterface __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_QueryInterface
#define IAsyncOperationWithProgressCompletedHandler_TranscodeFailureReason_DOUBLE_AddRef __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_AddRef
#define IAsyncOperationWithProgressCompletedHandler_TranscodeFailureReason_DOUBLE_Release __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_Release
#define IAsyncOperationWithProgressCompletedHandler_TranscodeFailureReason_DOUBLE_Invoke __FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperationWithProgressCompletedHandler_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperationProgressHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > interface
 */
#ifndef ____FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__
#define ____FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE, 0x009c6245, 0x0e59, 0x53b0, 0x9f,0xd2, 0xd2,0x50,0xe4,0x5a,0x00,0xa3);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("009c6245-0e59-53b0-9fd2-d250e45a00a3")
            IAsyncOperationProgressHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > : IAsyncOperationProgressHandler_impl<ABI::Windows::Media::Transcoding::TranscodeFailureReason, DOUBLE >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE, 0x009c6245, 0x0e59, 0x53b0, 0x9f,0xd2, 0xd2,0x50,0xe4,0x5a,0x00,0xa3)
#endif
#else
typedef struct __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLEVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE *This);

    /*** IAsyncOperationProgressHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE *This,
        __FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *info,
        DOUBLE progress);

    END_INTERFACE
} __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLEVtbl;

interface __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE {
    CONST_VTBL __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLEVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_Release(This) (This)->lpVtbl->Release(This)
/*** IAsyncOperationProgressHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
#define __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_Invoke(This,info,progress) (This)->lpVtbl->Invoke(This,info,progress)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_QueryInterface(__FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_AddRef(__FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_Release(__FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE* This) {
    return This->lpVtbl->Release(This);
}
/*** IAsyncOperationProgressHandler<ABI::Windows::Media::Transcoding::TranscodeFailureReason,DOUBLE > methods ***/
static inline HRESULT __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_Invoke(__FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE* This,__FIAsyncOperationWithProgress_2_TranscodeFailureReason_DOUBLE *info,DOUBLE progress) {
    return This->lpVtbl->Invoke(This,info,progress);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperationProgressHandler_TranscodeFailureReason_DOUBLE IID___FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE
#define IAsyncOperationProgressHandler_TranscodeFailureReason_DOUBLEVtbl __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLEVtbl
#define IAsyncOperationProgressHandler_TranscodeFailureReason_DOUBLE __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE
#define IAsyncOperationProgressHandler_TranscodeFailureReason_DOUBLE_QueryInterface __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_QueryInterface
#define IAsyncOperationProgressHandler_TranscodeFailureReason_DOUBLE_AddRef __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_AddRef
#define IAsyncOperationProgressHandler_TranscodeFailureReason_DOUBLE_Release __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_Release
#define IAsyncOperationProgressHandler_TranscodeFailureReason_DOUBLE_Invoke __FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperationProgressHandler_2_TranscodeFailureReason_DOUBLE_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_media_transcoding_h__ */
