diff --git a/mingw-w64-headers/include/dxvahd.h b/mingw-w64-headers/include/dxvahd.h index a3bf28a88..a41da425a 100644 --- a/mingw-w64-headers/include/dxvahd.h +++ b/mingw-w64-headers/include/dxvahd.h @@ -259,10 +259,16 @@ typedef struct _DXVAHD_BLT_STATE_CONSTRICTION_DATA { SIZE Size; } DXVAHD_BLT_STATE_CONSTRICTION_DATA; typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA { - UINT Usage : 1; - UINT RGB_Range : 1; - UINT YCbCr_Matrix : 1; - UINT YCbCr_xvYCC : 1; + __C89_NAMELESS union { + __C89_NAMELESS struct { + UINT Usage : 1; + UINT RGB_Range : 1; + UINT YCbCr_Matrix : 1; + UINT YCbCr_xvYCC : 1; + UINT Reserved : 28; + } __C89_NAMELESSSTRUCTNAME; + UINT Value; + } __C89_NAMELESSUNIONNAME; } DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA; typedef struct _DXVAHD_BLT_STATE_PRIVATE_DATA { GUID Guid; @@ -340,10 +346,15 @@ typedef struct _DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA { DXVAHD_FRAME_FORMAT FrameFormat; } DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA; typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA { - UINT Type : 1; - UINT RGB_Range : 1; - UINT YCbCr_Matrix : 1; - UINT YCbCr_xvYCC : 1; + __C89_NAMELESS union { + __C89_NAMELESS struct { + UINT Type : 1; + UINT RGB_Range : 1; + UINT YCbCr_Matrix : 1; + UINT YCbCr_xvYCC : 1; + } __C89_NAMELESSSTRUCTNAME; + UINT Value; + } __C89_NAMELESSUNIONNAME; } DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA; typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA { WINBOOL Enable; diff --git a/mingw-w64-headers/include/mftransform.h b/mingw-w64-headers/include/mftransform.h index 5ce122ece..73f37289d 100644 --- a/mingw-w64-headers/include/mftransform.h +++ b/mingw-w64-headers/include/mftransform.h @@ -42,20 +42,44 @@ interface IMFTransform; extern "C" { #endif - -enum _MFT_DRAIN_TYPE { - MFT_DRAIN_PRODUCE_TAILS = 0x0, - MFT_DRAIN_NO_TAILS = 0x1 +#define MFT_OUTPUT_BOUND_LOWER_UNBOUNDED MINLONGLONG +#define MFT_OUTPUT_BOUND_UPPER_UNBOUNDED MAXLONGLONG +typedef enum _MFT_MESSAGE_TYPE { + MFT_MESSAGE_COMMAND_FLUSH = 0x0, + MFT_MESSAGE_COMMAND_DRAIN = 0x1, + MFT_MESSAGE_SET_D3D_MANAGER = 0x2, + MFT_MESSAGE_DROP_SAMPLES = 0x3, + MFT_MESSAGE_COMMAND_TICK = 0x4, + MFT_MESSAGE_NOTIFY_BEGIN_STREAMING = 0x10000000, + MFT_MESSAGE_NOTIFY_END_STREAMING = 0x10000001, + MFT_MESSAGE_NOTIFY_END_OF_STREAM = 0x10000002, + MFT_MESSAGE_NOTIFY_START_OF_STREAM = 0x10000003, + MFT_MESSAGE_NOTIFY_RELEASE_RESOURCES = 0x10000004, + MFT_MESSAGE_NOTIFY_REACQUIRE_RESOURCES = 0x10000005, + MFT_MESSAGE_NOTIFY_EVENT = 0x10000006, + MFT_MESSAGE_COMMAND_SET_OUTPUT_STREAM_STATE = 0x10000007, + MFT_MESSAGE_COMMAND_FLUSH_OUTPUT_STREAM = 0x10000008, + MFT_MESSAGE_COMMAND_MARKER = 0x20000000 +} MFT_MESSAGE_TYPE; +enum _MFT_SET_TYPE_FLAGS { + MFT_SET_TYPE_TEST_ONLY = 0x1 +}; +enum _MFT_INPUT_STREAM_INFO_FLAGS { + MFT_INPUT_STREAM_WHOLE_SAMPLES = 0x1, + MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x2, + MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE = 0x4, + MFT_INPUT_STREAM_HOLDS_BUFFERS = 0x8, + MFT_INPUT_STREAM_DOES_NOT_ADDREF = 0x100, + MFT_INPUT_STREAM_REMOVABLE = 0x200, + MFT_INPUT_STREAM_OPTIONAL = 0x400, + MFT_INPUT_STREAM_PROCESSES_IN_PLACE = 0x800 }; - enum _MFT_INPUT_STATUS_FLAGS { MFT_INPUT_STATUS_ACCEPT_DATA = 0x1 }; - enum _MFT_INPUT_DATA_BUFFER_FLAGS { MFT_INPUT_DATA_BUFFER_PLACEHOLDER = 0xffffffff }; - enum _MFT_OUTPUT_STREAM_INFO_FLAGS { MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x1, MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x2, @@ -67,51 +91,30 @@ enum _MFT_OUTPUT_STREAM_INFO_FLAGS { MFT_OUTPUT_STREAM_LAZY_READ = 0x400, MFT_OUTPUT_STREAM_REMOVABLE = 0x800 }; - -enum _MFT_OUTPUT_STATUS_FLAGS { - MFT_OUTPUT_STATUS_SAMPLE_READY = 0x1 -}; - enum _MFT_OUTPUT_DATA_BUFFER_FLAGS { MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x1000000, MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x100, MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x200, MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x300 }; - -enum _MFT_INPUT_STREAM_INFO_FLAGS { - MFT_INPUT_STREAM_WHOLE_SAMPLES = 0x1, - MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x2, - MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE = 0x4, - MFT_INPUT_STREAM_HOLDS_BUFFERS = 0x8, - MFT_INPUT_STREAM_DOES_NOT_ADDREF = 0x100, - MFT_INPUT_STREAM_REMOVABLE = 0x200, - MFT_INPUT_STREAM_OPTIONAL = 0x400, - MFT_INPUT_STREAM_PROCESSES_IN_PLACE = 0x800 +enum _MFT_OUTPUT_STATUS_FLAGS { + MFT_OUTPUT_STATUS_SAMPLE_READY = 0x1 }; - -enum _MFT_SET_TYPE_FLAGS { - MFT_SET_TYPE_TEST_ONLY = 0x1 -}; - -enum _MFT_PROCESS_OUTPUT_STATUS { - MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS = 0x100 -}; - enum _MFT_PROCESS_OUTPUT_FLAGS { MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1, MFT_PROCESS_OUTPUT_REGENERATE_LAST_OUTPUT = 0x2 }; -typedef enum _MFT_MESSAGE_TYPE { - MFT_MESSAGE_COMMAND_FLUSH = 0x0, - MFT_MESSAGE_COMMAND_DRAIN = 0x1, - MFT_MESSAGE_SET_D3D_MANAGER = 0x2, - MFT_MESSAGE_NOTIFY_BEGIN_STREAMING = 0x10000000, - MFT_MESSAGE_NOTIFY_END_STREAMING = 0x10000001, - MFT_MESSAGE_NOTIFY_END_OF_STREAM = 0x10000002, - MFT_MESSAGE_NOTIFY_START_OF_STREAM = 0x10000003, - MFT_MESSAGE_COMMAND_MARKER = 0x20000000 -} MFT_MESSAGE_TYPE; +enum _MFT_PROCESS_OUTPUT_STATUS { + MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS = 0x100 +}; +enum _MFT_DRAIN_TYPE { + MFT_DRAIN_PRODUCE_TAILS = 0x0, + MFT_DRAIN_NO_TAILS = 0x1 +}; +typedef enum _MF3DVideoOutputType { + MF3DVideoOutputType_BaseView = 0, + MF3DVideoOutputType_Stereo = 1 +} MF3DVideoOutputType; typedef struct _MFT_INPUT_STREAM_INFO { LONGLONG hnsMaxLatency; DWORD dwFlags; @@ -130,6 +133,7 @@ typedef struct _MFT_OUTPUT_DATA_BUFFER { DWORD dwStatus; IMFCollection *pEvents; } MFT_OUTPUT_DATA_BUFFER; +typedef struct _MFT_OUTPUT_DATA_BUFFER *PMFT_OUTPUT_DATA_BUFFER; /***************************************************************************** * IMFTransform interface */ @@ -142,104 +146,104 @@ MIDL_INTERFACE("bf94c121-5b05-4e6f-8000-ba598961414d") IMFTransform : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetStreamLimits( - DWORD *pdwInputMinimum, - DWORD *pdwInputMaximum, - DWORD *pdwOutputMinimum, - DWORD *pdwOutputMaximum) = 0; + DWORD *input_minimum, + DWORD *input_maximum, + DWORD *output_minimum, + DWORD *output_maximum) = 0; virtual HRESULT STDMETHODCALLTYPE GetStreamCount( - DWORD *pcInputStreams, - DWORD *pcOutputStreams) = 0; + DWORD *inputs, + DWORD *outputs) = 0; virtual HRESULT STDMETHODCALLTYPE GetStreamIDs( - DWORD dwInputIDArraySize, - DWORD *pdwInputIDs, - DWORD dwOutputIDArraySize, - DWORD *pdwOutputIDs) = 0; + DWORD input_size, + DWORD *inputs, + DWORD output_size, + DWORD *outputs) = 0; virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( - DWORD dwInputStreamID, - MFT_INPUT_STREAM_INFO *pStreamInfo) = 0; + DWORD id, + MFT_INPUT_STREAM_INFO *info) = 0; virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( - DWORD dwOutputStreamID, - MFT_OUTPUT_STREAM_INFO *pStreamInfo) = 0; + DWORD id, + MFT_OUTPUT_STREAM_INFO *info) = 0; virtual HRESULT STDMETHODCALLTYPE GetAttributes( - IMFAttributes **pAttributes) = 0; + IMFAttributes **attributes) = 0; virtual HRESULT STDMETHODCALLTYPE GetInputStreamAttributes( - DWORD dwInputStreamID, - IMFAttributes **pAttributes) = 0; + DWORD id, + IMFAttributes **attributes) = 0; virtual HRESULT STDMETHODCALLTYPE GetOutputStreamAttributes( - DWORD dwOutputStreamID, - IMFAttributes **pAttributes) = 0; + DWORD id, + IMFAttributes **attributes) = 0; virtual HRESULT STDMETHODCALLTYPE DeleteInputStream( - DWORD dwStreamID) = 0; + DWORD id) = 0; virtual HRESULT STDMETHODCALLTYPE AddInputStreams( - DWORD cStreams, - DWORD *adwStreamIDs) = 0; + DWORD streams, + DWORD *ids) = 0; virtual HRESULT STDMETHODCALLTYPE GetInputAvailableType( - DWORD dwInputStreamID, - DWORD dwTypeIndex, - IMFMediaType **ppType) = 0; + DWORD id, + DWORD index, + IMFMediaType **type) = 0; virtual HRESULT STDMETHODCALLTYPE GetOutputAvailableType( - DWORD dwOutputStreamID, - DWORD dwTypeIndex, - IMFMediaType **ppType) = 0; + DWORD id, + DWORD index, + IMFMediaType **type) = 0; virtual HRESULT STDMETHODCALLTYPE SetInputType( - DWORD dwInputStreamID, - IMFMediaType *pType, - DWORD dwFlags) = 0; + DWORD id, + IMFMediaType *type, + DWORD flags) = 0; virtual HRESULT STDMETHODCALLTYPE SetOutputType( - DWORD dwOutputStreamID, - IMFMediaType *pType, - DWORD dwFlags) = 0; + DWORD id, + IMFMediaType *type, + DWORD flags) = 0; virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( - DWORD dwInputStreamID, - IMFMediaType **ppType) = 0; + DWORD id, + IMFMediaType **type) = 0; virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( - DWORD dwOutputStreamID, - IMFMediaType **ppType) = 0; + DWORD id, + IMFMediaType **type) = 0; virtual HRESULT STDMETHODCALLTYPE GetInputStatus( - DWORD dwInputStreamID, - DWORD *pdwFlags) = 0; + DWORD id, + DWORD *flags) = 0; virtual HRESULT STDMETHODCALLTYPE GetOutputStatus( - DWORD *pdwFlags) = 0; + DWORD *flags) = 0; virtual HRESULT STDMETHODCALLTYPE SetOutputBounds( - LONGLONG hnsLowerBound, - LONGLONG hnsUpperBound) = 0; + LONGLONG lower, + LONGLONG upper) = 0; virtual HRESULT STDMETHODCALLTYPE ProcessEvent( - DWORD dwInputStreamID, - IMFMediaEvent *pEvent) = 0; + DWORD id, + IMFMediaEvent *event) = 0; virtual HRESULT STDMETHODCALLTYPE ProcessMessage( - MFT_MESSAGE_TYPE eMessage, - ULONG_PTR ulParam) = 0; + MFT_MESSAGE_TYPE message, + ULONG_PTR param) = 0; virtual HRESULT STDMETHODCALLTYPE ProcessInput( - DWORD dwInputStreamID, - IMFSample *pSample, - DWORD dwFlags) = 0; + DWORD id, + IMFSample *sample, + DWORD flags) = 0; virtual HRESULT STDMETHODCALLTYPE ProcessOutput( - DWORD dwFlags, - DWORD cOutputBufferCount, - MFT_OUTPUT_DATA_BUFFER *pOutputSamples, - DWORD *pdwStatus) = 0; + DWORD flags, + DWORD count, + MFT_OUTPUT_DATA_BUFFER *samples, + DWORD *status) = 0; }; #ifdef __CRT_UUID_DECL @@ -264,126 +268,126 @@ typedef struct IMFTransformVtbl { /*** IMFTransform methods ***/ HRESULT (STDMETHODCALLTYPE *GetStreamLimits)( IMFTransform *This, - DWORD *pdwInputMinimum, - DWORD *pdwInputMaximum, - DWORD *pdwOutputMinimum, - DWORD *pdwOutputMaximum); + DWORD *input_minimum, + DWORD *input_maximum, + DWORD *output_minimum, + DWORD *output_maximum); HRESULT (STDMETHODCALLTYPE *GetStreamCount)( IMFTransform *This, - DWORD *pcInputStreams, - DWORD *pcOutputStreams); + DWORD *inputs, + DWORD *outputs); HRESULT (STDMETHODCALLTYPE *GetStreamIDs)( IMFTransform *This, - DWORD dwInputIDArraySize, - DWORD *pdwInputIDs, - DWORD dwOutputIDArraySize, - DWORD *pdwOutputIDs); + DWORD input_size, + DWORD *inputs, + DWORD output_size, + DWORD *outputs); HRESULT (STDMETHODCALLTYPE *GetInputStreamInfo)( IMFTransform *This, - DWORD dwInputStreamID, - MFT_INPUT_STREAM_INFO *pStreamInfo); + DWORD id, + MFT_INPUT_STREAM_INFO *info); HRESULT (STDMETHODCALLTYPE *GetOutputStreamInfo)( IMFTransform *This, - DWORD dwOutputStreamID, - MFT_OUTPUT_STREAM_INFO *pStreamInfo); + DWORD id, + MFT_OUTPUT_STREAM_INFO *info); HRESULT (STDMETHODCALLTYPE *GetAttributes)( IMFTransform *This, - IMFAttributes **pAttributes); + IMFAttributes **attributes); HRESULT (STDMETHODCALLTYPE *GetInputStreamAttributes)( IMFTransform *This, - DWORD dwInputStreamID, - IMFAttributes **pAttributes); + DWORD id, + IMFAttributes **attributes); HRESULT (STDMETHODCALLTYPE *GetOutputStreamAttributes)( IMFTransform *This, - DWORD dwOutputStreamID, - IMFAttributes **pAttributes); + DWORD id, + IMFAttributes **attributes); HRESULT (STDMETHODCALLTYPE *DeleteInputStream)( IMFTransform *This, - DWORD dwStreamID); + DWORD id); HRESULT (STDMETHODCALLTYPE *AddInputStreams)( IMFTransform *This, - DWORD cStreams, - DWORD *adwStreamIDs); + DWORD streams, + DWORD *ids); HRESULT (STDMETHODCALLTYPE *GetInputAvailableType)( IMFTransform *This, - DWORD dwInputStreamID, - DWORD dwTypeIndex, - IMFMediaType **ppType); + DWORD id, + DWORD index, + IMFMediaType **type); HRESULT (STDMETHODCALLTYPE *GetOutputAvailableType)( IMFTransform *This, - DWORD dwOutputStreamID, - DWORD dwTypeIndex, - IMFMediaType **ppType); + DWORD id, + DWORD index, + IMFMediaType **type); HRESULT (STDMETHODCALLTYPE *SetInputType)( IMFTransform *This, - DWORD dwInputStreamID, - IMFMediaType *pType, - DWORD dwFlags); + DWORD id, + IMFMediaType *type, + DWORD flags); HRESULT (STDMETHODCALLTYPE *SetOutputType)( IMFTransform *This, - DWORD dwOutputStreamID, - IMFMediaType *pType, - DWORD dwFlags); + DWORD id, + IMFMediaType *type, + DWORD flags); HRESULT (STDMETHODCALLTYPE *GetInputCurrentType)( IMFTransform *This, - DWORD dwInputStreamID, - IMFMediaType **ppType); + DWORD id, + IMFMediaType **type); HRESULT (STDMETHODCALLTYPE *GetOutputCurrentType)( IMFTransform *This, - DWORD dwOutputStreamID, - IMFMediaType **ppType); + DWORD id, + IMFMediaType **type); HRESULT (STDMETHODCALLTYPE *GetInputStatus)( IMFTransform *This, - DWORD dwInputStreamID, - DWORD *pdwFlags); + DWORD id, + DWORD *flags); HRESULT (STDMETHODCALLTYPE *GetOutputStatus)( IMFTransform *This, - DWORD *pdwFlags); + DWORD *flags); HRESULT (STDMETHODCALLTYPE *SetOutputBounds)( IMFTransform *This, - LONGLONG hnsLowerBound, - LONGLONG hnsUpperBound); + LONGLONG lower, + LONGLONG upper); HRESULT (STDMETHODCALLTYPE *ProcessEvent)( IMFTransform *This, - DWORD dwInputStreamID, - IMFMediaEvent *pEvent); + DWORD id, + IMFMediaEvent *event); HRESULT (STDMETHODCALLTYPE *ProcessMessage)( IMFTransform *This, - MFT_MESSAGE_TYPE eMessage, - ULONG_PTR ulParam); + MFT_MESSAGE_TYPE message, + ULONG_PTR param); HRESULT (STDMETHODCALLTYPE *ProcessInput)( IMFTransform *This, - DWORD dwInputStreamID, - IMFSample *pSample, - DWORD dwFlags); + DWORD id, + IMFSample *sample, + DWORD flags); HRESULT (STDMETHODCALLTYPE *ProcessOutput)( IMFTransform *This, - DWORD dwFlags, - DWORD cOutputBufferCount, - MFT_OUTPUT_DATA_BUFFER *pOutputSamples, - DWORD *pdwStatus); + DWORD flags, + DWORD count, + MFT_OUTPUT_DATA_BUFFER *samples, + DWORD *status); END_INTERFACE } IMFTransformVtbl; @@ -399,29 +403,29 @@ interface IMFTransform { #define IMFTransform_AddRef(This) (This)->lpVtbl->AddRef(This) #define IMFTransform_Release(This) (This)->lpVtbl->Release(This) /*** IMFTransform methods ***/ -#define IMFTransform_GetStreamLimits(This,pdwInputMinimum,pdwInputMaximum,pdwOutputMinimum,pdwOutputMaximum) (This)->lpVtbl->GetStreamLimits(This,pdwInputMinimum,pdwInputMaximum,pdwOutputMinimum,pdwOutputMaximum) -#define IMFTransform_GetStreamCount(This,pcInputStreams,pcOutputStreams) (This)->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams) -#define IMFTransform_GetStreamIDs(This,dwInputIDArraySize,pdwInputIDs,dwOutputIDArraySize,pdwOutputIDs) (This)->lpVtbl->GetStreamIDs(This,dwInputIDArraySize,pdwInputIDs,dwOutputIDArraySize,pdwOutputIDs) -#define IMFTransform_GetInputStreamInfo(This,dwInputStreamID,pStreamInfo) (This)->lpVtbl->GetInputStreamInfo(This,dwInputStreamID,pStreamInfo) -#define IMFTransform_GetOutputStreamInfo(This,dwOutputStreamID,pStreamInfo) (This)->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamID,pStreamInfo) -#define IMFTransform_GetAttributes(This,pAttributes) (This)->lpVtbl->GetAttributes(This,pAttributes) -#define IMFTransform_GetInputStreamAttributes(This,dwInputStreamID,pAttributes) (This)->lpVtbl->GetInputStreamAttributes(This,dwInputStreamID,pAttributes) -#define IMFTransform_GetOutputStreamAttributes(This,dwOutputStreamID,pAttributes) (This)->lpVtbl->GetOutputStreamAttributes(This,dwOutputStreamID,pAttributes) -#define IMFTransform_DeleteInputStream(This,dwStreamID) (This)->lpVtbl->DeleteInputStream(This,dwStreamID) -#define IMFTransform_AddInputStreams(This,cStreams,adwStreamIDs) (This)->lpVtbl->AddInputStreams(This,cStreams,adwStreamIDs) -#define IMFTransform_GetInputAvailableType(This,dwInputStreamID,dwTypeIndex,ppType) (This)->lpVtbl->GetInputAvailableType(This,dwInputStreamID,dwTypeIndex,ppType) -#define IMFTransform_GetOutputAvailableType(This,dwOutputStreamID,dwTypeIndex,ppType) (This)->lpVtbl->GetOutputAvailableType(This,dwOutputStreamID,dwTypeIndex,ppType) -#define IMFTransform_SetInputType(This,dwInputStreamID,pType,dwFlags) (This)->lpVtbl->SetInputType(This,dwInputStreamID,pType,dwFlags) -#define IMFTransform_SetOutputType(This,dwOutputStreamID,pType,dwFlags) (This)->lpVtbl->SetOutputType(This,dwOutputStreamID,pType,dwFlags) -#define IMFTransform_GetInputCurrentType(This,dwInputStreamID,ppType) (This)->lpVtbl->GetInputCurrentType(This,dwInputStreamID,ppType) -#define IMFTransform_GetOutputCurrentType(This,dwOutputStreamID,ppType) (This)->lpVtbl->GetOutputCurrentType(This,dwOutputStreamID,ppType) -#define IMFTransform_GetInputStatus(This,dwInputStreamID,pdwFlags) (This)->lpVtbl->GetInputStatus(This,dwInputStreamID,pdwFlags) -#define IMFTransform_GetOutputStatus(This,pdwFlags) (This)->lpVtbl->GetOutputStatus(This,pdwFlags) -#define IMFTransform_SetOutputBounds(This,hnsLowerBound,hnsUpperBound) (This)->lpVtbl->SetOutputBounds(This,hnsLowerBound,hnsUpperBound) -#define IMFTransform_ProcessEvent(This,dwInputStreamID,pEvent) (This)->lpVtbl->ProcessEvent(This,dwInputStreamID,pEvent) -#define IMFTransform_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam) -#define IMFTransform_ProcessInput(This,dwInputStreamID,pSample,dwFlags) (This)->lpVtbl->ProcessInput(This,dwInputStreamID,pSample,dwFlags) -#define IMFTransform_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputSamples,pdwStatus) (This)->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputSamples,pdwStatus) +#define IMFTransform_GetStreamLimits(This,input_minimum,input_maximum,output_minimum,output_maximum) (This)->lpVtbl->GetStreamLimits(This,input_minimum,input_maximum,output_minimum,output_maximum) +#define IMFTransform_GetStreamCount(This,inputs,outputs) (This)->lpVtbl->GetStreamCount(This,inputs,outputs) +#define IMFTransform_GetStreamIDs(This,input_size,inputs,output_size,outputs) (This)->lpVtbl->GetStreamIDs(This,input_size,inputs,output_size,outputs) +#define IMFTransform_GetInputStreamInfo(This,id,info) (This)->lpVtbl->GetInputStreamInfo(This,id,info) +#define IMFTransform_GetOutputStreamInfo(This,id,info) (This)->lpVtbl->GetOutputStreamInfo(This,id,info) +#define IMFTransform_GetAttributes(This,attributes) (This)->lpVtbl->GetAttributes(This,attributes) +#define IMFTransform_GetInputStreamAttributes(This,id,attributes) (This)->lpVtbl->GetInputStreamAttributes(This,id,attributes) +#define IMFTransform_GetOutputStreamAttributes(This,id,attributes) (This)->lpVtbl->GetOutputStreamAttributes(This,id,attributes) +#define IMFTransform_DeleteInputStream(This,id) (This)->lpVtbl->DeleteInputStream(This,id) +#define IMFTransform_AddInputStreams(This,streams,ids) (This)->lpVtbl->AddInputStreams(This,streams,ids) +#define IMFTransform_GetInputAvailableType(This,id,index,type) (This)->lpVtbl->GetInputAvailableType(This,id,index,type) +#define IMFTransform_GetOutputAvailableType(This,id,index,type) (This)->lpVtbl->GetOutputAvailableType(This,id,index,type) +#define IMFTransform_SetInputType(This,id,type,flags) (This)->lpVtbl->SetInputType(This,id,type,flags) +#define IMFTransform_SetOutputType(This,id,type,flags) (This)->lpVtbl->SetOutputType(This,id,type,flags) +#define IMFTransform_GetInputCurrentType(This,id,type) (This)->lpVtbl->GetInputCurrentType(This,id,type) +#define IMFTransform_GetOutputCurrentType(This,id,type) (This)->lpVtbl->GetOutputCurrentType(This,id,type) +#define IMFTransform_GetInputStatus(This,id,flags) (This)->lpVtbl->GetInputStatus(This,id,flags) +#define IMFTransform_GetOutputStatus(This,flags) (This)->lpVtbl->GetOutputStatus(This,flags) +#define IMFTransform_SetOutputBounds(This,lower,upper) (This)->lpVtbl->SetOutputBounds(This,lower,upper) +#define IMFTransform_ProcessEvent(This,id,event) (This)->lpVtbl->ProcessEvent(This,id,event) +#define IMFTransform_ProcessMessage(This,message,param) (This)->lpVtbl->ProcessMessage(This,message,param) +#define IMFTransform_ProcessInput(This,id,sample,flags) (This)->lpVtbl->ProcessInput(This,id,sample,flags) +#define IMFTransform_ProcessOutput(This,flags,count,samples,status) (This)->lpVtbl->ProcessOutput(This,flags,count,samples,status) #else /*** IUnknown methods ***/ static __WIDL_INLINE HRESULT IMFTransform_QueryInterface(IMFTransform* This,REFIID riid,void **ppvObject) { @@ -434,74 +438,74 @@ static __WIDL_INLINE ULONG IMFTransform_Release(IMFTransform* This) { return This->lpVtbl->Release(This); } /*** IMFTransform methods ***/ -static __WIDL_INLINE HRESULT IMFTransform_GetStreamLimits(IMFTransform* This,DWORD *pdwInputMinimum,DWORD *pdwInputMaximum,DWORD *pdwOutputMinimum,DWORD *pdwOutputMaximum) { - return This->lpVtbl->GetStreamLimits(This,pdwInputMinimum,pdwInputMaximum,pdwOutputMinimum,pdwOutputMaximum); +static __WIDL_INLINE HRESULT IMFTransform_GetStreamLimits(IMFTransform* This,DWORD *input_minimum,DWORD *input_maximum,DWORD *output_minimum,DWORD *output_maximum) { + return This->lpVtbl->GetStreamLimits(This,input_minimum,input_maximum,output_minimum,output_maximum); } -static __WIDL_INLINE HRESULT IMFTransform_GetStreamCount(IMFTransform* This,DWORD *pcInputStreams,DWORD *pcOutputStreams) { - return This->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams); +static __WIDL_INLINE HRESULT IMFTransform_GetStreamCount(IMFTransform* This,DWORD *inputs,DWORD *outputs) { + return This->lpVtbl->GetStreamCount(This,inputs,outputs); } -static __WIDL_INLINE HRESULT IMFTransform_GetStreamIDs(IMFTransform* This,DWORD dwInputIDArraySize,DWORD *pdwInputIDs,DWORD dwOutputIDArraySize,DWORD *pdwOutputIDs) { - return This->lpVtbl->GetStreamIDs(This,dwInputIDArraySize,pdwInputIDs,dwOutputIDArraySize,pdwOutputIDs); +static __WIDL_INLINE HRESULT IMFTransform_GetStreamIDs(IMFTransform* This,DWORD input_size,DWORD *inputs,DWORD output_size,DWORD *outputs) { + return This->lpVtbl->GetStreamIDs(This,input_size,inputs,output_size,outputs); } -static __WIDL_INLINE HRESULT IMFTransform_GetInputStreamInfo(IMFTransform* This,DWORD dwInputStreamID,MFT_INPUT_STREAM_INFO *pStreamInfo) { - return This->lpVtbl->GetInputStreamInfo(This,dwInputStreamID,pStreamInfo); +static __WIDL_INLINE HRESULT IMFTransform_GetInputStreamInfo(IMFTransform* This,DWORD id,MFT_INPUT_STREAM_INFO *info) { + return This->lpVtbl->GetInputStreamInfo(This,id,info); } -static __WIDL_INLINE HRESULT IMFTransform_GetOutputStreamInfo(IMFTransform* This,DWORD dwOutputStreamID,MFT_OUTPUT_STREAM_INFO *pStreamInfo) { - return This->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamID,pStreamInfo); +static __WIDL_INLINE HRESULT IMFTransform_GetOutputStreamInfo(IMFTransform* This,DWORD id,MFT_OUTPUT_STREAM_INFO *info) { + return This->lpVtbl->GetOutputStreamInfo(This,id,info); } -static __WIDL_INLINE HRESULT IMFTransform_GetAttributes(IMFTransform* This,IMFAttributes **pAttributes) { - return This->lpVtbl->GetAttributes(This,pAttributes); +static __WIDL_INLINE HRESULT IMFTransform_GetAttributes(IMFTransform* This,IMFAttributes **attributes) { + return This->lpVtbl->GetAttributes(This,attributes); } -static __WIDL_INLINE HRESULT IMFTransform_GetInputStreamAttributes(IMFTransform* This,DWORD dwInputStreamID,IMFAttributes **pAttributes) { - return This->lpVtbl->GetInputStreamAttributes(This,dwInputStreamID,pAttributes); +static __WIDL_INLINE HRESULT IMFTransform_GetInputStreamAttributes(IMFTransform* This,DWORD id,IMFAttributes **attributes) { + return This->lpVtbl->GetInputStreamAttributes(This,id,attributes); } -static __WIDL_INLINE HRESULT IMFTransform_GetOutputStreamAttributes(IMFTransform* This,DWORD dwOutputStreamID,IMFAttributes **pAttributes) { - return This->lpVtbl->GetOutputStreamAttributes(This,dwOutputStreamID,pAttributes); +static __WIDL_INLINE HRESULT IMFTransform_GetOutputStreamAttributes(IMFTransform* This,DWORD id,IMFAttributes **attributes) { + return This->lpVtbl->GetOutputStreamAttributes(This,id,attributes); } -static __WIDL_INLINE HRESULT IMFTransform_DeleteInputStream(IMFTransform* This,DWORD dwStreamID) { - return This->lpVtbl->DeleteInputStream(This,dwStreamID); +static __WIDL_INLINE HRESULT IMFTransform_DeleteInputStream(IMFTransform* This,DWORD id) { + return This->lpVtbl->DeleteInputStream(This,id); } -static __WIDL_INLINE HRESULT IMFTransform_AddInputStreams(IMFTransform* This,DWORD cStreams,DWORD *adwStreamIDs) { - return This->lpVtbl->AddInputStreams(This,cStreams,adwStreamIDs); +static __WIDL_INLINE HRESULT IMFTransform_AddInputStreams(IMFTransform* This,DWORD streams,DWORD *ids) { + return This->lpVtbl->AddInputStreams(This,streams,ids); } -static __WIDL_INLINE HRESULT IMFTransform_GetInputAvailableType(IMFTransform* This,DWORD dwInputStreamID,DWORD dwTypeIndex,IMFMediaType **ppType) { - return This->lpVtbl->GetInputAvailableType(This,dwInputStreamID,dwTypeIndex,ppType); +static __WIDL_INLINE HRESULT IMFTransform_GetInputAvailableType(IMFTransform* This,DWORD id,DWORD index,IMFMediaType **type) { + return This->lpVtbl->GetInputAvailableType(This,id,index,type); } -static __WIDL_INLINE HRESULT IMFTransform_GetOutputAvailableType(IMFTransform* This,DWORD dwOutputStreamID,DWORD dwTypeIndex,IMFMediaType **ppType) { - return This->lpVtbl->GetOutputAvailableType(This,dwOutputStreamID,dwTypeIndex,ppType); +static __WIDL_INLINE HRESULT IMFTransform_GetOutputAvailableType(IMFTransform* This,DWORD id,DWORD index,IMFMediaType **type) { + return This->lpVtbl->GetOutputAvailableType(This,id,index,type); } -static __WIDL_INLINE HRESULT IMFTransform_SetInputType(IMFTransform* This,DWORD dwInputStreamID,IMFMediaType *pType,DWORD dwFlags) { - return This->lpVtbl->SetInputType(This,dwInputStreamID,pType,dwFlags); +static __WIDL_INLINE HRESULT IMFTransform_SetInputType(IMFTransform* This,DWORD id,IMFMediaType *type,DWORD flags) { + return This->lpVtbl->SetInputType(This,id,type,flags); } -static __WIDL_INLINE HRESULT IMFTransform_SetOutputType(IMFTransform* This,DWORD dwOutputStreamID,IMFMediaType *pType,DWORD dwFlags) { - return This->lpVtbl->SetOutputType(This,dwOutputStreamID,pType,dwFlags); +static __WIDL_INLINE HRESULT IMFTransform_SetOutputType(IMFTransform* This,DWORD id,IMFMediaType *type,DWORD flags) { + return This->lpVtbl->SetOutputType(This,id,type,flags); } -static __WIDL_INLINE HRESULT IMFTransform_GetInputCurrentType(IMFTransform* This,DWORD dwInputStreamID,IMFMediaType **ppType) { - return This->lpVtbl->GetInputCurrentType(This,dwInputStreamID,ppType); +static __WIDL_INLINE HRESULT IMFTransform_GetInputCurrentType(IMFTransform* This,DWORD id,IMFMediaType **type) { + return This->lpVtbl->GetInputCurrentType(This,id,type); } -static __WIDL_INLINE HRESULT IMFTransform_GetOutputCurrentType(IMFTransform* This,DWORD dwOutputStreamID,IMFMediaType **ppType) { - return This->lpVtbl->GetOutputCurrentType(This,dwOutputStreamID,ppType); +static __WIDL_INLINE HRESULT IMFTransform_GetOutputCurrentType(IMFTransform* This,DWORD id,IMFMediaType **type) { + return This->lpVtbl->GetOutputCurrentType(This,id,type); } -static __WIDL_INLINE HRESULT IMFTransform_GetInputStatus(IMFTransform* This,DWORD dwInputStreamID,DWORD *pdwFlags) { - return This->lpVtbl->GetInputStatus(This,dwInputStreamID,pdwFlags); +static __WIDL_INLINE HRESULT IMFTransform_GetInputStatus(IMFTransform* This,DWORD id,DWORD *flags) { + return This->lpVtbl->GetInputStatus(This,id,flags); } -static __WIDL_INLINE HRESULT IMFTransform_GetOutputStatus(IMFTransform* This,DWORD *pdwFlags) { - return This->lpVtbl->GetOutputStatus(This,pdwFlags); +static __WIDL_INLINE HRESULT IMFTransform_GetOutputStatus(IMFTransform* This,DWORD *flags) { + return This->lpVtbl->GetOutputStatus(This,flags); } -static __WIDL_INLINE HRESULT IMFTransform_SetOutputBounds(IMFTransform* This,LONGLONG hnsLowerBound,LONGLONG hnsUpperBound) { - return This->lpVtbl->SetOutputBounds(This,hnsLowerBound,hnsUpperBound); +static __WIDL_INLINE HRESULT IMFTransform_SetOutputBounds(IMFTransform* This,LONGLONG lower,LONGLONG upper) { + return This->lpVtbl->SetOutputBounds(This,lower,upper); } -static __WIDL_INLINE HRESULT IMFTransform_ProcessEvent(IMFTransform* This,DWORD dwInputStreamID,IMFMediaEvent *pEvent) { - return This->lpVtbl->ProcessEvent(This,dwInputStreamID,pEvent); +static __WIDL_INLINE HRESULT IMFTransform_ProcessEvent(IMFTransform* This,DWORD id,IMFMediaEvent *event) { + return This->lpVtbl->ProcessEvent(This,id,event); } -static __WIDL_INLINE HRESULT IMFTransform_ProcessMessage(IMFTransform* This,MFT_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) { - return This->lpVtbl->ProcessMessage(This,eMessage,ulParam); +static __WIDL_INLINE HRESULT IMFTransform_ProcessMessage(IMFTransform* This,MFT_MESSAGE_TYPE message,ULONG_PTR param) { + return This->lpVtbl->ProcessMessage(This,message,param); } -static __WIDL_INLINE HRESULT IMFTransform_ProcessInput(IMFTransform* This,DWORD dwInputStreamID,IMFSample *pSample,DWORD dwFlags) { - return This->lpVtbl->ProcessInput(This,dwInputStreamID,pSample,dwFlags); +static __WIDL_INLINE HRESULT IMFTransform_ProcessInput(IMFTransform* This,DWORD id,IMFSample *sample,DWORD flags) { + return This->lpVtbl->ProcessInput(This,id,sample,flags); } -static __WIDL_INLINE HRESULT IMFTransform_ProcessOutput(IMFTransform* This,DWORD dwFlags,DWORD cOutputBufferCount,MFT_OUTPUT_DATA_BUFFER *pOutputSamples,DWORD *pdwStatus) { - return This->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputSamples,pdwStatus); +static __WIDL_INLINE HRESULT IMFTransform_ProcessOutput(IMFTransform* This,DWORD flags,DWORD count,MFT_OUTPUT_DATA_BUFFER *samples,DWORD *status) { + return This->lpVtbl->ProcessOutput(This,flags,count,samples,status); } #endif #endif @@ -511,43 +515,47 @@ static __WIDL_INLINE HRESULT IMFTransform_ProcessOutput(IMFTransform* This,DWORD #endif /* __IMFTransform_INTERFACE_DEFINED__ */ -DEFINE_PROPERTYKEY(MFPKEY_CLSID, 0xc57a84c0,0x1a80,0x40a3,0x97,0xb5,0x92,0x72,0xa4,0x3,0xc8,0xae, 1); -DEFINE_PROPERTYKEY(MFPKEY_CATEGORY, 0xc57a84c0,0x1a80,0x40a3,0x97,0xb5,0x92,0x72,0xa4,0x3,0xc8,0xae, 2); -DEFINE_PROPERTYKEY(MFPKEY_EXATTRIBUTE_SUPPORTED, 0x456fe843,0x3c87,0x40c0,0x94,0x9d,0x14,0x9,0xc9,0x7d,0xab,0x2c, 1); -DEFINE_PROPERTYKEY(MFPKEY_MULTICHANNEL_CHANNEL_MASK, 0x58bdaf8c,0x3224,0x4692,0x86,0xd0,0x44,0xd6,0x5c,0x5b,0xf8,0x2b, 1); -EXTERN_GUID(MF_SA_D3D_AWARE, 0xeaa35c29,0x775e,0x488e,0x9b,0x61,0xb3,0x28,0x3e,0x49,0x58,0x3b); -EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT, 0x18802c61,0x324b,0x4952,0xab,0xd0,0x17,0x6f,0xf5,0xc6,0x96,0xff); -EXTERN_GUID(MF_TRANSFORM_ASYNC, 0xf81a699a,0x649a,0x497d,0x8c,0x73,0x29,0xf8,0xfe,0xd6,0xad,0x7a); -EXTERN_GUID(MF_TRANSFORM_ASYNC_UNLOCK, 0xe5666d6b,0x3422,0x4eb6,0xa4,0x21,0xda,0x7d,0xb1,0xf8,0xe2,0x7); -EXTERN_GUID(MF_TRANSFORM_FLAGS_Attribute, 0x9359bb7e,0x6275,0x46c4,0xa0,0x25,0x1c,0x1,0xe4,0x5f,0x1a,0x86); -EXTERN_GUID(MF_TRANSFORM_CATEGORY_Attribute, 0xceabba49,0x506d,0x4757,0xa6,0xff,0x66,0xc1,0x84,0x98,0x7e,0x4e); -EXTERN_GUID(MFT_TRANSFORM_CLSID_Attribute, 0x6821c42b,0x65a4,0x4e82,0x99,0xbc,0x9a,0x88,0x20,0x5e,0xcd,0xc); -EXTERN_GUID(MFT_INPUT_TYPES_Attributes, 0x4276c9b1,0x759d,0x4bf3,0x9c,0xd0,0xd,0x72,0x3d,0x13,0x8f,0x96); -EXTERN_GUID(MFT_OUTPUT_TYPES_Attributes, 0x8eae8cf3,0xa44f,0x4306,0xba,0x5c,0xbf,0x5d,0xda,0x24,0x28,0x18); -EXTERN_GUID(MFT_ENUM_HARDWARE_URL_Attribute, 0x2fb866ac,0xb078,0x4942,0xab,0x6c,0x0,0x3d,0x5,0xcd,0xa6,0x74); -EXTERN_GUID(MFT_FRIENDLY_NAME_Attribute, 0x314ffbae,0x5b41,0x4c95,0x9c,0x19,0x4e,0x7d,0x58,0x6f,0xac,0xe3); -EXTERN_GUID(MFT_CONNECTED_STREAM_ATTRIBUTE, 0x71eeb820,0xa59f,0x4de2,0xbc,0xec,0x38,0xdb,0x1d,0xd6,0x11,0xa4); -EXTERN_GUID(MFT_CONNECTED_TO_HW_STREAM, 0x34e6e728,0x6d6,0x4491,0xa5,0x53,0x47,0x95,0x65,0xd,0xb9,0x12); -EXTERN_GUID(MFT_PREFERRED_OUTPUTTYPE_Attribute, 0x7e700499,0x396a,0x49ee,0xb1,0xb4,0xf6,0x28,0x2,0x1e,0x8c,0x9d); -EXTERN_GUID(MFT_PROCESS_LOCAL_Attribute, 0x543186e4,0x4649,0x4e65,0xb5,0x88,0x4a,0xa3,0x52,0xaf,0xf3,0x79); -EXTERN_GUID(MFT_PREFERRED_ENCODER_PROFILE, 0x53004909,0x1ef5,0x46d7,0xa1,0x8e,0x5a,0x75,0xf8,0xb5,0x90,0x5f); -EXTERN_GUID(MFT_HW_TIMESTAMP_WITH_QPC_Attribute, 0x8d030fb8,0xcc43,0x4258,0xa2,0x2e,0x92,0x10,0xbe,0xf8,0x9b,0xe4); -EXTERN_GUID(MFT_FIELDOFUSE_UNLOCK_Attribute, 0x8ec2e9fd,0x9148,0x410d,0x83,0x1e,0x70,0x24,0x39,0x46,0x1a,0x8e); -EXTERN_GUID(MFT_CODEC_MERIT_Attribute, 0x88a7cb15,0x7b07,0x4a34,0x91,0x28,0xe6,0x4c,0x67,0x3,0xc4,0xd3); -EXTERN_GUID(MFT_ENUM_TRANSCODE_ONLY_ATTRIBUTE, 0x111ea8cd,0xb62a,0x4bdb,0x89,0xf6,0x67,0xff,0xcd,0xc2,0x45,0x8b); -EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT_PROGRESSIVE, 0xb172d58e,0xfa77,0x4e48,0x8d,0x2a,0x1d,0xf2,0xd8,0x50,0xea,0xc2); -EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT, 0x851745d5,0xc3d6,0x476d,0x95,0x27,0x49,0x8e,0xf2,0xd1,0xd,0x18); -EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT_PROGRESSIVE, 0xf5523a5,0x1cb2,0x47c5,0xa5,0x50,0x2e,0xeb,0x84,0xb4,0xd1,0x4a); -EXTERN_GUID(MF_SA_D3D11_BINDFLAGS, 0xeacf97ad,0x065c,0x4408,0xbe,0xe3,0xfd,0xcb,0xfd,0x12,0x8b,0xe2); -EXTERN_GUID(MF_SA_D3D11_USAGE, 0xe85fe442,0x2ca3,0x486e,0xa9,0xc7,0x10,0x9d,0xda,0x60,0x98,0x80); -EXTERN_GUID(MF_SA_D3D11_AWARE, 0x206b4fc8,0xfcf9,0x4c51,0xaf,0xe3,0x97,0x64,0x36,0x9e,0x33,0xa0); -EXTERN_GUID(MF_SA_D3D11_SHARED, 0x7b8f32c3,0x6d96,0x4b89,0x92,0x3,0xdd,0x38,0xb6,0x14,0x14,0xf3 ); -EXTERN_GUID(MF_SA_D3D11_SHARED_WITHOUT_MUTEX, 0x39dbd44d,0x2e44,0x4931,0xa4,0xc8,0x35,0x2d,0x3d,0xc4,0x21,0x15); -EXTERN_GUID(MF_SA_D3D11_ALLOW_DYNAMIC_YUV_TEXTURE, 0xce06d49f,0x613,0x4b9d,0x86,0xa6,0xd8,0xc4,0xf9,0xc1,0x0,0x75); -EXTERN_GUID(MF_SA_D3D11_HW_PROTECTED, 0x3a8ba9d9,0x92ca,0x4307,0xa3,0x91,0x69,0x99,0xdb,0xf3,0xb6,0xce); -#if (WINVER >= 0x0601) -HRESULT WINAPI MFCreateTransformActivate(IMFActivate **ppActivate); -#endif /*(WINVER >= 0x0601)*/ +HRESULT WINAPI MFCreateTransformActivate(IMFActivate **activate); +EXTERN_GUID(MF_SA_BUFFERS_PER_SAMPLE, 0x873c5171, 0x1e3d, 0x4e25, 0x98, 0x8d, 0xb4, 0x33, 0xce, 0x04, 0x19, 0x83); +EXTERN_GUID(MF_SA_D3D_AWARE, 0xeaa35c29, 0x775e, 0x488e, 0x9b, 0x61, 0xb3, 0x28, 0x3e, 0x49, 0x58, 0x3b); +EXTERN_GUID(MF_SA_D3D11_ALLOW_DYNAMIC_YUV_TEXTURE, 0xce06d49f, 0x0613, 0x4b9d, 0x86, 0xa6, 0xd8, 0xc4, 0xf9, 0xc1, 0x00, 0x75); +EXTERN_GUID(MF_SA_D3D11_AWARE, 0x206b4fc8, 0xfcf9, 0x4c51, 0xaf, 0xe3, 0x97, 0x64, 0x36, 0x9e, 0x33, 0xa0); +EXTERN_GUID(MF_SA_D3D11_BINDFLAGS, 0xeacf97ad, 0x065c, 0x4408, 0xbe, 0xe3, 0xfd, 0xcb, 0xfd, 0x12, 0x8b, 0xe2); +EXTERN_GUID(MF_SA_D3D11_HW_PROTECTED, 0x3a8ba9d9, 0x92ca, 0x4307, 0xa3, 0x91, 0x69, 0x99, 0xdb, 0xf3, 0xb6, 0xce); +EXTERN_GUID(MF_SA_D3D11_SHARED, 0x7b8f32c3, 0x6d96, 0x4b89, 0x92, 0x03, 0xdd, 0x38, 0xb6, 0x14, 0x14, 0xf3); +EXTERN_GUID(MF_SA_D3D11_SHARED_WITHOUT_MUTEX, 0x39dbd44d, 0x2e44, 0x4931, 0xa4, 0xc8, 0x35, 0x2d, 0x3d, 0xc4, 0x21, 0x15); +EXTERN_GUID(MF_SA_D3D11_USAGE, 0xe85fe442, 0x2ca3, 0x486e, 0xa9, 0xc7, 0x10, 0x9d, 0xda, 0x60, 0x98, 0x80); +EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT, 0x18802c61, 0x324b, 0x4952, 0xab, 0xd0, 0x17, 0x6f, 0xf5, 0xc6, 0x96, 0xff); +EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT_PROGRESSIVE, 0xb172d58e, 0xfa77, 0x4e48, 0x8d, 0x2a, 0x1d, 0xf2, 0xd8, 0x50, 0xea, 0xc2); +EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT, 0x851745d5, 0xc3d6, 0x476d, 0x95, 0x27, 0x49, 0x8e, 0xf2, 0xd1, 0x0d, 0x18); +EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT_PROGRESSIVE, 0x0f5523a5, 0x1cb2, 0x47c5, 0xa5, 0x50, 0x2e, 0xeb, 0x84, 0xb4, 0xd1, 0x4a); +EXTERN_GUID(MF_TRANSFORM_ASYNC, 0xf81a699a, 0x649a, 0x497d, 0x8c, 0x73, 0x29, 0xf8, 0xfe, 0xd6, 0xad, 0x7a); +EXTERN_GUID(MF_TRANSFORM_ASYNC_UNLOCK, 0xe5666d6b, 0x3422, 0x4eb6, 0xa4, 0x21, 0xda, 0x7d, 0xb1, 0xf8, 0xe2, 0x07); +EXTERN_GUID(MF_TRANSFORM_CATEGORY_Attribute, 0xceabba49, 0x506d, 0x4757, 0xa6, 0xff, 0x66, 0xc1, 0x84, 0x98, 0x7e, 0x4e); +EXTERN_GUID(MF_TRANSFORM_FLAGS_Attribute, 0x9359bb7e, 0x6275, 0x46c4, 0xa0, 0x25, 0x1c, 0x01, 0xe4, 0x5f, 0x1a, 0x86); +EXTERN_GUID(MFT_CODEC_MERIT_Attribute, 0x88a7cb15, 0x7b07, 0x4a34, 0x91, 0x28, 0xe6, 0x4c, 0x67, 0x03, 0xc4, 0xd3); +EXTERN_GUID(MFT_CONNECTED_STREAM_ATTRIBUTE, 0x71eeb820, 0xa59f, 0x4de2, 0xbc, 0xec, 0x38, 0xdb, 0x1d, 0xd6, 0x11, 0xa4); +EXTERN_GUID(MFT_CONNECTED_TO_HW_STREAM, 0x34e6e728, 0x06d6, 0x4491, 0xa5, 0x53, 0x47, 0x95, 0x65, 0x0d, 0xb9, 0x12); +EXTERN_GUID(MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER, 0xef80833f, 0xf8fa, 0x44d9, 0x80, 0xd8, 0x41, 0xed, 0x62, 0x32, 0x67, 0x0c); +EXTERN_GUID(MFT_DECODER_FINAL_VIDEO_RESOLUTION_HINT, 0xdc2f8496, 0x15c4, 0x407a, 0xb6, 0xf0, 0x1b, 0x66, 0xab, 0x5f, 0xbf, 0x53); +EXTERN_GUID(MFT_ENCODER_SUPPORTS_CONFIG_EVENT, 0x86a355ae, 0x3a77, 0x4ec4, 0x9f, 0x31, 0x01, 0x14, 0x9a, 0x4e, 0x92, 0xde); +EXTERN_GUID(MFT_ENUM_HARDWARE_URL_Attribute, 0x2fb866ac, 0xb078, 0x4942, 0xab, 0x6c, 0x00, 0x3d, 0x05, 0xcd, 0xa6, 0x74); +EXTERN_GUID(MFT_ENUM_HARDWARE_VENDOR_ID_Attribute, 0x3aecb0cc, 0x035b, 0x4bcc, 0x81, 0x85, 0x2b, 0x8d, 0x55, 0x1e, 0xf3, 0xaf); +EXTERN_GUID(MFT_ENUM_TRANSCODE_ONLY_ATTRIBUTE, 0x111ea8cd, 0xb62a, 0x4bdb, 0x89, 0xf6, 0x67, 0xff, 0xcd, 0xc2, 0x45, 0x8b); +EXTERN_GUID(MFT_FIELDOFUSE_UNLOCK_Attribute, 0x8ec2e9fd, 0x9148, 0x410d, 0x83, 0x1e, 0x70, 0x24, 0x39, 0x46, 0x1a, 0x8e); +EXTERN_GUID(MFT_FRIENDLY_NAME_Attribute, 0x314ffbae, 0x5b41, 0x4c95, 0x9c, 0x19, 0x4e, 0x7d, 0x58, 0x6f, 0xac, 0xe3); +EXTERN_GUID(MFT_INPUT_TYPES_Attributes, 0x4276c9b1, 0x759d, 0x4bf3, 0x9c, 0xd0, 0x0d, 0x72, 0x3d, 0x13, 0x8f, 0x96); +EXTERN_GUID(MFT_OUTPUT_TYPES_Attributes, 0x8eae8cf3, 0xa44f, 0x4306, 0xba, 0x5c, 0xbf, 0x5d, 0xda, 0x24, 0x28, 0x18); +EXTERN_GUID(MFT_PREFERRED_ENCODER_PROFILE, 0x53004909, 0x1ef5, 0x46d7, 0xa1, 0x8e, 0x5a, 0x75, 0xf8, 0xb5, 0x90, 0x5f); +EXTERN_GUID(MFT_PREFERRED_OUTPUTTYPE_Attribute, 0x7e700499, 0x396a, 0x49ee, 0xb1, 0xb4, 0xf6, 0x28, 0x02, 0x1e, 0x8c, 0x9d); +EXTERN_GUID(MFT_PROCESS_LOCAL_Attribute, 0x543186e4, 0x4649, 0x4e65, 0xb5, 0x88, 0x4a, 0xa3, 0x52, 0xaf, 0xf3, 0x79); +EXTERN_GUID(MFT_REMUX_MARK_I_PICTURE_AS_CLEAN_POINT, 0x364e8f85, 0x3f2e, 0x436c, 0xb2, 0xa2, 0x44, 0x40, 0xa0, 0x12, 0xa9, 0xe8); +EXTERN_GUID(MFT_SUPPORT_3DVIDEO, 0x093f81b1, 0x4f2e, 0x4631, 0x81, 0x68, 0x79, 0x34, 0x03, 0x2a, 0x01, 0xd3); +EXTERN_GUID(MFT_TRANSFORM_CLSID_Attribute, 0x6821c42b, 0x65a4, 0x4e82, 0x99, 0xbc, 0x9a, 0x88, 0x20, 0x5e, 0xcd, 0x0c); +DEFINE_PROPERTYKEY(MFPKEY_CLSID, 0xc57a84c0, 0x1a80, 0x40a3, 0x97, 0xb5, 0x92, 0x72, 0xa4, 0x03, 0xc8, 0xae, 1); +DEFINE_PROPERTYKEY(MFPKEY_CATEGORY, 0xc57a84c0, 0x1a80, 0x40a3, 0x97, 0xb5, 0x92, 0x72, 0xa4, 0x03, 0xc8, 0xae, 2); +DEFINE_PROPERTYKEY(MFPKEY_EXATTRIBUTE_SUPPORTED, 0x456fe843, 0x3c87, 0x40c0, 0x94, 0x9d, 0x14, 0x09, 0xc9, 0x7d, 0xab, 0x2c, 1); +DEFINE_PROPERTYKEY(MFPKEY_MULTICHANNEL_CHANNEL_MASK, 0x58bdaf8c, 0x3224, 0x4692, 0x86, 0xd0, 0x44, 0xd6, 0x5c, 0x5b, 0xf8, 0x2b, 1); /* Begin additional prototypes for all interfaces */ diff --git a/mingw-w64-headers/include/mftransform.idl b/mingw-w64-headers/include/mftransform.idl index 28961db37..0dd83a70f 100644 --- a/mingw-w64-headers/include/mftransform.idl +++ b/mingw-w64-headers/include/mftransform.idl @@ -1,93 +1,123 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. +/* + * Copyright 2017 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ import "mfobjects.idl"; -cpp_quote("") -enum _MFT_DRAIN_TYPE { - MFT_DRAIN_PRODUCE_TAILS = 0x00000000, - MFT_DRAIN_NO_TAILS = 0x00000001 -}; +cpp_quote("#define MFT_OUTPUT_BOUND_LOWER_UNBOUNDED MINLONGLONG") +cpp_quote("#define MFT_OUTPUT_BOUND_UPPER_UNBOUNDED MAXLONGLONG") -cpp_quote("") -enum _MFT_INPUT_STATUS_FLAGS { - MFT_INPUT_STATUS_ACCEPT_DATA = 0x00000001 -}; - -cpp_quote("") -enum _MFT_INPUT_DATA_BUFFER_FLAGS { - MFT_INPUT_DATA_BUFFER_PLACEHOLDER = 0xFFFFFFFF -}; - -cpp_quote("") -enum _MFT_OUTPUT_STREAM_INFO_FLAGS { - MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x00000001, - MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, - MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 0x00000004, - MFT_OUTPUT_STREAM_DISCARDABLE = 0x00000008, - MFT_OUTPUT_STREAM_OPTIONAL = 0x00000010, - MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 0x00000100, - MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 0x00000200, - MFT_OUTPUT_STREAM_LAZY_READ = 0x00000400, - MFT_OUTPUT_STREAM_REMOVABLE = 0x00000800 -}; - -cpp_quote("") -enum _MFT_OUTPUT_STATUS_FLAGS { - MFT_OUTPUT_STATUS_SAMPLE_READY = 0x00000001 -}; - -cpp_quote("") -enum _MFT_OUTPUT_DATA_BUFFER_FLAGS { - MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x01000000, - MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x00000100, - MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x00000200, - MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x00000300 -}; - -cpp_quote("") -enum _MFT_INPUT_STREAM_INFO_FLAGS { - MFT_INPUT_STREAM_WHOLE_SAMPLES = 0x00000001, - MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, - MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE = 0x00000004, - MFT_INPUT_STREAM_HOLDS_BUFFERS = 0x00000008, - MFT_INPUT_STREAM_DOES_NOT_ADDREF = 0x00000100, - MFT_INPUT_STREAM_REMOVABLE = 0x00000200, - MFT_INPUT_STREAM_OPTIONAL = 0x00000400, - MFT_INPUT_STREAM_PROCESSES_IN_PLACE = 0x00000800 -}; - -cpp_quote("") -enum _MFT_SET_TYPE_FLAGS { - MFT_SET_TYPE_TEST_ONLY = 0x00000001 -}; - -cpp_quote("") -enum _MFT_PROCESS_OUTPUT_STATUS { - MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS = 0x00000100 -}; - -cpp_quote("") -enum _MFT_PROCESS_OUTPUT_FLAGS { - MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001, - MFT_PROCESS_OUTPUT_REGENERATE_LAST_OUTPUT = 0x00000002 -}; - -typedef enum _MFT_MESSAGE_TYPE { - MFT_MESSAGE_COMMAND_FLUSH = 0x00000000, - MFT_MESSAGE_COMMAND_DRAIN = 0x00000001, - MFT_MESSAGE_SET_D3D_MANAGER = 0x00000002, - MFT_MESSAGE_NOTIFY_BEGIN_STREAMING = 0x10000000, - MFT_MESSAGE_NOTIFY_END_STREAMING = 0x10000001, - MFT_MESSAGE_NOTIFY_END_OF_STREAM = 0x10000002, - MFT_MESSAGE_NOTIFY_START_OF_STREAM = 0x10000003, - MFT_MESSAGE_COMMAND_MARKER = 0x20000000 +typedef [v1_enum] enum _MFT_MESSAGE_TYPE +{ + MFT_MESSAGE_COMMAND_FLUSH = 0x00000000, + MFT_MESSAGE_COMMAND_DRAIN = 0x00000001, + MFT_MESSAGE_SET_D3D_MANAGER = 0x00000002, + MFT_MESSAGE_DROP_SAMPLES = 0x00000003, + MFT_MESSAGE_COMMAND_TICK = 0x00000004, + MFT_MESSAGE_NOTIFY_BEGIN_STREAMING = 0x10000000, + MFT_MESSAGE_NOTIFY_END_STREAMING = 0x10000001, + MFT_MESSAGE_NOTIFY_END_OF_STREAM = 0x10000002, + MFT_MESSAGE_NOTIFY_START_OF_STREAM = 0x10000003, + MFT_MESSAGE_NOTIFY_RELEASE_RESOURCES = 0x10000004, + MFT_MESSAGE_NOTIFY_REACQUIRE_RESOURCES = 0x10000005, + MFT_MESSAGE_NOTIFY_EVENT = 0x10000006, + MFT_MESSAGE_COMMAND_SET_OUTPUT_STREAM_STATE = 0x10000007, + MFT_MESSAGE_COMMAND_FLUSH_OUTPUT_STREAM = 0x10000008, + MFT_MESSAGE_COMMAND_MARKER = 0x20000000 } MFT_MESSAGE_TYPE; -typedef struct _MFT_INPUT_STREAM_INFO { +enum _MFT_SET_TYPE_FLAGS +{ + MFT_SET_TYPE_TEST_ONLY = 0x00000001, +}; + +enum _MFT_INPUT_STREAM_INFO_FLAGS +{ + MFT_INPUT_STREAM_WHOLE_SAMPLES = 0x00000001, + MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, + MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE = 0x00000004, + MFT_INPUT_STREAM_HOLDS_BUFFERS = 0x00000008, + MFT_INPUT_STREAM_DOES_NOT_ADDREF = 0x00000100, + MFT_INPUT_STREAM_REMOVABLE = 0x00000200, + MFT_INPUT_STREAM_OPTIONAL = 0x00000400, + MFT_INPUT_STREAM_PROCESSES_IN_PLACE = 0x00000800 +}; + +enum _MFT_INPUT_STATUS_FLAGS +{ + MFT_INPUT_STATUS_ACCEPT_DATA = 0x00000001, +}; + +enum _MFT_INPUT_DATA_BUFFER_FLAGS +{ + MFT_INPUT_DATA_BUFFER_PLACEHOLDER = 0xffffffff, +}; + +enum _MFT_OUTPUT_STREAM_INFO_FLAGS +{ + MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x00000001, + MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, + MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 0x00000004, + MFT_OUTPUT_STREAM_DISCARDABLE = 0x00000008, + MFT_OUTPUT_STREAM_OPTIONAL = 0x00000010, + MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 0x00000100, + MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 0x00000200, + MFT_OUTPUT_STREAM_LAZY_READ = 0x00000400, + MFT_OUTPUT_STREAM_REMOVABLE = 0x00000800 +}; + +enum _MFT_OUTPUT_DATA_BUFFER_FLAGS +{ + MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x01000000, + MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x00000100, + MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x00000200, + MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x00000300 +}; + +enum _MFT_OUTPUT_STATUS_FLAGS +{ + MFT_OUTPUT_STATUS_SAMPLE_READY = 0x00000001 +}; + +enum _MFT_PROCESS_OUTPUT_FLAGS +{ + MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001, + MFT_PROCESS_OUTPUT_REGENERATE_LAST_OUTPUT = 0x00000002 +}; + +enum _MFT_PROCESS_OUTPUT_STATUS +{ + MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS = 0x00000100 +}; + +enum _MFT_DRAIN_TYPE +{ + MFT_DRAIN_PRODUCE_TAILS = 0x00000000, + MFT_DRAIN_NO_TAILS = 0x00000001 +}; + +typedef enum _MF3DVideoOutputType +{ + MF3DVideoOutputType_BaseView, + MF3DVideoOutputType_Stereo +} MF3DVideoOutputType; + +typedef struct _MFT_INPUT_STREAM_INFO +{ LONGLONG hnsMaxLatency; DWORD dwFlags; DWORD cbSize; @@ -95,18 +125,20 @@ typedef struct _MFT_INPUT_STREAM_INFO { DWORD cbAlignment; } MFT_INPUT_STREAM_INFO; -typedef struct _MFT_OUTPUT_STREAM_INFO { +typedef struct _MFT_OUTPUT_STREAM_INFO +{ DWORD dwFlags; DWORD cbSize; DWORD cbAlignment; } MFT_OUTPUT_STREAM_INFO; -typedef struct _MFT_OUTPUT_DATA_BUFFER { +typedef struct _MFT_OUTPUT_DATA_BUFFER +{ DWORD dwStreamID; IMFSample *pSample; DWORD dwStatus; IMFCollection *pEvents; -} MFT_OUTPUT_DATA_BUFFER; +} MFT_OUTPUT_DATA_BUFFER, *PMFT_OUTPUT_DATA_BUFFER; [ object, @@ -114,72 +146,96 @@ typedef struct _MFT_OUTPUT_DATA_BUFFER { ] interface IMFTransform : IUnknown { - HRESULT GetStreamLimits([out] DWORD *pdwInputMinimum, [out] DWORD *pdwInputMaximum, - [out] DWORD *pdwOutputMinimum, [out] DWORD *pdwOutputMaximum); - HRESULT GetStreamCount([out] DWORD *pcInputStreams, [out] DWORD *pcOutputStreams); - HRESULT GetStreamIDs(DWORD dwInputIDArraySize, [out,size_is(dwInputIDArraySize)] DWORD *pdwInputIDs, - DWORD dwOutputIDArraySize, [out,size_is(dwOutputIDArraySize)] DWORD *pdwOutputIDs); - HRESULT GetInputStreamInfo(DWORD dwInputStreamID, [out] MFT_INPUT_STREAM_INFO *pStreamInfo); - HRESULT GetOutputStreamInfo(DWORD dwOutputStreamID, [out] MFT_OUTPUT_STREAM_INFO *pStreamInfo); - HRESULT GetAttributes([out] IMFAttributes **pAttributes); - HRESULT GetInputStreamAttributes(DWORD dwInputStreamID, [out] IMFAttributes **pAttributes); - HRESULT GetOutputStreamAttributes(DWORD dwOutputStreamID, [out] IMFAttributes **pAttributes); - HRESULT DeleteInputStream(DWORD dwStreamID); - HRESULT AddInputStreams(DWORD cStreams, [in] DWORD *adwStreamIDs); - HRESULT GetInputAvailableType(DWORD dwInputStreamID, DWORD dwTypeIndex, [out] IMFMediaType **ppType); - HRESULT GetOutputAvailableType(DWORD dwOutputStreamID, DWORD dwTypeIndex, [out] IMFMediaType **ppType); - HRESULT SetInputType(DWORD dwInputStreamID, [in] IMFMediaType *pType, DWORD dwFlags); - HRESULT SetOutputType(DWORD dwOutputStreamID, [in] IMFMediaType *pType, DWORD dwFlags); - HRESULT GetInputCurrentType(DWORD dwInputStreamID, [out] IMFMediaType **ppType); - HRESULT GetOutputCurrentType(DWORD dwOutputStreamID, [out] IMFMediaType **ppType); - HRESULT GetInputStatus(DWORD dwInputStreamID, [out] DWORD *pdwFlags); - HRESULT GetOutputStatus([out] DWORD *pdwFlags); - HRESULT SetOutputBounds(LONGLONG hnsLowerBound, LONGLONG hnsUpperBound); - HRESULT ProcessEvent(DWORD dwInputStreamID, [in] IMFMediaEvent *pEvent); - HRESULT ProcessMessage(MFT_MESSAGE_TYPE eMessage, ULONG_PTR ulParam); - [local] HRESULT ProcessInput(DWORD dwInputStreamID, IMFSample *pSample, DWORD dwFlags); - [local] HRESULT ProcessOutput(DWORD dwFlags, DWORD cOutputBufferCount, - [in,out,size_is(cOutputBufferCount)] MFT_OUTPUT_DATA_BUFFER *pOutputSamples, - [out] DWORD *pdwStatus); + HRESULT GetStreamLimits([out] DWORD *input_minimum, [out] DWORD *input_maximum, [out] DWORD *output_minimum, + [out] DWORD *output_maximum); + + HRESULT GetStreamCount([out] DWORD *inputs, [out] DWORD *outputs); + + HRESULT GetStreamIDs([in] DWORD input_size, [out,size_is(input_size)] DWORD *inputs, + [in] DWORD output_size, [out,size_is(output_size)] DWORD *outputs); + + HRESULT GetInputStreamInfo([in] DWORD id, [out] MFT_INPUT_STREAM_INFO *info); + + HRESULT GetOutputStreamInfo([in] DWORD id, [out] MFT_OUTPUT_STREAM_INFO *info); + + HRESULT GetAttributes([out] IMFAttributes **attributes); + + HRESULT GetInputStreamAttributes([in] DWORD id, [out] IMFAttributes **attributes); + + HRESULT GetOutputStreamAttributes([in] DWORD id, [out] IMFAttributes **attributes); + + HRESULT DeleteInputStream([in] DWORD id); + + HRESULT AddInputStreams([in] DWORD streams, [in] DWORD *ids); + + HRESULT GetInputAvailableType([in] DWORD id, [in] DWORD index, [out] IMFMediaType **type); + + HRESULT GetOutputAvailableType([in] DWORD id, [in] DWORD index, [out] IMFMediaType **type); + + HRESULT SetInputType(DWORD id, [in] IMFMediaType *type, [in] DWORD flags); + + HRESULT SetOutputType(DWORD id, [in] IMFMediaType *type, [in] DWORD flags); + + HRESULT GetInputCurrentType([in] DWORD id, [out] IMFMediaType **type); + + HRESULT GetOutputCurrentType([in] DWORD id, [out] IMFMediaType **type); + + HRESULT GetInputStatus([in] DWORD id, [out] DWORD *flags); + + HRESULT GetOutputStatus([out] DWORD *flags); + + HRESULT SetOutputBounds([in] LONGLONG lower, [in] LONGLONG upper); + + HRESULT ProcessEvent([in] DWORD id, [in] IMFMediaEvent *event); + + HRESULT ProcessMessage([in] MFT_MESSAGE_TYPE message, [in] ULONG_PTR param); + + [local] HRESULT ProcessInput([in] DWORD id, [in] IMFSample *sample, [in] DWORD flags); + + [local] HRESULT ProcessOutput([in] DWORD flags, [in] DWORD count, [in,out,size_is(count)] MFT_OUTPUT_DATA_BUFFER *samples, + [out] DWORD *status); } -cpp_quote("DEFINE_PROPERTYKEY(MFPKEY_CLSID, 0xc57a84c0,0x1a80,0x40a3,0x97,0xb5,0x92,0x72,0xa4,0x3,0xc8,0xae, 1);") -cpp_quote("DEFINE_PROPERTYKEY(MFPKEY_CATEGORY, 0xc57a84c0,0x1a80,0x40a3,0x97,0xb5,0x92,0x72,0xa4,0x3,0xc8,0xae, 2);") -cpp_quote("DEFINE_PROPERTYKEY(MFPKEY_EXATTRIBUTE_SUPPORTED, 0x456fe843,0x3c87,0x40c0,0x94,0x9d,0x14,0x9,0xc9,0x7d,0xab,0x2c, 1);") -cpp_quote("DEFINE_PROPERTYKEY(MFPKEY_MULTICHANNEL_CHANNEL_MASK, 0x58bdaf8c,0x3224,0x4692,0x86,0xd0,0x44,0xd6,0x5c,0x5b,0xf8,0x2b, 1);") +cpp_quote("HRESULT WINAPI MFCreateTransformActivate(IMFActivate **activate);") -cpp_quote("EXTERN_GUID(MF_SA_D3D_AWARE, 0xeaa35c29,0x775e,0x488e,0x9b,0x61,0xb3,0x28,0x3e,0x49,0x58,0x3b);") -cpp_quote("EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT, 0x18802c61,0x324b,0x4952,0xab,0xd0,0x17,0x6f,0xf5,0xc6,0x96,0xff);") -cpp_quote("EXTERN_GUID(MF_TRANSFORM_ASYNC, 0xf81a699a,0x649a,0x497d,0x8c,0x73,0x29,0xf8,0xfe,0xd6,0xad,0x7a);") -cpp_quote("EXTERN_GUID(MF_TRANSFORM_ASYNC_UNLOCK, 0xe5666d6b,0x3422,0x4eb6,0xa4,0x21,0xda,0x7d,0xb1,0xf8,0xe2,0x7);") -cpp_quote("EXTERN_GUID(MF_TRANSFORM_FLAGS_Attribute, 0x9359bb7e,0x6275,0x46c4,0xa0,0x25,0x1c,0x1,0xe4,0x5f,0x1a,0x86);") -cpp_quote("EXTERN_GUID(MF_TRANSFORM_CATEGORY_Attribute, 0xceabba49,0x506d,0x4757,0xa6,0xff,0x66,0xc1,0x84,0x98,0x7e,0x4e);") -cpp_quote("EXTERN_GUID(MFT_TRANSFORM_CLSID_Attribute, 0x6821c42b,0x65a4,0x4e82,0x99,0xbc,0x9a,0x88,0x20,0x5e,0xcd,0xc);") -cpp_quote("EXTERN_GUID(MFT_INPUT_TYPES_Attributes, 0x4276c9b1,0x759d,0x4bf3,0x9c,0xd0,0xd,0x72,0x3d,0x13,0x8f,0x96);") -cpp_quote("EXTERN_GUID(MFT_OUTPUT_TYPES_Attributes, 0x8eae8cf3,0xa44f,0x4306,0xba,0x5c,0xbf,0x5d,0xda,0x24,0x28,0x18);") -cpp_quote("EXTERN_GUID(MFT_ENUM_HARDWARE_URL_Attribute, 0x2fb866ac,0xb078,0x4942,0xab,0x6c,0x0,0x3d,0x5,0xcd,0xa6,0x74);") -cpp_quote("EXTERN_GUID(MFT_FRIENDLY_NAME_Attribute, 0x314ffbae,0x5b41,0x4c95,0x9c,0x19,0x4e,0x7d,0x58,0x6f,0xac,0xe3);") -cpp_quote("EXTERN_GUID(MFT_CONNECTED_STREAM_ATTRIBUTE, 0x71eeb820,0xa59f,0x4de2,0xbc,0xec,0x38,0xdb,0x1d,0xd6,0x11,0xa4);") -cpp_quote("EXTERN_GUID(MFT_CONNECTED_TO_HW_STREAM, 0x34e6e728,0x6d6,0x4491,0xa5,0x53,0x47,0x95,0x65,0xd,0xb9,0x12);") -cpp_quote("EXTERN_GUID(MFT_PREFERRED_OUTPUTTYPE_Attribute, 0x7e700499,0x396a,0x49ee,0xb1,0xb4,0xf6,0x28,0x2,0x1e,0x8c,0x9d);") -cpp_quote("EXTERN_GUID(MFT_PROCESS_LOCAL_Attribute, 0x543186e4,0x4649,0x4e65,0xb5,0x88,0x4a,0xa3,0x52,0xaf,0xf3,0x79);") -cpp_quote("EXTERN_GUID(MFT_PREFERRED_ENCODER_PROFILE, 0x53004909,0x1ef5,0x46d7,0xa1,0x8e,0x5a,0x75,0xf8,0xb5,0x90,0x5f);") -cpp_quote("EXTERN_GUID(MFT_HW_TIMESTAMP_WITH_QPC_Attribute, 0x8d030fb8,0xcc43,0x4258,0xa2,0x2e,0x92,0x10,0xbe,0xf8,0x9b,0xe4);") -cpp_quote("EXTERN_GUID(MFT_FIELDOFUSE_UNLOCK_Attribute, 0x8ec2e9fd,0x9148,0x410d,0x83,0x1e,0x70,0x24,0x39,0x46,0x1a,0x8e);") -cpp_quote("EXTERN_GUID(MFT_CODEC_MERIT_Attribute, 0x88a7cb15,0x7b07,0x4a34,0x91,0x28,0xe6,0x4c,0x67,0x3,0xc4,0xd3);") -cpp_quote("EXTERN_GUID(MFT_ENUM_TRANSCODE_ONLY_ATTRIBUTE, 0x111ea8cd,0xb62a,0x4bdb,0x89,0xf6,0x67,0xff,0xcd,0xc2,0x45,0x8b);") -cpp_quote("EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT_PROGRESSIVE, 0xb172d58e,0xfa77,0x4e48,0x8d,0x2a,0x1d,0xf2,0xd8,0x50,0xea,0xc2);") -cpp_quote("EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT, 0x851745d5,0xc3d6,0x476d,0x95,0x27,0x49,0x8e,0xf2,0xd1,0xd,0x18);") -cpp_quote("EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT_PROGRESSIVE, 0xf5523a5,0x1cb2,0x47c5,0xa5,0x50,0x2e,0xeb,0x84,0xb4,0xd1,0x4a);") -cpp_quote("EXTERN_GUID(MF_SA_D3D11_BINDFLAGS, 0xeacf97ad,0x065c,0x4408,0xbe,0xe3,0xfd,0xcb,0xfd,0x12,0x8b,0xe2);") -cpp_quote("EXTERN_GUID(MF_SA_D3D11_USAGE, 0xe85fe442,0x2ca3,0x486e,0xa9,0xc7,0x10,0x9d,0xda,0x60,0x98,0x80);") -cpp_quote("EXTERN_GUID(MF_SA_D3D11_AWARE, 0x206b4fc8,0xfcf9,0x4c51,0xaf,0xe3,0x97,0x64,0x36,0x9e,0x33,0xa0);") -cpp_quote("EXTERN_GUID(MF_SA_D3D11_SHARED, 0x7b8f32c3,0x6d96,0x4b89,0x92,0x3,0xdd,0x38,0xb6,0x14,0x14,0xf3 );") -cpp_quote("EXTERN_GUID(MF_SA_D3D11_SHARED_WITHOUT_MUTEX, 0x39dbd44d,0x2e44,0x4931,0xa4,0xc8,0x35,0x2d,0x3d,0xc4,0x21,0x15);") -cpp_quote("EXTERN_GUID(MF_SA_D3D11_ALLOW_DYNAMIC_YUV_TEXTURE, 0xce06d49f,0x613,0x4b9d,0x86,0xa6,0xd8,0xc4,0xf9,0xc1,0x0,0x75);") -cpp_quote("EXTERN_GUID(MF_SA_D3D11_HW_PROTECTED, 0x3a8ba9d9,0x92ca,0x4307,0xa3,0x91,0x69,0x99,0xdb,0xf3,0xb6,0xce);") +cpp_quote("EXTERN_GUID(MF_SA_BUFFERS_PER_SAMPLE, 0x873c5171, 0x1e3d, 0x4e25, 0x98, 0x8d, 0xb4, 0x33, 0xce, 0x04, 0x19, 0x83);") +cpp_quote("EXTERN_GUID(MF_SA_D3D_AWARE, 0xeaa35c29, 0x775e, 0x488e, 0x9b, 0x61, 0xb3, 0x28, 0x3e, 0x49, 0x58, 0x3b);") +cpp_quote("EXTERN_GUID(MF_SA_D3D11_ALLOW_DYNAMIC_YUV_TEXTURE, 0xce06d49f, 0x0613, 0x4b9d, 0x86, 0xa6, 0xd8, 0xc4, 0xf9, 0xc1, 0x00, 0x75);") +cpp_quote("EXTERN_GUID(MF_SA_D3D11_AWARE, 0x206b4fc8, 0xfcf9, 0x4c51, 0xaf, 0xe3, 0x97, 0x64, 0x36, 0x9e, 0x33, 0xa0);") +cpp_quote("EXTERN_GUID(MF_SA_D3D11_BINDFLAGS, 0xeacf97ad, 0x065c, 0x4408, 0xbe, 0xe3, 0xfd, 0xcb, 0xfd, 0x12, 0x8b, 0xe2);") +cpp_quote("EXTERN_GUID(MF_SA_D3D11_HW_PROTECTED, 0x3a8ba9d9, 0x92ca, 0x4307, 0xa3, 0x91, 0x69, 0x99, 0xdb, 0xf3, 0xb6, 0xce);") +cpp_quote("EXTERN_GUID(MF_SA_D3D11_SHARED, 0x7b8f32c3, 0x6d96, 0x4b89, 0x92, 0x03, 0xdd, 0x38, 0xb6, 0x14, 0x14, 0xf3);") +cpp_quote("EXTERN_GUID(MF_SA_D3D11_SHARED_WITHOUT_MUTEX, 0x39dbd44d, 0x2e44, 0x4931, 0xa4, 0xc8, 0x35, 0x2d, 0x3d, 0xc4, 0x21, 0x15);") +cpp_quote("EXTERN_GUID(MF_SA_D3D11_USAGE, 0xe85fe442, 0x2ca3, 0x486e, 0xa9, 0xc7, 0x10, 0x9d, 0xda, 0x60, 0x98, 0x80);") +cpp_quote("EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT, 0x18802c61, 0x324b, 0x4952, 0xab, 0xd0, 0x17, 0x6f, 0xf5, 0xc6, 0x96, 0xff);") +cpp_quote("EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT_PROGRESSIVE, 0xb172d58e, 0xfa77, 0x4e48, 0x8d, 0x2a, 0x1d, 0xf2, 0xd8, 0x50, 0xea, 0xc2);") +cpp_quote("EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT, 0x851745d5, 0xc3d6, 0x476d, 0x95, 0x27, 0x49, 0x8e, 0xf2, 0xd1, 0x0d, 0x18);") +cpp_quote("EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT_PROGRESSIVE, 0x0f5523a5, 0x1cb2, 0x47c5, 0xa5, 0x50, 0x2e, 0xeb, 0x84, 0xb4, 0xd1, 0x4a);") +cpp_quote("EXTERN_GUID(MF_TRANSFORM_ASYNC, 0xf81a699a, 0x649a, 0x497d, 0x8c, 0x73, 0x29, 0xf8, 0xfe, 0xd6, 0xad, 0x7a);") +cpp_quote("EXTERN_GUID(MF_TRANSFORM_ASYNC_UNLOCK, 0xe5666d6b, 0x3422, 0x4eb6, 0xa4, 0x21, 0xda, 0x7d, 0xb1, 0xf8, 0xe2, 0x07);") +cpp_quote("EXTERN_GUID(MF_TRANSFORM_CATEGORY_Attribute, 0xceabba49, 0x506d, 0x4757, 0xa6, 0xff, 0x66, 0xc1, 0x84, 0x98, 0x7e, 0x4e);") +cpp_quote("EXTERN_GUID(MF_TRANSFORM_FLAGS_Attribute, 0x9359bb7e, 0x6275, 0x46c4, 0xa0, 0x25, 0x1c, 0x01, 0xe4, 0x5f, 0x1a, 0x86);") +cpp_quote("EXTERN_GUID(MFT_CODEC_MERIT_Attribute, 0x88a7cb15, 0x7b07, 0x4a34, 0x91, 0x28, 0xe6, 0x4c, 0x67, 0x03, 0xc4, 0xd3);") +cpp_quote("EXTERN_GUID(MFT_CONNECTED_STREAM_ATTRIBUTE, 0x71eeb820, 0xa59f, 0x4de2, 0xbc, 0xec, 0x38, 0xdb, 0x1d, 0xd6, 0x11, 0xa4);") +cpp_quote("EXTERN_GUID(MFT_CONNECTED_TO_HW_STREAM, 0x34e6e728, 0x06d6, 0x4491, 0xa5, 0x53, 0x47, 0x95, 0x65, 0x0d, 0xb9, 0x12);") +cpp_quote("EXTERN_GUID(MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER, 0xef80833f, 0xf8fa, 0x44d9, 0x80, 0xd8, 0x41, 0xed, 0x62, 0x32, 0x67, 0x0c);") +cpp_quote("EXTERN_GUID(MFT_DECODER_FINAL_VIDEO_RESOLUTION_HINT, 0xdc2f8496, 0x15c4, 0x407a, 0xb6, 0xf0, 0x1b, 0x66, 0xab, 0x5f, 0xbf, 0x53);") +cpp_quote("EXTERN_GUID(MFT_ENCODER_SUPPORTS_CONFIG_EVENT, 0x86a355ae, 0x3a77, 0x4ec4, 0x9f, 0x31, 0x01, 0x14, 0x9a, 0x4e, 0x92, 0xde);") +cpp_quote("EXTERN_GUID(MFT_ENUM_HARDWARE_URL_Attribute, 0x2fb866ac, 0xb078, 0x4942, 0xab, 0x6c, 0x00, 0x3d, 0x05, 0xcd, 0xa6, 0x74);") +cpp_quote("EXTERN_GUID(MFT_ENUM_HARDWARE_VENDOR_ID_Attribute, 0x3aecb0cc, 0x035b, 0x4bcc, 0x81, 0x85, 0x2b, 0x8d, 0x55, 0x1e, 0xf3, 0xaf);") +cpp_quote("EXTERN_GUID(MFT_ENUM_TRANSCODE_ONLY_ATTRIBUTE, 0x111ea8cd, 0xb62a, 0x4bdb, 0x89, 0xf6, 0x67, 0xff, 0xcd, 0xc2, 0x45, 0x8b);") +cpp_quote("EXTERN_GUID(MFT_FIELDOFUSE_UNLOCK_Attribute, 0x8ec2e9fd, 0x9148, 0x410d, 0x83, 0x1e, 0x70, 0x24, 0x39, 0x46, 0x1a, 0x8e);") +cpp_quote("EXTERN_GUID(MFT_FRIENDLY_NAME_Attribute, 0x314ffbae, 0x5b41, 0x4c95, 0x9c, 0x19, 0x4e, 0x7d, 0x58, 0x6f, 0xac, 0xe3);") +cpp_quote("EXTERN_GUID(MFT_INPUT_TYPES_Attributes, 0x4276c9b1, 0x759d, 0x4bf3, 0x9c, 0xd0, 0x0d, 0x72, 0x3d, 0x13, 0x8f, 0x96);") +cpp_quote("EXTERN_GUID(MFT_OUTPUT_TYPES_Attributes, 0x8eae8cf3, 0xa44f, 0x4306, 0xba, 0x5c, 0xbf, 0x5d, 0xda, 0x24, 0x28, 0x18);") +cpp_quote("EXTERN_GUID(MFT_PREFERRED_ENCODER_PROFILE, 0x53004909, 0x1ef5, 0x46d7, 0xa1, 0x8e, 0x5a, 0x75, 0xf8, 0xb5, 0x90, 0x5f);") +cpp_quote("EXTERN_GUID(MFT_PREFERRED_OUTPUTTYPE_Attribute, 0x7e700499, 0x396a, 0x49ee, 0xb1, 0xb4, 0xf6, 0x28, 0x02, 0x1e, 0x8c, 0x9d);") +cpp_quote("EXTERN_GUID(MFT_PROCESS_LOCAL_Attribute, 0x543186e4, 0x4649, 0x4e65, 0xb5, 0x88, 0x4a, 0xa3, 0x52, 0xaf, 0xf3, 0x79);") +cpp_quote("EXTERN_GUID(MFT_REMUX_MARK_I_PICTURE_AS_CLEAN_POINT, 0x364e8f85, 0x3f2e, 0x436c, 0xb2, 0xa2, 0x44, 0x40, 0xa0, 0x12, 0xa9, 0xe8);") +cpp_quote("EXTERN_GUID(MFT_SUPPORT_3DVIDEO, 0x093f81b1, 0x4f2e, 0x4631, 0x81, 0x68, 0x79, 0x34, 0x03, 0x2a, 0x01, 0xd3);") +cpp_quote("EXTERN_GUID(MFT_TRANSFORM_CLSID_Attribute, 0x6821c42b, 0x65a4, 0x4e82, 0x99, 0xbc, 0x9a, 0x88, 0x20, 0x5e, 0xcd, 0x0c);") - -cpp_quote("#if (WINVER >= 0x0601)") -cpp_quote("HRESULT WINAPI MFCreateTransformActivate(IMFActivate **ppActivate);") -cpp_quote("#endif /*(WINVER >= 0x0601)*/") +cpp_quote("DEFINE_PROPERTYKEY(MFPKEY_CLSID, 0xc57a84c0, 0x1a80, 0x40a3, 0x97, 0xb5, 0x92, 0x72, 0xa4, 0x03, 0xc8, 0xae, 1);") +cpp_quote("DEFINE_PROPERTYKEY(MFPKEY_CATEGORY, 0xc57a84c0, 0x1a80, 0x40a3, 0x97, 0xb5, 0x92, 0x72, 0xa4, 0x03, 0xc8, 0xae, 2);") +cpp_quote("DEFINE_PROPERTYKEY(MFPKEY_EXATTRIBUTE_SUPPORTED, 0x456fe843, 0x3c87, 0x40c0, 0x94, 0x9d, 0x14, 0x09, 0xc9, 0x7d, 0xab, 0x2c, 1);") +cpp_quote("DEFINE_PROPERTYKEY(MFPKEY_MULTICHANNEL_CHANNEL_MASK, 0x58bdaf8c, 0x3224, 0x4692, 0x86, 0xd0, 0x44, 0xd6, 0x5c, 0x5b, 0xf8, 0x2b, 1);") diff --git a/mingw-w64-headers/include/windows.foundation.h b/mingw-w64-headers/include/windows.foundation.h index 62755e59a..5c06d738e 100644 --- a/mingw-w64-headers/include/windows.foundation.h +++ b/mingw-w64-headers/include/windows.foundation.h @@ -58,6 +58,21 @@ namespace ABI { #endif /* __cplusplus */ #endif +#ifndef ____x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_FWD_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler; +#ifdef __cplusplus +#define __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler ABI::Windows::Foundation::IDeferralCompletedHandler +namespace ABI { + namespace Windows { + namespace Foundation { + interface IDeferralCompletedHandler; + } + } +} +#endif /* __cplusplus */ +#endif + #ifndef ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__ #define ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__ typedef interface __x_ABI_CWindows_CFoundation_CIStringable __x_ABI_CWindows_CFoundation_CIStringable; @@ -88,6 +103,36 @@ namespace ABI { #endif /* __cplusplus */ #endif +#ifndef ____x_ABI_CWindows_CFoundation_CIDeferral_FWD_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIDeferral_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CFoundation_CIDeferral __x_ABI_CWindows_CFoundation_CIDeferral; +#ifdef __cplusplus +#define __x_ABI_CWindows_CFoundation_CIDeferral ABI::Windows::Foundation::IDeferral +namespace ABI { + namespace Windows { + namespace Foundation { + interface IDeferral; + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CFoundation_CIDeferralFactory_FWD_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIDeferralFactory_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CFoundation_CIDeferralFactory __x_ABI_CWindows_CFoundation_CIDeferralFactory; +#ifdef __cplusplus +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory ABI::Windows::Foundation::IDeferralFactory +namespace ABI { + namespace Windows { + namespace Foundation { + interface IDeferralFactory; + } + } +} +#endif /* __cplusplus */ +#endif + #ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__ #define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__ typedef interface __x_ABI_CWindows_CFoundation_CIAsyncAction __x_ABI_CWindows_CFoundation_CIAsyncAction; @@ -148,6 +193,21 @@ namespace ABI { #endif /* __cplusplus */ #endif +#ifndef ____x_ABI_CWindows_CFoundation_CDeferral_FWD_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CDeferral_FWD_DEFINED__ +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Foundation { + class Deferral; + } + } +} +#else +typedef struct __x_ABI_CWindows_CFoundation_CDeferral __x_ABI_CWindows_CFoundation_CDeferral; +#endif /* defined __cplusplus */ +#endif /* defined ____x_ABI_CWindows_CFoundation_CDeferral_FWD_DEFINED__ */ + #ifndef ____x_ABI_CWindows_CFoundation_CMemoryBuffer_FWD_DEFINED__ #define ____x_ABI_CWindows_CFoundation_CMemoryBuffer_FWD_DEFINED__ #ifdef __cplusplus @@ -655,6 +715,36 @@ namespace ABI { #endif /* __cplusplus */ #endif +#ifndef ____x_ABI_CWindows_CFoundation_CIDeferral_FWD_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIDeferral_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CFoundation_CIDeferral __x_ABI_CWindows_CFoundation_CIDeferral; +#ifdef __cplusplus +#define __x_ABI_CWindows_CFoundation_CIDeferral ABI::Windows::Foundation::IDeferral +namespace ABI { + namespace Windows { + namespace Foundation { + interface IDeferral; + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CFoundation_CIDeferralFactory_FWD_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIDeferralFactory_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CFoundation_CIDeferralFactory __x_ABI_CWindows_CFoundation_CIDeferralFactory; +#ifdef __cplusplus +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory ABI::Windows::Foundation::IDeferralFactory +namespace ABI { + namespace Windows { + namespace Foundation { + interface IDeferralFactory; + } + } +} +#endif /* __cplusplus */ +#endif + #ifndef ____x_ABI_CWindows_CFoundation_CIMemoryBuffer_FWD_DEFINED__ #define ____x_ABI_CWindows_CFoundation_CIMemoryBuffer_FWD_DEFINED__ typedef interface __x_ABI_CWindows_CFoundation_CIMemoryBuffer __x_ABI_CWindows_CFoundation_CIMemoryBuffer; @@ -908,6 +998,100 @@ static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncActionCompleted #endif /* ____x_ABI_CWindows_CFoundation_CIAsyncActionCompletedHandler_INTERFACE_DEFINED__ */ #endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */ +/***************************************************************************** + * IDeferralCompletedHandler interface + */ +#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 +#ifndef ____x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_INTERFACE_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler, 0xed32a372, 0xf3c8, 0x4faa, 0x9c,0xfb, 0x47,0x01,0x48,0xda,0x38,0x88); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + MIDL_INTERFACE("ed32a372-f3c8-4faa-9cfb-470148da3888") + IDeferralCompletedHandler : public IUnknown + { + virtual HRESULT STDMETHODCALLTYPE Invoke( + ) = 0; + + }; + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler, 0xed32a372, 0xf3c8, 0x4faa, 0x9c,0xfb, 0x47,0x01,0x48,0xda,0x38,0x88) +#endif +#else +typedef struct __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandlerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler *This); + + /*** IDeferralCompletedHandler methods ***/ + HRESULT (STDMETHODCALLTYPE *Invoke)( + __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler *This); + + END_INTERFACE +} __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandlerVtbl; + +interface __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler { + CONST_VTBL __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandlerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_Release(This) (This)->lpVtbl->Release(This) +/*** IDeferralCompletedHandler methods ***/ +#define __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_Invoke(This) (This)->lpVtbl->Invoke(This) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_QueryInterface(__x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_AddRef(__x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_Release(__x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler* This) { + return This->lpVtbl->Release(This); +} +/*** IDeferralCompletedHandler methods ***/ +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_Invoke(__x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler* This) { + return This->lpVtbl->Invoke(This); +} +#endif +#ifdef WIDL_using_Windows_Foundation +#define IID_IDeferralCompletedHandler IID___x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler +#define IDeferralCompletedHandlerVtbl __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandlerVtbl +#define IDeferralCompletedHandler __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler +#define IDeferralCompletedHandler_QueryInterface __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_QueryInterface +#define IDeferralCompletedHandler_AddRef __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_AddRef +#define IDeferralCompletedHandler_Release __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_Release +#define IDeferralCompletedHandler_Invoke __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_Invoke +#endif /* WIDL_using_Windows_Foundation */ +#endif + +#endif + +#endif /* ____x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler_INTERFACE_DEFINED__ */ +#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */ + #if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 #ifdef __cplusplus } /* extern "C" */ @@ -1387,6 +1571,259 @@ static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIClosable_Close(__x_A #endif /* ____x_ABI_CWindows_CFoundation_CIClosable_INTERFACE_DEFINED__ */ #endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */ +/***************************************************************************** + * IDeferral interface + */ +#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 +#ifndef ____x_ABI_CWindows_CFoundation_CIDeferral_INTERFACE_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIDeferral_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIDeferral, 0xd6269732, 0x3b7f, 0x46a7, 0xb4,0x0b, 0x4f,0xdc,0xa2,0xa2,0xc6,0x93); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + MIDL_INTERFACE("d6269732-3b7f-46a7-b40b-4fdca2a2c693") + IDeferral : public IInspectable + { + virtual HRESULT STDMETHODCALLTYPE Complete( + ) = 0; + + }; + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CIDeferral, 0xd6269732, 0x3b7f, 0x46a7, 0xb4,0x0b, 0x4f,0xdc,0xa2,0xa2,0xc6,0x93) +#endif +#else +typedef struct __x_ABI_CWindows_CFoundation_CIDeferralVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __x_ABI_CWindows_CFoundation_CIDeferral *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __x_ABI_CWindows_CFoundation_CIDeferral *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __x_ABI_CWindows_CFoundation_CIDeferral *This); + + /*** IInspectable methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIids)( + __x_ABI_CWindows_CFoundation_CIDeferral *This, + ULONG *iidCount, + IID **iids); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( + __x_ABI_CWindows_CFoundation_CIDeferral *This, + HSTRING *className); + + HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( + __x_ABI_CWindows_CFoundation_CIDeferral *This, + TrustLevel *trustLevel); + + /*** IDeferral methods ***/ + HRESULT (STDMETHODCALLTYPE *Complete)( + __x_ABI_CWindows_CFoundation_CIDeferral *This); + + END_INTERFACE +} __x_ABI_CWindows_CFoundation_CIDeferralVtbl; + +interface __x_ABI_CWindows_CFoundation_CIDeferral { + CONST_VTBL __x_ABI_CWindows_CFoundation_CIDeferralVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __x_ABI_CWindows_CFoundation_CIDeferral_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __x_ABI_CWindows_CFoundation_CIDeferral_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __x_ABI_CWindows_CFoundation_CIDeferral_Release(This) (This)->lpVtbl->Release(This) +/*** IInspectable methods ***/ +#define __x_ABI_CWindows_CFoundation_CIDeferral_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids) +#define __x_ABI_CWindows_CFoundation_CIDeferral_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className) +#define __x_ABI_CWindows_CFoundation_CIDeferral_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel) +/*** IDeferral methods ***/ +#define __x_ABI_CWindows_CFoundation_CIDeferral_Complete(This) (This)->lpVtbl->Complete(This) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferral_QueryInterface(__x_ABI_CWindows_CFoundation_CIDeferral* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG __x_ABI_CWindows_CFoundation_CIDeferral_AddRef(__x_ABI_CWindows_CFoundation_CIDeferral* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG __x_ABI_CWindows_CFoundation_CIDeferral_Release(__x_ABI_CWindows_CFoundation_CIDeferral* This) { + return This->lpVtbl->Release(This); +} +/*** IInspectable methods ***/ +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferral_GetIids(__x_ABI_CWindows_CFoundation_CIDeferral* This,ULONG *iidCount,IID **iids) { + return This->lpVtbl->GetIids(This,iidCount,iids); +} +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferral_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIDeferral* This,HSTRING *className) { + return This->lpVtbl->GetRuntimeClassName(This,className); +} +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferral_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIDeferral* This,TrustLevel *trustLevel) { + return This->lpVtbl->GetTrustLevel(This,trustLevel); +} +/*** IDeferral methods ***/ +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferral_Complete(__x_ABI_CWindows_CFoundation_CIDeferral* This) { + return This->lpVtbl->Complete(This); +} +#endif +#ifdef WIDL_using_Windows_Foundation +#define IID_IDeferral IID___x_ABI_CWindows_CFoundation_CIDeferral +#define IDeferralVtbl __x_ABI_CWindows_CFoundation_CIDeferralVtbl +#define IDeferral __x_ABI_CWindows_CFoundation_CIDeferral +#define IDeferral_QueryInterface __x_ABI_CWindows_CFoundation_CIDeferral_QueryInterface +#define IDeferral_AddRef __x_ABI_CWindows_CFoundation_CIDeferral_AddRef +#define IDeferral_Release __x_ABI_CWindows_CFoundation_CIDeferral_Release +#define IDeferral_GetIids __x_ABI_CWindows_CFoundation_CIDeferral_GetIids +#define IDeferral_GetRuntimeClassName __x_ABI_CWindows_CFoundation_CIDeferral_GetRuntimeClassName +#define IDeferral_GetTrustLevel __x_ABI_CWindows_CFoundation_CIDeferral_GetTrustLevel +#define IDeferral_Complete __x_ABI_CWindows_CFoundation_CIDeferral_Complete +#endif /* WIDL_using_Windows_Foundation */ +#endif + +#endif + +#endif /* ____x_ABI_CWindows_CFoundation_CIDeferral_INTERFACE_DEFINED__ */ +#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */ + +/***************************************************************************** + * IDeferralFactory interface + */ +#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 +#ifndef ____x_ABI_CWindows_CFoundation_CIDeferralFactory_INTERFACE_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIDeferralFactory_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIDeferralFactory, 0x65a1ecc5, 0x3fb5, 0x4832, 0x8c,0xa9, 0xf0,0x61,0xb2,0x81,0xd1,0x3a); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + MIDL_INTERFACE("65a1ecc5-3fb5-4832-8ca9-f061b281d13a") + IDeferralFactory : public IInspectable + { + virtual HRESULT STDMETHODCALLTYPE Create( + ABI::Windows::Foundation::IDeferralCompletedHandler *handler, + ABI::Windows::Foundation::IDeferral **result) = 0; + + }; + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CIDeferralFactory, 0x65a1ecc5, 0x3fb5, 0x4832, 0x8c,0xa9, 0xf0,0x61,0xb2,0x81,0xd1,0x3a) +#endif +#else +typedef struct __x_ABI_CWindows_CFoundation_CIDeferralFactoryVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __x_ABI_CWindows_CFoundation_CIDeferralFactory *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __x_ABI_CWindows_CFoundation_CIDeferralFactory *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __x_ABI_CWindows_CFoundation_CIDeferralFactory *This); + + /*** IInspectable methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIids)( + __x_ABI_CWindows_CFoundation_CIDeferralFactory *This, + ULONG *iidCount, + IID **iids); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( + __x_ABI_CWindows_CFoundation_CIDeferralFactory *This, + HSTRING *className); + + HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( + __x_ABI_CWindows_CFoundation_CIDeferralFactory *This, + TrustLevel *trustLevel); + + /*** IDeferralFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *Create)( + __x_ABI_CWindows_CFoundation_CIDeferralFactory *This, + __x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler *handler, + __x_ABI_CWindows_CFoundation_CIDeferral **result); + + END_INTERFACE +} __x_ABI_CWindows_CFoundation_CIDeferralFactoryVtbl; + +interface __x_ABI_CWindows_CFoundation_CIDeferralFactory { + CONST_VTBL __x_ABI_CWindows_CFoundation_CIDeferralFactoryVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory_Release(This) (This)->lpVtbl->Release(This) +/*** IInspectable methods ***/ +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids) +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className) +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel) +/*** IDeferralFactory methods ***/ +#define __x_ABI_CWindows_CFoundation_CIDeferralFactory_Create(This,handler,result) (This)->lpVtbl->Create(This,handler,result) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferralFactory_QueryInterface(__x_ABI_CWindows_CFoundation_CIDeferralFactory* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG __x_ABI_CWindows_CFoundation_CIDeferralFactory_AddRef(__x_ABI_CWindows_CFoundation_CIDeferralFactory* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG __x_ABI_CWindows_CFoundation_CIDeferralFactory_Release(__x_ABI_CWindows_CFoundation_CIDeferralFactory* This) { + return This->lpVtbl->Release(This); +} +/*** IInspectable methods ***/ +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetIids(__x_ABI_CWindows_CFoundation_CIDeferralFactory* This,ULONG *iidCount,IID **iids) { + return This->lpVtbl->GetIids(This,iidCount,iids); +} +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIDeferralFactory* This,HSTRING *className) { + return This->lpVtbl->GetRuntimeClassName(This,className); +} +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIDeferralFactory* This,TrustLevel *trustLevel) { + return This->lpVtbl->GetTrustLevel(This,trustLevel); +} +/*** IDeferralFactory methods ***/ +static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIDeferralFactory_Create(__x_ABI_CWindows_CFoundation_CIDeferralFactory* This,__x_ABI_CWindows_CFoundation_CIDeferralCompletedHandler *handler,__x_ABI_CWindows_CFoundation_CIDeferral **result) { + return This->lpVtbl->Create(This,handler,result); +} +#endif +#ifdef WIDL_using_Windows_Foundation +#define IID_IDeferralFactory IID___x_ABI_CWindows_CFoundation_CIDeferralFactory +#define IDeferralFactoryVtbl __x_ABI_CWindows_CFoundation_CIDeferralFactoryVtbl +#define IDeferralFactory __x_ABI_CWindows_CFoundation_CIDeferralFactory +#define IDeferralFactory_QueryInterface __x_ABI_CWindows_CFoundation_CIDeferralFactory_QueryInterface +#define IDeferralFactory_AddRef __x_ABI_CWindows_CFoundation_CIDeferralFactory_AddRef +#define IDeferralFactory_Release __x_ABI_CWindows_CFoundation_CIDeferralFactory_Release +#define IDeferralFactory_GetIids __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetIids +#define IDeferralFactory_GetRuntimeClassName __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetRuntimeClassName +#define IDeferralFactory_GetTrustLevel __x_ABI_CWindows_CFoundation_CIDeferralFactory_GetTrustLevel +#define IDeferralFactory_Create __x_ABI_CWindows_CFoundation_CIDeferralFactory_Create +#endif /* WIDL_using_Windows_Foundation */ +#endif + +#endif + +#endif /* ____x_ABI_CWindows_CFoundation_CIDeferralFactory_INTERFACE_DEFINED__ */ +#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */ + /***************************************************************************** * IAsyncAction interface */ @@ -1942,6 +2379,22 @@ static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIMemoryBufferReferenc #endif /* ____x_ABI_CWindows_CFoundation_CIMemoryBufferReference_INTERFACE_DEFINED__ */ #endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */ +/* + * Class Windows.Foundation.Deferral + */ +#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 +#ifndef RUNTIMECLASS_Windows_Foundation_Deferral_DEFINED +#define RUNTIMECLASS_Windows_Foundation_Deferral_DEFINED +#if !defined(_MSC_VER) && !defined(__MINGW32__) +static const WCHAR RuntimeClass_Windows_Foundation_Deferral[] = {'W','i','n','d','o','w','s','.','F','o','u','n','d','a','t','i','o','n','.','D','e','f','e','r','r','a','l',0}; +#elif defined(__GNUC__) && !defined(__cplusplus) +const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Foundation_Deferral[] = L"Windows.Foundation.Deferral"; +#else +extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Foundation_Deferral[] = {'W','i','n','d','o','w','s','.','F','o','u','n','d','a','t','i','o','n','.','D','e','f','e','r','r','a','l',0}; +#endif +#endif /* RUNTIMECLASS_Windows_Foundation_Deferral_DEFINED */ +#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */ + /* * Class Windows.Foundation.MemoryBuffer */ diff --git a/mingw-w64-headers/include/windows.foundation.idl b/mingw-w64-headers/include/windows.foundation.idl index 96bdd1167..d89541740 100644 --- a/mingw-w64-headers/include/windows.foundation.idl +++ b/mingw-w64-headers/include/windows.foundation.idl @@ -62,10 +62,13 @@ namespace Windows.Foundation { typedef struct TimeSpan TimeSpan; interface IAsyncAction; interface IClosable; + interface IDeferral; + interface IDeferralFactory; interface IMemoryBuffer; interface IMemoryBufferFactory; interface IMemoryBufferReference; interface IStringable; + runtimeclass Deferral; runtimeclass MemoryBuffer; declare { @@ -94,6 +97,12 @@ namespace Windows.Foundation { ] delegate HRESULT AsyncActionCompletedHandler([in] Windows.Foundation.IAsyncAction *action, [in] AsyncStatus status); + [ + contract(Windows.Foundation.FoundationContract, 1.0), + uuid(ed32a372-f3c8-4faa-9cfb-470148da3888) + ] + delegate HRESULT DeferralCompletedHandler(); + [contract(Windows.Foundation.FoundationContract, 1.0)] enum PropertyType { @@ -193,6 +202,27 @@ namespace Windows.Foundation { HRESULT Close(); } + [ + contract(Windows.Foundation.FoundationContract, 1.0), + exclusiveto(Windows.Foundation.Deferral), + uuid(d6269732-3b7f-46a7-b40b-4fdca2a2c693) + ] + interface IDeferral : IInspectable + requires Windows.Foundation.IClosable + { + HRESULT Complete(); + } + + [ + contract(Windows.Foundation.FoundationContract, 1.0), + exclusiveto(Windows.Foundation.Deferral), + uuid(65a1ecc5-3fb5-4832-8ca9-f061b281d13a) + ] + interface IDeferralFactory : IInspectable + { + HRESULT Create([in] Windows.Foundation.DeferralCompletedHandler *handler, [out, retval] Windows.Foundation.Deferral **result); + } + [ contract(Windows.Foundation.FoundationContract, 1.0), uuid(5a648006-843a-4da9-865b-9d26e5dfad7b) @@ -239,6 +269,17 @@ namespace Windows.Foundation { [eventremove] HRESULT Closed([in] EventRegistrationToken cookie); } + [ + activatable(Windows.Foundation.IDeferralFactory, Windows.Foundation.FoundationContract, 1.0), + contract(Windows.Foundation.FoundationContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass Deferral + { + [default] interface Windows.Foundation.IDeferral; + interface Windows.Foundation.IClosable; + } + [ activatable(Windows.Foundation.IMemoryBufferFactory, Windows.Foundation.UniversalApiContract, 1.0), contract(Windows.Foundation.UniversalApiContract, 1.0),