' ########################################################################################
' Microsoft Windows
' File: evr.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_evr_PBI)
#DEFINE PBX_evr_PBI
%EQUATE `EVR_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/Unknwn.inc"
#INCLUDE ONCE "Legacy/System/PropIdl.inc"
#INCLUDE ONCE "Legacy/System/mfidl.inc"
#INCLUDE ONCE "Legacy/System/mftransform.inc"
#INCLUDE ONCE "Legacy/System/strmif.inc"
$MR_VIDEO_RENDER_SERVICE = GUID$("{1092A86C-AB1A-459A-A336-831FBC4D11FF}")
$MR_VIDEO_MIXER_SERVICE = GUID$("{073CD2FC-6CF4-40B7-8859-E89552C841F8}")
$MR_VIDEO_ACCELERATION_SERVICE = GUID$("{EFEF5175-5C7D-4CE2-BBBD-34FF8BCA6554}")
$MR_BUFFER_SERVICE = GUID$("{A562248C-9AC6-4FFC-9FBA-3AF8F8AD1A4D}")
$VIDEO_ZOOM_RECT = GUID$("{7AAA1638-1B7F-4C93-BD89-5B9C9FB6FCF0}")
' ########################################################################################
' Interface name = IMFVideoPositionMapper
' IID = 1F6A9F17-E70B-4E24-8AE4-0B2C3BA7A4AE
' Inherited interface = IMFMediaEventGenerator
' ########################################################################################
#IF NOT %DEF(%IMFVideoPositionMapper_INTERFACE_DEFINED)
 %IMFVideoPositionMapper_INTERFACE_DEFINED = 1
$IID_IMFVideoPositionMapper = GUID$("{1F6A9F17-E70B-4E24-8AE4-0B2C3BA7A4AE}")
INTERFACE IMFVideoPositionMapper $IID_IMFVideoPositionMapper
 INHERIT IUnknown
 ' =====================================================================================
 METHOD MapOutputCoordinateToInputStream ( ' VTable offset = 12
 BYVAL xOut AS SINGLE
 , BYVAL yOut AS SINGLE
 , BYVAL dwOutputStreamIndex AS DWORD
 , BYVAL dwInputStreamIndex AS DWORD
 , BYREF pxIn AS SINGLE
 , BYREF pyIn AS SINGLE
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFVideoPositionMapper_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IMFVideoDeviceID
' IID = A38D9567-5A9C-4F3C-B293-8EB415B279BA
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMFVideoDeviceID_INTERFACE_DEFINED)
 %IMFVideoDeviceID_INTERFACE_DEFINED = 1
$IID_IMFVideoDeviceID = GUID$("{A38D9567-5A9C-4F3C-B293-8EB415B279BA}")
INTERFACE IMFVideoDeviceID $IID_IMFVideoDeviceID
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetDeviceID ( ' VTable offset = 12
 BYREF pDeviceID AS GUID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFVideoDeviceID_INTERFACE_DEFINED__ */
' enum MFVideoAspectRatioMode
%EQUATE `MFVideoARMode_None = 0
%EQUATE `MFVideoARMode_PreservePicture = &H1
%EQUATE `MFVideoARMode_PreservePixel = &H2
%EQUATE `MFVideoARMode_NonLinearStretch = &H4
%EQUATE `MFVideoARMode_Mask = &H7
' enum MFVideoRenderPrefs
%EQUATE `MFVideoRenderPrefs_DoNotRenderBorder = &H1
%EQUATE `MFVideoRenderPrefs_DoNotClipToDevice = &H2
%EQUATE `MFVideoRenderPrefs_AllowOutputThrottling = &H4
%EQUATE `MFVideoRenderPrefs_ForceOutputThrottling = &H8
%EQUATE `MFVideoRenderPrefs_ForceBatching = &H10
%EQUATE `MFVideoRenderPrefs_AllowBatching = &H20
%EQUATE `MFVideoRenderPrefs_ForceScaling = &H40
%EQUATE `MFVideoRenderPrefs_AllowScaling = &H80
%EQUATE `MFVideoRenderPrefs_DoNotRepaintOnStop = &H100
%EQUATE `MFVideoRenderPrefs_Mask = &H1ff
' // Size = 16 bytes
TYPE MFVideoNormalizedRect DWORD
 left AS SINGLE ' float
 top AS SINGLE ' float
 right AS SINGLE ' float
 bottom AS SINGLE ' float
END TYPE
' ########################################################################################
' Interface name = IMFVideoDisplayControl
' IID = A490B1E4-AB84-4D31-A1B2-181E03B1077A
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMFVideoDisplayControl_INTERFACE_DEFINED)
 %IMFVideoDisplayControl_INTERFACE_DEFINED = 1
$IID_IMFVideoDisplayControl = GUID$("{A490B1E4-AB84-4D31-A1B2-181E03B1077A}")
INTERFACE IMFVideoDisplayControl $IID_IMFVideoDisplayControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetNativeVideoSize ( ' VTable offset = 12
 BYREF pszVideo AS SIZE
 , BYREF pszARVideo AS SIZE
 ) AS LONG
 ' =====================================================================================
 METHOD GetIdealVideoSize ( ' VTable offset = 16
 BYREF pszMin AS SIZE
 , BYREF pszMax AS SIZE
 ) AS LONG
 ' =====================================================================================
 METHOD SetVideoPosition ( ' VTable offset = 20
 BYREF MFVideoNormalizedRect AS MFVideoNormalizedRect
 , BYREF prcDest AS RECT
 ) AS LONG
 ' =====================================================================================
 METHOD GetVideoPosition ( ' VTable offset = 24
 BYREF pnrcSource AS MFVideoNormalizedRect
 , BYREF prcDest AS RECT
 ) AS LONG
 ' =====================================================================================
 METHOD SetAspectRatioMode ( ' VTable offset = 28
 BYVAL dwAspectRatioMode AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAspectRatioMode ( ' VTable offset = 32
 BYREF pdwAspectRatioMode AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetVideoWindow ( ' VTable offset = 36
 BYVAL hwndVideo AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetVideoWindow ( ' VTable offset = 40
 BYREF phwndVideo AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RepaintVideo ( ' VTable offset = 44
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentImage ( ' VTable offset = 48
 BYREF pBih AS BITMAPINFOHEADER
 , BYREF pDib AS DWORD
 , BYREF pcbDib AS DWORD
 , BYREF pTimeStamp AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD SetBorderColor ( ' VTable offset = 52
 BYVAL Clr AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetBorderColor ( ' VTable offset = 56
 BYREF pClr AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetRenderingPrefs ( ' VTable offset = 60
 BYVAL dwRenderFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRenderingPrefs ( ' VTable offset = 64
 BYREF pdwRenderFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetFullscreen ( ' VTable offset = 68
 BYVAL fFullscreen AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetFullscreen ( ' VTable offset = 72
 BYREF pfFullscreen AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFVideoDisplayControl_INTERFACE_DEFINED__ */
' enum MFVP_MESSAGE_TYPE
%EQUATE `MFVP_MESSAGE_FLUSH = 0
%EQUATE `MFVP_MESSAGE_INVALIDATEMEDIATYPE = &H1
%EQUATE `MFVP_MESSAGE_PROCESSINPUTNOTIFY = &H2
%EQUATE `MFVP_MESSAGE_BEGINSTREAMING = &H3
%EQUATE `MFVP_MESSAGE_ENDSTREAMING = &H4
%EQUATE `MFVP_MESSAGE_ENDOFSTREAM = &H5
%EQUATE `MFVP_MESSAGE_STEP = &H6
%EQUATE `MFVP_MESSAGE_CANCELSTEP = &H7
' ########################################################################################
' Interface name = IMFVideoPresenter
' IID = 29AFF080-182A-4A5D-AF3B-448F3A6346CB
' Inherited interface = IMFClockStateSink
' ########################################################################################
#IF NOT %DEF(%IMFVideoPresenter_INTERFACE_DEFINED)
 %IMFVideoPresenter_INTERFACE_DEFINED = 1
$IID_IMFVideoPresenter = GUID$("{29AFF080-182A-4A5D-AF3B-448F3A6346CB}")
INTERFACE IMFVideoPresenter $IID_IMFVideoPresenter
 INHERIT IUnknown
 ' =====================================================================================
 ' IMFClockStateSink methods
 ' =====================================================================================
 METHOD OnClockStart ( ' VTable offset = 12
 BYVAL hnsSystemTime AS QUAD
 , BYVAL llClockStartOffset AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD OnClockStop ( ' VTable offset = 16
 BYVAL hnsSystemTime AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD OnClockPause ( ' VTable offset = 20
 BYVAL hnsSystemTime AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD OnClockRestart ( ' VTable offset = 24
 BYVAL hnsSystemTime AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD OnClockSetRate ( ' VTable offset = 28
 BYVAL hnsSystemTime AS QUAD
 , BYVAL flRate AS SINGLE
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IMFVideoPresenter methods
 ' =====================================================================================
 METHOD ProcessMessage ( ' VTable offset = 32
 BYVAL eMessage AS LONG ' MFVP_MESSAGE_TYPE eMessage
 , BYVAL ulParam AS DWORD ' ULONG_PTR ulParam
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentMediaType ( ' VTable offset = 36
 BYREF ppMediaType AS IMFVideoMediaType
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFVideoPresenter_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IMFDesiredSample
' IID = 56C294D0-753E-4260-8D61-A3D8820B1D54
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMFDesiredSample_INTERFACE_DEFINED)
 %IMFDesiredSample_INTERFACE_DEFINED = 1
$IID_IMFDesiredSample = GUID$("{56C294D0-753E-4260-8D61-A3D8820B1D54}")
INTERFACE IMFDesiredSample $IID_IMFDesiredSample
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetDesiredSampleTimeAndDuration ( ' VTable offset = 12
 BYREF phnsSampleTime AS QUAD
 , BYREF phnsSampleDuration AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD SetDesiredSampleTimeAndDuration ( ' VTable offset = 16
 BYVAL hnsSampleTime AS QUAD
 , BYVAL hnsSampleDuration AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD Clear ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFDesiredSample_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IMFTrackedSample
' IID = 245BF8E9-0755-40F7-88A5-AE0F18D55E17
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMFTrackedSample_INTERFACE_DEFINED)
 %IMFTrackedSample_INTERFACE_DEFINED = 1
$IID_IMFTrackedSample = GUID$("{245BF8E9-0755-40F7-88A5-AE0F18D55E17}")
INTERFACE IMFTrackedSample $IID_IMFTrackedSample
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetAllocator ( ' VTable offset = 12
 BYVAL pSampleAllocator AS IMFAsyncCallback
 , BYVAL pUnkState AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFTrackedSample_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IMFVideoMixerControl
' IID = A5C6C53F-C202-4AA5-9695-175BA8C508A5
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMFVideoMixerControl_INTERFACE_DEFINED)
 %IMFVideoMixerControl_INTERFACE_DEFINED = 1
$IID_IMFVideoMixerControl = GUID$("{A5C6C53F-C202-4AA5-9695-175BA8C508A5}")
INTERFACE IMFVideoMixerControl $IID_IMFVideoMixerControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetStreamZOrder ( ' VTable offset = 12
 BYVAL dwStreamID AS DWORD
 , BYVAL dwZ AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStreamZOrder ( ' VTable offset = 16
 BYVAL dwStreamID AS DWORD
 , BYREF pdwZ AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetStreamOutputRect ( ' VTable offset = 20
 BYVAL dwStreamID AS DWORD
 , BYREF MFVideoNormalizedRect AS MFVideoNormalizedRect
 ) AS LONG
 ' =====================================================================================
 METHOD GetStreamOutputRect ( ' VTable offset = 24
 BYVAL dwStreamID AS DWORD
 , BYREF pnrcOutput AS MFVideoNormalizedRect
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFVideoMixerControl_INTERFACE_DEFINED__ */
' enum MFVideoMixPrefs
%EQUATE `MFVideoMixPrefs_ForceHalfInterlace = &H1
%EQUATE `MFVideoMixPrefs_AllowDropToHalfInterlace = &H2
%EQUATE `MFVideoMixPrefs_AllowDropToBob = &H4
%EQUATE `MFVideoMixPrefs_ForceBob = &H8
%EQUATE `MFVideoMixPrefs_Mask = &Hf
' ########################################################################################
' Interface name = IMFVideoMixerControl2
' IID = 8459616D-966E-4930-B658-54FA7E5A16D3
' Inherited interface = IMFVideoMixerControl
' ########################################################################################
#IF NOT %DEF(%IMFVideoMixerControl2_INTERFACE_DEFINED)
 %IMFVideoMixerControl2_INTERFACE_DEFINED = 1
$IID_IMFVideoMixerControl2 = GUID$("{8459616D-966E-4930-B658-54FA7E5A16D3}")
INTERFACE IMFVideoMixerControl2 $IID_IMFVideoMixerControl2
 INHERIT IUnknown
 ' =====================================================================================
 ' IMFVideoMixerControl Methods
 ' =====================================================================================
 METHOD SetStreamZOrder ( ' VTable offset = 12
 BYVAL dwStreamID AS DWORD
 , BYVAL dwZ AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStreamZOrder ( ' VTable offset = 16
 BYVAL dwStreamID AS DWORD
 , BYREF pdwZ AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetStreamOutputRect ( ' VTable offset = 20
 BYVAL dwStreamID AS DWORD
 , BYREF MFVideoNormalizedRect AS MFVideoNormalizedRect
 ) AS LONG
 ' =====================================================================================
 METHOD GetStreamOutputRect ( ' VTable offset = 24
 BYVAL dwStreamID AS DWORD
 , BYREF pnrcOutput AS MFVideoNormalizedRect
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IMFVideoMixerControl2 Methods
 ' =====================================================================================
 METHOD SetMixingPrefs ( ' VTable offset = 28
 BYVAL dwMixFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMixingPrefs ( ' VTable offset = 32
 BYREF pdwMixFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFVideoMixerControl2_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IMFVideoRenderer
' IID = DFDFD197-A9CA-43D8-B341-6AF3503792CD
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMFVideoRenderer_INTERFACE_DEFINED)
 %IMFVideoRenderer_INTERFACE_DEFINED = 1
$IID_IMFVideoRenderer = GUID$("{DFDFD197-A9CA-43D8-B341-6AF3503792CD}")
INTERFACE IMFVideoRenderer $IID_IMFVideoRenderer
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InitializeRenderer ( ' VTable offset = 12
 BYVAL pVideoMixer AS IMFTransform
 , BYVAL pVideoPresenter AS IMFVideoPresenter
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFVideoRenderer_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IEVRFilterConfig
' IID = 83E91E85-82C1-4EA7-801D-85DC50B75086
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEVRFilterConfig_INTERFACE_DEFINED)
 %IEVRFilterConfig_INTERFACE_DEFINED = 1
$IID_IEVRFilterConfig = GUID$("{83E91E85-82C1-4EA7-801D-85DC50B75086}")
INTERFACE IEVRFilterConfig $IID_IEVRFilterConfig
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetNumberOfStreams ( ' VTable offset = 12
 BYVAL dwMaxStreams AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetNumberOfStreams ( ' VTable offset = 16
 BYREF pdwMaxStreams AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEVRFilterConfig_INTERFACE_DEFINED__ */
' enum EVRFilterConfig_Prefs
%EQUATE `EVRFilterConfigPrefs_EnableQoS = &H1
%EQUATE `EVRFilterConfigPrefs_Mask = &H1
' ########################################################################################
' Interface name = IEVRFilterConfigEx
' IID = AEA36028-796D-454F-BEEE-B48071E24304
' Inherited interface = IEVRFilterConfig
' ########################################################################################
#IF NOT %DEF(%IEVRFilterConfigEx_INTERFACE_DEFINED)
 %IEVRFilterConfigEx_INTERFACE_DEFINED = 1
$IID_IEVRFilterConfigEx = GUID$("{AEA36028-796D-454F-BEEE-B48071E24304}")
INTERFACE IEVRFilterConfigEx $IID_IEVRFilterConfigEx
 INHERIT IUnknown
 ' =====================================================================================
 ' IEVRFilterConfig Methods
 ' =====================================================================================
 METHOD SetNumberOfStreams ( ' VTable offset = 12
 BYVAL dwMaxStreams AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetNumberOfStreams ( ' VTable offset = 16
 BYREF pdwMaxStreams AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' IEVRFilterConfigEx Methods
 ' =====================================================================================
 METHOD SetConfigPrefs ( ' VTable offset = 20
 BYVAL dwConfigFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConfigPrefs ( ' VTable offset = 24
 BYREF pdwConfigFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEVRFilterConfigEx_INTERFACE_DEFINED__ */
' enum _MF_SERVICE_LOOKUP_TYPE
%EQUATE `MF_SERVICE_LOOKUP_UPSTREAM = 0
%EQUATE `MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = %MF_SERVICE_LOOKUP_UPSTREAM + 1
%EQUATE `MF_SERVICE_LOOKUP_DOWNSTREAM = %MF_SERVICE_LOOKUP_UPSTREAM_DIRECT + 1
%EQUATE `MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT = %MF_SERVICE_LOOKUP_DOWNSTREAM + 1
%EQUATE `MF_SERVICE_LOOKUP_ALL = %MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT + 1
%EQUATE `MF_SERVICE_LOOKUP_GLOBAL = %MF_SERVICE_LOOKUP_ALL + 1
' ########################################################################################
' Interface name = IMFTopologyServiceLookup
' IID = FA993889-4383-415A-A930-DD472A8CF6F7
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMFTopologyServiceLookup_INTERFACE_DEFINED)
 %IMFTopologyServiceLookup_INTERFACE_DEFINED = 1
$IID_IMFTopologyServiceLookup = GUID$("{FA993889-4383-415A-A930-DD472A8CF6F7}")
INTERFACE IMFTopologyServiceLookup $IID_IMFTopologyServiceLookup
 INHERIT IUnknown
 ' =====================================================================================
 METHOD LookupService ( ' VTable offset = 12
 BYVAL Type AS LONG
 , BYVAL dwIndex AS DWORD
 , BYREF guidService AS GUID
 , BYREF riid AS GUID
 , BYREF ppvObjects AS IUnknown
 , BYREF pnObjects AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFTopologyServiceLookup_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IMFTopologyServiceLookupClient
' IID = FA99388A-4383-415A-A930-DD472A8CF6F7
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMFTopologyServiceLookupClient_INTERFACE_DEFINED)
 %IMFTopologyServiceLookupClient_INTERFACE_DEFINED = 1
$IID_IMFTopologyServiceLookupClient = GUID$("{FA99388A-4383-415A-A930-DD472A8CF6F7}")
INTERFACE IMFTopologyServiceLookupClient $IID_IMFTopologyServiceLookupClient
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InitServicePointers ( ' VTable offset = 12
 BYVAL pLookup AS IMFTopologyServiceLookup
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseServicePointers ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IEVRTrustedVideoPlugin
' IID = 83A4CE40-7710-494B-A893-A472049AF630
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEVRTrustedVideoPlugin_INTERFACE_DEFINED)
 %IEVRTrustedVideoPlugin_INTERFACE_DEFINED = 1
$IID_IEVRTrustedVideoPlugin = GUID$("{83A4CE40-7710-494B-A893-A472049AF630}")
INTERFACE IEVRTrustedVideoPlugin $IID_IEVRTrustedVideoPlugin
 INHERIT IUnknown
 ' =====================================================================================
 METHOD IsInTrustedVideoMode ( ' VTable offset = 12
 BYREF pYes AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CanConstrict ( ' VTable offset = 16
 BYREF pYes AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetConstriction ( ' VTable offset = 20
 BYVAL dwKPix AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DisableImageExport ( ' VTable offset = 24
 BYVAL bDisable AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__ */
DECLARE FUNCTION MFCreateVideoPresenter LIB "evr.dll" ALIAS "MFCreateVideoPresenter" ( BYVAL pOwner AS IUnknown , BYREF riidDevice AS GUID , BYREF riid AS GUID , BYREF ppVideoPresenter AS ANY ) AS LONG
DECLARE FUNCTION MFCreateVideoMixer LIB "evr.dll" ALIAS "MFCreateVideoMixer" ( BYVAL pOwner AS IUnknown
 , BYREF riidDevice AS GUID
 , BYREF riid AS GUID
 , BYREF ppVideoMixer AS ANY
 ) AS LONG
DECLARE FUNCTION MFCreateVideoMixerAndPresenter LIB "evr.dll" ALIAS "MFCreateVideoMixerAndPresenter" ( BYVAL pMixerOwner AS IUnknown
 , BYVAL pPresenterOwner AS IUnknown
 , BYREF riidMixer AS GUID
 , BYREF ppvVideoMixer AS ANY
 , BYREF riidPresenter AS GUID
 , BYREF ppvVideoPresenter AS ANY
 ) AS LONG
DECLARE FUNCTION MFCreateVideoRenderer LIB "mf.dll" ALIAS "MFCreateVideoRenderer" ( BYREF riidRenderer AS GUID
 , BYREF ppVideoRenderer AS ANY
 ) AS LONG
DECLARE FUNCTION MFCreateVideoSampleFromSurface LIB "evr.dll" ALIAS "MFCreateVideoSampleFromSurface" ( BYVAL pUnkSurface AS IUnknown
 , BYREF ppSample AS IMFSample
 ) AS LONG
#ENDIF
