vmr9.h 87 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441
  1. /*** Autogenerated by WIDL 7.7 from include/vmr9.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 __vmr9_h__
  14. #define __vmr9_h__
  15. /* Forward declarations */
  16. #ifndef __IVMRImagePresenter9_FWD_DEFINED__
  17. #define __IVMRImagePresenter9_FWD_DEFINED__
  18. typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
  19. #ifdef __cplusplus
  20. interface IVMRImagePresenter9;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
  24. #define __IVMRSurfaceAllocator9_FWD_DEFINED__
  25. typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
  26. #ifdef __cplusplus
  27. interface IVMRSurfaceAllocator9;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
  31. #define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
  32. typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
  33. #ifdef __cplusplus
  34. interface IVMRSurfaceAllocatorEx9;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
  38. #define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
  39. typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
  40. #ifdef __cplusplus
  41. interface IVMRSurfaceAllocatorNotify9;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IVMRWindowlessControl9_FWD_DEFINED__
  45. #define __IVMRWindowlessControl9_FWD_DEFINED__
  46. typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
  47. #ifdef __cplusplus
  48. interface IVMRWindowlessControl9;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IVMRMixerControl9_FWD_DEFINED__
  52. #define __IVMRMixerControl9_FWD_DEFINED__
  53. typedef interface IVMRMixerControl9 IVMRMixerControl9;
  54. #ifdef __cplusplus
  55. interface IVMRMixerControl9;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IVMRMixerBitmap9_FWD_DEFINED__
  59. #define __IVMRMixerBitmap9_FWD_DEFINED__
  60. typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
  61. #ifdef __cplusplus
  62. interface IVMRMixerBitmap9;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IVMRSurface9_FWD_DEFINED__
  66. #define __IVMRSurface9_FWD_DEFINED__
  67. typedef interface IVMRSurface9 IVMRSurface9;
  68. #ifdef __cplusplus
  69. interface IVMRSurface9;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
  73. #define __IVMRImagePresenterConfig9_FWD_DEFINED__
  74. typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
  75. #ifdef __cplusplus
  76. interface IVMRImagePresenterConfig9;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
  80. #define __IVMRVideoStreamControl9_FWD_DEFINED__
  81. typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
  82. #ifdef __cplusplus
  83. interface IVMRVideoStreamControl9;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __IVMRFilterConfig9_FWD_DEFINED__
  87. #define __IVMRFilterConfig9_FWD_DEFINED__
  88. typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
  89. #ifdef __cplusplus
  90. interface IVMRFilterConfig9;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
  94. #define __IVMRAspectRatioControl9_FWD_DEFINED__
  95. typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
  96. #ifdef __cplusplus
  97. interface IVMRAspectRatioControl9;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __IVMRMonitorConfig9_FWD_DEFINED__
  101. #define __IVMRMonitorConfig9_FWD_DEFINED__
  102. typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
  103. #ifdef __cplusplus
  104. interface IVMRMonitorConfig9;
  105. #endif /* __cplusplus */
  106. #endif
  107. #ifndef __IVMRDeinterlaceControl9_FWD_DEFINED__
  108. #define __IVMRDeinterlaceControl9_FWD_DEFINED__
  109. typedef interface IVMRDeinterlaceControl9 IVMRDeinterlaceControl9;
  110. #ifdef __cplusplus
  111. interface IVMRDeinterlaceControl9;
  112. #endif /* __cplusplus */
  113. #endif
  114. #ifndef __IVMRImageCompositor9_FWD_DEFINED__
  115. #define __IVMRImageCompositor9_FWD_DEFINED__
  116. typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
  117. #ifdef __cplusplus
  118. interface IVMRImageCompositor9;
  119. #endif /* __cplusplus */
  120. #endif
  121. /* Headers for imported files */
  122. #include <unknwn.h>
  123. #ifdef __cplusplus
  124. extern "C" {
  125. #endif
  126. #if 0
  127. #ifndef __IDirect3DSurface9_FWD_DEFINED__
  128. #define __IDirect3DSurface9_FWD_DEFINED__
  129. typedef interface IDirect3DSurface9 IDirect3DSurface9;
  130. #ifdef __cplusplus
  131. interface IDirect3DSurface9;
  132. #endif /* __cplusplus */
  133. #endif
  134. #ifndef __IDirect3DDevice9_FWD_DEFINED__
  135. #define __IDirect3DDevice9_FWD_DEFINED__
  136. typedef interface IDirect3DDevice9 IDirect3DDevice9;
  137. #ifdef __cplusplus
  138. interface IDirect3DDevice9;
  139. #endif /* __cplusplus */
  140. #endif
  141. typedef LONGLONG REFERENCE_TIME;
  142. typedef DWORD D3DFORMAT;
  143. typedef DWORD D3DPOOL;
  144. typedef HANDLE HMONITOR;
  145. typedef struct __WIDL_vmr9_generated_name_0000000C {
  146. char dummy;
  147. } AM_MEDIA_TYPE;
  148. typedef struct __WIDL_vmr9_generated_name_0000000D {
  149. char dummy;
  150. } D3DCOLOR;
  151. #endif
  152. #ifndef __IVMRSurface9_FWD_DEFINED__
  153. #define __IVMRSurface9_FWD_DEFINED__
  154. typedef interface IVMRSurface9 IVMRSurface9;
  155. #ifdef __cplusplus
  156. interface IVMRSurface9;
  157. #endif /* __cplusplus */
  158. #endif
  159. #ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
  160. #define __IVMRSurfaceAllocator9_FWD_DEFINED__
  161. typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
  162. #ifdef __cplusplus
  163. interface IVMRSurfaceAllocator9;
  164. #endif /* __cplusplus */
  165. #endif
  166. #ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
  167. #define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
  168. typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
  169. #ifdef __cplusplus
  170. interface IVMRSurfaceAllocatorEx9;
  171. #endif /* __cplusplus */
  172. #endif
  173. #ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
  174. #define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
  175. typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
  176. #ifdef __cplusplus
  177. interface IVMRSurfaceAllocatorNotify9;
  178. #endif /* __cplusplus */
  179. #endif
  180. #ifndef __IVMRImagePresenter9_FWD_DEFINED__
  181. #define __IVMRImagePresenter9_FWD_DEFINED__
  182. typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
  183. #ifdef __cplusplus
  184. interface IVMRImagePresenter9;
  185. #endif /* __cplusplus */
  186. #endif
  187. #ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
  188. #define __IVMRImagePresenterConfig9_FWD_DEFINED__
  189. typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
  190. #ifdef __cplusplus
  191. interface IVMRImagePresenterConfig9;
  192. #endif /* __cplusplus */
  193. #endif
  194. #ifndef __IVMRMonitorConfig9_FWD_DEFINED__
  195. #define __IVMRMonitorConfig9_FWD_DEFINED__
  196. typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
  197. #ifdef __cplusplus
  198. interface IVMRMonitorConfig9;
  199. #endif /* __cplusplus */
  200. #endif
  201. #ifndef __IVMRWindowlessControl9_FWD_DEFINED__
  202. #define __IVMRWindowlessControl9_FWD_DEFINED__
  203. typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
  204. #ifdef __cplusplus
  205. interface IVMRWindowlessControl9;
  206. #endif /* __cplusplus */
  207. #endif
  208. #ifndef __IVMRMixerControl9_FWD_DEFINED__
  209. #define __IVMRMixerControl9_FWD_DEFINED__
  210. typedef interface IVMRMixerControl9 IVMRMixerControl9;
  211. #ifdef __cplusplus
  212. interface IVMRMixerControl9;
  213. #endif /* __cplusplus */
  214. #endif
  215. #ifndef __IVMRImageCompositor9_FWD_DEFINED__
  216. #define __IVMRImageCompositor9_FWD_DEFINED__
  217. typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
  218. #ifdef __cplusplus
  219. interface IVMRImageCompositor9;
  220. #endif /* __cplusplus */
  221. #endif
  222. #ifndef __IVMRMixerBitmap9_FWD_DEFINED__
  223. #define __IVMRMixerBitmap9_FWD_DEFINED__
  224. typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
  225. #ifdef __cplusplus
  226. interface IVMRMixerBitmap9;
  227. #endif /* __cplusplus */
  228. #endif
  229. #ifndef __IVMRFilterConfig9_FWD_DEFINED__
  230. #define __IVMRFilterConfig9_FWD_DEFINED__
  231. typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
  232. #ifdef __cplusplus
  233. interface IVMRFilterConfig9;
  234. #endif /* __cplusplus */
  235. #endif
  236. #ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
  237. #define __IVMRAspectRatioControl9_FWD_DEFINED__
  238. typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
  239. #ifdef __cplusplus
  240. interface IVMRAspectRatioControl9;
  241. #endif /* __cplusplus */
  242. #endif
  243. #ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
  244. #define __IVMRVideoStreamControl9_FWD_DEFINED__
  245. typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
  246. #ifdef __cplusplus
  247. interface IVMRVideoStreamControl9;
  248. #endif /* __cplusplus */
  249. #endif
  250. typedef enum _VMR9PresentationFlags {
  251. VMR9Sample_SyncPoint = 0x1,
  252. VMR9Sample_Preroll = 0x2,
  253. VMR9Sample_Discontinuity = 0x4,
  254. VMR9Sample_TimeValid = 0x8,
  255. VMR9Sample_SrcDstRectsValid = 0x10
  256. } VMR9PresentationFlags;
  257. typedef struct _VMR9PresentationInfo {
  258. DWORD dwFlags;
  259. IDirect3DSurface9 *lpSurf;
  260. REFERENCE_TIME rtStart;
  261. REFERENCE_TIME rtEnd;
  262. SIZE szAspectRatio;
  263. RECT rcSrc;
  264. RECT rcDst;
  265. DWORD dwReserved1;
  266. DWORD dwReserved2;
  267. } VMR9PresentationInfo;
  268. /*****************************************************************************
  269. * IVMRImagePresenter9 interface
  270. */
  271. #ifndef __IVMRImagePresenter9_INTERFACE_DEFINED__
  272. #define __IVMRImagePresenter9_INTERFACE_DEFINED__
  273. DEFINE_GUID(IID_IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7);
  274. #if defined(__cplusplus) && !defined(CINTERFACE)
  275. MIDL_INTERFACE("69188c61-12a3-40f0-8ffc-342e7b433fd7")
  276. IVMRImagePresenter9 : public IUnknown
  277. {
  278. virtual HRESULT STDMETHODCALLTYPE StartPresenting(
  279. DWORD_PTR id) = 0;
  280. virtual HRESULT STDMETHODCALLTYPE StopPresenting(
  281. DWORD_PTR id) = 0;
  282. virtual HRESULT STDMETHODCALLTYPE PresentImage(
  283. DWORD_PTR id,
  284. VMR9PresentationInfo *info) = 0;
  285. };
  286. #ifdef __CRT_UUID_DECL
  287. __CRT_UUID_DECL(IVMRImagePresenter9, 0x69188c61, 0x12a3, 0x40f0, 0x8f,0xfc, 0x34,0x2e,0x7b,0x43,0x3f,0xd7)
  288. #endif
  289. #else
  290. typedef struct IVMRImagePresenter9Vtbl {
  291. BEGIN_INTERFACE
  292. /*** IUnknown methods ***/
  293. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  294. IVMRImagePresenter9 *This,
  295. REFIID riid,
  296. void **ppvObject);
  297. ULONG (STDMETHODCALLTYPE *AddRef)(
  298. IVMRImagePresenter9 *This);
  299. ULONG (STDMETHODCALLTYPE *Release)(
  300. IVMRImagePresenter9 *This);
  301. /*** IVMRImagePresenter9 methods ***/
  302. HRESULT (STDMETHODCALLTYPE *StartPresenting)(
  303. IVMRImagePresenter9 *This,
  304. DWORD_PTR id);
  305. HRESULT (STDMETHODCALLTYPE *StopPresenting)(
  306. IVMRImagePresenter9 *This,
  307. DWORD_PTR id);
  308. HRESULT (STDMETHODCALLTYPE *PresentImage)(
  309. IVMRImagePresenter9 *This,
  310. DWORD_PTR id,
  311. VMR9PresentationInfo *info);
  312. END_INTERFACE
  313. } IVMRImagePresenter9Vtbl;
  314. interface IVMRImagePresenter9 {
  315. CONST_VTBL IVMRImagePresenter9Vtbl* lpVtbl;
  316. };
  317. #ifdef COBJMACROS
  318. #ifndef WIDL_C_INLINE_WRAPPERS
  319. /*** IUnknown methods ***/
  320. #define IVMRImagePresenter9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  321. #define IVMRImagePresenter9_AddRef(This) (This)->lpVtbl->AddRef(This)
  322. #define IVMRImagePresenter9_Release(This) (This)->lpVtbl->Release(This)
  323. /*** IVMRImagePresenter9 methods ***/
  324. #define IVMRImagePresenter9_StartPresenting(This,id) (This)->lpVtbl->StartPresenting(This,id)
  325. #define IVMRImagePresenter9_StopPresenting(This,id) (This)->lpVtbl->StopPresenting(This,id)
  326. #define IVMRImagePresenter9_PresentImage(This,id,info) (This)->lpVtbl->PresentImage(This,id,info)
  327. #else
  328. /*** IUnknown methods ***/
  329. static FORCEINLINE HRESULT IVMRImagePresenter9_QueryInterface(IVMRImagePresenter9* This,REFIID riid,void **ppvObject) {
  330. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  331. }
  332. static FORCEINLINE ULONG IVMRImagePresenter9_AddRef(IVMRImagePresenter9* This) {
  333. return This->lpVtbl->AddRef(This);
  334. }
  335. static FORCEINLINE ULONG IVMRImagePresenter9_Release(IVMRImagePresenter9* This) {
  336. return This->lpVtbl->Release(This);
  337. }
  338. /*** IVMRImagePresenter9 methods ***/
  339. static FORCEINLINE HRESULT IVMRImagePresenter9_StartPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
  340. return This->lpVtbl->StartPresenting(This,id);
  341. }
  342. static FORCEINLINE HRESULT IVMRImagePresenter9_StopPresenting(IVMRImagePresenter9* This,DWORD_PTR id) {
  343. return This->lpVtbl->StopPresenting(This,id);
  344. }
  345. static FORCEINLINE HRESULT IVMRImagePresenter9_PresentImage(IVMRImagePresenter9* This,DWORD_PTR id,VMR9PresentationInfo *info) {
  346. return This->lpVtbl->PresentImage(This,id,info);
  347. }
  348. #endif
  349. #endif
  350. #endif
  351. #endif /* __IVMRImagePresenter9_INTERFACE_DEFINED__ */
  352. typedef enum _VMR9SurfaceAllocationFlags {
  353. VMR9AllocFlag_3DRenderTarget = 0x1,
  354. VMR9AllocFlag_DXVATarget = 0x2,
  355. VMR9AllocFlag_TextureSurface = 0x4,
  356. VMR9AllocFlag_OffscreenSurface = 0x8,
  357. VMR9AllocFlag_RGBDynamicSwitch = 0x10,
  358. VMR9AllocFlag_UsageReserved = 0xe0,
  359. VMR9AllocFlag_UsageMask = 0xff
  360. } VMR9SurfaceAllocationFlags;
  361. typedef struct _VMR9AllocationInfo {
  362. DWORD dwFlags;
  363. DWORD dwWidth;
  364. DWORD dwHeight;
  365. D3DFORMAT Format;
  366. D3DPOOL Pool;
  367. DWORD MinBuffers;
  368. SIZE szAspectRatio;
  369. SIZE szNativeSize;
  370. } VMR9AllocationInfo;
  371. /*****************************************************************************
  372. * IVMRSurfaceAllocator9 interface
  373. */
  374. #ifndef __IVMRSurfaceAllocator9_INTERFACE_DEFINED__
  375. #define __IVMRSurfaceAllocator9_INTERFACE_DEFINED__
  376. DEFINE_GUID(IID_IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f);
  377. #if defined(__cplusplus) && !defined(CINTERFACE)
  378. MIDL_INTERFACE("8d5148ea-3f5d-46cf-9df1-d1b896eedb1f")
  379. IVMRSurfaceAllocator9 : public IUnknown
  380. {
  381. virtual HRESULT STDMETHODCALLTYPE InitializeDevice(
  382. DWORD_PTR id,
  383. VMR9AllocationInfo *allocinfo,
  384. DWORD *numbuffers) = 0;
  385. virtual HRESULT STDMETHODCALLTYPE TerminateDevice(
  386. DWORD_PTR id) = 0;
  387. virtual HRESULT STDMETHODCALLTYPE GetSurface(
  388. DWORD_PTR id,
  389. DWORD surfaceindex,
  390. DWORD flags,
  391. IDirect3DSurface9 **surface) = 0;
  392. virtual HRESULT STDMETHODCALLTYPE AdviseNotify(
  393. IVMRSurfaceAllocatorNotify9 *allocnotify) = 0;
  394. };
  395. #ifdef __CRT_UUID_DECL
  396. __CRT_UUID_DECL(IVMRSurfaceAllocator9, 0x8d5148ea, 0x3f5d, 0x46cf, 0x9d,0xf1, 0xd1,0xb8,0x96,0xee,0xdb,0x1f)
  397. #endif
  398. #else
  399. typedef struct IVMRSurfaceAllocator9Vtbl {
  400. BEGIN_INTERFACE
  401. /*** IUnknown methods ***/
  402. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  403. IVMRSurfaceAllocator9 *This,
  404. REFIID riid,
  405. void **ppvObject);
  406. ULONG (STDMETHODCALLTYPE *AddRef)(
  407. IVMRSurfaceAllocator9 *This);
  408. ULONG (STDMETHODCALLTYPE *Release)(
  409. IVMRSurfaceAllocator9 *This);
  410. /*** IVMRSurfaceAllocator9 methods ***/
  411. HRESULT (STDMETHODCALLTYPE *InitializeDevice)(
  412. IVMRSurfaceAllocator9 *This,
  413. DWORD_PTR id,
  414. VMR9AllocationInfo *allocinfo,
  415. DWORD *numbuffers);
  416. HRESULT (STDMETHODCALLTYPE *TerminateDevice)(
  417. IVMRSurfaceAllocator9 *This,
  418. DWORD_PTR id);
  419. HRESULT (STDMETHODCALLTYPE *GetSurface)(
  420. IVMRSurfaceAllocator9 *This,
  421. DWORD_PTR id,
  422. DWORD surfaceindex,
  423. DWORD flags,
  424. IDirect3DSurface9 **surface);
  425. HRESULT (STDMETHODCALLTYPE *AdviseNotify)(
  426. IVMRSurfaceAllocator9 *This,
  427. IVMRSurfaceAllocatorNotify9 *allocnotify);
  428. END_INTERFACE
  429. } IVMRSurfaceAllocator9Vtbl;
  430. interface IVMRSurfaceAllocator9 {
  431. CONST_VTBL IVMRSurfaceAllocator9Vtbl* lpVtbl;
  432. };
  433. #ifdef COBJMACROS
  434. #ifndef WIDL_C_INLINE_WRAPPERS
  435. /*** IUnknown methods ***/
  436. #define IVMRSurfaceAllocator9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  437. #define IVMRSurfaceAllocator9_AddRef(This) (This)->lpVtbl->AddRef(This)
  438. #define IVMRSurfaceAllocator9_Release(This) (This)->lpVtbl->Release(This)
  439. /*** IVMRSurfaceAllocator9 methods ***/
  440. #define IVMRSurfaceAllocator9_InitializeDevice(This,id,allocinfo,numbuffers) (This)->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers)
  441. #define IVMRSurfaceAllocator9_TerminateDevice(This,id) (This)->lpVtbl->TerminateDevice(This,id)
  442. #define IVMRSurfaceAllocator9_GetSurface(This,id,surfaceindex,flags,surface) (This)->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface)
  443. #define IVMRSurfaceAllocator9_AdviseNotify(This,allocnotify) (This)->lpVtbl->AdviseNotify(This,allocnotify)
  444. #else
  445. /*** IUnknown methods ***/
  446. static FORCEINLINE HRESULT IVMRSurfaceAllocator9_QueryInterface(IVMRSurfaceAllocator9* This,REFIID riid,void **ppvObject) {
  447. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  448. }
  449. static FORCEINLINE ULONG IVMRSurfaceAllocator9_AddRef(IVMRSurfaceAllocator9* This) {
  450. return This->lpVtbl->AddRef(This);
  451. }
  452. static FORCEINLINE ULONG IVMRSurfaceAllocator9_Release(IVMRSurfaceAllocator9* This) {
  453. return This->lpVtbl->Release(This);
  454. }
  455. /*** IVMRSurfaceAllocator9 methods ***/
  456. static FORCEINLINE HRESULT IVMRSurfaceAllocator9_InitializeDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
  457. return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
  458. }
  459. static FORCEINLINE HRESULT IVMRSurfaceAllocator9_TerminateDevice(IVMRSurfaceAllocator9* This,DWORD_PTR id) {
  460. return This->lpVtbl->TerminateDevice(This,id);
  461. }
  462. static FORCEINLINE HRESULT IVMRSurfaceAllocator9_GetSurface(IVMRSurfaceAllocator9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface) {
  463. return This->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface);
  464. }
  465. static FORCEINLINE HRESULT IVMRSurfaceAllocator9_AdviseNotify(IVMRSurfaceAllocator9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
  466. return This->lpVtbl->AdviseNotify(This,allocnotify);
  467. }
  468. #endif
  469. #endif
  470. #endif
  471. #endif /* __IVMRSurfaceAllocator9_INTERFACE_DEFINED__ */
  472. /*****************************************************************************
  473. * IVMRSurfaceAllocatorEx9 interface
  474. */
  475. #ifndef __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__
  476. #define __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__
  477. DEFINE_GUID(IID_IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56);
  478. #if defined(__cplusplus) && !defined(CINTERFACE)
  479. MIDL_INTERFACE("6de9a68a-a928-4522-bf57-655ae3866456")
  480. IVMRSurfaceAllocatorEx9 : public IVMRSurfaceAllocator9
  481. {
  482. virtual HRESULT STDMETHODCALLTYPE GetSurfaceEx(
  483. DWORD_PTR id,
  484. DWORD surfaceindex,
  485. DWORD flags,
  486. IDirect3DSurface9 **surface,
  487. RECT *dest) = 0;
  488. };
  489. #ifdef __CRT_UUID_DECL
  490. __CRT_UUID_DECL(IVMRSurfaceAllocatorEx9, 0x6de9a68a, 0xa928, 0x4522, 0xbf,0x57, 0x65,0x5a,0xe3,0x86,0x64,0x56)
  491. #endif
  492. #else
  493. typedef struct IVMRSurfaceAllocatorEx9Vtbl {
  494. BEGIN_INTERFACE
  495. /*** IUnknown methods ***/
  496. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  497. IVMRSurfaceAllocatorEx9 *This,
  498. REFIID riid,
  499. void **ppvObject);
  500. ULONG (STDMETHODCALLTYPE *AddRef)(
  501. IVMRSurfaceAllocatorEx9 *This);
  502. ULONG (STDMETHODCALLTYPE *Release)(
  503. IVMRSurfaceAllocatorEx9 *This);
  504. /*** IVMRSurfaceAllocator9 methods ***/
  505. HRESULT (STDMETHODCALLTYPE *InitializeDevice)(
  506. IVMRSurfaceAllocatorEx9 *This,
  507. DWORD_PTR id,
  508. VMR9AllocationInfo *allocinfo,
  509. DWORD *numbuffers);
  510. HRESULT (STDMETHODCALLTYPE *TerminateDevice)(
  511. IVMRSurfaceAllocatorEx9 *This,
  512. DWORD_PTR id);
  513. HRESULT (STDMETHODCALLTYPE *GetSurface)(
  514. IVMRSurfaceAllocatorEx9 *This,
  515. DWORD_PTR id,
  516. DWORD surfaceindex,
  517. DWORD flags,
  518. IDirect3DSurface9 **surface);
  519. HRESULT (STDMETHODCALLTYPE *AdviseNotify)(
  520. IVMRSurfaceAllocatorEx9 *This,
  521. IVMRSurfaceAllocatorNotify9 *allocnotify);
  522. /*** IVMRSurfaceAllocatorEx9 methods ***/
  523. HRESULT (STDMETHODCALLTYPE *GetSurfaceEx)(
  524. IVMRSurfaceAllocatorEx9 *This,
  525. DWORD_PTR id,
  526. DWORD surfaceindex,
  527. DWORD flags,
  528. IDirect3DSurface9 **surface,
  529. RECT *dest);
  530. END_INTERFACE
  531. } IVMRSurfaceAllocatorEx9Vtbl;
  532. interface IVMRSurfaceAllocatorEx9 {
  533. CONST_VTBL IVMRSurfaceAllocatorEx9Vtbl* lpVtbl;
  534. };
  535. #ifdef COBJMACROS
  536. #ifndef WIDL_C_INLINE_WRAPPERS
  537. /*** IUnknown methods ***/
  538. #define IVMRSurfaceAllocatorEx9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  539. #define IVMRSurfaceAllocatorEx9_AddRef(This) (This)->lpVtbl->AddRef(This)
  540. #define IVMRSurfaceAllocatorEx9_Release(This) (This)->lpVtbl->Release(This)
  541. /*** IVMRSurfaceAllocator9 methods ***/
  542. #define IVMRSurfaceAllocatorEx9_InitializeDevice(This,id,allocinfo,numbuffers) (This)->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers)
  543. #define IVMRSurfaceAllocatorEx9_TerminateDevice(This,id) (This)->lpVtbl->TerminateDevice(This,id)
  544. #define IVMRSurfaceAllocatorEx9_GetSurface(This,id,surfaceindex,flags,surface) (This)->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface)
  545. #define IVMRSurfaceAllocatorEx9_AdviseNotify(This,allocnotify) (This)->lpVtbl->AdviseNotify(This,allocnotify)
  546. /*** IVMRSurfaceAllocatorEx9 methods ***/
  547. #define IVMRSurfaceAllocatorEx9_GetSurfaceEx(This,id,surfaceindex,flags,surface,dest) (This)->lpVtbl->GetSurfaceEx(This,id,surfaceindex,flags,surface,dest)
  548. #else
  549. /*** IUnknown methods ***/
  550. static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_QueryInterface(IVMRSurfaceAllocatorEx9* This,REFIID riid,void **ppvObject) {
  551. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  552. }
  553. static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_AddRef(IVMRSurfaceAllocatorEx9* This) {
  554. return This->lpVtbl->AddRef(This);
  555. }
  556. static FORCEINLINE ULONG IVMRSurfaceAllocatorEx9_Release(IVMRSurfaceAllocatorEx9* This) {
  557. return This->lpVtbl->Release(This);
  558. }
  559. /*** IVMRSurfaceAllocator9 methods ***/
  560. static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_InitializeDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,VMR9AllocationInfo *allocinfo,DWORD *numbuffers) {
  561. return This->lpVtbl->InitializeDevice(This,id,allocinfo,numbuffers);
  562. }
  563. static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_TerminateDevice(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id) {
  564. return This->lpVtbl->TerminateDevice(This,id);
  565. }
  566. static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_GetSurface(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface) {
  567. return This->lpVtbl->GetSurface(This,id,surfaceindex,flags,surface);
  568. }
  569. static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_AdviseNotify(IVMRSurfaceAllocatorEx9* This,IVMRSurfaceAllocatorNotify9 *allocnotify) {
  570. return This->lpVtbl->AdviseNotify(This,allocnotify);
  571. }
  572. /*** IVMRSurfaceAllocatorEx9 methods ***/
  573. static FORCEINLINE HRESULT IVMRSurfaceAllocatorEx9_GetSurfaceEx(IVMRSurfaceAllocatorEx9* This,DWORD_PTR id,DWORD surfaceindex,DWORD flags,IDirect3DSurface9 **surface,RECT *dest) {
  574. return This->lpVtbl->GetSurfaceEx(This,id,surfaceindex,flags,surface,dest);
  575. }
  576. #endif
  577. #endif
  578. #endif
  579. #endif /* __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__ */
  580. /*****************************************************************************
  581. * IVMRSurfaceAllocatorNotify9 interface
  582. */
  583. #ifndef __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__
  584. #define __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__
  585. DEFINE_GUID(IID_IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c);
  586. #if defined(__cplusplus) && !defined(CINTERFACE)
  587. MIDL_INTERFACE("dca3f5df-bb3a-4d03-bd81-84614bfbfa0c")
  588. IVMRSurfaceAllocatorNotify9 : public IUnknown
  589. {
  590. virtual HRESULT STDMETHODCALLTYPE AdviseSurfaceAllocator(
  591. DWORD_PTR id,
  592. IVMRSurfaceAllocator9 *alloc) = 0;
  593. virtual HRESULT STDMETHODCALLTYPE SetD3DDevice(
  594. IDirect3DDevice9 *device,
  595. HMONITOR monitor) = 0;
  596. virtual HRESULT STDMETHODCALLTYPE ChangeD3DDevice(
  597. IDirect3DDevice9 *device,
  598. HMONITOR monitor) = 0;
  599. virtual HRESULT STDMETHODCALLTYPE AllocateSurfaceHelper(
  600. VMR9AllocationInfo *allocinfo,
  601. DWORD *numbuffers,
  602. IDirect3DSurface9 **surface) = 0;
  603. virtual HRESULT STDMETHODCALLTYPE NotifyEvent(
  604. LONG code,
  605. LONG_PTR param1,
  606. LONG_PTR param2) = 0;
  607. };
  608. #ifdef __CRT_UUID_DECL
  609. __CRT_UUID_DECL(IVMRSurfaceAllocatorNotify9, 0xdca3f5df, 0xbb3a, 0x4d03, 0xbd,0x81, 0x84,0x61,0x4b,0xfb,0xfa,0x0c)
  610. #endif
  611. #else
  612. typedef struct IVMRSurfaceAllocatorNotify9Vtbl {
  613. BEGIN_INTERFACE
  614. /*** IUnknown methods ***/
  615. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  616. IVMRSurfaceAllocatorNotify9 *This,
  617. REFIID riid,
  618. void **ppvObject);
  619. ULONG (STDMETHODCALLTYPE *AddRef)(
  620. IVMRSurfaceAllocatorNotify9 *This);
  621. ULONG (STDMETHODCALLTYPE *Release)(
  622. IVMRSurfaceAllocatorNotify9 *This);
  623. /*** IVMRSurfaceAllocatorNotify9 methods ***/
  624. HRESULT (STDMETHODCALLTYPE *AdviseSurfaceAllocator)(
  625. IVMRSurfaceAllocatorNotify9 *This,
  626. DWORD_PTR id,
  627. IVMRSurfaceAllocator9 *alloc);
  628. HRESULT (STDMETHODCALLTYPE *SetD3DDevice)(
  629. IVMRSurfaceAllocatorNotify9 *This,
  630. IDirect3DDevice9 *device,
  631. HMONITOR monitor);
  632. HRESULT (STDMETHODCALLTYPE *ChangeD3DDevice)(
  633. IVMRSurfaceAllocatorNotify9 *This,
  634. IDirect3DDevice9 *device,
  635. HMONITOR monitor);
  636. HRESULT (STDMETHODCALLTYPE *AllocateSurfaceHelper)(
  637. IVMRSurfaceAllocatorNotify9 *This,
  638. VMR9AllocationInfo *allocinfo,
  639. DWORD *numbuffers,
  640. IDirect3DSurface9 **surface);
  641. HRESULT (STDMETHODCALLTYPE *NotifyEvent)(
  642. IVMRSurfaceAllocatorNotify9 *This,
  643. LONG code,
  644. LONG_PTR param1,
  645. LONG_PTR param2);
  646. END_INTERFACE
  647. } IVMRSurfaceAllocatorNotify9Vtbl;
  648. interface IVMRSurfaceAllocatorNotify9 {
  649. CONST_VTBL IVMRSurfaceAllocatorNotify9Vtbl* lpVtbl;
  650. };
  651. #ifdef COBJMACROS
  652. #ifndef WIDL_C_INLINE_WRAPPERS
  653. /*** IUnknown methods ***/
  654. #define IVMRSurfaceAllocatorNotify9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  655. #define IVMRSurfaceAllocatorNotify9_AddRef(This) (This)->lpVtbl->AddRef(This)
  656. #define IVMRSurfaceAllocatorNotify9_Release(This) (This)->lpVtbl->Release(This)
  657. /*** IVMRSurfaceAllocatorNotify9 methods ***/
  658. #define IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(This,id,alloc) (This)->lpVtbl->AdviseSurfaceAllocator(This,id,alloc)
  659. #define IVMRSurfaceAllocatorNotify9_SetD3DDevice(This,device,monitor) (This)->lpVtbl->SetD3DDevice(This,device,monitor)
  660. #define IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(This,device,monitor) (This)->lpVtbl->ChangeD3DDevice(This,device,monitor)
  661. #define IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(This,allocinfo,numbuffers,surface) (This)->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface)
  662. #define IVMRSurfaceAllocatorNotify9_NotifyEvent(This,code,param1,param2) (This)->lpVtbl->NotifyEvent(This,code,param1,param2)
  663. #else
  664. /*** IUnknown methods ***/
  665. static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_QueryInterface(IVMRSurfaceAllocatorNotify9* This,REFIID riid,void **ppvObject) {
  666. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  667. }
  668. static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_AddRef(IVMRSurfaceAllocatorNotify9* This) {
  669. return This->lpVtbl->AddRef(This);
  670. }
  671. static FORCEINLINE ULONG IVMRSurfaceAllocatorNotify9_Release(IVMRSurfaceAllocatorNotify9* This) {
  672. return This->lpVtbl->Release(This);
  673. }
  674. /*** IVMRSurfaceAllocatorNotify9 methods ***/
  675. static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(IVMRSurfaceAllocatorNotify9* This,DWORD_PTR id,IVMRSurfaceAllocator9 *alloc) {
  676. return This->lpVtbl->AdviseSurfaceAllocator(This,id,alloc);
  677. }
  678. static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_SetD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
  679. return This->lpVtbl->SetD3DDevice(This,device,monitor);
  680. }
  681. static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(IVMRSurfaceAllocatorNotify9* This,IDirect3DDevice9 *device,HMONITOR monitor) {
  682. return This->lpVtbl->ChangeD3DDevice(This,device,monitor);
  683. }
  684. static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(IVMRSurfaceAllocatorNotify9* This,VMR9AllocationInfo *allocinfo,DWORD *numbuffers,IDirect3DSurface9 **surface) {
  685. return This->lpVtbl->AllocateSurfaceHelper(This,allocinfo,numbuffers,surface);
  686. }
  687. static FORCEINLINE HRESULT IVMRSurfaceAllocatorNotify9_NotifyEvent(IVMRSurfaceAllocatorNotify9* This,LONG code,LONG_PTR param1,LONG_PTR param2) {
  688. return This->lpVtbl->NotifyEvent(This,code,param1,param2);
  689. }
  690. #endif
  691. #endif
  692. #endif
  693. #endif /* __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__ */
  694. typedef enum _VMR9AspectRatioMode {
  695. VMR9ARMode_None = 0,
  696. VMR9ARMode_LetterBox = 1
  697. } VMR9AspectRatioMode;
  698. /*****************************************************************************
  699. * IVMRWindowlessControl9 interface
  700. */
  701. #ifndef __IVMRWindowlessControl9_INTERFACE_DEFINED__
  702. #define __IVMRWindowlessControl9_INTERFACE_DEFINED__
  703. DEFINE_GUID(IID_IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27);
  704. #if defined(__cplusplus) && !defined(CINTERFACE)
  705. MIDL_INTERFACE("8f537d09-f85e-4414-b23b-502e54c79927")
  706. IVMRWindowlessControl9 : public IUnknown
  707. {
  708. virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize(
  709. LONG *width,
  710. LONG *height,
  711. LONG *arwidth,
  712. LONG *arheight) = 0;
  713. virtual HRESULT STDMETHODCALLTYPE GetMinIdealVideoSize(
  714. LONG *width,
  715. LONG *height) = 0;
  716. virtual HRESULT STDMETHODCALLTYPE GetMaxIdealVideoSize(
  717. LONG *width,
  718. LONG *height) = 0;
  719. virtual HRESULT STDMETHODCALLTYPE SetVideoPosition(
  720. const RECT *source,
  721. const RECT *dest) = 0;
  722. virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
  723. RECT *source,
  724. RECT *dest) = 0;
  725. virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
  726. DWORD *mode) = 0;
  727. virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
  728. DWORD mode) = 0;
  729. virtual HRESULT STDMETHODCALLTYPE SetVideoClippingWindow(
  730. HWND hwnd) = 0;
  731. virtual HRESULT STDMETHODCALLTYPE RepaintVideo(
  732. HWND hwnd,
  733. HDC hdc) = 0;
  734. virtual HRESULT STDMETHODCALLTYPE DisplayModeChanged(
  735. ) = 0;
  736. virtual HRESULT STDMETHODCALLTYPE GetCurrentImage(
  737. BYTE **dib) = 0;
  738. virtual HRESULT STDMETHODCALLTYPE SetBorderColor(
  739. COLORREF color) = 0;
  740. virtual HRESULT STDMETHODCALLTYPE GetBorderColor(
  741. COLORREF *color) = 0;
  742. };
  743. #ifdef __CRT_UUID_DECL
  744. __CRT_UUID_DECL(IVMRWindowlessControl9, 0x8f537d09, 0xf85e, 0x4414, 0xb2,0x3b, 0x50,0x2e,0x54,0xc7,0x99,0x27)
  745. #endif
  746. #else
  747. typedef struct IVMRWindowlessControl9Vtbl {
  748. BEGIN_INTERFACE
  749. /*** IUnknown methods ***/
  750. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  751. IVMRWindowlessControl9 *This,
  752. REFIID riid,
  753. void **ppvObject);
  754. ULONG (STDMETHODCALLTYPE *AddRef)(
  755. IVMRWindowlessControl9 *This);
  756. ULONG (STDMETHODCALLTYPE *Release)(
  757. IVMRWindowlessControl9 *This);
  758. /*** IVMRWindowlessControl9 methods ***/
  759. HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)(
  760. IVMRWindowlessControl9 *This,
  761. LONG *width,
  762. LONG *height,
  763. LONG *arwidth,
  764. LONG *arheight);
  765. HRESULT (STDMETHODCALLTYPE *GetMinIdealVideoSize)(
  766. IVMRWindowlessControl9 *This,
  767. LONG *width,
  768. LONG *height);
  769. HRESULT (STDMETHODCALLTYPE *GetMaxIdealVideoSize)(
  770. IVMRWindowlessControl9 *This,
  771. LONG *width,
  772. LONG *height);
  773. HRESULT (STDMETHODCALLTYPE *SetVideoPosition)(
  774. IVMRWindowlessControl9 *This,
  775. const RECT *source,
  776. const RECT *dest);
  777. HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
  778. IVMRWindowlessControl9 *This,
  779. RECT *source,
  780. RECT *dest);
  781. HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
  782. IVMRWindowlessControl9 *This,
  783. DWORD *mode);
  784. HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
  785. IVMRWindowlessControl9 *This,
  786. DWORD mode);
  787. HRESULT (STDMETHODCALLTYPE *SetVideoClippingWindow)(
  788. IVMRWindowlessControl9 *This,
  789. HWND hwnd);
  790. HRESULT (STDMETHODCALLTYPE *RepaintVideo)(
  791. IVMRWindowlessControl9 *This,
  792. HWND hwnd,
  793. HDC hdc);
  794. HRESULT (STDMETHODCALLTYPE *DisplayModeChanged)(
  795. IVMRWindowlessControl9 *This);
  796. HRESULT (STDMETHODCALLTYPE *GetCurrentImage)(
  797. IVMRWindowlessControl9 *This,
  798. BYTE **dib);
  799. HRESULT (STDMETHODCALLTYPE *SetBorderColor)(
  800. IVMRWindowlessControl9 *This,
  801. COLORREF color);
  802. HRESULT (STDMETHODCALLTYPE *GetBorderColor)(
  803. IVMRWindowlessControl9 *This,
  804. COLORREF *color);
  805. END_INTERFACE
  806. } IVMRWindowlessControl9Vtbl;
  807. interface IVMRWindowlessControl9 {
  808. CONST_VTBL IVMRWindowlessControl9Vtbl* lpVtbl;
  809. };
  810. #ifdef COBJMACROS
  811. #ifndef WIDL_C_INLINE_WRAPPERS
  812. /*** IUnknown methods ***/
  813. #define IVMRWindowlessControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  814. #define IVMRWindowlessControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
  815. #define IVMRWindowlessControl9_Release(This) (This)->lpVtbl->Release(This)
  816. /*** IVMRWindowlessControl9 methods ***/
  817. #define IVMRWindowlessControl9_GetNativeVideoSize(This,width,height,arwidth,arheight) (This)->lpVtbl->GetNativeVideoSize(This,width,height,arwidth,arheight)
  818. #define IVMRWindowlessControl9_GetMinIdealVideoSize(This,width,height) (This)->lpVtbl->GetMinIdealVideoSize(This,width,height)
  819. #define IVMRWindowlessControl9_GetMaxIdealVideoSize(This,width,height) (This)->lpVtbl->GetMaxIdealVideoSize(This,width,height)
  820. #define IVMRWindowlessControl9_SetVideoPosition(This,source,dest) (This)->lpVtbl->SetVideoPosition(This,source,dest)
  821. #define IVMRWindowlessControl9_GetVideoPosition(This,source,dest) (This)->lpVtbl->GetVideoPosition(This,source,dest)
  822. #define IVMRWindowlessControl9_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode)
  823. #define IVMRWindowlessControl9_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode)
  824. #define IVMRWindowlessControl9_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
  825. #define IVMRWindowlessControl9_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
  826. #define IVMRWindowlessControl9_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
  827. #define IVMRWindowlessControl9_GetCurrentImage(This,dib) (This)->lpVtbl->GetCurrentImage(This,dib)
  828. #define IVMRWindowlessControl9_SetBorderColor(This,color) (This)->lpVtbl->SetBorderColor(This,color)
  829. #define IVMRWindowlessControl9_GetBorderColor(This,color) (This)->lpVtbl->GetBorderColor(This,color)
  830. #else
  831. /*** IUnknown methods ***/
  832. static FORCEINLINE HRESULT IVMRWindowlessControl9_QueryInterface(IVMRWindowlessControl9* This,REFIID riid,void **ppvObject) {
  833. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  834. }
  835. static FORCEINLINE ULONG IVMRWindowlessControl9_AddRef(IVMRWindowlessControl9* This) {
  836. return This->lpVtbl->AddRef(This);
  837. }
  838. static FORCEINLINE ULONG IVMRWindowlessControl9_Release(IVMRWindowlessControl9* This) {
  839. return This->lpVtbl->Release(This);
  840. }
  841. /*** IVMRWindowlessControl9 methods ***/
  842. static FORCEINLINE HRESULT IVMRWindowlessControl9_GetNativeVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height,LONG *arwidth,LONG *arheight) {
  843. return This->lpVtbl->GetNativeVideoSize(This,width,height,arwidth,arheight);
  844. }
  845. static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMinIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
  846. return This->lpVtbl->GetMinIdealVideoSize(This,width,height);
  847. }
  848. static FORCEINLINE HRESULT IVMRWindowlessControl9_GetMaxIdealVideoSize(IVMRWindowlessControl9* This,LONG *width,LONG *height) {
  849. return This->lpVtbl->GetMaxIdealVideoSize(This,width,height);
  850. }
  851. static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoPosition(IVMRWindowlessControl9* This,const RECT *source,const RECT *dest) {
  852. return This->lpVtbl->SetVideoPosition(This,source,dest);
  853. }
  854. static FORCEINLINE HRESULT IVMRWindowlessControl9_GetVideoPosition(IVMRWindowlessControl9* This,RECT *source,RECT *dest) {
  855. return This->lpVtbl->GetVideoPosition(This,source,dest);
  856. }
  857. static FORCEINLINE HRESULT IVMRWindowlessControl9_GetAspectRatioMode(IVMRWindowlessControl9* This,DWORD *mode) {
  858. return This->lpVtbl->GetAspectRatioMode(This,mode);
  859. }
  860. static FORCEINLINE HRESULT IVMRWindowlessControl9_SetAspectRatioMode(IVMRWindowlessControl9* This,DWORD mode) {
  861. return This->lpVtbl->SetAspectRatioMode(This,mode);
  862. }
  863. static FORCEINLINE HRESULT IVMRWindowlessControl9_SetVideoClippingWindow(IVMRWindowlessControl9* This,HWND hwnd) {
  864. return This->lpVtbl->SetVideoClippingWindow(This,hwnd);
  865. }
  866. static FORCEINLINE HRESULT IVMRWindowlessControl9_RepaintVideo(IVMRWindowlessControl9* This,HWND hwnd,HDC hdc) {
  867. return This->lpVtbl->RepaintVideo(This,hwnd,hdc);
  868. }
  869. static FORCEINLINE HRESULT IVMRWindowlessControl9_DisplayModeChanged(IVMRWindowlessControl9* This) {
  870. return This->lpVtbl->DisplayModeChanged(This);
  871. }
  872. static FORCEINLINE HRESULT IVMRWindowlessControl9_GetCurrentImage(IVMRWindowlessControl9* This,BYTE **dib) {
  873. return This->lpVtbl->GetCurrentImage(This,dib);
  874. }
  875. static FORCEINLINE HRESULT IVMRWindowlessControl9_SetBorderColor(IVMRWindowlessControl9* This,COLORREF color) {
  876. return This->lpVtbl->SetBorderColor(This,color);
  877. }
  878. static FORCEINLINE HRESULT IVMRWindowlessControl9_GetBorderColor(IVMRWindowlessControl9* This,COLORREF *color) {
  879. return This->lpVtbl->GetBorderColor(This,color);
  880. }
  881. #endif
  882. #endif
  883. #endif
  884. #endif /* __IVMRWindowlessControl9_INTERFACE_DEFINED__ */
  885. typedef enum _VMR9MixerPrefs {
  886. MixerPref9_NoDecimation = 0x1,
  887. MixerPref9_DecimateOutput = 0x2,
  888. MixerPref9_ARAdjustXorY = 0x4,
  889. MixerPref9_NonSquareMixing = 0x8,
  890. MixerPref9_DecimateMask = 0xf,
  891. MixerPref9_BiLinearFiltering = 0x10,
  892. MixerPref9_PointFiltering = 0x20,
  893. MixerPref9_AnisotropicFiltering = 0x40,
  894. MixerPref9_PyramidalQuadFiltering = 0x80,
  895. MixerPref9_GaussianQuadFiltering = 0x100,
  896. MixerPref9_FilteringReserved = 0xe00,
  897. MixerPref9_FilteringMask = 0xff0,
  898. MixerPref9_RenderTargetRGB = 0x1000,
  899. MixerPref9_RenderTargetYUV = 0x2000,
  900. MixerPref9_RenderTargetReserved = 0xfc000,
  901. MixerPref9_DynamicSwitchToBOB = 0x100000,
  902. MixerPref9_DynamicDecimateBy2 = 0x200000,
  903. MixerPref9_DynamicReserved = 0xc00000,
  904. MixerPref9_DynamicMask = 0xf00000
  905. } VMR9MixerPrefs;
  906. typedef struct _VMR9NormalizedRect {
  907. FLOAT left;
  908. FLOAT top;
  909. FLOAT right;
  910. FLOAT bottom;
  911. } VMR9NormalizedRect;
  912. typedef enum _VMR9ProcAmpControlFlags {
  913. ProcAmpControl9_Brightness = 0x1,
  914. ProcAmpControl9_Contrast = 0x2,
  915. ProcAmpControl9_Hue = 0x4,
  916. ProcAmpControl9_Saturation = 0x8,
  917. ProcAmpControl9_Mask = 0xf
  918. } VMR9ProcAmpControlFlags;
  919. typedef struct _VMR9ProcAmpControl {
  920. DWORD dwSize;
  921. DWORD dwFlags;
  922. FLOAT Brightness;
  923. FLOAT Contrast;
  924. FLOAT Hue;
  925. FLOAT Saturation;
  926. } VMR9ProcAmpControl;
  927. typedef struct _VMR9ProcAmpControlRange {
  928. DWORD dwSize;
  929. VMR9ProcAmpControlFlags dwProperty;
  930. FLOAT MinValue;
  931. FLOAT MaxValue;
  932. FLOAT DefaultValue;
  933. FLOAT StepSize;
  934. } VMR9ProcAmpControlRange;
  935. /*****************************************************************************
  936. * IVMRMixerControl9 interface
  937. */
  938. #ifndef __IVMRMixerControl9_INTERFACE_DEFINED__
  939. #define __IVMRMixerControl9_INTERFACE_DEFINED__
  940. DEFINE_GUID(IID_IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b);
  941. #if defined(__cplusplus) && !defined(CINTERFACE)
  942. MIDL_INTERFACE("1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b")
  943. IVMRMixerControl9 : public IUnknown
  944. {
  945. virtual HRESULT STDMETHODCALLTYPE SetAlpha(
  946. DWORD streamid,
  947. FLOAT alpha) = 0;
  948. virtual HRESULT STDMETHODCALLTYPE GetAlpha(
  949. DWORD streamid,
  950. FLOAT *alpha) = 0;
  951. virtual HRESULT STDMETHODCALLTYPE SetZOrder(
  952. DWORD streamid,
  953. DWORD zorder) = 0;
  954. virtual HRESULT STDMETHODCALLTYPE GetZOrder(
  955. DWORD streamid,
  956. DWORD *zorder) = 0;
  957. virtual HRESULT STDMETHODCALLTYPE SetOutputRect(
  958. DWORD streamid,
  959. const VMR9NormalizedRect *rect) = 0;
  960. virtual HRESULT STDMETHODCALLTYPE GetOutputRect(
  961. DWORD streamid,
  962. VMR9NormalizedRect *rect) = 0;
  963. virtual HRESULT STDMETHODCALLTYPE SetBackgroundClr(
  964. COLORREF back) = 0;
  965. virtual HRESULT STDMETHODCALLTYPE GetBackgroundClr(
  966. COLORREF *back) = 0;
  967. virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs(
  968. DWORD mixingprefs) = 0;
  969. virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs(
  970. DWORD *mixingprefs) = 0;
  971. virtual HRESULT STDMETHODCALLTYPE SetProcAmpControl(
  972. DWORD streamid,
  973. VMR9ProcAmpControl *control) = 0;
  974. virtual HRESULT STDMETHODCALLTYPE GetProcAmpControl(
  975. DWORD streamid,
  976. VMR9ProcAmpControl *control) = 0;
  977. virtual HRESULT STDMETHODCALLTYPE GetProcAmpControlRange(
  978. DWORD streamid,
  979. VMR9ProcAmpControlRange *controlrange) = 0;
  980. };
  981. #ifdef __CRT_UUID_DECL
  982. __CRT_UUID_DECL(IVMRMixerControl9, 0x1a777eaa, 0x47c8, 0x4930, 0xb2,0xc9, 0x8f,0xee,0x1c,0x1b,0x0f,0x3b)
  983. #endif
  984. #else
  985. typedef struct IVMRMixerControl9Vtbl {
  986. BEGIN_INTERFACE
  987. /*** IUnknown methods ***/
  988. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  989. IVMRMixerControl9 *This,
  990. REFIID riid,
  991. void **ppvObject);
  992. ULONG (STDMETHODCALLTYPE *AddRef)(
  993. IVMRMixerControl9 *This);
  994. ULONG (STDMETHODCALLTYPE *Release)(
  995. IVMRMixerControl9 *This);
  996. /*** IVMRMixerControl9 methods ***/
  997. HRESULT (STDMETHODCALLTYPE *SetAlpha)(
  998. IVMRMixerControl9 *This,
  999. DWORD streamid,
  1000. FLOAT alpha);
  1001. HRESULT (STDMETHODCALLTYPE *GetAlpha)(
  1002. IVMRMixerControl9 *This,
  1003. DWORD streamid,
  1004. FLOAT *alpha);
  1005. HRESULT (STDMETHODCALLTYPE *SetZOrder)(
  1006. IVMRMixerControl9 *This,
  1007. DWORD streamid,
  1008. DWORD zorder);
  1009. HRESULT (STDMETHODCALLTYPE *GetZOrder)(
  1010. IVMRMixerControl9 *This,
  1011. DWORD streamid,
  1012. DWORD *zorder);
  1013. HRESULT (STDMETHODCALLTYPE *SetOutputRect)(
  1014. IVMRMixerControl9 *This,
  1015. DWORD streamid,
  1016. const VMR9NormalizedRect *rect);
  1017. HRESULT (STDMETHODCALLTYPE *GetOutputRect)(
  1018. IVMRMixerControl9 *This,
  1019. DWORD streamid,
  1020. VMR9NormalizedRect *rect);
  1021. HRESULT (STDMETHODCALLTYPE *SetBackgroundClr)(
  1022. IVMRMixerControl9 *This,
  1023. COLORREF back);
  1024. HRESULT (STDMETHODCALLTYPE *GetBackgroundClr)(
  1025. IVMRMixerControl9 *This,
  1026. COLORREF *back);
  1027. HRESULT (STDMETHODCALLTYPE *SetMixingPrefs)(
  1028. IVMRMixerControl9 *This,
  1029. DWORD mixingprefs);
  1030. HRESULT (STDMETHODCALLTYPE *GetMixingPrefs)(
  1031. IVMRMixerControl9 *This,
  1032. DWORD *mixingprefs);
  1033. HRESULT (STDMETHODCALLTYPE *SetProcAmpControl)(
  1034. IVMRMixerControl9 *This,
  1035. DWORD streamid,
  1036. VMR9ProcAmpControl *control);
  1037. HRESULT (STDMETHODCALLTYPE *GetProcAmpControl)(
  1038. IVMRMixerControl9 *This,
  1039. DWORD streamid,
  1040. VMR9ProcAmpControl *control);
  1041. HRESULT (STDMETHODCALLTYPE *GetProcAmpControlRange)(
  1042. IVMRMixerControl9 *This,
  1043. DWORD streamid,
  1044. VMR9ProcAmpControlRange *controlrange);
  1045. END_INTERFACE
  1046. } IVMRMixerControl9Vtbl;
  1047. interface IVMRMixerControl9 {
  1048. CONST_VTBL IVMRMixerControl9Vtbl* lpVtbl;
  1049. };
  1050. #ifdef COBJMACROS
  1051. #ifndef WIDL_C_INLINE_WRAPPERS
  1052. /*** IUnknown methods ***/
  1053. #define IVMRMixerControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1054. #define IVMRMixerControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1055. #define IVMRMixerControl9_Release(This) (This)->lpVtbl->Release(This)
  1056. /*** IVMRMixerControl9 methods ***/
  1057. #define IVMRMixerControl9_SetAlpha(This,streamid,alpha) (This)->lpVtbl->SetAlpha(This,streamid,alpha)
  1058. #define IVMRMixerControl9_GetAlpha(This,streamid,alpha) (This)->lpVtbl->GetAlpha(This,streamid,alpha)
  1059. #define IVMRMixerControl9_SetZOrder(This,streamid,zorder) (This)->lpVtbl->SetZOrder(This,streamid,zorder)
  1060. #define IVMRMixerControl9_GetZOrder(This,streamid,zorder) (This)->lpVtbl->GetZOrder(This,streamid,zorder)
  1061. #define IVMRMixerControl9_SetOutputRect(This,streamid,rect) (This)->lpVtbl->SetOutputRect(This,streamid,rect)
  1062. #define IVMRMixerControl9_GetOutputRect(This,streamid,rect) (This)->lpVtbl->GetOutputRect(This,streamid,rect)
  1063. #define IVMRMixerControl9_SetBackgroundClr(This,back) (This)->lpVtbl->SetBackgroundClr(This,back)
  1064. #define IVMRMixerControl9_GetBackgroundClr(This,back) (This)->lpVtbl->GetBackgroundClr(This,back)
  1065. #define IVMRMixerControl9_SetMixingPrefs(This,mixingprefs) (This)->lpVtbl->SetMixingPrefs(This,mixingprefs)
  1066. #define IVMRMixerControl9_GetMixingPrefs(This,mixingprefs) (This)->lpVtbl->GetMixingPrefs(This,mixingprefs)
  1067. #define IVMRMixerControl9_SetProcAmpControl(This,streamid,control) (This)->lpVtbl->SetProcAmpControl(This,streamid,control)
  1068. #define IVMRMixerControl9_GetProcAmpControl(This,streamid,control) (This)->lpVtbl->GetProcAmpControl(This,streamid,control)
  1069. #define IVMRMixerControl9_GetProcAmpControlRange(This,streamid,controlrange) (This)->lpVtbl->GetProcAmpControlRange(This,streamid,controlrange)
  1070. #else
  1071. /*** IUnknown methods ***/
  1072. static FORCEINLINE HRESULT IVMRMixerControl9_QueryInterface(IVMRMixerControl9* This,REFIID riid,void **ppvObject) {
  1073. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1074. }
  1075. static FORCEINLINE ULONG IVMRMixerControl9_AddRef(IVMRMixerControl9* This) {
  1076. return This->lpVtbl->AddRef(This);
  1077. }
  1078. static FORCEINLINE ULONG IVMRMixerControl9_Release(IVMRMixerControl9* This) {
  1079. return This->lpVtbl->Release(This);
  1080. }
  1081. /*** IVMRMixerControl9 methods ***/
  1082. static FORCEINLINE HRESULT IVMRMixerControl9_SetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT alpha) {
  1083. return This->lpVtbl->SetAlpha(This,streamid,alpha);
  1084. }
  1085. static FORCEINLINE HRESULT IVMRMixerControl9_GetAlpha(IVMRMixerControl9* This,DWORD streamid,FLOAT *alpha) {
  1086. return This->lpVtbl->GetAlpha(This,streamid,alpha);
  1087. }
  1088. static FORCEINLINE HRESULT IVMRMixerControl9_SetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD zorder) {
  1089. return This->lpVtbl->SetZOrder(This,streamid,zorder);
  1090. }
  1091. static FORCEINLINE HRESULT IVMRMixerControl9_GetZOrder(IVMRMixerControl9* This,DWORD streamid,DWORD *zorder) {
  1092. return This->lpVtbl->GetZOrder(This,streamid,zorder);
  1093. }
  1094. static FORCEINLINE HRESULT IVMRMixerControl9_SetOutputRect(IVMRMixerControl9* This,DWORD streamid,const VMR9NormalizedRect *rect) {
  1095. return This->lpVtbl->SetOutputRect(This,streamid,rect);
  1096. }
  1097. static FORCEINLINE HRESULT IVMRMixerControl9_GetOutputRect(IVMRMixerControl9* This,DWORD streamid,VMR9NormalizedRect *rect) {
  1098. return This->lpVtbl->GetOutputRect(This,streamid,rect);
  1099. }
  1100. static FORCEINLINE HRESULT IVMRMixerControl9_SetBackgroundClr(IVMRMixerControl9* This,COLORREF back) {
  1101. return This->lpVtbl->SetBackgroundClr(This,back);
  1102. }
  1103. static FORCEINLINE HRESULT IVMRMixerControl9_GetBackgroundClr(IVMRMixerControl9* This,COLORREF *back) {
  1104. return This->lpVtbl->GetBackgroundClr(This,back);
  1105. }
  1106. static FORCEINLINE HRESULT IVMRMixerControl9_SetMixingPrefs(IVMRMixerControl9* This,DWORD mixingprefs) {
  1107. return This->lpVtbl->SetMixingPrefs(This,mixingprefs);
  1108. }
  1109. static FORCEINLINE HRESULT IVMRMixerControl9_GetMixingPrefs(IVMRMixerControl9* This,DWORD *mixingprefs) {
  1110. return This->lpVtbl->GetMixingPrefs(This,mixingprefs);
  1111. }
  1112. static FORCEINLINE HRESULT IVMRMixerControl9_SetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
  1113. return This->lpVtbl->SetProcAmpControl(This,streamid,control);
  1114. }
  1115. static FORCEINLINE HRESULT IVMRMixerControl9_GetProcAmpControl(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControl *control) {
  1116. return This->lpVtbl->GetProcAmpControl(This,streamid,control);
  1117. }
  1118. static FORCEINLINE HRESULT IVMRMixerControl9_GetProcAmpControlRange(IVMRMixerControl9* This,DWORD streamid,VMR9ProcAmpControlRange *controlrange) {
  1119. return This->lpVtbl->GetProcAmpControlRange(This,streamid,controlrange);
  1120. }
  1121. #endif
  1122. #endif
  1123. #endif
  1124. #endif /* __IVMRMixerControl9_INTERFACE_DEFINED__ */
  1125. typedef struct _VMR9AlphaBitmap {
  1126. DWORD dwFlags;
  1127. HDC hdc;
  1128. IDirect3DSurface9 *pDDS;
  1129. RECT rSrc;
  1130. VMR9NormalizedRect rDest;
  1131. FLOAT fAlpha;
  1132. COLORREF clrSrcKey;
  1133. DWORD dwFilterMode;
  1134. } VMR9AlphaBitmap;
  1135. typedef enum _VMR9AlphaBitmapFlags {
  1136. VMR9AlphaBitmap_Disable = 0x1,
  1137. VMR9AlphaBitmap_hDC = 0x2,
  1138. VMR9AlphaBitmap_EntireDDS = 0x4,
  1139. VMR9AlphaBitmap_SrcColorKey = 0x8,
  1140. VMR9AlphaBitmap_SrcRect = 0x10,
  1141. VMR9AlphaBitmap_FilterMode = 0x20
  1142. } VMR9AlphaBitmapFlags;
  1143. /*****************************************************************************
  1144. * IVMRMixerBitmap9 interface
  1145. */
  1146. #ifndef __IVMRMixerBitmap9_INTERFACE_DEFINED__
  1147. #define __IVMRMixerBitmap9_INTERFACE_DEFINED__
  1148. DEFINE_GUID(IID_IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08);
  1149. #if defined(__cplusplus) && !defined(CINTERFACE)
  1150. MIDL_INTERFACE("ced175e5-1935-4820-81bd-ff6ad00c9108")
  1151. IVMRMixerBitmap9 : public IUnknown
  1152. {
  1153. virtual HRESULT STDMETHODCALLTYPE SetAlphaBitmap(
  1154. const VMR9AlphaBitmap *bitmap) = 0;
  1155. virtual HRESULT STDMETHODCALLTYPE UpdateAlphaBitmapParameters(
  1156. const VMR9AlphaBitmap *bitmap) = 0;
  1157. virtual HRESULT STDMETHODCALLTYPE GetAlphaBitmapParameters(
  1158. VMR9AlphaBitmap *bitmap) = 0;
  1159. };
  1160. #ifdef __CRT_UUID_DECL
  1161. __CRT_UUID_DECL(IVMRMixerBitmap9, 0xced175e5, 0x1935, 0x4820, 0x81,0xbd, 0xff,0x6a,0xd0,0x0c,0x91,0x08)
  1162. #endif
  1163. #else
  1164. typedef struct IVMRMixerBitmap9Vtbl {
  1165. BEGIN_INTERFACE
  1166. /*** IUnknown methods ***/
  1167. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1168. IVMRMixerBitmap9 *This,
  1169. REFIID riid,
  1170. void **ppvObject);
  1171. ULONG (STDMETHODCALLTYPE *AddRef)(
  1172. IVMRMixerBitmap9 *This);
  1173. ULONG (STDMETHODCALLTYPE *Release)(
  1174. IVMRMixerBitmap9 *This);
  1175. /*** IVMRMixerBitmap9 methods ***/
  1176. HRESULT (STDMETHODCALLTYPE *SetAlphaBitmap)(
  1177. IVMRMixerBitmap9 *This,
  1178. const VMR9AlphaBitmap *bitmap);
  1179. HRESULT (STDMETHODCALLTYPE *UpdateAlphaBitmapParameters)(
  1180. IVMRMixerBitmap9 *This,
  1181. const VMR9AlphaBitmap *bitmap);
  1182. HRESULT (STDMETHODCALLTYPE *GetAlphaBitmapParameters)(
  1183. IVMRMixerBitmap9 *This,
  1184. VMR9AlphaBitmap *bitmap);
  1185. END_INTERFACE
  1186. } IVMRMixerBitmap9Vtbl;
  1187. interface IVMRMixerBitmap9 {
  1188. CONST_VTBL IVMRMixerBitmap9Vtbl* lpVtbl;
  1189. };
  1190. #ifdef COBJMACROS
  1191. #ifndef WIDL_C_INLINE_WRAPPERS
  1192. /*** IUnknown methods ***/
  1193. #define IVMRMixerBitmap9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1194. #define IVMRMixerBitmap9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1195. #define IVMRMixerBitmap9_Release(This) (This)->lpVtbl->Release(This)
  1196. /*** IVMRMixerBitmap9 methods ***/
  1197. #define IVMRMixerBitmap9_SetAlphaBitmap(This,bitmap) (This)->lpVtbl->SetAlphaBitmap(This,bitmap)
  1198. #define IVMRMixerBitmap9_UpdateAlphaBitmapParameters(This,bitmap) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap)
  1199. #define IVMRMixerBitmap9_GetAlphaBitmapParameters(This,bitmap) (This)->lpVtbl->GetAlphaBitmapParameters(This,bitmap)
  1200. #else
  1201. /*** IUnknown methods ***/
  1202. static FORCEINLINE HRESULT IVMRMixerBitmap9_QueryInterface(IVMRMixerBitmap9* This,REFIID riid,void **ppvObject) {
  1203. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1204. }
  1205. static FORCEINLINE ULONG IVMRMixerBitmap9_AddRef(IVMRMixerBitmap9* This) {
  1206. return This->lpVtbl->AddRef(This);
  1207. }
  1208. static FORCEINLINE ULONG IVMRMixerBitmap9_Release(IVMRMixerBitmap9* This) {
  1209. return This->lpVtbl->Release(This);
  1210. }
  1211. /*** IVMRMixerBitmap9 methods ***/
  1212. static FORCEINLINE HRESULT IVMRMixerBitmap9_SetAlphaBitmap(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
  1213. return This->lpVtbl->SetAlphaBitmap(This,bitmap);
  1214. }
  1215. static FORCEINLINE HRESULT IVMRMixerBitmap9_UpdateAlphaBitmapParameters(IVMRMixerBitmap9* This,const VMR9AlphaBitmap *bitmap) {
  1216. return This->lpVtbl->UpdateAlphaBitmapParameters(This,bitmap);
  1217. }
  1218. static FORCEINLINE HRESULT IVMRMixerBitmap9_GetAlphaBitmapParameters(IVMRMixerBitmap9* This,VMR9AlphaBitmap *bitmap) {
  1219. return This->lpVtbl->GetAlphaBitmapParameters(This,bitmap);
  1220. }
  1221. #endif
  1222. #endif
  1223. #endif
  1224. #endif /* __IVMRMixerBitmap9_INTERFACE_DEFINED__ */
  1225. /*****************************************************************************
  1226. * IVMRSurface9 interface
  1227. */
  1228. #ifndef __IVMRSurface9_INTERFACE_DEFINED__
  1229. #define __IVMRSurface9_INTERFACE_DEFINED__
  1230. DEFINE_GUID(IID_IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc);
  1231. #if defined(__cplusplus) && !defined(CINTERFACE)
  1232. MIDL_INTERFACE("dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc")
  1233. IVMRSurface9 : public IUnknown
  1234. {
  1235. virtual HRESULT STDMETHODCALLTYPE IsSurfaceLocked(
  1236. ) = 0;
  1237. virtual HRESULT STDMETHODCALLTYPE LockSurface(
  1238. BYTE **surface) = 0;
  1239. virtual HRESULT STDMETHODCALLTYPE UnlockSurface(
  1240. ) = 0;
  1241. virtual HRESULT STDMETHODCALLTYPE GetSurface(
  1242. IDirect3DSurface9 **surface) = 0;
  1243. };
  1244. #ifdef __CRT_UUID_DECL
  1245. __CRT_UUID_DECL(IVMRSurface9, 0xdfc581a1, 0x6e1f, 0x4c3a, 0x8d,0x0a, 0x5e,0x97,0x92,0xea,0x2a,0xfc)
  1246. #endif
  1247. #else
  1248. typedef struct IVMRSurface9Vtbl {
  1249. BEGIN_INTERFACE
  1250. /*** IUnknown methods ***/
  1251. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1252. IVMRSurface9 *This,
  1253. REFIID riid,
  1254. void **ppvObject);
  1255. ULONG (STDMETHODCALLTYPE *AddRef)(
  1256. IVMRSurface9 *This);
  1257. ULONG (STDMETHODCALLTYPE *Release)(
  1258. IVMRSurface9 *This);
  1259. /*** IVMRSurface9 methods ***/
  1260. HRESULT (STDMETHODCALLTYPE *IsSurfaceLocked)(
  1261. IVMRSurface9 *This);
  1262. HRESULT (STDMETHODCALLTYPE *LockSurface)(
  1263. IVMRSurface9 *This,
  1264. BYTE **surface);
  1265. HRESULT (STDMETHODCALLTYPE *UnlockSurface)(
  1266. IVMRSurface9 *This);
  1267. HRESULT (STDMETHODCALLTYPE *GetSurface)(
  1268. IVMRSurface9 *This,
  1269. IDirect3DSurface9 **surface);
  1270. END_INTERFACE
  1271. } IVMRSurface9Vtbl;
  1272. interface IVMRSurface9 {
  1273. CONST_VTBL IVMRSurface9Vtbl* lpVtbl;
  1274. };
  1275. #ifdef COBJMACROS
  1276. #ifndef WIDL_C_INLINE_WRAPPERS
  1277. /*** IUnknown methods ***/
  1278. #define IVMRSurface9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1279. #define IVMRSurface9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1280. #define IVMRSurface9_Release(This) (This)->lpVtbl->Release(This)
  1281. /*** IVMRSurface9 methods ***/
  1282. #define IVMRSurface9_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
  1283. #define IVMRSurface9_LockSurface(This,surface) (This)->lpVtbl->LockSurface(This,surface)
  1284. #define IVMRSurface9_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
  1285. #define IVMRSurface9_GetSurface(This,surface) (This)->lpVtbl->GetSurface(This,surface)
  1286. #else
  1287. /*** IUnknown methods ***/
  1288. static FORCEINLINE HRESULT IVMRSurface9_QueryInterface(IVMRSurface9* This,REFIID riid,void **ppvObject) {
  1289. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1290. }
  1291. static FORCEINLINE ULONG IVMRSurface9_AddRef(IVMRSurface9* This) {
  1292. return This->lpVtbl->AddRef(This);
  1293. }
  1294. static FORCEINLINE ULONG IVMRSurface9_Release(IVMRSurface9* This) {
  1295. return This->lpVtbl->Release(This);
  1296. }
  1297. /*** IVMRSurface9 methods ***/
  1298. static FORCEINLINE HRESULT IVMRSurface9_IsSurfaceLocked(IVMRSurface9* This) {
  1299. return This->lpVtbl->IsSurfaceLocked(This);
  1300. }
  1301. static FORCEINLINE HRESULT IVMRSurface9_LockSurface(IVMRSurface9* This,BYTE **surface) {
  1302. return This->lpVtbl->LockSurface(This,surface);
  1303. }
  1304. static FORCEINLINE HRESULT IVMRSurface9_UnlockSurface(IVMRSurface9* This) {
  1305. return This->lpVtbl->UnlockSurface(This);
  1306. }
  1307. static FORCEINLINE HRESULT IVMRSurface9_GetSurface(IVMRSurface9* This,IDirect3DSurface9 **surface) {
  1308. return This->lpVtbl->GetSurface(This,surface);
  1309. }
  1310. #endif
  1311. #endif
  1312. #endif
  1313. #endif /* __IVMRSurface9_INTERFACE_DEFINED__ */
  1314. typedef enum _VMR9RenderPrefs {
  1315. RenderPrefs9_DoNotRenderBorder = 0x1,
  1316. RenderPrefs9_Mask = 0x1
  1317. } VMR9RenderPrefs;
  1318. /*****************************************************************************
  1319. * IVMRImagePresenterConfig9 interface
  1320. */
  1321. #ifndef __IVMRImagePresenterConfig9_INTERFACE_DEFINED__
  1322. #define __IVMRImagePresenterConfig9_INTERFACE_DEFINED__
  1323. DEFINE_GUID(IID_IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d);
  1324. #if defined(__cplusplus) && !defined(CINTERFACE)
  1325. MIDL_INTERFACE("45c15cab-6e22-420a-8043-ae1f0ac02c7d")
  1326. IVMRImagePresenterConfig9 : public IUnknown
  1327. {
  1328. virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs(
  1329. DWORD renderflags) = 0;
  1330. virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs(
  1331. DWORD *renderflags) = 0;
  1332. };
  1333. #ifdef __CRT_UUID_DECL
  1334. __CRT_UUID_DECL(IVMRImagePresenterConfig9, 0x45c15cab, 0x6e22, 0x420a, 0x80,0x43, 0xae,0x1f,0x0a,0xc0,0x2c,0x7d)
  1335. #endif
  1336. #else
  1337. typedef struct IVMRImagePresenterConfig9Vtbl {
  1338. BEGIN_INTERFACE
  1339. /*** IUnknown methods ***/
  1340. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1341. IVMRImagePresenterConfig9 *This,
  1342. REFIID riid,
  1343. void **ppvObject);
  1344. ULONG (STDMETHODCALLTYPE *AddRef)(
  1345. IVMRImagePresenterConfig9 *This);
  1346. ULONG (STDMETHODCALLTYPE *Release)(
  1347. IVMRImagePresenterConfig9 *This);
  1348. /*** IVMRImagePresenterConfig9 methods ***/
  1349. HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)(
  1350. IVMRImagePresenterConfig9 *This,
  1351. DWORD renderflags);
  1352. HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)(
  1353. IVMRImagePresenterConfig9 *This,
  1354. DWORD *renderflags);
  1355. END_INTERFACE
  1356. } IVMRImagePresenterConfig9Vtbl;
  1357. interface IVMRImagePresenterConfig9 {
  1358. CONST_VTBL IVMRImagePresenterConfig9Vtbl* lpVtbl;
  1359. };
  1360. #ifdef COBJMACROS
  1361. #ifndef WIDL_C_INLINE_WRAPPERS
  1362. /*** IUnknown methods ***/
  1363. #define IVMRImagePresenterConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1364. #define IVMRImagePresenterConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1365. #define IVMRImagePresenterConfig9_Release(This) (This)->lpVtbl->Release(This)
  1366. /*** IVMRImagePresenterConfig9 methods ***/
  1367. #define IVMRImagePresenterConfig9_SetRenderingPrefs(This,renderflags) (This)->lpVtbl->SetRenderingPrefs(This,renderflags)
  1368. #define IVMRImagePresenterConfig9_GetRenderingPrefs(This,renderflags) (This)->lpVtbl->GetRenderingPrefs(This,renderflags)
  1369. #else
  1370. /*** IUnknown methods ***/
  1371. static FORCEINLINE HRESULT IVMRImagePresenterConfig9_QueryInterface(IVMRImagePresenterConfig9* This,REFIID riid,void **ppvObject) {
  1372. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1373. }
  1374. static FORCEINLINE ULONG IVMRImagePresenterConfig9_AddRef(IVMRImagePresenterConfig9* This) {
  1375. return This->lpVtbl->AddRef(This);
  1376. }
  1377. static FORCEINLINE ULONG IVMRImagePresenterConfig9_Release(IVMRImagePresenterConfig9* This) {
  1378. return This->lpVtbl->Release(This);
  1379. }
  1380. /*** IVMRImagePresenterConfig9 methods ***/
  1381. static FORCEINLINE HRESULT IVMRImagePresenterConfig9_SetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD renderflags) {
  1382. return This->lpVtbl->SetRenderingPrefs(This,renderflags);
  1383. }
  1384. static FORCEINLINE HRESULT IVMRImagePresenterConfig9_GetRenderingPrefs(IVMRImagePresenterConfig9* This,DWORD *renderflags) {
  1385. return This->lpVtbl->GetRenderingPrefs(This,renderflags);
  1386. }
  1387. #endif
  1388. #endif
  1389. #endif
  1390. #endif /* __IVMRImagePresenterConfig9_INTERFACE_DEFINED__ */
  1391. /*****************************************************************************
  1392. * IVMRVideoStreamControl9 interface
  1393. */
  1394. #ifndef __IVMRVideoStreamControl9_INTERFACE_DEFINED__
  1395. #define __IVMRVideoStreamControl9_INTERFACE_DEFINED__
  1396. DEFINE_GUID(IID_IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85);
  1397. #if defined(__cplusplus) && !defined(CINTERFACE)
  1398. MIDL_INTERFACE("d0cfe38b-93e7-4772-8957-0400c49a4485")
  1399. IVMRVideoStreamControl9 : public IUnknown
  1400. {
  1401. virtual HRESULT STDMETHODCALLTYPE SetStreamActiveState(
  1402. WINBOOL active) = 0;
  1403. virtual HRESULT STDMETHODCALLTYPE GetStreamActiveState(
  1404. WINBOOL *active) = 0;
  1405. };
  1406. #ifdef __CRT_UUID_DECL
  1407. __CRT_UUID_DECL(IVMRVideoStreamControl9, 0xd0cfe38b, 0x93e7, 0x4772, 0x89,0x57, 0x04,0x00,0xc4,0x9a,0x44,0x85)
  1408. #endif
  1409. #else
  1410. typedef struct IVMRVideoStreamControl9Vtbl {
  1411. BEGIN_INTERFACE
  1412. /*** IUnknown methods ***/
  1413. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1414. IVMRVideoStreamControl9 *This,
  1415. REFIID riid,
  1416. void **ppvObject);
  1417. ULONG (STDMETHODCALLTYPE *AddRef)(
  1418. IVMRVideoStreamControl9 *This);
  1419. ULONG (STDMETHODCALLTYPE *Release)(
  1420. IVMRVideoStreamControl9 *This);
  1421. /*** IVMRVideoStreamControl9 methods ***/
  1422. HRESULT (STDMETHODCALLTYPE *SetStreamActiveState)(
  1423. IVMRVideoStreamControl9 *This,
  1424. WINBOOL active);
  1425. HRESULT (STDMETHODCALLTYPE *GetStreamActiveState)(
  1426. IVMRVideoStreamControl9 *This,
  1427. WINBOOL *active);
  1428. END_INTERFACE
  1429. } IVMRVideoStreamControl9Vtbl;
  1430. interface IVMRVideoStreamControl9 {
  1431. CONST_VTBL IVMRVideoStreamControl9Vtbl* lpVtbl;
  1432. };
  1433. #ifdef COBJMACROS
  1434. #ifndef WIDL_C_INLINE_WRAPPERS
  1435. /*** IUnknown methods ***/
  1436. #define IVMRVideoStreamControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1437. #define IVMRVideoStreamControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1438. #define IVMRVideoStreamControl9_Release(This) (This)->lpVtbl->Release(This)
  1439. /*** IVMRVideoStreamControl9 methods ***/
  1440. #define IVMRVideoStreamControl9_SetStreamActiveState(This,active) (This)->lpVtbl->SetStreamActiveState(This,active)
  1441. #define IVMRVideoStreamControl9_GetStreamActiveState(This,active) (This)->lpVtbl->GetStreamActiveState(This,active)
  1442. #else
  1443. /*** IUnknown methods ***/
  1444. static FORCEINLINE HRESULT IVMRVideoStreamControl9_QueryInterface(IVMRVideoStreamControl9* This,REFIID riid,void **ppvObject) {
  1445. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1446. }
  1447. static FORCEINLINE ULONG IVMRVideoStreamControl9_AddRef(IVMRVideoStreamControl9* This) {
  1448. return This->lpVtbl->AddRef(This);
  1449. }
  1450. static FORCEINLINE ULONG IVMRVideoStreamControl9_Release(IVMRVideoStreamControl9* This) {
  1451. return This->lpVtbl->Release(This);
  1452. }
  1453. /*** IVMRVideoStreamControl9 methods ***/
  1454. static FORCEINLINE HRESULT IVMRVideoStreamControl9_SetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL active) {
  1455. return This->lpVtbl->SetStreamActiveState(This,active);
  1456. }
  1457. static FORCEINLINE HRESULT IVMRVideoStreamControl9_GetStreamActiveState(IVMRVideoStreamControl9* This,WINBOOL *active) {
  1458. return This->lpVtbl->GetStreamActiveState(This,active);
  1459. }
  1460. #endif
  1461. #endif
  1462. #endif
  1463. #endif /* __IVMRVideoStreamControl9_INTERFACE_DEFINED__ */
  1464. typedef enum _VMR9Mode {
  1465. VMR9Mode_Windowed = 0x1,
  1466. VMR9Mode_Windowless = 0x2,
  1467. VMR9Mode_Renderless = 0x4,
  1468. VMR9Mode_Mask = 0x7
  1469. } VMR9Mode;
  1470. /*****************************************************************************
  1471. * IVMRFilterConfig9 interface
  1472. */
  1473. #ifndef __IVMRFilterConfig9_INTERFACE_DEFINED__
  1474. #define __IVMRFilterConfig9_INTERFACE_DEFINED__
  1475. DEFINE_GUID(IID_IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8);
  1476. #if defined(__cplusplus) && !defined(CINTERFACE)
  1477. MIDL_INTERFACE("5a804648-4f66-4867-9c43-4f5c822cf1b8")
  1478. IVMRFilterConfig9 : public IUnknown
  1479. {
  1480. virtual HRESULT STDMETHODCALLTYPE SetImageCompositor(
  1481. IVMRImageCompositor9 *compositor) = 0;
  1482. virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams(
  1483. DWORD max) = 0;
  1484. virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams(
  1485. DWORD *max) = 0;
  1486. virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs(
  1487. DWORD renderflags) = 0;
  1488. virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs(
  1489. DWORD *renderflags) = 0;
  1490. virtual HRESULT STDMETHODCALLTYPE SetRenderingMode(
  1491. DWORD mode) = 0;
  1492. virtual HRESULT STDMETHODCALLTYPE GetRenderingMode(
  1493. DWORD *mode) = 0;
  1494. };
  1495. #ifdef __CRT_UUID_DECL
  1496. __CRT_UUID_DECL(IVMRFilterConfig9, 0x5a804648, 0x4f66, 0x4867, 0x9c,0x43, 0x4f,0x5c,0x82,0x2c,0xf1,0xb8)
  1497. #endif
  1498. #else
  1499. typedef struct IVMRFilterConfig9Vtbl {
  1500. BEGIN_INTERFACE
  1501. /*** IUnknown methods ***/
  1502. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1503. IVMRFilterConfig9 *This,
  1504. REFIID riid,
  1505. void **ppvObject);
  1506. ULONG (STDMETHODCALLTYPE *AddRef)(
  1507. IVMRFilterConfig9 *This);
  1508. ULONG (STDMETHODCALLTYPE *Release)(
  1509. IVMRFilterConfig9 *This);
  1510. /*** IVMRFilterConfig9 methods ***/
  1511. HRESULT (STDMETHODCALLTYPE *SetImageCompositor)(
  1512. IVMRFilterConfig9 *This,
  1513. IVMRImageCompositor9 *compositor);
  1514. HRESULT (STDMETHODCALLTYPE *SetNumberOfStreams)(
  1515. IVMRFilterConfig9 *This,
  1516. DWORD max);
  1517. HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)(
  1518. IVMRFilterConfig9 *This,
  1519. DWORD *max);
  1520. HRESULT (STDMETHODCALLTYPE *SetRenderingPrefs)(
  1521. IVMRFilterConfig9 *This,
  1522. DWORD renderflags);
  1523. HRESULT (STDMETHODCALLTYPE *GetRenderingPrefs)(
  1524. IVMRFilterConfig9 *This,
  1525. DWORD *renderflags);
  1526. HRESULT (STDMETHODCALLTYPE *SetRenderingMode)(
  1527. IVMRFilterConfig9 *This,
  1528. DWORD mode);
  1529. HRESULT (STDMETHODCALLTYPE *GetRenderingMode)(
  1530. IVMRFilterConfig9 *This,
  1531. DWORD *mode);
  1532. END_INTERFACE
  1533. } IVMRFilterConfig9Vtbl;
  1534. interface IVMRFilterConfig9 {
  1535. CONST_VTBL IVMRFilterConfig9Vtbl* lpVtbl;
  1536. };
  1537. #ifdef COBJMACROS
  1538. #ifndef WIDL_C_INLINE_WRAPPERS
  1539. /*** IUnknown methods ***/
  1540. #define IVMRFilterConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1541. #define IVMRFilterConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1542. #define IVMRFilterConfig9_Release(This) (This)->lpVtbl->Release(This)
  1543. /*** IVMRFilterConfig9 methods ***/
  1544. #define IVMRFilterConfig9_SetImageCompositor(This,compositor) (This)->lpVtbl->SetImageCompositor(This,compositor)
  1545. #define IVMRFilterConfig9_SetNumberOfStreams(This,max) (This)->lpVtbl->SetNumberOfStreams(This,max)
  1546. #define IVMRFilterConfig9_GetNumberOfStreams(This,max) (This)->lpVtbl->GetNumberOfStreams(This,max)
  1547. #define IVMRFilterConfig9_SetRenderingPrefs(This,renderflags) (This)->lpVtbl->SetRenderingPrefs(This,renderflags)
  1548. #define IVMRFilterConfig9_GetRenderingPrefs(This,renderflags) (This)->lpVtbl->GetRenderingPrefs(This,renderflags)
  1549. #define IVMRFilterConfig9_SetRenderingMode(This,mode) (This)->lpVtbl->SetRenderingMode(This,mode)
  1550. #define IVMRFilterConfig9_GetRenderingMode(This,mode) (This)->lpVtbl->GetRenderingMode(This,mode)
  1551. #else
  1552. /*** IUnknown methods ***/
  1553. static FORCEINLINE HRESULT IVMRFilterConfig9_QueryInterface(IVMRFilterConfig9* This,REFIID riid,void **ppvObject) {
  1554. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1555. }
  1556. static FORCEINLINE ULONG IVMRFilterConfig9_AddRef(IVMRFilterConfig9* This) {
  1557. return This->lpVtbl->AddRef(This);
  1558. }
  1559. static FORCEINLINE ULONG IVMRFilterConfig9_Release(IVMRFilterConfig9* This) {
  1560. return This->lpVtbl->Release(This);
  1561. }
  1562. /*** IVMRFilterConfig9 methods ***/
  1563. static FORCEINLINE HRESULT IVMRFilterConfig9_SetImageCompositor(IVMRFilterConfig9* This,IVMRImageCompositor9 *compositor) {
  1564. return This->lpVtbl->SetImageCompositor(This,compositor);
  1565. }
  1566. static FORCEINLINE HRESULT IVMRFilterConfig9_SetNumberOfStreams(IVMRFilterConfig9* This,DWORD max) {
  1567. return This->lpVtbl->SetNumberOfStreams(This,max);
  1568. }
  1569. static FORCEINLINE HRESULT IVMRFilterConfig9_GetNumberOfStreams(IVMRFilterConfig9* This,DWORD *max) {
  1570. return This->lpVtbl->GetNumberOfStreams(This,max);
  1571. }
  1572. static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingPrefs(IVMRFilterConfig9* This,DWORD renderflags) {
  1573. return This->lpVtbl->SetRenderingPrefs(This,renderflags);
  1574. }
  1575. static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingPrefs(IVMRFilterConfig9* This,DWORD *renderflags) {
  1576. return This->lpVtbl->GetRenderingPrefs(This,renderflags);
  1577. }
  1578. static FORCEINLINE HRESULT IVMRFilterConfig9_SetRenderingMode(IVMRFilterConfig9* This,DWORD mode) {
  1579. return This->lpVtbl->SetRenderingMode(This,mode);
  1580. }
  1581. static FORCEINLINE HRESULT IVMRFilterConfig9_GetRenderingMode(IVMRFilterConfig9* This,DWORD *mode) {
  1582. return This->lpVtbl->GetRenderingMode(This,mode);
  1583. }
  1584. #endif
  1585. #endif
  1586. #endif
  1587. #endif /* __IVMRFilterConfig9_INTERFACE_DEFINED__ */
  1588. /*****************************************************************************
  1589. * IVMRAspectRatioControl9 interface
  1590. */
  1591. #ifndef __IVMRAspectRatioControl9_INTERFACE_DEFINED__
  1592. #define __IVMRAspectRatioControl9_INTERFACE_DEFINED__
  1593. DEFINE_GUID(IID_IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46);
  1594. #if defined(__cplusplus) && !defined(CINTERFACE)
  1595. MIDL_INTERFACE("00d96c29-bbde-4efc-9901-bb5036392146")
  1596. IVMRAspectRatioControl9 : public IUnknown
  1597. {
  1598. virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
  1599. DWORD *mode) = 0;
  1600. virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
  1601. DWORD mode) = 0;
  1602. };
  1603. #ifdef __CRT_UUID_DECL
  1604. __CRT_UUID_DECL(IVMRAspectRatioControl9, 0x00d96c29, 0xbbde, 0x4efc, 0x99,0x01, 0xbb,0x50,0x36,0x39,0x21,0x46)
  1605. #endif
  1606. #else
  1607. typedef struct IVMRAspectRatioControl9Vtbl {
  1608. BEGIN_INTERFACE
  1609. /*** IUnknown methods ***/
  1610. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1611. IVMRAspectRatioControl9 *This,
  1612. REFIID riid,
  1613. void **ppvObject);
  1614. ULONG (STDMETHODCALLTYPE *AddRef)(
  1615. IVMRAspectRatioControl9 *This);
  1616. ULONG (STDMETHODCALLTYPE *Release)(
  1617. IVMRAspectRatioControl9 *This);
  1618. /*** IVMRAspectRatioControl9 methods ***/
  1619. HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
  1620. IVMRAspectRatioControl9 *This,
  1621. DWORD *mode);
  1622. HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
  1623. IVMRAspectRatioControl9 *This,
  1624. DWORD mode);
  1625. END_INTERFACE
  1626. } IVMRAspectRatioControl9Vtbl;
  1627. interface IVMRAspectRatioControl9 {
  1628. CONST_VTBL IVMRAspectRatioControl9Vtbl* lpVtbl;
  1629. };
  1630. #ifdef COBJMACROS
  1631. #ifndef WIDL_C_INLINE_WRAPPERS
  1632. /*** IUnknown methods ***/
  1633. #define IVMRAspectRatioControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1634. #define IVMRAspectRatioControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1635. #define IVMRAspectRatioControl9_Release(This) (This)->lpVtbl->Release(This)
  1636. /*** IVMRAspectRatioControl9 methods ***/
  1637. #define IVMRAspectRatioControl9_GetAspectRatioMode(This,mode) (This)->lpVtbl->GetAspectRatioMode(This,mode)
  1638. #define IVMRAspectRatioControl9_SetAspectRatioMode(This,mode) (This)->lpVtbl->SetAspectRatioMode(This,mode)
  1639. #else
  1640. /*** IUnknown methods ***/
  1641. static FORCEINLINE HRESULT IVMRAspectRatioControl9_QueryInterface(IVMRAspectRatioControl9* This,REFIID riid,void **ppvObject) {
  1642. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1643. }
  1644. static FORCEINLINE ULONG IVMRAspectRatioControl9_AddRef(IVMRAspectRatioControl9* This) {
  1645. return This->lpVtbl->AddRef(This);
  1646. }
  1647. static FORCEINLINE ULONG IVMRAspectRatioControl9_Release(IVMRAspectRatioControl9* This) {
  1648. return This->lpVtbl->Release(This);
  1649. }
  1650. /*** IVMRAspectRatioControl9 methods ***/
  1651. static FORCEINLINE HRESULT IVMRAspectRatioControl9_GetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD *mode) {
  1652. return This->lpVtbl->GetAspectRatioMode(This,mode);
  1653. }
  1654. static FORCEINLINE HRESULT IVMRAspectRatioControl9_SetAspectRatioMode(IVMRAspectRatioControl9* This,DWORD mode) {
  1655. return This->lpVtbl->SetAspectRatioMode(This,mode);
  1656. }
  1657. #endif
  1658. #endif
  1659. #endif
  1660. #endif /* __IVMRAspectRatioControl9_INTERFACE_DEFINED__ */
  1661. typedef struct _VMR9MonitorInfo {
  1662. UINT uDevID;
  1663. RECT rcMonitor;
  1664. HMONITOR hMon;
  1665. DWORD dwFlags;
  1666. WCHAR szDevice[32];
  1667. WCHAR szDescription[512];
  1668. LARGE_INTEGER liDriverVersion;
  1669. DWORD dwVendorId;
  1670. DWORD dwDeviceId;
  1671. DWORD dwSubSysId;
  1672. DWORD dwRevision;
  1673. } VMR9MonitorInfo;
  1674. /*****************************************************************************
  1675. * IVMRMonitorConfig9 interface
  1676. */
  1677. #ifndef __IVMRMonitorConfig9_INTERFACE_DEFINED__
  1678. #define __IVMRMonitorConfig9_INTERFACE_DEFINED__
  1679. DEFINE_GUID(IID_IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49);
  1680. #if defined(__cplusplus) && !defined(CINTERFACE)
  1681. MIDL_INTERFACE("46c2e457-8ba0-4eef-b80b-0680f0978749")
  1682. IVMRMonitorConfig9 : public IUnknown
  1683. {
  1684. virtual HRESULT STDMETHODCALLTYPE SetMonitor(
  1685. UINT uDev) = 0;
  1686. virtual HRESULT STDMETHODCALLTYPE GetMonitor(
  1687. UINT *uDev) = 0;
  1688. virtual HRESULT STDMETHODCALLTYPE SetDefaultMonitor(
  1689. UINT uDev) = 0;
  1690. virtual HRESULT STDMETHODCALLTYPE GetDefaultMonitor(
  1691. UINT *uDev) = 0;
  1692. virtual HRESULT STDMETHODCALLTYPE GetAvailableMonitors(
  1693. VMR9MonitorInfo *info,
  1694. DWORD arraysize,
  1695. DWORD *numdev) = 0;
  1696. };
  1697. #ifdef __CRT_UUID_DECL
  1698. __CRT_UUID_DECL(IVMRMonitorConfig9, 0x46c2e457, 0x8ba0, 0x4eef, 0xb8,0x0b, 0x06,0x80,0xf0,0x97,0x87,0x49)
  1699. #endif
  1700. #else
  1701. typedef struct IVMRMonitorConfig9Vtbl {
  1702. BEGIN_INTERFACE
  1703. /*** IUnknown methods ***/
  1704. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1705. IVMRMonitorConfig9 *This,
  1706. REFIID riid,
  1707. void **ppvObject);
  1708. ULONG (STDMETHODCALLTYPE *AddRef)(
  1709. IVMRMonitorConfig9 *This);
  1710. ULONG (STDMETHODCALLTYPE *Release)(
  1711. IVMRMonitorConfig9 *This);
  1712. /*** IVMRMonitorConfig9 methods ***/
  1713. HRESULT (STDMETHODCALLTYPE *SetMonitor)(
  1714. IVMRMonitorConfig9 *This,
  1715. UINT uDev);
  1716. HRESULT (STDMETHODCALLTYPE *GetMonitor)(
  1717. IVMRMonitorConfig9 *This,
  1718. UINT *uDev);
  1719. HRESULT (STDMETHODCALLTYPE *SetDefaultMonitor)(
  1720. IVMRMonitorConfig9 *This,
  1721. UINT uDev);
  1722. HRESULT (STDMETHODCALLTYPE *GetDefaultMonitor)(
  1723. IVMRMonitorConfig9 *This,
  1724. UINT *uDev);
  1725. HRESULT (STDMETHODCALLTYPE *GetAvailableMonitors)(
  1726. IVMRMonitorConfig9 *This,
  1727. VMR9MonitorInfo *info,
  1728. DWORD arraysize,
  1729. DWORD *numdev);
  1730. END_INTERFACE
  1731. } IVMRMonitorConfig9Vtbl;
  1732. interface IVMRMonitorConfig9 {
  1733. CONST_VTBL IVMRMonitorConfig9Vtbl* lpVtbl;
  1734. };
  1735. #ifdef COBJMACROS
  1736. #ifndef WIDL_C_INLINE_WRAPPERS
  1737. /*** IUnknown methods ***/
  1738. #define IVMRMonitorConfig9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1739. #define IVMRMonitorConfig9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1740. #define IVMRMonitorConfig9_Release(This) (This)->lpVtbl->Release(This)
  1741. /*** IVMRMonitorConfig9 methods ***/
  1742. #define IVMRMonitorConfig9_SetMonitor(This,uDev) (This)->lpVtbl->SetMonitor(This,uDev)
  1743. #define IVMRMonitorConfig9_GetMonitor(This,uDev) (This)->lpVtbl->GetMonitor(This,uDev)
  1744. #define IVMRMonitorConfig9_SetDefaultMonitor(This,uDev) (This)->lpVtbl->SetDefaultMonitor(This,uDev)
  1745. #define IVMRMonitorConfig9_GetDefaultMonitor(This,uDev) (This)->lpVtbl->GetDefaultMonitor(This,uDev)
  1746. #define IVMRMonitorConfig9_GetAvailableMonitors(This,info,arraysize,numdev) (This)->lpVtbl->GetAvailableMonitors(This,info,arraysize,numdev)
  1747. #else
  1748. /*** IUnknown methods ***/
  1749. static FORCEINLINE HRESULT IVMRMonitorConfig9_QueryInterface(IVMRMonitorConfig9* This,REFIID riid,void **ppvObject) {
  1750. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1751. }
  1752. static FORCEINLINE ULONG IVMRMonitorConfig9_AddRef(IVMRMonitorConfig9* This) {
  1753. return This->lpVtbl->AddRef(This);
  1754. }
  1755. static FORCEINLINE ULONG IVMRMonitorConfig9_Release(IVMRMonitorConfig9* This) {
  1756. return This->lpVtbl->Release(This);
  1757. }
  1758. /*** IVMRMonitorConfig9 methods ***/
  1759. static FORCEINLINE HRESULT IVMRMonitorConfig9_SetMonitor(IVMRMonitorConfig9* This,UINT uDev) {
  1760. return This->lpVtbl->SetMonitor(This,uDev);
  1761. }
  1762. static FORCEINLINE HRESULT IVMRMonitorConfig9_GetMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
  1763. return This->lpVtbl->GetMonitor(This,uDev);
  1764. }
  1765. static FORCEINLINE HRESULT IVMRMonitorConfig9_SetDefaultMonitor(IVMRMonitorConfig9* This,UINT uDev) {
  1766. return This->lpVtbl->SetDefaultMonitor(This,uDev);
  1767. }
  1768. static FORCEINLINE HRESULT IVMRMonitorConfig9_GetDefaultMonitor(IVMRMonitorConfig9* This,UINT *uDev) {
  1769. return This->lpVtbl->GetDefaultMonitor(This,uDev);
  1770. }
  1771. static FORCEINLINE HRESULT IVMRMonitorConfig9_GetAvailableMonitors(IVMRMonitorConfig9* This,VMR9MonitorInfo *info,DWORD arraysize,DWORD *numdev) {
  1772. return This->lpVtbl->GetAvailableMonitors(This,info,arraysize,numdev);
  1773. }
  1774. #endif
  1775. #endif
  1776. #endif
  1777. #endif /* __IVMRMonitorConfig9_INTERFACE_DEFINED__ */
  1778. typedef enum _VMR9DeinterlacePrefs {
  1779. DeinterlacePref9_NextBest = 0x1,
  1780. DeinterlacePref9_BOB = 0x2,
  1781. DeinterlacePref9_Weave = 0x4,
  1782. DeinterlacePref9_Mask = 0x7
  1783. } VMR9DeinterlacePrefs;
  1784. typedef enum _VMR9DeinterlaceTech {
  1785. DeinterlaceTech9_Unknown = 0,
  1786. DeinterlaceTech9_BOBLineReplicate = 0x1,
  1787. DeinterlaceTech9_BOBVerticalStretch = 0x2,
  1788. DeinterlaceTech9_MedianFiltering = 0x4,
  1789. DeinterlaceTech9_EdgeFiltering = 0x10,
  1790. DeinterlaceTech9_FieldAdaptive = 0x20,
  1791. DeinterlaceTech9_PixelAdaptive = 0x40,
  1792. DeinterlaceTech9_MotionVectorSteered = 0x80
  1793. } VMR9DeinterlaceTech;
  1794. typedef struct _VMR9Frequency {
  1795. DWORD dwNumerator;
  1796. DWORD dwDenominator;
  1797. } VMR9Frequency;
  1798. typedef enum _VMR9_SampleFormat {
  1799. VMR9_SampleReserved = 1,
  1800. VMR9_SampleProgressiveFrame = 2,
  1801. VMR9_SampleFieldInterleavedEvenFirst = 3,
  1802. VMR9_SampleFieldInterleavedOddFirst = 4,
  1803. VMR9_SampleFieldSingleEven = 5,
  1804. VMR9_SampleFieldSingleOdd = 6
  1805. } VMR9_SampleFormat;
  1806. typedef struct _VMR9VideoDesc {
  1807. DWORD dwSize;
  1808. DWORD dwSampleWidth;
  1809. DWORD dwSampleHeight;
  1810. VMR9_SampleFormat SampleFormat;
  1811. DWORD dwFourCC;
  1812. VMR9Frequency InputSampleFreq;
  1813. VMR9Frequency OutputFrameFreq;
  1814. } VMR9VideoDesc;
  1815. typedef struct _VMR9DeinterlaceCaps {
  1816. DWORD dwSize;
  1817. DWORD dwNumPreviousOutputFrames;
  1818. DWORD dwNumForwardRefSamples;
  1819. DWORD dwNumBackwardRefSamples;
  1820. VMR9DeinterlaceTech DeinterlaceTechnology;
  1821. } VMR9DeinterlaceCaps;
  1822. /*****************************************************************************
  1823. * IVMRDeinterlaceControl9 interface
  1824. */
  1825. #ifndef __IVMRDeinterlaceControl9_INTERFACE_DEFINED__
  1826. #define __IVMRDeinterlaceControl9_INTERFACE_DEFINED__
  1827. DEFINE_GUID(IID_IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59);
  1828. #if defined(__cplusplus) && !defined(CINTERFACE)
  1829. MIDL_INTERFACE("a215fb8d-13c2-4f7f-993c-003d6271a459")
  1830. IVMRDeinterlaceControl9 : public IUnknown
  1831. {
  1832. virtual HRESULT STDMETHODCALLTYPE GetNumberOfDeinterlaceModes(
  1833. VMR9VideoDesc *desc,
  1834. DWORD *nummodes,
  1835. GUID *modes) = 0;
  1836. virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceModeCaps(
  1837. GUID *mode,
  1838. VMR9VideoDesc *desc,
  1839. VMR9DeinterlaceCaps *caps) = 0;
  1840. virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceMode(
  1841. DWORD streamid,
  1842. GUID *mode) = 0;
  1843. virtual HRESULT STDMETHODCALLTYPE SetDeinterlaceMode(
  1844. DWORD streamid,
  1845. GUID *mode) = 0;
  1846. virtual HRESULT STDMETHODCALLTYPE GetDeinterlacePrefs(
  1847. DWORD *prefs) = 0;
  1848. virtual HRESULT STDMETHODCALLTYPE SetDeinterlacePrefs(
  1849. DWORD prefs) = 0;
  1850. virtual HRESULT STDMETHODCALLTYPE GetActualDeinterlaceMode(
  1851. DWORD streamid,
  1852. GUID *mode) = 0;
  1853. };
  1854. #ifdef __CRT_UUID_DECL
  1855. __CRT_UUID_DECL(IVMRDeinterlaceControl9, 0xa215fb8d, 0x13c2, 0x4f7f, 0x99,0x3c, 0x00,0x3d,0x62,0x71,0xa4,0x59)
  1856. #endif
  1857. #else
  1858. typedef struct IVMRDeinterlaceControl9Vtbl {
  1859. BEGIN_INTERFACE
  1860. /*** IUnknown methods ***/
  1861. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1862. IVMRDeinterlaceControl9 *This,
  1863. REFIID riid,
  1864. void **ppvObject);
  1865. ULONG (STDMETHODCALLTYPE *AddRef)(
  1866. IVMRDeinterlaceControl9 *This);
  1867. ULONG (STDMETHODCALLTYPE *Release)(
  1868. IVMRDeinterlaceControl9 *This);
  1869. /*** IVMRDeinterlaceControl9 methods ***/
  1870. HRESULT (STDMETHODCALLTYPE *GetNumberOfDeinterlaceModes)(
  1871. IVMRDeinterlaceControl9 *This,
  1872. VMR9VideoDesc *desc,
  1873. DWORD *nummodes,
  1874. GUID *modes);
  1875. HRESULT (STDMETHODCALLTYPE *GetDeinterlaceModeCaps)(
  1876. IVMRDeinterlaceControl9 *This,
  1877. GUID *mode,
  1878. VMR9VideoDesc *desc,
  1879. VMR9DeinterlaceCaps *caps);
  1880. HRESULT (STDMETHODCALLTYPE *GetDeinterlaceMode)(
  1881. IVMRDeinterlaceControl9 *This,
  1882. DWORD streamid,
  1883. GUID *mode);
  1884. HRESULT (STDMETHODCALLTYPE *SetDeinterlaceMode)(
  1885. IVMRDeinterlaceControl9 *This,
  1886. DWORD streamid,
  1887. GUID *mode);
  1888. HRESULT (STDMETHODCALLTYPE *GetDeinterlacePrefs)(
  1889. IVMRDeinterlaceControl9 *This,
  1890. DWORD *prefs);
  1891. HRESULT (STDMETHODCALLTYPE *SetDeinterlacePrefs)(
  1892. IVMRDeinterlaceControl9 *This,
  1893. DWORD prefs);
  1894. HRESULT (STDMETHODCALLTYPE *GetActualDeinterlaceMode)(
  1895. IVMRDeinterlaceControl9 *This,
  1896. DWORD streamid,
  1897. GUID *mode);
  1898. END_INTERFACE
  1899. } IVMRDeinterlaceControl9Vtbl;
  1900. interface IVMRDeinterlaceControl9 {
  1901. CONST_VTBL IVMRDeinterlaceControl9Vtbl* lpVtbl;
  1902. };
  1903. #ifdef COBJMACROS
  1904. #ifndef WIDL_C_INLINE_WRAPPERS
  1905. /*** IUnknown methods ***/
  1906. #define IVMRDeinterlaceControl9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1907. #define IVMRDeinterlaceControl9_AddRef(This) (This)->lpVtbl->AddRef(This)
  1908. #define IVMRDeinterlaceControl9_Release(This) (This)->lpVtbl->Release(This)
  1909. /*** IVMRDeinterlaceControl9 methods ***/
  1910. #define IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(This,desc,nummodes,modes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes)
  1911. #define IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(This,mode,desc,caps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps)
  1912. #define IVMRDeinterlaceControl9_GetDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->GetDeinterlaceMode(This,streamid,mode)
  1913. #define IVMRDeinterlaceControl9_SetDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->SetDeinterlaceMode(This,streamid,mode)
  1914. #define IVMRDeinterlaceControl9_GetDeinterlacePrefs(This,prefs) (This)->lpVtbl->GetDeinterlacePrefs(This,prefs)
  1915. #define IVMRDeinterlaceControl9_SetDeinterlacePrefs(This,prefs) (This)->lpVtbl->SetDeinterlacePrefs(This,prefs)
  1916. #define IVMRDeinterlaceControl9_GetActualDeinterlaceMode(This,streamid,mode) (This)->lpVtbl->GetActualDeinterlaceMode(This,streamid,mode)
  1917. #else
  1918. /*** IUnknown methods ***/
  1919. static FORCEINLINE HRESULT IVMRDeinterlaceControl9_QueryInterface(IVMRDeinterlaceControl9* This,REFIID riid,void **ppvObject) {
  1920. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1921. }
  1922. static FORCEINLINE ULONG IVMRDeinterlaceControl9_AddRef(IVMRDeinterlaceControl9* This) {
  1923. return This->lpVtbl->AddRef(This);
  1924. }
  1925. static FORCEINLINE ULONG IVMRDeinterlaceControl9_Release(IVMRDeinterlaceControl9* This) {
  1926. return This->lpVtbl->Release(This);
  1927. }
  1928. /*** IVMRDeinterlaceControl9 methods ***/
  1929. static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(IVMRDeinterlaceControl9* This,VMR9VideoDesc *desc,DWORD *nummodes,GUID *modes) {
  1930. return This->lpVtbl->GetNumberOfDeinterlaceModes(This,desc,nummodes,modes);
  1931. }
  1932. static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(IVMRDeinterlaceControl9* This,GUID *mode,VMR9VideoDesc *desc,VMR9DeinterlaceCaps *caps) {
  1933. return This->lpVtbl->GetDeinterlaceModeCaps(This,mode,desc,caps);
  1934. }
  1935. static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
  1936. return This->lpVtbl->GetDeinterlaceMode(This,streamid,mode);
  1937. }
  1938. static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
  1939. return This->lpVtbl->SetDeinterlaceMode(This,streamid,mode);
  1940. }
  1941. static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD *prefs) {
  1942. return This->lpVtbl->GetDeinterlacePrefs(This,prefs);
  1943. }
  1944. static FORCEINLINE HRESULT IVMRDeinterlaceControl9_SetDeinterlacePrefs(IVMRDeinterlaceControl9* This,DWORD prefs) {
  1945. return This->lpVtbl->SetDeinterlacePrefs(This,prefs);
  1946. }
  1947. static FORCEINLINE HRESULT IVMRDeinterlaceControl9_GetActualDeinterlaceMode(IVMRDeinterlaceControl9* This,DWORD streamid,GUID *mode) {
  1948. return This->lpVtbl->GetActualDeinterlaceMode(This,streamid,mode);
  1949. }
  1950. #endif
  1951. #endif
  1952. #endif
  1953. #endif /* __IVMRDeinterlaceControl9_INTERFACE_DEFINED__ */
  1954. typedef struct _VMR9VideoStreamInfo {
  1955. IDirect3DSurface9 *pddsVideoSurface;
  1956. DWORD dwWidth;
  1957. DWORD dwHeight;
  1958. DWORD dwStrmID;
  1959. FLOAT fAlpha;
  1960. VMR9NormalizedRect rNormal;
  1961. REFERENCE_TIME rtStart;
  1962. REFERENCE_TIME rtEnd;
  1963. VMR9_SampleFormat SampleFormat;
  1964. } VMR9VideoStreamInfo;
  1965. /*****************************************************************************
  1966. * IVMRImageCompositor9 interface
  1967. */
  1968. #ifndef __IVMRImageCompositor9_INTERFACE_DEFINED__
  1969. #define __IVMRImageCompositor9_INTERFACE_DEFINED__
  1970. DEFINE_GUID(IID_IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6);
  1971. #if defined(__cplusplus) && !defined(CINTERFACE)
  1972. MIDL_INTERFACE("4a5c89eb-df51-4654-ac2a-e48e02bbabf6")
  1973. IVMRImageCompositor9 : public IUnknown
  1974. {
  1975. virtual HRESULT STDMETHODCALLTYPE InitCompositionDevice(
  1976. IUnknown *d3ddev) = 0;
  1977. virtual HRESULT STDMETHODCALLTYPE TermCompositionDevice(
  1978. IUnknown *d3ddev) = 0;
  1979. virtual HRESULT STDMETHODCALLTYPE SetStreamMediaType(
  1980. DWORD stream,
  1981. AM_MEDIA_TYPE *mt,
  1982. WINBOOL texture) = 0;
  1983. virtual HRESULT STDMETHODCALLTYPE CompositeImage(
  1984. IUnknown *d3ddev,
  1985. IDirect3DSurface9 *d3dtarget,
  1986. AM_MEDIA_TYPE *mttarget,
  1987. REFERENCE_TIME start,
  1988. REFERENCE_TIME stop,
  1989. D3DCOLOR back,
  1990. VMR9VideoStreamInfo *info,
  1991. UINT streams) = 0;
  1992. };
  1993. #ifdef __CRT_UUID_DECL
  1994. __CRT_UUID_DECL(IVMRImageCompositor9, 0x4a5c89eb, 0xdf51, 0x4654, 0xac,0x2a, 0xe4,0x8e,0x02,0xbb,0xab,0xf6)
  1995. #endif
  1996. #else
  1997. typedef struct IVMRImageCompositor9Vtbl {
  1998. BEGIN_INTERFACE
  1999. /*** IUnknown methods ***/
  2000. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2001. IVMRImageCompositor9 *This,
  2002. REFIID riid,
  2003. void **ppvObject);
  2004. ULONG (STDMETHODCALLTYPE *AddRef)(
  2005. IVMRImageCompositor9 *This);
  2006. ULONG (STDMETHODCALLTYPE *Release)(
  2007. IVMRImageCompositor9 *This);
  2008. /*** IVMRImageCompositor9 methods ***/
  2009. HRESULT (STDMETHODCALLTYPE *InitCompositionDevice)(
  2010. IVMRImageCompositor9 *This,
  2011. IUnknown *d3ddev);
  2012. HRESULT (STDMETHODCALLTYPE *TermCompositionDevice)(
  2013. IVMRImageCompositor9 *This,
  2014. IUnknown *d3ddev);
  2015. HRESULT (STDMETHODCALLTYPE *SetStreamMediaType)(
  2016. IVMRImageCompositor9 *This,
  2017. DWORD stream,
  2018. AM_MEDIA_TYPE *mt,
  2019. WINBOOL texture);
  2020. HRESULT (STDMETHODCALLTYPE *CompositeImage)(
  2021. IVMRImageCompositor9 *This,
  2022. IUnknown *d3ddev,
  2023. IDirect3DSurface9 *d3dtarget,
  2024. AM_MEDIA_TYPE *mttarget,
  2025. REFERENCE_TIME start,
  2026. REFERENCE_TIME stop,
  2027. D3DCOLOR back,
  2028. VMR9VideoStreamInfo *info,
  2029. UINT streams);
  2030. END_INTERFACE
  2031. } IVMRImageCompositor9Vtbl;
  2032. interface IVMRImageCompositor9 {
  2033. CONST_VTBL IVMRImageCompositor9Vtbl* lpVtbl;
  2034. };
  2035. #ifdef COBJMACROS
  2036. #ifndef WIDL_C_INLINE_WRAPPERS
  2037. /*** IUnknown methods ***/
  2038. #define IVMRImageCompositor9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2039. #define IVMRImageCompositor9_AddRef(This) (This)->lpVtbl->AddRef(This)
  2040. #define IVMRImageCompositor9_Release(This) (This)->lpVtbl->Release(This)
  2041. /*** IVMRImageCompositor9 methods ***/
  2042. #define IVMRImageCompositor9_InitCompositionDevice(This,d3ddev) (This)->lpVtbl->InitCompositionDevice(This,d3ddev)
  2043. #define IVMRImageCompositor9_TermCompositionDevice(This,d3ddev) (This)->lpVtbl->TermCompositionDevice(This,d3ddev)
  2044. #define IVMRImageCompositor9_SetStreamMediaType(This,stream,mt,texture) (This)->lpVtbl->SetStreamMediaType(This,stream,mt,texture)
  2045. #define IVMRImageCompositor9_CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams) (This)->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams)
  2046. #else
  2047. /*** IUnknown methods ***/
  2048. static FORCEINLINE HRESULT IVMRImageCompositor9_QueryInterface(IVMRImageCompositor9* This,REFIID riid,void **ppvObject) {
  2049. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2050. }
  2051. static FORCEINLINE ULONG IVMRImageCompositor9_AddRef(IVMRImageCompositor9* This) {
  2052. return This->lpVtbl->AddRef(This);
  2053. }
  2054. static FORCEINLINE ULONG IVMRImageCompositor9_Release(IVMRImageCompositor9* This) {
  2055. return This->lpVtbl->Release(This);
  2056. }
  2057. /*** IVMRImageCompositor9 methods ***/
  2058. static FORCEINLINE HRESULT IVMRImageCompositor9_InitCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
  2059. return This->lpVtbl->InitCompositionDevice(This,d3ddev);
  2060. }
  2061. static FORCEINLINE HRESULT IVMRImageCompositor9_TermCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
  2062. return This->lpVtbl->TermCompositionDevice(This,d3ddev);
  2063. }
  2064. static FORCEINLINE HRESULT IVMRImageCompositor9_SetStreamMediaType(IVMRImageCompositor9* This,DWORD stream,AM_MEDIA_TYPE *mt,WINBOOL texture) {
  2065. return This->lpVtbl->SetStreamMediaType(This,stream,mt,texture);
  2066. }
  2067. static FORCEINLINE HRESULT IVMRImageCompositor9_CompositeImage(IVMRImageCompositor9* This,IUnknown *d3ddev,IDirect3DSurface9 *d3dtarget,AM_MEDIA_TYPE *mttarget,REFERENCE_TIME start,REFERENCE_TIME stop,D3DCOLOR back,VMR9VideoStreamInfo *info,UINT streams) {
  2068. return This->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams);
  2069. }
  2070. #endif
  2071. #endif
  2072. #endif
  2073. #endif /* __IVMRImageCompositor9_INTERFACE_DEFINED__ */
  2074. /* Begin additional prototypes for all interfaces */
  2075. /* End additional prototypes */
  2076. #ifdef __cplusplus
  2077. }
  2078. #endif
  2079. #endif /* __vmr9_h__ */