evr.h 68 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913
  1. /*** Autogenerated by WIDL 7.7 from include/evr.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __evr_h__
  14. #define __evr_h__
  15. /* Forward declarations */
  16. #ifndef __IMFVideoPositionMapper_FWD_DEFINED__
  17. #define __IMFVideoPositionMapper_FWD_DEFINED__
  18. typedef interface IMFVideoPositionMapper IMFVideoPositionMapper;
  19. #ifdef __cplusplus
  20. interface IMFVideoPositionMapper;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IMFVideoDeviceID_FWD_DEFINED__
  24. #define __IMFVideoDeviceID_FWD_DEFINED__
  25. typedef interface IMFVideoDeviceID IMFVideoDeviceID;
  26. #ifdef __cplusplus
  27. interface IMFVideoDeviceID;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IMFVideoDisplayControl_FWD_DEFINED__
  31. #define __IMFVideoDisplayControl_FWD_DEFINED__
  32. typedef interface IMFVideoDisplayControl IMFVideoDisplayControl;
  33. #ifdef __cplusplus
  34. interface IMFVideoDisplayControl;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IMFVideoPresenter_FWD_DEFINED__
  38. #define __IMFVideoPresenter_FWD_DEFINED__
  39. typedef interface IMFVideoPresenter IMFVideoPresenter;
  40. #ifdef __cplusplus
  41. interface IMFVideoPresenter;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IMFDesiredSample_FWD_DEFINED__
  45. #define __IMFDesiredSample_FWD_DEFINED__
  46. typedef interface IMFDesiredSample IMFDesiredSample;
  47. #ifdef __cplusplus
  48. interface IMFDesiredSample;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IMFTrackedSample_FWD_DEFINED__
  52. #define __IMFTrackedSample_FWD_DEFINED__
  53. typedef interface IMFTrackedSample IMFTrackedSample;
  54. #ifdef __cplusplus
  55. interface IMFTrackedSample;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IMFVideoMixerControl_FWD_DEFINED__
  59. #define __IMFVideoMixerControl_FWD_DEFINED__
  60. typedef interface IMFVideoMixerControl IMFVideoMixerControl;
  61. #ifdef __cplusplus
  62. interface IMFVideoMixerControl;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IMFVideoMixerControl2_FWD_DEFINED__
  66. #define __IMFVideoMixerControl2_FWD_DEFINED__
  67. typedef interface IMFVideoMixerControl2 IMFVideoMixerControl2;
  68. #ifdef __cplusplus
  69. interface IMFVideoMixerControl2;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IMFVideoRenderer_FWD_DEFINED__
  73. #define __IMFVideoRenderer_FWD_DEFINED__
  74. typedef interface IMFVideoRenderer IMFVideoRenderer;
  75. #ifdef __cplusplus
  76. interface IMFVideoRenderer;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IEVRFilterConfig_FWD_DEFINED__
  80. #define __IEVRFilterConfig_FWD_DEFINED__
  81. typedef interface IEVRFilterConfig IEVRFilterConfig;
  82. #ifdef __cplusplus
  83. interface IEVRFilterConfig;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __IEVRFilterConfigEx_FWD_DEFINED__
  87. #define __IEVRFilterConfigEx_FWD_DEFINED__
  88. typedef interface IEVRFilterConfigEx IEVRFilterConfigEx;
  89. #ifdef __cplusplus
  90. interface IEVRFilterConfigEx;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __IMFTopologyServiceLookup_FWD_DEFINED__
  94. #define __IMFTopologyServiceLookup_FWD_DEFINED__
  95. typedef interface IMFTopologyServiceLookup IMFTopologyServiceLookup;
  96. #ifdef __cplusplus
  97. interface IMFTopologyServiceLookup;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __IMFTopologyServiceLookupClient_FWD_DEFINED__
  101. #define __IMFTopologyServiceLookupClient_FWD_DEFINED__
  102. typedef interface IMFTopologyServiceLookupClient IMFTopologyServiceLookupClient;
  103. #ifdef __cplusplus
  104. interface IMFTopologyServiceLookupClient;
  105. #endif /* __cplusplus */
  106. #endif
  107. #ifndef __IEVRTrustedVideoPlugin_FWD_DEFINED__
  108. #define __IEVRTrustedVideoPlugin_FWD_DEFINED__
  109. typedef interface IEVRTrustedVideoPlugin IEVRTrustedVideoPlugin;
  110. #ifdef __cplusplus
  111. interface IEVRTrustedVideoPlugin;
  112. #endif /* __cplusplus */
  113. #endif
  114. /* Headers for imported files */
  115. #include <unknwn.h>
  116. #include <propidl.h>
  117. #include <mfidl.h>
  118. #include <mftransform.h>
  119. #include <mediaobj.h>
  120. #include <strmif.h>
  121. #ifdef __cplusplus
  122. extern "C" {
  123. #endif
  124. /**
  125. * This file is part of the mingw-w64 runtime package.
  126. * No warranty is given; refer to the file DISCLAIMER within this package.
  127. */
  128. #include <winapifamily.h>
  129. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  130. #ifndef __IMFTrackedSample_FWD_DEFINED__
  131. #define __IMFTrackedSample_FWD_DEFINED__
  132. typedef interface IMFTrackedSample IMFTrackedSample;
  133. #ifdef __cplusplus
  134. interface IMFTrackedSample;
  135. #endif /* __cplusplus */
  136. #endif
  137. #ifndef __IMFVideoDisplayControl_FWD_DEFINED__
  138. #define __IMFVideoDisplayControl_FWD_DEFINED__
  139. typedef interface IMFVideoDisplayControl IMFVideoDisplayControl;
  140. #ifdef __cplusplus
  141. interface IMFVideoDisplayControl;
  142. #endif /* __cplusplus */
  143. #endif
  144. #ifndef __IMFVideoPresenter_FWD_DEFINED__
  145. #define __IMFVideoPresenter_FWD_DEFINED__
  146. typedef interface IMFVideoPresenter IMFVideoPresenter;
  147. #ifdef __cplusplus
  148. interface IMFVideoPresenter;
  149. #endif /* __cplusplus */
  150. #endif
  151. #ifndef __IMFVideoPositionMapper_FWD_DEFINED__
  152. #define __IMFVideoPositionMapper_FWD_DEFINED__
  153. typedef interface IMFVideoPositionMapper IMFVideoPositionMapper;
  154. #ifdef __cplusplus
  155. interface IMFVideoPositionMapper;
  156. #endif /* __cplusplus */
  157. #endif
  158. #ifndef __IMFDesiredSample_FWD_DEFINED__
  159. #define __IMFDesiredSample_FWD_DEFINED__
  160. typedef interface IMFDesiredSample IMFDesiredSample;
  161. #ifdef __cplusplus
  162. interface IMFDesiredSample;
  163. #endif /* __cplusplus */
  164. #endif
  165. #ifndef __IMFVideoMixerControl_FWD_DEFINED__
  166. #define __IMFVideoMixerControl_FWD_DEFINED__
  167. typedef interface IMFVideoMixerControl IMFVideoMixerControl;
  168. #ifdef __cplusplus
  169. interface IMFVideoMixerControl;
  170. #endif /* __cplusplus */
  171. #endif
  172. #ifndef __IMFVideoRenderer_FWD_DEFINED__
  173. #define __IMFVideoRenderer_FWD_DEFINED__
  174. typedef interface IMFVideoRenderer IMFVideoRenderer;
  175. #ifdef __cplusplus
  176. interface IMFVideoRenderer;
  177. #endif /* __cplusplus */
  178. #endif
  179. #ifndef __IMFVideoDeviceID_FWD_DEFINED__
  180. #define __IMFVideoDeviceID_FWD_DEFINED__
  181. typedef interface IMFVideoDeviceID IMFVideoDeviceID;
  182. #ifdef __cplusplus
  183. interface IMFVideoDeviceID;
  184. #endif /* __cplusplus */
  185. #endif
  186. #ifndef __IEVRFilterConfig_FWD_DEFINED__
  187. #define __IEVRFilterConfig_FWD_DEFINED__
  188. typedef interface IEVRFilterConfig IEVRFilterConfig;
  189. #ifdef __cplusplus
  190. interface IEVRFilterConfig;
  191. #endif /* __cplusplus */
  192. #endif
  193. #if defined(__midl)
  194. typedef enum _D3DFORMAT {
  195. D3DFMT_UNKNOWN = 0,
  196. D3DFMT_R8G8B8 = 20,
  197. D3DFMT_A8R8G8B8 = 21,
  198. D3DFMT_X8R8G8B8 = 22,
  199. D3DFMT_R5G6B5 = 23,
  200. D3DFMT_X1R5G5B5 = 24,
  201. D3DFMT_A1R5G5B5 = 25,
  202. D3DFMT_A4R4G4B4 = 26,
  203. D3DFMT_R3G3B2 = 27,
  204. D3DFMT_A8 = 28,
  205. D3DFMT_A8R3G3B2 = 29,
  206. D3DFMT_X4R4G4B4 = 30,
  207. D3DFMT_A2B10G10R10 = 31,
  208. D3DFMT_G16R16 = 34,
  209. D3DFMT_A8P8 = 40,
  210. D3DFMT_P8 = 41,
  211. D3DFMT_L8 = 50,
  212. D3DFMT_A8L8 = 51,
  213. D3DFMT_A4L4 = 52,
  214. D3DFMT_V8U8 = 60,
  215. D3DFMT_L6V5U5 = 61,
  216. D3DFMT_X8L8V8U8 = 62,
  217. D3DFMT_Q8W8V8U8 = 63,
  218. D3DFMT_V16U16 = 64,
  219. D3DFMT_W11V11U10 = 65,
  220. D3DFMT_A2W10V10U10 = 67,
  221. D3DFMT_D16_LOCKABLE = 70,
  222. D3DFMT_D32 = 71,
  223. D3DFMT_D15S1 = 73,
  224. D3DFMT_D24S8 = 75,
  225. D3DFMT_D16 = 80,
  226. D3DFMT_D24X8 = 77,
  227. D3DFMT_D24X4S4 = 79,
  228. D3DFMT_VERTEXDATA = 100,
  229. D3DFMT_INDEX16 = 101,
  230. D3DFMT_INDEX32 = 102,
  231. D3DFMT_FORCE_DWORD = 0x7fffffff
  232. } D3DFORMAT;
  233. #endif
  234. typedef enum MFVideoAspectRatioMode {
  235. MFVideoARMode_None = 0x0,
  236. MFVideoARMode_PreservePicture = 0x1,
  237. MFVideoARMode_PreservePixel = 0x2,
  238. MFVideoARMode_NonLinearStretch = 0x4,
  239. MFVideoARMode_Mask = 0x7
  240. } MFVideoAspectRatioMode;
  241. typedef enum MFVideoRenderPrefs {
  242. MFVideoRenderPrefs_DoNotRenderBorder = 0x1,
  243. MFVideoRenderPrefs_DoNotClipToDevice = 0x2,
  244. MFVideoRenderPrefs_AllowOutputThrottling = 0x4,
  245. MFVideoRenderPrefs_ForceOutputThrottling = 0x8,
  246. MFVideoRenderPrefs_ForceBatching = 0x10,
  247. MFVideoRenderPrefs_AllowBatching = 0x20,
  248. MFVideoRenderPrefs_ForceScaling = 0x40,
  249. MFVideoRenderPrefs_AllowScaling = 0x80,
  250. MFVideoRenderPrefs_DoNotRepaintOnStop = 0x100,
  251. MFVideoRenderPrefs_Mask = 0x1ff
  252. } MFVideoRenderPrefs;
  253. #ifndef _MFVideoNormalizedRect_
  254. #define _MFVideoNormalizedRect_
  255. typedef struct MFVideoNormalizedRect {
  256. float left;
  257. float top;
  258. float right;
  259. float bottom;
  260. } MFVideoNormalizedRect;
  261. #endif
  262. typedef enum MFVP_MESSAGE_TYPE {
  263. MFVP_MESSAGE_FLUSH = 0x0,
  264. MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x1,
  265. MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x2,
  266. MFVP_MESSAGE_BEGINSTREAMING = 0x3,
  267. MFVP_MESSAGE_ENDSTREAMING = 0x4,
  268. MFVP_MESSAGE_ENDOFSTREAM = 0x5,
  269. MFVP_MESSAGE_STEP = 0x6,
  270. MFVP_MESSAGE_CANCELSTEP = 0x7
  271. } MFVP_MESSAGE_TYPE;
  272. typedef enum _MFVideoMixPrefs {
  273. MFVideoMixPrefs_ForceHalfInterlace = 0x1,
  274. MFVideoMixPrefs_AllowDropToHalfInterlace = 0x2,
  275. MFVideoMixPrefs_AllowDropToBob = 0x4,
  276. MFVideoMixPrefs_ForceBob = 0x8,
  277. MFVideoMixPrefs_EnableRotation = 0x10,
  278. MFVideoMixPrefs_Mask = 0x1f
  279. } MFVideoMixPrefs;
  280. typedef enum _EVRFilterConfig_Prefs {
  281. EVRFilterConfigPrefs_EnableQoS = 0x1,
  282. EVRFilterConfigPrefs_Mask = 0x1
  283. } EVRFilterConfigPrefs;
  284. typedef enum _MF_SERVICE_LOOKUP_TYPE {
  285. MF_SERVICE_LOOKUP_UPSTREAM = 0,
  286. MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = 1,
  287. MF_SERVICE_LOOKUP_DOWNSTREAM = 2,
  288. MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT = 3,
  289. MF_SERVICE_LOOKUP_ALL = 4,
  290. MF_SERVICE_LOOKUP_GLOBAL = 5
  291. } MF_SERVICE_LOOKUP_TYPE;
  292. DEFINE_GUID(MR_VIDEO_RENDER_SERVICE, 0x1092a86c, 0xab1a, 0x459a, 0xa3, 0x36, 0x83, 0x1f, 0xbc, 0x4d, 0x11, 0xff);
  293. DEFINE_GUID(MR_VIDEO_MIXER_SERVICE, 0x73cd2fc, 0x6cf4, 0x40b7, 0x88, 0x59, 0xe8, 0x95, 0x52, 0xc8, 0x41, 0xf8);
  294. DEFINE_GUID(MR_VIDEO_ACCELERATION_SERVICE, 0xefef5175, 0x5c7d, 0x4ce2, 0xbb, 0xbd, 0x34, 0xff, 0x8b, 0xca, 0x65, 0x54);
  295. DEFINE_GUID(MR_BUFFER_SERVICE, 0xa562248c, 0x9ac6, 0x4ffc, 0x9f, 0xba, 0x3a, 0xf8, 0xf8, 0xad, 0x1a, 0x4d);
  296. DEFINE_GUID(VIDEO_ZOOM_RECT, 0x7aaa1638, 0x1b7f, 0x4c93, 0xbd, 0x89, 0x5b, 0x9c, 0x9f, 0xb6, 0xfc, 0xf0);
  297. /*****************************************************************************
  298. * IMFVideoPositionMapper interface
  299. */
  300. #ifndef __IMFVideoPositionMapper_INTERFACE_DEFINED__
  301. #define __IMFVideoPositionMapper_INTERFACE_DEFINED__
  302. DEFINE_GUID(IID_IMFVideoPositionMapper, 0x1f6a9f17, 0xe70b, 0x4e24, 0x8a,0xe4, 0x0b,0x2c,0x3b,0xa7,0xa4,0xae);
  303. #if defined(__cplusplus) && !defined(CINTERFACE)
  304. MIDL_INTERFACE("1f6a9f17-e70b-4e24-8ae4-0b2c3ba7a4ae")
  305. IMFVideoPositionMapper : public IUnknown
  306. {
  307. virtual HRESULT STDMETHODCALLTYPE MapOutputCoordinateToInputStream(
  308. float xOut,
  309. float yOut,
  310. DWORD dwOutputStreamIndex,
  311. DWORD dwInputStreamIndex,
  312. float *pxIn,
  313. float *pyIn) = 0;
  314. };
  315. #ifdef __CRT_UUID_DECL
  316. __CRT_UUID_DECL(IMFVideoPositionMapper, 0x1f6a9f17, 0xe70b, 0x4e24, 0x8a,0xe4, 0x0b,0x2c,0x3b,0xa7,0xa4,0xae)
  317. #endif
  318. #else
  319. typedef struct IMFVideoPositionMapperVtbl {
  320. BEGIN_INTERFACE
  321. /*** IUnknown methods ***/
  322. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  323. IMFVideoPositionMapper *This,
  324. REFIID riid,
  325. void **ppvObject);
  326. ULONG (STDMETHODCALLTYPE *AddRef)(
  327. IMFVideoPositionMapper *This);
  328. ULONG (STDMETHODCALLTYPE *Release)(
  329. IMFVideoPositionMapper *This);
  330. /*** IMFVideoPositionMapper methods ***/
  331. HRESULT (STDMETHODCALLTYPE *MapOutputCoordinateToInputStream)(
  332. IMFVideoPositionMapper *This,
  333. float xOut,
  334. float yOut,
  335. DWORD dwOutputStreamIndex,
  336. DWORD dwInputStreamIndex,
  337. float *pxIn,
  338. float *pyIn);
  339. END_INTERFACE
  340. } IMFVideoPositionMapperVtbl;
  341. interface IMFVideoPositionMapper {
  342. CONST_VTBL IMFVideoPositionMapperVtbl* lpVtbl;
  343. };
  344. #ifdef COBJMACROS
  345. #ifndef WIDL_C_INLINE_WRAPPERS
  346. /*** IUnknown methods ***/
  347. #define IMFVideoPositionMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  348. #define IMFVideoPositionMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
  349. #define IMFVideoPositionMapper_Release(This) (This)->lpVtbl->Release(This)
  350. /*** IMFVideoPositionMapper methods ***/
  351. #define IMFVideoPositionMapper_MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn) (This)->lpVtbl->MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn)
  352. #else
  353. /*** IUnknown methods ***/
  354. static FORCEINLINE HRESULT IMFVideoPositionMapper_QueryInterface(IMFVideoPositionMapper* This,REFIID riid,void **ppvObject) {
  355. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  356. }
  357. static FORCEINLINE ULONG IMFVideoPositionMapper_AddRef(IMFVideoPositionMapper* This) {
  358. return This->lpVtbl->AddRef(This);
  359. }
  360. static FORCEINLINE ULONG IMFVideoPositionMapper_Release(IMFVideoPositionMapper* This) {
  361. return This->lpVtbl->Release(This);
  362. }
  363. /*** IMFVideoPositionMapper methods ***/
  364. static FORCEINLINE HRESULT IMFVideoPositionMapper_MapOutputCoordinateToInputStream(IMFVideoPositionMapper* This,float xOut,float yOut,DWORD dwOutputStreamIndex,DWORD dwInputStreamIndex,float *pxIn,float *pyIn) {
  365. return This->lpVtbl->MapOutputCoordinateToInputStream(This,xOut,yOut,dwOutputStreamIndex,dwInputStreamIndex,pxIn,pyIn);
  366. }
  367. #endif
  368. #endif
  369. #endif
  370. #endif /* __IMFVideoPositionMapper_INTERFACE_DEFINED__ */
  371. /*****************************************************************************
  372. * IMFVideoDeviceID interface
  373. */
  374. #ifndef __IMFVideoDeviceID_INTERFACE_DEFINED__
  375. #define __IMFVideoDeviceID_INTERFACE_DEFINED__
  376. DEFINE_GUID(IID_IMFVideoDeviceID, 0xa38d9567, 0x5a9c, 0x4f3c, 0xb2,0x93, 0x8e,0xb4,0x15,0xb2,0x79,0xba);
  377. #if defined(__cplusplus) && !defined(CINTERFACE)
  378. MIDL_INTERFACE("a38d9567-5a9c-4f3c-b293-8eb415b279ba")
  379. IMFVideoDeviceID : public IUnknown
  380. {
  381. virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
  382. IID *pDeviceID) = 0;
  383. };
  384. #ifdef __CRT_UUID_DECL
  385. __CRT_UUID_DECL(IMFVideoDeviceID, 0xa38d9567, 0x5a9c, 0x4f3c, 0xb2,0x93, 0x8e,0xb4,0x15,0xb2,0x79,0xba)
  386. #endif
  387. #else
  388. typedef struct IMFVideoDeviceIDVtbl {
  389. BEGIN_INTERFACE
  390. /*** IUnknown methods ***/
  391. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  392. IMFVideoDeviceID *This,
  393. REFIID riid,
  394. void **ppvObject);
  395. ULONG (STDMETHODCALLTYPE *AddRef)(
  396. IMFVideoDeviceID *This);
  397. ULONG (STDMETHODCALLTYPE *Release)(
  398. IMFVideoDeviceID *This);
  399. /*** IMFVideoDeviceID methods ***/
  400. HRESULT (STDMETHODCALLTYPE *GetDeviceID)(
  401. IMFVideoDeviceID *This,
  402. IID *pDeviceID);
  403. END_INTERFACE
  404. } IMFVideoDeviceIDVtbl;
  405. interface IMFVideoDeviceID {
  406. CONST_VTBL IMFVideoDeviceIDVtbl* lpVtbl;
  407. };
  408. #ifdef COBJMACROS
  409. #ifndef WIDL_C_INLINE_WRAPPERS
  410. /*** IUnknown methods ***/
  411. #define IMFVideoDeviceID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  412. #define IMFVideoDeviceID_AddRef(This) (This)->lpVtbl->AddRef(This)
  413. #define IMFVideoDeviceID_Release(This) (This)->lpVtbl->Release(This)
  414. /*** IMFVideoDeviceID methods ***/
  415. #define IMFVideoDeviceID_GetDeviceID(This,pDeviceID) (This)->lpVtbl->GetDeviceID(This,pDeviceID)
  416. #else
  417. /*** IUnknown methods ***/
  418. static FORCEINLINE HRESULT IMFVideoDeviceID_QueryInterface(IMFVideoDeviceID* This,REFIID riid,void **ppvObject) {
  419. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  420. }
  421. static FORCEINLINE ULONG IMFVideoDeviceID_AddRef(IMFVideoDeviceID* This) {
  422. return This->lpVtbl->AddRef(This);
  423. }
  424. static FORCEINLINE ULONG IMFVideoDeviceID_Release(IMFVideoDeviceID* This) {
  425. return This->lpVtbl->Release(This);
  426. }
  427. /*** IMFVideoDeviceID methods ***/
  428. static FORCEINLINE HRESULT IMFVideoDeviceID_GetDeviceID(IMFVideoDeviceID* This,IID *pDeviceID) {
  429. return This->lpVtbl->GetDeviceID(This,pDeviceID);
  430. }
  431. #endif
  432. #endif
  433. #endif
  434. #endif /* __IMFVideoDeviceID_INTERFACE_DEFINED__ */
  435. /*****************************************************************************
  436. * IMFVideoDisplayControl interface
  437. */
  438. #ifndef __IMFVideoDisplayControl_INTERFACE_DEFINED__
  439. #define __IMFVideoDisplayControl_INTERFACE_DEFINED__
  440. DEFINE_GUID(IID_IMFVideoDisplayControl, 0xa490b1e4, 0xab84, 0x4d31, 0xa1,0xb2, 0x18,0x1e,0x03,0xb1,0x07,0x7a);
  441. #if defined(__cplusplus) && !defined(CINTERFACE)
  442. MIDL_INTERFACE("a490b1e4-ab84-4d31-a1b2-181e03b1077a")
  443. IMFVideoDisplayControl : public IUnknown
  444. {
  445. virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize(
  446. SIZE *pszVideo,
  447. SIZE *pszARVideo) = 0;
  448. virtual HRESULT STDMETHODCALLTYPE GetIdealVideoSize(
  449. SIZE *pszMin,
  450. SIZE *pszMax) = 0;
  451. virtual HRESULT STDMETHODCALLTYPE SetVideoPosition(
  452. const MFVideoNormalizedRect *pnrcSource,
  453. const LPRECT prcDest) = 0;
  454. virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
  455. MFVideoNormalizedRect *pnrcSource,
  456. LPRECT prcDest) = 0;
  457. virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
  458. DWORD dwAspectRatioMode) = 0;
  459. virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
  460. DWORD *pdwAspectRatioMode) = 0;
  461. virtual HRESULT STDMETHODCALLTYPE SetVideoWindow(
  462. HWND hwndVideo) = 0;
  463. virtual HRESULT STDMETHODCALLTYPE GetVideoWindow(
  464. HWND *phwndVideo) = 0;
  465. virtual HRESULT STDMETHODCALLTYPE RepaintVideo(
  466. ) = 0;
  467. virtual HRESULT STDMETHODCALLTYPE GetCurrentImage(
  468. BITMAPINFOHEADER *pBih,
  469. BYTE **pDib,
  470. DWORD *pcbDib,
  471. LONGLONG *pTimeStamp) = 0;
  472. virtual HRESULT STDMETHODCALLTYPE SetBorderColor(
  473. COLORREF Clr) = 0;
  474. virtual HRESULT STDMETHODCALLTYPE GetBorderColor(
  475. COLORREF *pClr) = 0;
  476. virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs(
  477. DWORD dwRenderFlags) = 0;
  478. virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs(
  479. DWORD *pdwRenderFlags) = 0;
  480. virtual HRESULT STDMETHODCALLTYPE SetFullscreen(
  481. WINBOOL fFullscreen) = 0;
  482. virtual HRESULT STDMETHODCALLTYPE GetFullscreen(
  483. WINBOOL *pfFullscreen) = 0;
  484. };
  485. #ifdef __CRT_UUID_DECL
  486. __CRT_UUID_DECL(IMFVideoDisplayControl, 0xa490b1e4, 0xab84, 0x4d31, 0xa1,0xb2, 0x18,0x1e,0x03,0xb1,0x07,0x7a)
  487. #endif
  488. #else
  489. typedef struct IMFVideoDisplayControlVtbl {
  490. BEGIN_INTERFACE
  491. /*** IUnknown methods ***/
  492. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  493. IMFVideoDisplayControl *This,
  494. REFIID riid,
  495. void **ppvObject);
  496. ULONG (STDMETHODCALLTYPE *AddRef)(
  497. IMFVideoDisplayControl *This);
  498. ULONG (STDMETHODCALLTYPE *Release)(
  499. IMFVideoDisplayControl *This);
  500. /*** IMFVideoDisplayControl methods ***/
  501. HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)(
  502. IMFVideoDisplayControl *This,
  503. SIZE *pszVideo,
  504. SIZE *pszARVideo);
  505. HRESULT (STDMETHODCALLTYPE *GetIdealVideoSize)(
  506. IMFVideoDisplayControl *This,
  507. SIZE *pszMin,
  508. SIZE *pszMax);
  509. HRESULT (STDMETHODCALLTYPE *SetVideoPosition)(
  510. IMFVideoDisplayControl *This,
  511. const MFVideoNormalizedRect *pnrcSource,
  512. const LPRECT prcDest);
  513. HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
  514. IMFVideoDisplayControl *This,
  515. MFVideoNormalizedRect *pnrcSource,
  516. LPRECT prcDest);
  517. HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
  518. IMFVideoDisplayControl *This,
  519. DWORD dwAspectRatioMode);
  520. HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
  521. IMFVideoDisplayControl *This,
  522. DWORD *pdwAspectRatioMode);
  523. HRESULT (STDMETHODCALLTYPE *SetVideoWindow)(
  524. IMFVideoDisplayControl *This,
  525. HWND hwndVideo);
  526. HRESULT (STDMETHODCALLTYPE *GetVideoWindow)(
  527. IMFVideoDisplayControl *This,
  528. HWND *phwndVideo);
  529. HRESULT (STDMETHODCALLTYPE *RepaintVideo)(
  530. IMFVideoDisplayControl *This);
  531. HRESULT (STDMETHODCALLTYPE *GetCurrentImage)(
  532. IMFVideoDisplayControl *This,
  533. BITMAPINFOHEADER *pBih,
  534. BYTE **pDib,
  535. DWORD *pcbDib,
  536. LONGLONG *pTimeStamp);
  537. HRESULT (STDMETHODCALLTYPE *SetBorderColor)(
  538. IMFVideoDisplayControl *This,
  539. COLORREF Clr);
  540. HRESULT (STDMETHODCALLTYPE *GetBorderColor)(
  541. IMFVideoDisplayControl *This,
  542. COLORREF *pClr);
  543. HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)(
  544. IMFVideoDisplayControl *This,
  545. DWORD dwRenderFlags);
  546. HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)(
  547. IMFVideoDisplayControl *This,
  548. DWORD *pdwRenderFlags);
  549. HRESULT (STDMETHODCALLTYPE *SetFullscreen)(
  550. IMFVideoDisplayControl *This,
  551. WINBOOL fFullscreen);
  552. HRESULT (STDMETHODCALLTYPE *GetFullscreen)(
  553. IMFVideoDisplayControl *This,
  554. WINBOOL *pfFullscreen);
  555. END_INTERFACE
  556. } IMFVideoDisplayControlVtbl;
  557. interface IMFVideoDisplayControl {
  558. CONST_VTBL IMFVideoDisplayControlVtbl* lpVtbl;
  559. };
  560. #ifdef COBJMACROS
  561. #ifndef WIDL_C_INLINE_WRAPPERS
  562. /*** IUnknown methods ***/
  563. #define IMFVideoDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  564. #define IMFVideoDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  565. #define IMFVideoDisplayControl_Release(This) (This)->lpVtbl->Release(This)
  566. /*** IMFVideoDisplayControl methods ***/
  567. #define IMFVideoDisplayControl_GetNativeVideoSize(This,pszVideo,pszARVideo) (This)->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo)
  568. #define IMFVideoDisplayControl_GetIdealVideoSize(This,pszMin,pszMax) (This)->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax)
  569. #define IMFVideoDisplayControl_SetVideoPosition(This,pnrcSource,prcDest) (This)->lpVtbl->SetVideoPosition(This,pnrcSource,prcDest)
  570. #define IMFVideoDisplayControl_GetVideoPosition(This,pnrcSource,prcDest) (This)->lpVtbl->GetVideoPosition(This,pnrcSource,prcDest)
  571. #define IMFVideoDisplayControl_SetAspectRatioMode(This,dwAspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode)
  572. #define IMFVideoDisplayControl_GetAspectRatioMode(This,pdwAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode)
  573. #define IMFVideoDisplayControl_SetVideoWindow(This,hwndVideo) (This)->lpVtbl->SetVideoWindow(This,hwndVideo)
  574. #define IMFVideoDisplayControl_GetVideoWindow(This,phwndVideo) (This)->lpVtbl->GetVideoWindow(This,phwndVideo)
  575. #define IMFVideoDisplayControl_RepaintVideo(This) (This)->lpVtbl->RepaintVideo(This)
  576. #define IMFVideoDisplayControl_GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp) (This)->lpVtbl->GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp)
  577. #define IMFVideoDisplayControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
  578. #define IMFVideoDisplayControl_GetBorderColor(This,pClr) (This)->lpVtbl->GetBorderColor(This,pClr)
  579. #define IMFVideoDisplayControl_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
  580. #define IMFVideoDisplayControl_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
  581. #define IMFVideoDisplayControl_SetFullscreen(This,fFullscreen) (This)->lpVtbl->SetFullscreen(This,fFullscreen)
  582. #define IMFVideoDisplayControl_GetFullscreen(This,pfFullscreen) (This)->lpVtbl->GetFullscreen(This,pfFullscreen)
  583. #else
  584. /*** IUnknown methods ***/
  585. static FORCEINLINE HRESULT IMFVideoDisplayControl_QueryInterface(IMFVideoDisplayControl* This,REFIID riid,void **ppvObject) {
  586. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  587. }
  588. static FORCEINLINE ULONG IMFVideoDisplayControl_AddRef(IMFVideoDisplayControl* This) {
  589. return This->lpVtbl->AddRef(This);
  590. }
  591. static FORCEINLINE ULONG IMFVideoDisplayControl_Release(IMFVideoDisplayControl* This) {
  592. return This->lpVtbl->Release(This);
  593. }
  594. /*** IMFVideoDisplayControl methods ***/
  595. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetNativeVideoSize(IMFVideoDisplayControl* This,SIZE *pszVideo,SIZE *pszARVideo) {
  596. return This->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo);
  597. }
  598. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetIdealVideoSize(IMFVideoDisplayControl* This,SIZE *pszMin,SIZE *pszMax) {
  599. return This->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax);
  600. }
  601. static FORCEINLINE HRESULT IMFVideoDisplayControl_SetVideoPosition(IMFVideoDisplayControl* This,const MFVideoNormalizedRect *pnrcSource,const LPRECT prcDest) {
  602. return This->lpVtbl->SetVideoPosition(This,pnrcSource,prcDest);
  603. }
  604. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetVideoPosition(IMFVideoDisplayControl* This,MFVideoNormalizedRect *pnrcSource,LPRECT prcDest) {
  605. return This->lpVtbl->GetVideoPosition(This,pnrcSource,prcDest);
  606. }
  607. static FORCEINLINE HRESULT IMFVideoDisplayControl_SetAspectRatioMode(IMFVideoDisplayControl* This,DWORD dwAspectRatioMode) {
  608. return This->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode);
  609. }
  610. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetAspectRatioMode(IMFVideoDisplayControl* This,DWORD *pdwAspectRatioMode) {
  611. return This->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode);
  612. }
  613. static FORCEINLINE HRESULT IMFVideoDisplayControl_SetVideoWindow(IMFVideoDisplayControl* This,HWND hwndVideo) {
  614. return This->lpVtbl->SetVideoWindow(This,hwndVideo);
  615. }
  616. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetVideoWindow(IMFVideoDisplayControl* This,HWND *phwndVideo) {
  617. return This->lpVtbl->GetVideoWindow(This,phwndVideo);
  618. }
  619. static FORCEINLINE HRESULT IMFVideoDisplayControl_RepaintVideo(IMFVideoDisplayControl* This) {
  620. return This->lpVtbl->RepaintVideo(This);
  621. }
  622. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetCurrentImage(IMFVideoDisplayControl* This,BITMAPINFOHEADER *pBih,BYTE **pDib,DWORD *pcbDib,LONGLONG *pTimeStamp) {
  623. return This->lpVtbl->GetCurrentImage(This,pBih,pDib,pcbDib,pTimeStamp);
  624. }
  625. static FORCEINLINE HRESULT IMFVideoDisplayControl_SetBorderColor(IMFVideoDisplayControl* This,COLORREF Clr) {
  626. return This->lpVtbl->SetBorderColor(This,Clr);
  627. }
  628. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetBorderColor(IMFVideoDisplayControl* This,COLORREF *pClr) {
  629. return This->lpVtbl->GetBorderColor(This,pClr);
  630. }
  631. static FORCEINLINE HRESULT IMFVideoDisplayControl_SetRenderingPrefs(IMFVideoDisplayControl* This,DWORD dwRenderFlags) {
  632. return This->lpVtbl->SetRenderingPrefs(This,dwRenderFlags);
  633. }
  634. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetRenderingPrefs(IMFVideoDisplayControl* This,DWORD *pdwRenderFlags) {
  635. return This->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags);
  636. }
  637. static FORCEINLINE HRESULT IMFVideoDisplayControl_SetFullscreen(IMFVideoDisplayControl* This,WINBOOL fFullscreen) {
  638. return This->lpVtbl->SetFullscreen(This,fFullscreen);
  639. }
  640. static FORCEINLINE HRESULT IMFVideoDisplayControl_GetFullscreen(IMFVideoDisplayControl* This,WINBOOL *pfFullscreen) {
  641. return This->lpVtbl->GetFullscreen(This,pfFullscreen);
  642. }
  643. #endif
  644. #endif
  645. #endif
  646. #endif /* __IMFVideoDisplayControl_INTERFACE_DEFINED__ */
  647. /*****************************************************************************
  648. * IMFVideoPresenter interface
  649. */
  650. #ifndef __IMFVideoPresenter_INTERFACE_DEFINED__
  651. #define __IMFVideoPresenter_INTERFACE_DEFINED__
  652. DEFINE_GUID(IID_IMFVideoPresenter, 0x29aff080, 0x182a, 0x4a5d, 0xaf,0x3b, 0x44,0x8f,0x3a,0x63,0x46,0xcb);
  653. #if defined(__cplusplus) && !defined(CINTERFACE)
  654. MIDL_INTERFACE("29aff080-182a-4a5d-af3b-448f3a6346cb")
  655. IMFVideoPresenter : public IMFClockStateSink
  656. {
  657. virtual HRESULT STDMETHODCALLTYPE ProcessMessage(
  658. MFVP_MESSAGE_TYPE eMessage,
  659. ULONG_PTR ulParam) = 0;
  660. virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType(
  661. IMFVideoMediaType **ppMediaType) = 0;
  662. };
  663. #ifdef __CRT_UUID_DECL
  664. __CRT_UUID_DECL(IMFVideoPresenter, 0x29aff080, 0x182a, 0x4a5d, 0xaf,0x3b, 0x44,0x8f,0x3a,0x63,0x46,0xcb)
  665. #endif
  666. #else
  667. typedef struct IMFVideoPresenterVtbl {
  668. BEGIN_INTERFACE
  669. /*** IUnknown methods ***/
  670. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  671. IMFVideoPresenter *This,
  672. REFIID riid,
  673. void **ppvObject);
  674. ULONG (STDMETHODCALLTYPE *AddRef)(
  675. IMFVideoPresenter *This);
  676. ULONG (STDMETHODCALLTYPE *Release)(
  677. IMFVideoPresenter *This);
  678. /*** IMFClockStateSink methods ***/
  679. HRESULT (STDMETHODCALLTYPE *OnClockStart)(
  680. IMFVideoPresenter *This,
  681. MFTIME hnsSystemTime,
  682. LONGLONG llClockStartOffset);
  683. HRESULT (STDMETHODCALLTYPE *OnClockStop)(
  684. IMFVideoPresenter *This,
  685. MFTIME hnsSystemTime);
  686. HRESULT (STDMETHODCALLTYPE *OnClockPause)(
  687. IMFVideoPresenter *This,
  688. MFTIME hnsSystemTime);
  689. HRESULT (STDMETHODCALLTYPE *OnClockRestart)(
  690. IMFVideoPresenter *This,
  691. MFTIME hnsSystemTime);
  692. HRESULT (STDMETHODCALLTYPE *OnClockSetRate)(
  693. IMFVideoPresenter *This,
  694. MFTIME hnsSystemTime,
  695. float flRate);
  696. /*** IMFVideoPresenter methods ***/
  697. HRESULT (STDMETHODCALLTYPE *ProcessMessage)(
  698. IMFVideoPresenter *This,
  699. MFVP_MESSAGE_TYPE eMessage,
  700. ULONG_PTR ulParam);
  701. HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
  702. IMFVideoPresenter *This,
  703. IMFVideoMediaType **ppMediaType);
  704. END_INTERFACE
  705. } IMFVideoPresenterVtbl;
  706. interface IMFVideoPresenter {
  707. CONST_VTBL IMFVideoPresenterVtbl* lpVtbl;
  708. };
  709. #ifdef COBJMACROS
  710. #ifndef WIDL_C_INLINE_WRAPPERS
  711. /*** IUnknown methods ***/
  712. #define IMFVideoPresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  713. #define IMFVideoPresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
  714. #define IMFVideoPresenter_Release(This) (This)->lpVtbl->Release(This)
  715. /*** IMFClockStateSink methods ***/
  716. #define IMFVideoPresenter_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
  717. #define IMFVideoPresenter_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime)
  718. #define IMFVideoPresenter_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
  719. #define IMFVideoPresenter_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
  720. #define IMFVideoPresenter_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
  721. /*** IMFVideoPresenter methods ***/
  722. #define IMFVideoPresenter_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam)
  723. #define IMFVideoPresenter_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType)
  724. #else
  725. /*** IUnknown methods ***/
  726. static FORCEINLINE HRESULT IMFVideoPresenter_QueryInterface(IMFVideoPresenter* This,REFIID riid,void **ppvObject) {
  727. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  728. }
  729. static FORCEINLINE ULONG IMFVideoPresenter_AddRef(IMFVideoPresenter* This) {
  730. return This->lpVtbl->AddRef(This);
  731. }
  732. static FORCEINLINE ULONG IMFVideoPresenter_Release(IMFVideoPresenter* This) {
  733. return This->lpVtbl->Release(This);
  734. }
  735. /*** IMFClockStateSink methods ***/
  736. static FORCEINLINE HRESULT IMFVideoPresenter_OnClockStart(IMFVideoPresenter* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) {
  737. return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset);
  738. }
  739. static FORCEINLINE HRESULT IMFVideoPresenter_OnClockStop(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
  740. return This->lpVtbl->OnClockStop(This,hnsSystemTime);
  741. }
  742. static FORCEINLINE HRESULT IMFVideoPresenter_OnClockPause(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
  743. return This->lpVtbl->OnClockPause(This,hnsSystemTime);
  744. }
  745. static FORCEINLINE HRESULT IMFVideoPresenter_OnClockRestart(IMFVideoPresenter* This,MFTIME hnsSystemTime) {
  746. return This->lpVtbl->OnClockRestart(This,hnsSystemTime);
  747. }
  748. static FORCEINLINE HRESULT IMFVideoPresenter_OnClockSetRate(IMFVideoPresenter* This,MFTIME hnsSystemTime,float flRate) {
  749. return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate);
  750. }
  751. /*** IMFVideoPresenter methods ***/
  752. static FORCEINLINE HRESULT IMFVideoPresenter_ProcessMessage(IMFVideoPresenter* This,MFVP_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) {
  753. return This->lpVtbl->ProcessMessage(This,eMessage,ulParam);
  754. }
  755. static FORCEINLINE HRESULT IMFVideoPresenter_GetCurrentMediaType(IMFVideoPresenter* This,IMFVideoMediaType **ppMediaType) {
  756. return This->lpVtbl->GetCurrentMediaType(This,ppMediaType);
  757. }
  758. #endif
  759. #endif
  760. #endif
  761. #endif /* __IMFVideoPresenter_INTERFACE_DEFINED__ */
  762. /*****************************************************************************
  763. * IMFDesiredSample interface
  764. */
  765. #ifndef __IMFDesiredSample_INTERFACE_DEFINED__
  766. #define __IMFDesiredSample_INTERFACE_DEFINED__
  767. DEFINE_GUID(IID_IMFDesiredSample, 0x56c294d0, 0x753e, 0x4260, 0x8d,0x61, 0xa3,0xd8,0x82,0x0b,0x1d,0x54);
  768. #if defined(__cplusplus) && !defined(CINTERFACE)
  769. MIDL_INTERFACE("56c294d0-753e-4260-8d61-a3d8820b1d54")
  770. IMFDesiredSample : public IUnknown
  771. {
  772. virtual HRESULT STDMETHODCALLTYPE GetDesiredSampleTimeAndDuration(
  773. LONGLONG *phnsSampleTime,
  774. LONGLONG *phnsSampleDuration) = 0;
  775. virtual void STDMETHODCALLTYPE SetDesiredSampleTimeAndDuration(
  776. LONGLONG hnsSampleTime,
  777. LONGLONG hnsSampleDuration) = 0;
  778. virtual void STDMETHODCALLTYPE Clear(
  779. ) = 0;
  780. };
  781. #ifdef __CRT_UUID_DECL
  782. __CRT_UUID_DECL(IMFDesiredSample, 0x56c294d0, 0x753e, 0x4260, 0x8d,0x61, 0xa3,0xd8,0x82,0x0b,0x1d,0x54)
  783. #endif
  784. #else
  785. typedef struct IMFDesiredSampleVtbl {
  786. BEGIN_INTERFACE
  787. /*** IUnknown methods ***/
  788. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  789. IMFDesiredSample *This,
  790. REFIID riid,
  791. void **ppvObject);
  792. ULONG (STDMETHODCALLTYPE *AddRef)(
  793. IMFDesiredSample *This);
  794. ULONG (STDMETHODCALLTYPE *Release)(
  795. IMFDesiredSample *This);
  796. /*** IMFDesiredSample methods ***/
  797. HRESULT (STDMETHODCALLTYPE *GetDesiredSampleTimeAndDuration)(
  798. IMFDesiredSample *This,
  799. LONGLONG *phnsSampleTime,
  800. LONGLONG *phnsSampleDuration);
  801. void (STDMETHODCALLTYPE *SetDesiredSampleTimeAndDuration)(
  802. IMFDesiredSample *This,
  803. LONGLONG hnsSampleTime,
  804. LONGLONG hnsSampleDuration);
  805. void (STDMETHODCALLTYPE *Clear)(
  806. IMFDesiredSample *This);
  807. END_INTERFACE
  808. } IMFDesiredSampleVtbl;
  809. interface IMFDesiredSample {
  810. CONST_VTBL IMFDesiredSampleVtbl* lpVtbl;
  811. };
  812. #ifdef COBJMACROS
  813. #ifndef WIDL_C_INLINE_WRAPPERS
  814. /*** IUnknown methods ***/
  815. #define IMFDesiredSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  816. #define IMFDesiredSample_AddRef(This) (This)->lpVtbl->AddRef(This)
  817. #define IMFDesiredSample_Release(This) (This)->lpVtbl->Release(This)
  818. /*** IMFDesiredSample methods ***/
  819. #define IMFDesiredSample_GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration) (This)->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration)
  820. #define IMFDesiredSample_SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration) (This)->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration)
  821. #define IMFDesiredSample_Clear(This) (This)->lpVtbl->Clear(This)
  822. #else
  823. /*** IUnknown methods ***/
  824. static FORCEINLINE HRESULT IMFDesiredSample_QueryInterface(IMFDesiredSample* This,REFIID riid,void **ppvObject) {
  825. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  826. }
  827. static FORCEINLINE ULONG IMFDesiredSample_AddRef(IMFDesiredSample* This) {
  828. return This->lpVtbl->AddRef(This);
  829. }
  830. static FORCEINLINE ULONG IMFDesiredSample_Release(IMFDesiredSample* This) {
  831. return This->lpVtbl->Release(This);
  832. }
  833. /*** IMFDesiredSample methods ***/
  834. static FORCEINLINE HRESULT IMFDesiredSample_GetDesiredSampleTimeAndDuration(IMFDesiredSample* This,LONGLONG *phnsSampleTime,LONGLONG *phnsSampleDuration) {
  835. return This->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration);
  836. }
  837. static FORCEINLINE void IMFDesiredSample_SetDesiredSampleTimeAndDuration(IMFDesiredSample* This,LONGLONG hnsSampleTime,LONGLONG hnsSampleDuration) {
  838. This->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration);
  839. }
  840. static FORCEINLINE void IMFDesiredSample_Clear(IMFDesiredSample* This) {
  841. This->lpVtbl->Clear(This);
  842. }
  843. #endif
  844. #endif
  845. #endif
  846. #endif /* __IMFDesiredSample_INTERFACE_DEFINED__ */
  847. /*****************************************************************************
  848. * IMFTrackedSample interface
  849. */
  850. #ifndef __IMFTrackedSample_INTERFACE_DEFINED__
  851. #define __IMFTrackedSample_INTERFACE_DEFINED__
  852. DEFINE_GUID(IID_IMFTrackedSample, 0x245bf8e9, 0x0755, 0x40f7, 0x88,0xa5, 0xae,0x0f,0x18,0xd5,0x5e,0x17);
  853. #if defined(__cplusplus) && !defined(CINTERFACE)
  854. MIDL_INTERFACE("245bf8e9-0755-40f7-88a5-ae0f18d55e17")
  855. IMFTrackedSample : public IUnknown
  856. {
  857. virtual HRESULT STDMETHODCALLTYPE SetAllocator(
  858. IMFAsyncCallback *pSampleAllocator,
  859. IUnknown *pUnkState) = 0;
  860. };
  861. #ifdef __CRT_UUID_DECL
  862. __CRT_UUID_DECL(IMFTrackedSample, 0x245bf8e9, 0x0755, 0x40f7, 0x88,0xa5, 0xae,0x0f,0x18,0xd5,0x5e,0x17)
  863. #endif
  864. #else
  865. typedef struct IMFTrackedSampleVtbl {
  866. BEGIN_INTERFACE
  867. /*** IUnknown methods ***/
  868. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  869. IMFTrackedSample *This,
  870. REFIID riid,
  871. void **ppvObject);
  872. ULONG (STDMETHODCALLTYPE *AddRef)(
  873. IMFTrackedSample *This);
  874. ULONG (STDMETHODCALLTYPE *Release)(
  875. IMFTrackedSample *This);
  876. /*** IMFTrackedSample methods ***/
  877. HRESULT (STDMETHODCALLTYPE *SetAllocator)(
  878. IMFTrackedSample *This,
  879. IMFAsyncCallback *pSampleAllocator,
  880. IUnknown *pUnkState);
  881. END_INTERFACE
  882. } IMFTrackedSampleVtbl;
  883. interface IMFTrackedSample {
  884. CONST_VTBL IMFTrackedSampleVtbl* lpVtbl;
  885. };
  886. #ifdef COBJMACROS
  887. #ifndef WIDL_C_INLINE_WRAPPERS
  888. /*** IUnknown methods ***/
  889. #define IMFTrackedSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  890. #define IMFTrackedSample_AddRef(This) (This)->lpVtbl->AddRef(This)
  891. #define IMFTrackedSample_Release(This) (This)->lpVtbl->Release(This)
  892. /*** IMFTrackedSample methods ***/
  893. #define IMFTrackedSample_SetAllocator(This,pSampleAllocator,pUnkState) (This)->lpVtbl->SetAllocator(This,pSampleAllocator,pUnkState)
  894. #else
  895. /*** IUnknown methods ***/
  896. static FORCEINLINE HRESULT IMFTrackedSample_QueryInterface(IMFTrackedSample* This,REFIID riid,void **ppvObject) {
  897. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  898. }
  899. static FORCEINLINE ULONG IMFTrackedSample_AddRef(IMFTrackedSample* This) {
  900. return This->lpVtbl->AddRef(This);
  901. }
  902. static FORCEINLINE ULONG IMFTrackedSample_Release(IMFTrackedSample* This) {
  903. return This->lpVtbl->Release(This);
  904. }
  905. /*** IMFTrackedSample methods ***/
  906. static FORCEINLINE HRESULT IMFTrackedSample_SetAllocator(IMFTrackedSample* This,IMFAsyncCallback *pSampleAllocator,IUnknown *pUnkState) {
  907. return This->lpVtbl->SetAllocator(This,pSampleAllocator,pUnkState);
  908. }
  909. #endif
  910. #endif
  911. #endif
  912. #endif /* __IMFTrackedSample_INTERFACE_DEFINED__ */
  913. /*****************************************************************************
  914. * IMFVideoMixerControl interface
  915. */
  916. #ifndef __IMFVideoMixerControl_INTERFACE_DEFINED__
  917. #define __IMFVideoMixerControl_INTERFACE_DEFINED__
  918. DEFINE_GUID(IID_IMFVideoMixerControl, 0xa5c6c53f, 0xc202, 0x4aa5, 0x96,0x95, 0x17,0x5b,0xa8,0xc5,0x08,0xa5);
  919. #if defined(__cplusplus) && !defined(CINTERFACE)
  920. MIDL_INTERFACE("a5c6c53f-c202-4aa5-9695-175ba8c508a5")
  921. IMFVideoMixerControl : public IUnknown
  922. {
  923. virtual HRESULT STDMETHODCALLTYPE SetStreamZOrder(
  924. DWORD dwStreamID,
  925. DWORD dwZ) = 0;
  926. virtual HRESULT STDMETHODCALLTYPE GetStreamZOrder(
  927. DWORD dwStreamID,
  928. DWORD *pdwZ) = 0;
  929. virtual HRESULT STDMETHODCALLTYPE SetStreamOutputRect(
  930. DWORD dwStreamID,
  931. const MFVideoNormalizedRect *pnrcOutput) = 0;
  932. virtual HRESULT STDMETHODCALLTYPE GetStreamOutputRect(
  933. DWORD dwStreamID,
  934. MFVideoNormalizedRect *pnrcOutput) = 0;
  935. };
  936. #ifdef __CRT_UUID_DECL
  937. __CRT_UUID_DECL(IMFVideoMixerControl, 0xa5c6c53f, 0xc202, 0x4aa5, 0x96,0x95, 0x17,0x5b,0xa8,0xc5,0x08,0xa5)
  938. #endif
  939. #else
  940. typedef struct IMFVideoMixerControlVtbl {
  941. BEGIN_INTERFACE
  942. /*** IUnknown methods ***/
  943. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  944. IMFVideoMixerControl *This,
  945. REFIID riid,
  946. void **ppvObject);
  947. ULONG (STDMETHODCALLTYPE *AddRef)(
  948. IMFVideoMixerControl *This);
  949. ULONG (STDMETHODCALLTYPE *Release)(
  950. IMFVideoMixerControl *This);
  951. /*** IMFVideoMixerControl methods ***/
  952. HRESULT (STDMETHODCALLTYPE *SetStreamZOrder)(
  953. IMFVideoMixerControl *This,
  954. DWORD dwStreamID,
  955. DWORD dwZ);
  956. HRESULT (STDMETHODCALLTYPE *GetStreamZOrder)(
  957. IMFVideoMixerControl *This,
  958. DWORD dwStreamID,
  959. DWORD *pdwZ);
  960. HRESULT (STDMETHODCALLTYPE *SetStreamOutputRect)(
  961. IMFVideoMixerControl *This,
  962. DWORD dwStreamID,
  963. const MFVideoNormalizedRect *pnrcOutput);
  964. HRESULT (STDMETHODCALLTYPE *GetStreamOutputRect)(
  965. IMFVideoMixerControl *This,
  966. DWORD dwStreamID,
  967. MFVideoNormalizedRect *pnrcOutput);
  968. END_INTERFACE
  969. } IMFVideoMixerControlVtbl;
  970. interface IMFVideoMixerControl {
  971. CONST_VTBL IMFVideoMixerControlVtbl* lpVtbl;
  972. };
  973. #ifdef COBJMACROS
  974. #ifndef WIDL_C_INLINE_WRAPPERS
  975. /*** IUnknown methods ***/
  976. #define IMFVideoMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  977. #define IMFVideoMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  978. #define IMFVideoMixerControl_Release(This) (This)->lpVtbl->Release(This)
  979. /*** IMFVideoMixerControl methods ***/
  980. #define IMFVideoMixerControl_SetStreamZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ)
  981. #define IMFVideoMixerControl_GetStreamZOrder(This,dwStreamID,pdwZ) (This)->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ)
  982. #define IMFVideoMixerControl_SetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput)
  983. #define IMFVideoMixerControl_GetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput)
  984. #else
  985. /*** IUnknown methods ***/
  986. static FORCEINLINE HRESULT IMFVideoMixerControl_QueryInterface(IMFVideoMixerControl* This,REFIID riid,void **ppvObject) {
  987. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  988. }
  989. static FORCEINLINE ULONG IMFVideoMixerControl_AddRef(IMFVideoMixerControl* This) {
  990. return This->lpVtbl->AddRef(This);
  991. }
  992. static FORCEINLINE ULONG IMFVideoMixerControl_Release(IMFVideoMixerControl* This) {
  993. return This->lpVtbl->Release(This);
  994. }
  995. /*** IMFVideoMixerControl methods ***/
  996. static FORCEINLINE HRESULT IMFVideoMixerControl_SetStreamZOrder(IMFVideoMixerControl* This,DWORD dwStreamID,DWORD dwZ) {
  997. return This->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ);
  998. }
  999. static FORCEINLINE HRESULT IMFVideoMixerControl_GetStreamZOrder(IMFVideoMixerControl* This,DWORD dwStreamID,DWORD *pdwZ) {
  1000. return This->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ);
  1001. }
  1002. static FORCEINLINE HRESULT IMFVideoMixerControl_SetStreamOutputRect(IMFVideoMixerControl* This,DWORD dwStreamID,const MFVideoNormalizedRect *pnrcOutput) {
  1003. return This->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput);
  1004. }
  1005. static FORCEINLINE HRESULT IMFVideoMixerControl_GetStreamOutputRect(IMFVideoMixerControl* This,DWORD dwStreamID,MFVideoNormalizedRect *pnrcOutput) {
  1006. return This->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput);
  1007. }
  1008. #endif
  1009. #endif
  1010. #endif
  1011. #endif /* __IMFVideoMixerControl_INTERFACE_DEFINED__ */
  1012. /*****************************************************************************
  1013. * IMFVideoMixerControl2 interface
  1014. */
  1015. #ifndef __IMFVideoMixerControl2_INTERFACE_DEFINED__
  1016. #define __IMFVideoMixerControl2_INTERFACE_DEFINED__
  1017. DEFINE_GUID(IID_IMFVideoMixerControl2, 0x8459616d, 0x966e, 0x4930, 0xb6,0x58, 0x54,0xfa,0x7e,0x5a,0x16,0xd3);
  1018. #if defined(__cplusplus) && !defined(CINTERFACE)
  1019. MIDL_INTERFACE("8459616d-966e-4930-b658-54fa7e5a16d3")
  1020. IMFVideoMixerControl2 : public IMFVideoMixerControl
  1021. {
  1022. virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs(
  1023. DWORD dwMixFlags) = 0;
  1024. virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs(
  1025. DWORD *pdwMixFlags) = 0;
  1026. };
  1027. #ifdef __CRT_UUID_DECL
  1028. __CRT_UUID_DECL(IMFVideoMixerControl2, 0x8459616d, 0x966e, 0x4930, 0xb6,0x58, 0x54,0xfa,0x7e,0x5a,0x16,0xd3)
  1029. #endif
  1030. #else
  1031. typedef struct IMFVideoMixerControl2Vtbl {
  1032. BEGIN_INTERFACE
  1033. /*** IUnknown methods ***/
  1034. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1035. IMFVideoMixerControl2 *This,
  1036. REFIID riid,
  1037. void **ppvObject);
  1038. ULONG (STDMETHODCALLTYPE *AddRef)(
  1039. IMFVideoMixerControl2 *This);
  1040. ULONG (STDMETHODCALLTYPE *Release)(
  1041. IMFVideoMixerControl2 *This);
  1042. /*** IMFVideoMixerControl methods ***/
  1043. HRESULT (STDMETHODCALLTYPE *SetStreamZOrder)(
  1044. IMFVideoMixerControl2 *This,
  1045. DWORD dwStreamID,
  1046. DWORD dwZ);
  1047. HRESULT (STDMETHODCALLTYPE *GetStreamZOrder)(
  1048. IMFVideoMixerControl2 *This,
  1049. DWORD dwStreamID,
  1050. DWORD *pdwZ);
  1051. HRESULT (STDMETHODCALLTYPE *SetStreamOutputRect)(
  1052. IMFVideoMixerControl2 *This,
  1053. DWORD dwStreamID,
  1054. const MFVideoNormalizedRect *pnrcOutput);
  1055. HRESULT (STDMETHODCALLTYPE *GetStreamOutputRect)(
  1056. IMFVideoMixerControl2 *This,
  1057. DWORD dwStreamID,
  1058. MFVideoNormalizedRect *pnrcOutput);
  1059. /*** IMFVideoMixerControl2 methods ***/
  1060. HRESULT (STDMETHODCALLTYPE *SetMixingPrefs)(
  1061. IMFVideoMixerControl2 *This,
  1062. DWORD dwMixFlags);
  1063. HRESULT (STDMETHODCALLTYPE *GetMixingPrefs)(
  1064. IMFVideoMixerControl2 *This,
  1065. DWORD *pdwMixFlags);
  1066. END_INTERFACE
  1067. } IMFVideoMixerControl2Vtbl;
  1068. interface IMFVideoMixerControl2 {
  1069. CONST_VTBL IMFVideoMixerControl2Vtbl* lpVtbl;
  1070. };
  1071. #ifdef COBJMACROS
  1072. #ifndef WIDL_C_INLINE_WRAPPERS
  1073. /*** IUnknown methods ***/
  1074. #define IMFVideoMixerControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1075. #define IMFVideoMixerControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1076. #define IMFVideoMixerControl2_Release(This) (This)->lpVtbl->Release(This)
  1077. /*** IMFVideoMixerControl methods ***/
  1078. #define IMFVideoMixerControl2_SetStreamZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ)
  1079. #define IMFVideoMixerControl2_GetStreamZOrder(This,dwStreamID,pdwZ) (This)->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ)
  1080. #define IMFVideoMixerControl2_SetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput)
  1081. #define IMFVideoMixerControl2_GetStreamOutputRect(This,dwStreamID,pnrcOutput) (This)->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput)
  1082. /*** IMFVideoMixerControl2 methods ***/
  1083. #define IMFVideoMixerControl2_SetMixingPrefs(This,dwMixFlags) (This)->lpVtbl->SetMixingPrefs(This,dwMixFlags)
  1084. #define IMFVideoMixerControl2_GetMixingPrefs(This,pdwMixFlags) (This)->lpVtbl->GetMixingPrefs(This,pdwMixFlags)
  1085. #else
  1086. /*** IUnknown methods ***/
  1087. static FORCEINLINE HRESULT IMFVideoMixerControl2_QueryInterface(IMFVideoMixerControl2* This,REFIID riid,void **ppvObject) {
  1088. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1089. }
  1090. static FORCEINLINE ULONG IMFVideoMixerControl2_AddRef(IMFVideoMixerControl2* This) {
  1091. return This->lpVtbl->AddRef(This);
  1092. }
  1093. static FORCEINLINE ULONG IMFVideoMixerControl2_Release(IMFVideoMixerControl2* This) {
  1094. return This->lpVtbl->Release(This);
  1095. }
  1096. /*** IMFVideoMixerControl methods ***/
  1097. static FORCEINLINE HRESULT IMFVideoMixerControl2_SetStreamZOrder(IMFVideoMixerControl2* This,DWORD dwStreamID,DWORD dwZ) {
  1098. return This->lpVtbl->SetStreamZOrder(This,dwStreamID,dwZ);
  1099. }
  1100. static FORCEINLINE HRESULT IMFVideoMixerControl2_GetStreamZOrder(IMFVideoMixerControl2* This,DWORD dwStreamID,DWORD *pdwZ) {
  1101. return This->lpVtbl->GetStreamZOrder(This,dwStreamID,pdwZ);
  1102. }
  1103. static FORCEINLINE HRESULT IMFVideoMixerControl2_SetStreamOutputRect(IMFVideoMixerControl2* This,DWORD dwStreamID,const MFVideoNormalizedRect *pnrcOutput) {
  1104. return This->lpVtbl->SetStreamOutputRect(This,dwStreamID,pnrcOutput);
  1105. }
  1106. static FORCEINLINE HRESULT IMFVideoMixerControl2_GetStreamOutputRect(IMFVideoMixerControl2* This,DWORD dwStreamID,MFVideoNormalizedRect *pnrcOutput) {
  1107. return This->lpVtbl->GetStreamOutputRect(This,dwStreamID,pnrcOutput);
  1108. }
  1109. /*** IMFVideoMixerControl2 methods ***/
  1110. static FORCEINLINE HRESULT IMFVideoMixerControl2_SetMixingPrefs(IMFVideoMixerControl2* This,DWORD dwMixFlags) {
  1111. return This->lpVtbl->SetMixingPrefs(This,dwMixFlags);
  1112. }
  1113. static FORCEINLINE HRESULT IMFVideoMixerControl2_GetMixingPrefs(IMFVideoMixerControl2* This,DWORD *pdwMixFlags) {
  1114. return This->lpVtbl->GetMixingPrefs(This,pdwMixFlags);
  1115. }
  1116. #endif
  1117. #endif
  1118. #endif
  1119. #endif /* __IMFVideoMixerControl2_INTERFACE_DEFINED__ */
  1120. /*****************************************************************************
  1121. * IMFVideoRenderer interface
  1122. */
  1123. #ifndef __IMFVideoRenderer_INTERFACE_DEFINED__
  1124. #define __IMFVideoRenderer_INTERFACE_DEFINED__
  1125. DEFINE_GUID(IID_IMFVideoRenderer, 0xdfdfd197, 0xa9ca, 0x43d8, 0xb3,0x41, 0x6a,0xf3,0x50,0x37,0x92,0xcd);
  1126. #if defined(__cplusplus) && !defined(CINTERFACE)
  1127. MIDL_INTERFACE("dfdfd197-a9ca-43d8-b341-6af3503792cd")
  1128. IMFVideoRenderer : public IUnknown
  1129. {
  1130. virtual HRESULT STDMETHODCALLTYPE InitializeRenderer(
  1131. IMFTransform *pVideoMixer,
  1132. IMFVideoPresenter *pVideoPresenter) = 0;
  1133. };
  1134. #ifdef __CRT_UUID_DECL
  1135. __CRT_UUID_DECL(IMFVideoRenderer, 0xdfdfd197, 0xa9ca, 0x43d8, 0xb3,0x41, 0x6a,0xf3,0x50,0x37,0x92,0xcd)
  1136. #endif
  1137. #else
  1138. typedef struct IMFVideoRendererVtbl {
  1139. BEGIN_INTERFACE
  1140. /*** IUnknown methods ***/
  1141. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1142. IMFVideoRenderer *This,
  1143. REFIID riid,
  1144. void **ppvObject);
  1145. ULONG (STDMETHODCALLTYPE *AddRef)(
  1146. IMFVideoRenderer *This);
  1147. ULONG (STDMETHODCALLTYPE *Release)(
  1148. IMFVideoRenderer *This);
  1149. /*** IMFVideoRenderer methods ***/
  1150. HRESULT (STDMETHODCALLTYPE *InitializeRenderer)(
  1151. IMFVideoRenderer *This,
  1152. IMFTransform *pVideoMixer,
  1153. IMFVideoPresenter *pVideoPresenter);
  1154. END_INTERFACE
  1155. } IMFVideoRendererVtbl;
  1156. interface IMFVideoRenderer {
  1157. CONST_VTBL IMFVideoRendererVtbl* lpVtbl;
  1158. };
  1159. #ifdef COBJMACROS
  1160. #ifndef WIDL_C_INLINE_WRAPPERS
  1161. /*** IUnknown methods ***/
  1162. #define IMFVideoRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1163. #define IMFVideoRenderer_AddRef(This) (This)->lpVtbl->AddRef(This)
  1164. #define IMFVideoRenderer_Release(This) (This)->lpVtbl->Release(This)
  1165. /*** IMFVideoRenderer methods ***/
  1166. #define IMFVideoRenderer_InitializeRenderer(This,pVideoMixer,pVideoPresenter) (This)->lpVtbl->InitializeRenderer(This,pVideoMixer,pVideoPresenter)
  1167. #else
  1168. /*** IUnknown methods ***/
  1169. static FORCEINLINE HRESULT IMFVideoRenderer_QueryInterface(IMFVideoRenderer* This,REFIID riid,void **ppvObject) {
  1170. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1171. }
  1172. static FORCEINLINE ULONG IMFVideoRenderer_AddRef(IMFVideoRenderer* This) {
  1173. return This->lpVtbl->AddRef(This);
  1174. }
  1175. static FORCEINLINE ULONG IMFVideoRenderer_Release(IMFVideoRenderer* This) {
  1176. return This->lpVtbl->Release(This);
  1177. }
  1178. /*** IMFVideoRenderer methods ***/
  1179. static FORCEINLINE HRESULT IMFVideoRenderer_InitializeRenderer(IMFVideoRenderer* This,IMFTransform *pVideoMixer,IMFVideoPresenter *pVideoPresenter) {
  1180. return This->lpVtbl->InitializeRenderer(This,pVideoMixer,pVideoPresenter);
  1181. }
  1182. #endif
  1183. #endif
  1184. #endif
  1185. #endif /* __IMFVideoRenderer_INTERFACE_DEFINED__ */
  1186. /*****************************************************************************
  1187. * IEVRFilterConfig interface
  1188. */
  1189. #ifndef __IEVRFilterConfig_INTERFACE_DEFINED__
  1190. #define __IEVRFilterConfig_INTERFACE_DEFINED__
  1191. DEFINE_GUID(IID_IEVRFilterConfig, 0x83e91e85, 0x82c1, 0x4ea7, 0x80,0x1d, 0x85,0xdc,0x50,0xb7,0x50,0x86);
  1192. #if defined(__cplusplus) && !defined(CINTERFACE)
  1193. MIDL_INTERFACE("83e91e85-82c1-4ea7-801d-85dc50b75086")
  1194. IEVRFilterConfig : public IUnknown
  1195. {
  1196. virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams(
  1197. DWORD dwMaxStreams) = 0;
  1198. virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams(
  1199. DWORD *pdwMaxStreams) = 0;
  1200. };
  1201. #ifdef __CRT_UUID_DECL
  1202. __CRT_UUID_DECL(IEVRFilterConfig, 0x83e91e85, 0x82c1, 0x4ea7, 0x80,0x1d, 0x85,0xdc,0x50,0xb7,0x50,0x86)
  1203. #endif
  1204. #else
  1205. typedef struct IEVRFilterConfigVtbl {
  1206. BEGIN_INTERFACE
  1207. /*** IUnknown methods ***/
  1208. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1209. IEVRFilterConfig *This,
  1210. REFIID riid,
  1211. void **ppvObject);
  1212. ULONG (STDMETHODCALLTYPE *AddRef)(
  1213. IEVRFilterConfig *This);
  1214. ULONG (STDMETHODCALLTYPE *Release)(
  1215. IEVRFilterConfig *This);
  1216. /*** IEVRFilterConfig methods ***/
  1217. HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)(
  1218. IEVRFilterConfig *This,
  1219. DWORD dwMaxStreams);
  1220. HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)(
  1221. IEVRFilterConfig *This,
  1222. DWORD *pdwMaxStreams);
  1223. END_INTERFACE
  1224. } IEVRFilterConfigVtbl;
  1225. interface IEVRFilterConfig {
  1226. CONST_VTBL IEVRFilterConfigVtbl* lpVtbl;
  1227. };
  1228. #ifdef COBJMACROS
  1229. #ifndef WIDL_C_INLINE_WRAPPERS
  1230. /*** IUnknown methods ***/
  1231. #define IEVRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1232. #define IEVRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  1233. #define IEVRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
  1234. /*** IEVRFilterConfig methods ***/
  1235. #define IEVRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
  1236. #define IEVRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
  1237. #else
  1238. /*** IUnknown methods ***/
  1239. static FORCEINLINE HRESULT IEVRFilterConfig_QueryInterface(IEVRFilterConfig* This,REFIID riid,void **ppvObject) {
  1240. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1241. }
  1242. static FORCEINLINE ULONG IEVRFilterConfig_AddRef(IEVRFilterConfig* This) {
  1243. return This->lpVtbl->AddRef(This);
  1244. }
  1245. static FORCEINLINE ULONG IEVRFilterConfig_Release(IEVRFilterConfig* This) {
  1246. return This->lpVtbl->Release(This);
  1247. }
  1248. /*** IEVRFilterConfig methods ***/
  1249. static FORCEINLINE HRESULT IEVRFilterConfig_SetNumberOfStreams(IEVRFilterConfig* This,DWORD dwMaxStreams) {
  1250. return This->lpVtbl->SetNumberOfStreams(This,dwMaxStreams);
  1251. }
  1252. static FORCEINLINE HRESULT IEVRFilterConfig_GetNumberOfStreams(IEVRFilterConfig* This,DWORD *pdwMaxStreams) {
  1253. return This->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams);
  1254. }
  1255. #endif
  1256. #endif
  1257. #endif
  1258. #endif /* __IEVRFilterConfig_INTERFACE_DEFINED__ */
  1259. /*****************************************************************************
  1260. * IEVRFilterConfigEx interface
  1261. */
  1262. #ifndef __IEVRFilterConfigEx_INTERFACE_DEFINED__
  1263. #define __IEVRFilterConfigEx_INTERFACE_DEFINED__
  1264. DEFINE_GUID(IID_IEVRFilterConfigEx, 0xaea36028, 0x796d, 0x454f, 0xbe,0xee, 0xb4,0x80,0x71,0xe2,0x43,0x04);
  1265. #if defined(__cplusplus) && !defined(CINTERFACE)
  1266. MIDL_INTERFACE("aea36028-796d-454f-beee-b48071e24304")
  1267. IEVRFilterConfigEx : public IEVRFilterConfig
  1268. {
  1269. virtual HRESULT STDMETHODCALLTYPE SetConfigPrefs(
  1270. DWORD dwConfigFlags) = 0;
  1271. virtual HRESULT STDMETHODCALLTYPE GetConfigPrefs(
  1272. DWORD *pdwConfigFlags) = 0;
  1273. };
  1274. #ifdef __CRT_UUID_DECL
  1275. __CRT_UUID_DECL(IEVRFilterConfigEx, 0xaea36028, 0x796d, 0x454f, 0xbe,0xee, 0xb4,0x80,0x71,0xe2,0x43,0x04)
  1276. #endif
  1277. #else
  1278. typedef struct IEVRFilterConfigExVtbl {
  1279. BEGIN_INTERFACE
  1280. /*** IUnknown methods ***/
  1281. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1282. IEVRFilterConfigEx *This,
  1283. REFIID riid,
  1284. void **ppvObject);
  1285. ULONG (STDMETHODCALLTYPE *AddRef)(
  1286. IEVRFilterConfigEx *This);
  1287. ULONG (STDMETHODCALLTYPE *Release)(
  1288. IEVRFilterConfigEx *This);
  1289. /*** IEVRFilterConfig methods ***/
  1290. HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)(
  1291. IEVRFilterConfigEx *This,
  1292. DWORD dwMaxStreams);
  1293. HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)(
  1294. IEVRFilterConfigEx *This,
  1295. DWORD *pdwMaxStreams);
  1296. /*** IEVRFilterConfigEx methods ***/
  1297. HRESULT (STDMETHODCALLTYPE *SetConfigPrefs)(
  1298. IEVRFilterConfigEx *This,
  1299. DWORD dwConfigFlags);
  1300. HRESULT (STDMETHODCALLTYPE *GetConfigPrefs)(
  1301. IEVRFilterConfigEx *This,
  1302. DWORD *pdwConfigFlags);
  1303. END_INTERFACE
  1304. } IEVRFilterConfigExVtbl;
  1305. interface IEVRFilterConfigEx {
  1306. CONST_VTBL IEVRFilterConfigExVtbl* lpVtbl;
  1307. };
  1308. #ifdef COBJMACROS
  1309. #ifndef WIDL_C_INLINE_WRAPPERS
  1310. /*** IUnknown methods ***/
  1311. #define IEVRFilterConfigEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1312. #define IEVRFilterConfigEx_AddRef(This) (This)->lpVtbl->AddRef(This)
  1313. #define IEVRFilterConfigEx_Release(This) (This)->lpVtbl->Release(This)
  1314. /*** IEVRFilterConfig methods ***/
  1315. #define IEVRFilterConfigEx_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
  1316. #define IEVRFilterConfigEx_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
  1317. /*** IEVRFilterConfigEx methods ***/
  1318. #define IEVRFilterConfigEx_SetConfigPrefs(This,dwConfigFlags) (This)->lpVtbl->SetConfigPrefs(This,dwConfigFlags)
  1319. #define IEVRFilterConfigEx_GetConfigPrefs(This,pdwConfigFlags) (This)->lpVtbl->GetConfigPrefs(This,pdwConfigFlags)
  1320. #else
  1321. /*** IUnknown methods ***/
  1322. static FORCEINLINE HRESULT IEVRFilterConfigEx_QueryInterface(IEVRFilterConfigEx* This,REFIID riid,void **ppvObject) {
  1323. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1324. }
  1325. static FORCEINLINE ULONG IEVRFilterConfigEx_AddRef(IEVRFilterConfigEx* This) {
  1326. return This->lpVtbl->AddRef(This);
  1327. }
  1328. static FORCEINLINE ULONG IEVRFilterConfigEx_Release(IEVRFilterConfigEx* This) {
  1329. return This->lpVtbl->Release(This);
  1330. }
  1331. /*** IEVRFilterConfig methods ***/
  1332. static FORCEINLINE HRESULT IEVRFilterConfigEx_SetNumberOfStreams(IEVRFilterConfigEx* This,DWORD dwMaxStreams) {
  1333. return This->lpVtbl->SetNumberOfStreams(This,dwMaxStreams);
  1334. }
  1335. static FORCEINLINE HRESULT IEVRFilterConfigEx_GetNumberOfStreams(IEVRFilterConfigEx* This,DWORD *pdwMaxStreams) {
  1336. return This->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams);
  1337. }
  1338. /*** IEVRFilterConfigEx methods ***/
  1339. static FORCEINLINE HRESULT IEVRFilterConfigEx_SetConfigPrefs(IEVRFilterConfigEx* This,DWORD dwConfigFlags) {
  1340. return This->lpVtbl->SetConfigPrefs(This,dwConfigFlags);
  1341. }
  1342. static FORCEINLINE HRESULT IEVRFilterConfigEx_GetConfigPrefs(IEVRFilterConfigEx* This,DWORD *pdwConfigFlags) {
  1343. return This->lpVtbl->GetConfigPrefs(This,pdwConfigFlags);
  1344. }
  1345. #endif
  1346. #endif
  1347. #endif
  1348. #endif /* __IEVRFilterConfigEx_INTERFACE_DEFINED__ */
  1349. /*****************************************************************************
  1350. * IMFTopologyServiceLookup interface
  1351. */
  1352. #ifndef __IMFTopologyServiceLookup_INTERFACE_DEFINED__
  1353. #define __IMFTopologyServiceLookup_INTERFACE_DEFINED__
  1354. DEFINE_GUID(IID_IMFTopologyServiceLookup, 0xfa993889, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
  1355. #if defined(__cplusplus) && !defined(CINTERFACE)
  1356. MIDL_INTERFACE("fa993889-4383-415a-a930-dd472a8cf6f7")
  1357. IMFTopologyServiceLookup : public IUnknown
  1358. {
  1359. virtual HRESULT STDMETHODCALLTYPE LookupService(
  1360. MF_SERVICE_LOOKUP_TYPE Type,
  1361. DWORD dwIndex,
  1362. REFGUID guidService,
  1363. REFIID riid,
  1364. LPVOID *ppvObjects,
  1365. DWORD *pnObjects) = 0;
  1366. };
  1367. #ifdef __CRT_UUID_DECL
  1368. __CRT_UUID_DECL(IMFTopologyServiceLookup, 0xfa993889, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7)
  1369. #endif
  1370. #else
  1371. typedef struct IMFTopologyServiceLookupVtbl {
  1372. BEGIN_INTERFACE
  1373. /*** IUnknown methods ***/
  1374. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1375. IMFTopologyServiceLookup *This,
  1376. REFIID riid,
  1377. void **ppvObject);
  1378. ULONG (STDMETHODCALLTYPE *AddRef)(
  1379. IMFTopologyServiceLookup *This);
  1380. ULONG (STDMETHODCALLTYPE *Release)(
  1381. IMFTopologyServiceLookup *This);
  1382. /*** IMFTopologyServiceLookup methods ***/
  1383. HRESULT (STDMETHODCALLTYPE *LookupService)(
  1384. IMFTopologyServiceLookup *This,
  1385. MF_SERVICE_LOOKUP_TYPE Type,
  1386. DWORD dwIndex,
  1387. REFGUID guidService,
  1388. REFIID riid,
  1389. LPVOID *ppvObjects,
  1390. DWORD *pnObjects);
  1391. END_INTERFACE
  1392. } IMFTopologyServiceLookupVtbl;
  1393. interface IMFTopologyServiceLookup {
  1394. CONST_VTBL IMFTopologyServiceLookupVtbl* lpVtbl;
  1395. };
  1396. #ifdef COBJMACROS
  1397. #ifndef WIDL_C_INLINE_WRAPPERS
  1398. /*** IUnknown methods ***/
  1399. #define IMFTopologyServiceLookup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1400. #define IMFTopologyServiceLookup_AddRef(This) (This)->lpVtbl->AddRef(This)
  1401. #define IMFTopologyServiceLookup_Release(This) (This)->lpVtbl->Release(This)
  1402. /*** IMFTopologyServiceLookup methods ***/
  1403. #define IMFTopologyServiceLookup_LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects) (This)->lpVtbl->LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects)
  1404. #else
  1405. /*** IUnknown methods ***/
  1406. static FORCEINLINE HRESULT IMFTopologyServiceLookup_QueryInterface(IMFTopologyServiceLookup* This,REFIID riid,void **ppvObject) {
  1407. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1408. }
  1409. static FORCEINLINE ULONG IMFTopologyServiceLookup_AddRef(IMFTopologyServiceLookup* This) {
  1410. return This->lpVtbl->AddRef(This);
  1411. }
  1412. static FORCEINLINE ULONG IMFTopologyServiceLookup_Release(IMFTopologyServiceLookup* This) {
  1413. return This->lpVtbl->Release(This);
  1414. }
  1415. /*** IMFTopologyServiceLookup methods ***/
  1416. static FORCEINLINE HRESULT IMFTopologyServiceLookup_LookupService(IMFTopologyServiceLookup* This,MF_SERVICE_LOOKUP_TYPE Type,DWORD dwIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObjects,DWORD *pnObjects) {
  1417. return This->lpVtbl->LookupService(This,Type,dwIndex,guidService,riid,ppvObjects,pnObjects);
  1418. }
  1419. #endif
  1420. #endif
  1421. #endif
  1422. #endif /* __IMFTopologyServiceLookup_INTERFACE_DEFINED__ */
  1423. /*****************************************************************************
  1424. * IMFTopologyServiceLookupClient interface
  1425. */
  1426. #ifndef __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__
  1427. #define __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__
  1428. DEFINE_GUID(IID_IMFTopologyServiceLookupClient, 0xfa99388a, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
  1429. #if defined(__cplusplus) && !defined(CINTERFACE)
  1430. MIDL_INTERFACE("fa99388a-4383-415a-a930-dd472a8cf6f7")
  1431. IMFTopologyServiceLookupClient : public IUnknown
  1432. {
  1433. virtual HRESULT STDMETHODCALLTYPE InitServicePointers(
  1434. IMFTopologyServiceLookup *pLookup) = 0;
  1435. virtual HRESULT STDMETHODCALLTYPE ReleaseServicePointers(
  1436. ) = 0;
  1437. };
  1438. #ifdef __CRT_UUID_DECL
  1439. __CRT_UUID_DECL(IMFTopologyServiceLookupClient, 0xfa99388a, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7)
  1440. #endif
  1441. #else
  1442. typedef struct IMFTopologyServiceLookupClientVtbl {
  1443. BEGIN_INTERFACE
  1444. /*** IUnknown methods ***/
  1445. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1446. IMFTopologyServiceLookupClient *This,
  1447. REFIID riid,
  1448. void **ppvObject);
  1449. ULONG (STDMETHODCALLTYPE *AddRef)(
  1450. IMFTopologyServiceLookupClient *This);
  1451. ULONG (STDMETHODCALLTYPE *Release)(
  1452. IMFTopologyServiceLookupClient *This);
  1453. /*** IMFTopologyServiceLookupClient methods ***/
  1454. HRESULT (STDMETHODCALLTYPE *InitServicePointers)(
  1455. IMFTopologyServiceLookupClient *This,
  1456. IMFTopologyServiceLookup *pLookup);
  1457. HRESULT (STDMETHODCALLTYPE *ReleaseServicePointers)(
  1458. IMFTopologyServiceLookupClient *This);
  1459. END_INTERFACE
  1460. } IMFTopologyServiceLookupClientVtbl;
  1461. interface IMFTopologyServiceLookupClient {
  1462. CONST_VTBL IMFTopologyServiceLookupClientVtbl* lpVtbl;
  1463. };
  1464. #ifdef COBJMACROS
  1465. #ifndef WIDL_C_INLINE_WRAPPERS
  1466. /*** IUnknown methods ***/
  1467. #define IMFTopologyServiceLookupClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1468. #define IMFTopologyServiceLookupClient_AddRef(This) (This)->lpVtbl->AddRef(This)
  1469. #define IMFTopologyServiceLookupClient_Release(This) (This)->lpVtbl->Release(This)
  1470. /*** IMFTopologyServiceLookupClient methods ***/
  1471. #define IMFTopologyServiceLookupClient_InitServicePointers(This,pLookup) (This)->lpVtbl->InitServicePointers(This,pLookup)
  1472. #define IMFTopologyServiceLookupClient_ReleaseServicePointers(This) (This)->lpVtbl->ReleaseServicePointers(This)
  1473. #else
  1474. /*** IUnknown methods ***/
  1475. static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_QueryInterface(IMFTopologyServiceLookupClient* This,REFIID riid,void **ppvObject) {
  1476. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1477. }
  1478. static FORCEINLINE ULONG IMFTopologyServiceLookupClient_AddRef(IMFTopologyServiceLookupClient* This) {
  1479. return This->lpVtbl->AddRef(This);
  1480. }
  1481. static FORCEINLINE ULONG IMFTopologyServiceLookupClient_Release(IMFTopologyServiceLookupClient* This) {
  1482. return This->lpVtbl->Release(This);
  1483. }
  1484. /*** IMFTopologyServiceLookupClient methods ***/
  1485. static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_InitServicePointers(IMFTopologyServiceLookupClient* This,IMFTopologyServiceLookup *pLookup) {
  1486. return This->lpVtbl->InitServicePointers(This,pLookup);
  1487. }
  1488. static FORCEINLINE HRESULT IMFTopologyServiceLookupClient_ReleaseServicePointers(IMFTopologyServiceLookupClient* This) {
  1489. return This->lpVtbl->ReleaseServicePointers(This);
  1490. }
  1491. #endif
  1492. #endif
  1493. #endif
  1494. #endif /* __IMFTopologyServiceLookupClient_INTERFACE_DEFINED__ */
  1495. /*****************************************************************************
  1496. * IEVRTrustedVideoPlugin interface
  1497. */
  1498. #ifndef __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__
  1499. #define __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__
  1500. DEFINE_GUID(IID_IEVRTrustedVideoPlugin, 0x83a4ce40, 0x7710, 0x494b, 0xa8,0x93, 0xa4,0x72,0x04,0x9a,0xf6,0x30);
  1501. #if defined(__cplusplus) && !defined(CINTERFACE)
  1502. MIDL_INTERFACE("83a4ce40-7710-494b-a893-a472049af630")
  1503. IEVRTrustedVideoPlugin : public IUnknown
  1504. {
  1505. virtual HRESULT STDMETHODCALLTYPE IsInTrustedVideoMode(
  1506. WINBOOL *pYes) = 0;
  1507. virtual HRESULT STDMETHODCALLTYPE CanConstrict(
  1508. WINBOOL *pYes) = 0;
  1509. virtual HRESULT STDMETHODCALLTYPE SetConstriction(
  1510. DWORD dwKPix) = 0;
  1511. virtual HRESULT STDMETHODCALLTYPE DisableImageExport(
  1512. WINBOOL bDisable) = 0;
  1513. };
  1514. #ifdef __CRT_UUID_DECL
  1515. __CRT_UUID_DECL(IEVRTrustedVideoPlugin, 0x83a4ce40, 0x7710, 0x494b, 0xa8,0x93, 0xa4,0x72,0x04,0x9a,0xf6,0x30)
  1516. #endif
  1517. #else
  1518. typedef struct IEVRTrustedVideoPluginVtbl {
  1519. BEGIN_INTERFACE
  1520. /*** IUnknown methods ***/
  1521. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1522. IEVRTrustedVideoPlugin *This,
  1523. REFIID riid,
  1524. void **ppvObject);
  1525. ULONG (STDMETHODCALLTYPE *AddRef)(
  1526. IEVRTrustedVideoPlugin *This);
  1527. ULONG (STDMETHODCALLTYPE *Release)(
  1528. IEVRTrustedVideoPlugin *This);
  1529. /*** IEVRTrustedVideoPlugin methods ***/
  1530. HRESULT (STDMETHODCALLTYPE *IsInTrustedVideoMode)(
  1531. IEVRTrustedVideoPlugin *This,
  1532. WINBOOL *pYes);
  1533. HRESULT (STDMETHODCALLTYPE *CanConstrict)(
  1534. IEVRTrustedVideoPlugin *This,
  1535. WINBOOL *pYes);
  1536. HRESULT (STDMETHODCALLTYPE *SetConstriction)(
  1537. IEVRTrustedVideoPlugin *This,
  1538. DWORD dwKPix);
  1539. HRESULT (STDMETHODCALLTYPE *DisableImageExport)(
  1540. IEVRTrustedVideoPlugin *This,
  1541. WINBOOL bDisable);
  1542. END_INTERFACE
  1543. } IEVRTrustedVideoPluginVtbl;
  1544. interface IEVRTrustedVideoPlugin {
  1545. CONST_VTBL IEVRTrustedVideoPluginVtbl* lpVtbl;
  1546. };
  1547. #ifdef COBJMACROS
  1548. #ifndef WIDL_C_INLINE_WRAPPERS
  1549. /*** IUnknown methods ***/
  1550. #define IEVRTrustedVideoPlugin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1551. #define IEVRTrustedVideoPlugin_AddRef(This) (This)->lpVtbl->AddRef(This)
  1552. #define IEVRTrustedVideoPlugin_Release(This) (This)->lpVtbl->Release(This)
  1553. /*** IEVRTrustedVideoPlugin methods ***/
  1554. #define IEVRTrustedVideoPlugin_IsInTrustedVideoMode(This,pYes) (This)->lpVtbl->IsInTrustedVideoMode(This,pYes)
  1555. #define IEVRTrustedVideoPlugin_CanConstrict(This,pYes) (This)->lpVtbl->CanConstrict(This,pYes)
  1556. #define IEVRTrustedVideoPlugin_SetConstriction(This,dwKPix) (This)->lpVtbl->SetConstriction(This,dwKPix)
  1557. #define IEVRTrustedVideoPlugin_DisableImageExport(This,bDisable) (This)->lpVtbl->DisableImageExport(This,bDisable)
  1558. #else
  1559. /*** IUnknown methods ***/
  1560. static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_QueryInterface(IEVRTrustedVideoPlugin* This,REFIID riid,void **ppvObject) {
  1561. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1562. }
  1563. static FORCEINLINE ULONG IEVRTrustedVideoPlugin_AddRef(IEVRTrustedVideoPlugin* This) {
  1564. return This->lpVtbl->AddRef(This);
  1565. }
  1566. static FORCEINLINE ULONG IEVRTrustedVideoPlugin_Release(IEVRTrustedVideoPlugin* This) {
  1567. return This->lpVtbl->Release(This);
  1568. }
  1569. /*** IEVRTrustedVideoPlugin methods ***/
  1570. static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_IsInTrustedVideoMode(IEVRTrustedVideoPlugin* This,WINBOOL *pYes) {
  1571. return This->lpVtbl->IsInTrustedVideoMode(This,pYes);
  1572. }
  1573. static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_CanConstrict(IEVRTrustedVideoPlugin* This,WINBOOL *pYes) {
  1574. return This->lpVtbl->CanConstrict(This,pYes);
  1575. }
  1576. static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_SetConstriction(IEVRTrustedVideoPlugin* This,DWORD dwKPix) {
  1577. return This->lpVtbl->SetConstriction(This,dwKPix);
  1578. }
  1579. static FORCEINLINE HRESULT IEVRTrustedVideoPlugin_DisableImageExport(IEVRTrustedVideoPlugin* This,WINBOOL bDisable) {
  1580. return This->lpVtbl->DisableImageExport(This,bDisable);
  1581. }
  1582. #endif
  1583. #endif
  1584. #endif
  1585. #endif /* __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__ */
  1586. HRESULT WINAPI MFCreateVideoPresenter(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppVideoPresenter);
  1587. HRESULT WINAPI MFCreateVideoMixer(IUnknown *pOwner, REFIID riidDevice, REFIID riid, void **ppv);
  1588. HRESULT WINAPI MFCreateVideoMixerAndPresenter(IUnknown *pMixerOwner, IUnknown *pPresenterOwner, REFIID riidMixer, void **ppvVideoMixer, REFIID riidPresenter, void **ppvVideoPresenter);
  1589. HRESULT WINAPI MFCreateVideoRenderer( REFIID riidRenderer, void **ppVideoRenderer );
  1590. HRESULT WINAPI MFCreateVideoSampleFromSurface(IUnknown *pUnkSurface, IMFSample **ppSample);
  1591. HRESULT WINAPI MFCreateVideoSampleAllocator(REFIID riid, void **ppSampleAllocator);
  1592. #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
  1593. /* Begin additional prototypes for all interfaces */
  1594. ULONG __RPC_USER HWND_UserSize (ULONG *, ULONG, HWND *);
  1595. unsigned char * __RPC_USER HWND_UserMarshal (ULONG *, unsigned char *, HWND *);
  1596. unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
  1597. void __RPC_USER HWND_UserFree (ULONG *, HWND *);
  1598. /* End additional prototypes */
  1599. #ifdef __cplusplus
  1600. }
  1601. #endif
  1602. #endif /* __evr_h__ */