dxvahd.h 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750
  1. /*** Autogenerated by WIDL 7.7 from include/dxvahd.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 __dxvahd_h__
  14. #define __dxvahd_h__
  15. /* Forward declarations */
  16. #ifndef __IDXVAHD_Device_FWD_DEFINED__
  17. #define __IDXVAHD_Device_FWD_DEFINED__
  18. typedef interface IDXVAHD_Device IDXVAHD_Device;
  19. #ifdef __cplusplus
  20. interface IDXVAHD_Device;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IDXVAHD_VideoProcessor_FWD_DEFINED__
  24. #define __IDXVAHD_VideoProcessor_FWD_DEFINED__
  25. typedef interface IDXVAHD_VideoProcessor IDXVAHD_VideoProcessor;
  26. #ifdef __cplusplus
  27. interface IDXVAHD_VideoProcessor;
  28. #endif /* __cplusplus */
  29. #endif
  30. /* Headers for imported files */
  31. #include <unknwn.h>
  32. #ifdef __cplusplus
  33. extern "C" {
  34. #endif
  35. #include <winapifamily.h>
  36. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  37. #if (_WIN32_WINNT >= 0x0601)
  38. #if 0
  39. #ifndef __IDirect3DSurface9_FWD_DEFINED__
  40. #define __IDirect3DSurface9_FWD_DEFINED__
  41. typedef interface IDirect3DSurface9 IDirect3DSurface9;
  42. #ifdef __cplusplus
  43. interface IDirect3DSurface9;
  44. #endif /* __cplusplus */
  45. #endif
  46. #ifndef __IDirect3DDevice9Ex_FWD_DEFINED__
  47. #define __IDirect3DDevice9Ex_FWD_DEFINED__
  48. typedef interface IDirect3DDevice9Ex IDirect3DDevice9Ex;
  49. #ifdef __cplusplus
  50. interface IDirect3DDevice9Ex;
  51. #endif /* __cplusplus */
  52. #endif
  53. typedef DWORD D3DFORMAT;
  54. typedef DWORD D3DPOOL;
  55. typedef struct __WIDL_dxvahd_generated_name_0000000C {
  56. char dummy;
  57. } D3DCOLOR;
  58. #endif
  59. #ifndef CALLBACK
  60. #if defined(_ARM_)
  61. #define CALLBACK
  62. #else
  63. #define CALLBACK __stdcall
  64. #endif
  65. #endif
  66. #ifndef __IDXVAHD_Device_FWD_DEFINED__
  67. #define __IDXVAHD_Device_FWD_DEFINED__
  68. typedef interface IDXVAHD_Device IDXVAHD_Device;
  69. #ifdef __cplusplus
  70. interface IDXVAHD_Device;
  71. #endif /* __cplusplus */
  72. #endif
  73. #ifndef __IDXVAHD_VideoProcessor_FWD_DEFINED__
  74. #define __IDXVAHD_VideoProcessor_FWD_DEFINED__
  75. typedef interface IDXVAHD_VideoProcessor IDXVAHD_VideoProcessor;
  76. #ifdef __cplusplus
  77. interface IDXVAHD_VideoProcessor;
  78. #endif /* __cplusplus */
  79. #endif
  80. typedef enum _DXVAHD_ALPHA_FILL_MODE {
  81. DXVAHD_ALPHA_FILL_MODE_OPAQUE = 0,
  82. DXVAHD_ALPHA_FILL_MODE_BACKGROUND = 1,
  83. DXVAHD_ALPHA_FILL_MODE_DESTINATION = 2,
  84. DXVAHD_ALPHA_FILL_MODE_SOURCE_STREAM = 3
  85. } DXVAHD_ALPHA_FILL_MODE;
  86. typedef struct _DXVAHD_COLOR_YCbCrA {
  87. FLOAT Y;
  88. FLOAT Cb;
  89. FLOAT Cr;
  90. FLOAT A;
  91. } DXVAHD_COLOR_YCbCrA;
  92. typedef struct _DXVAHD_COLOR_RGBA {
  93. FLOAT R;
  94. FLOAT G;
  95. FLOAT B;
  96. FLOAT A;
  97. } DXVAHD_COLOR_RGBA;
  98. typedef union _DXVAHD_COLOR {
  99. DXVAHD_COLOR_RGBA RGB;
  100. DXVAHD_COLOR_YCbCrA YCbCr;
  101. } DXVAHD_COLOR;
  102. typedef struct _DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA {
  103. WINBOOL YCbCr;
  104. DXVAHD_COLOR BackgroundColor;
  105. } DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA;
  106. typedef enum _DXVAHD_BLT_STATE {
  107. DXVAHD_BLT_STATE_TARGET_RECT = 0,
  108. DXVAHD_BLT_STATE_BACKGROUND_COLOR = 1,
  109. DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = 2,
  110. DXVAHD_BLT_STATE_ALPHA_FILL = 3,
  111. DXVAHD_BLT_STATE_CONSTRICTION = 4,
  112. DXVAHD_BLT_STATE_PRIVATE = 1000
  113. } DXVAHD_BLT_STATE;
  114. typedef enum _DXVAHD_DEVICE_CAPS {
  115. DXVAHD_DEVICE_CAPS_LINEAR_SPACE = 0x1,
  116. DXVAHD_DEVICE_CAPS_xvYCC = 0x2,
  117. DXVAHD_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
  118. DXVAHD_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8
  119. } DXVAHD_DEVICE_CAPS;
  120. typedef enum _DXVAHD_DEVICE_TYPE {
  121. DXVAHD_DEVICE_TYPE_HARDWARE = 0,
  122. DXVAHD_DEVICE_TYPE_SOFTWARE = 1,
  123. DXVAHD_DEVICE_TYPE_REFERENCE = 2,
  124. DXVAHD_DEVICE_TYPE_OTHER = 3
  125. } DXVAHD_DEVICE_TYPE;
  126. typedef enum _DXVAHD_DEVICE_USAGE {
  127. DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0,
  128. DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1,
  129. DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2
  130. } DXVAHD_DEVICE_USAGE;
  131. typedef enum _DXVAHD_FEATURE_CAPS {
  132. DXVAHD_FEATURE_CAPS_ALPHA_FILL = 0x1,
  133. DXVAHD_FEATURE_CAPS_CONSTRICTION = 0x2,
  134. DXVAHD_FEATURE_CAPS_LUMA_KEY = 0x4,
  135. DXVAHD_FEATURE_CAPS_ALPHA_PALETTE = 0x8
  136. } DXVAHD_FEATURE_CAPS;
  137. typedef enum _DXVAHD_FILTER {
  138. DXVAHD_FILTER_BRIGHTNESS = 0,
  139. DXVAHD_FILTER_CONTRAST = 1,
  140. DXVAHD_FILTER_HUE = 2,
  141. DXVAHD_FILTER_SATURATION = 3,
  142. DXVAHD_FILTER_NOISE_REDUCTION = 4,
  143. DXVAHD_FILTER_EDGE_ENHANCEMENT = 5,
  144. DXVAHD_FILTER_ANAMORPHIC_SCALING = 6
  145. } DXVAHD_FILTER;
  146. typedef enum _DXVAHD_FILTER_CAPS {
  147. DXVAHD_FILTER_CAPS_BRIGHTNESS = 0x1,
  148. DXVAHD_FILTER_CAPS_CONTRAST = 0x2,
  149. DXVAHD_FILTER_CAPS_HUE = 0x4,
  150. DXVAHD_FILTER_CAPS_SATURATION = 0x8,
  151. DXVAHD_FILTER_CAPS_NOISE_REDUCTION = 0x10,
  152. DXVAHD_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
  153. DXVAHD_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40
  154. } DXVAHD_FILTER_CAPS;
  155. typedef enum _DXVAHD_FRAME_FORMAT {
  156. DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0,
  157. DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
  158. DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
  159. } DXVAHD_FRAME_FORMAT;
  160. typedef enum _DXVAHD_INPUT_FORMAT_CAPS {
  161. DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED = 0x1,
  162. DXVAHD_INPUT_FORMAT_CAPS_RGB_PROCAMP = 0x2,
  163. DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
  164. DXVAHD_INPUT_FORMAT_CAPS_PALETTE_INTERLACED = 0x8
  165. } DXVAHD_INPUT_FORMAT_CAPS;
  166. typedef enum _DXVAHD_ITELECINE_CAPS {
  167. DXVAHD_ITELECINE_CAPS_32 = 0x1,
  168. DXVAHD_ITELECINE_CAPS_22 = 0x2,
  169. DXVAHD_ITELECINE_CAPS_2224 = 0x4,
  170. DXVAHD_ITELECINE_CAPS_2332 = 0x8,
  171. DXVAHD_ITELECINE_CAPS_32322 = 0x10,
  172. DXVAHD_ITELECINE_CAPS_55 = 0x20,
  173. DXVAHD_ITELECINE_CAPS_64 = 0x40,
  174. DXVAHD_ITELECINE_CAPS_87 = 0x80,
  175. DXVAHD_ITELECINE_CAPS_222222222223 = 0x100,
  176. DXVAHD_ITELECINE_CAPS_OTHER = 0x80000000
  177. } DXVAHD_ITELECINE_CAPS;
  178. typedef enum _DXVAHD_OUTPUT_RATE {
  179. DXVAHD_OUTPUT_RATE_NORMAL = 0,
  180. DXVAHD_OUTPUT_RATE_HALF = 1,
  181. DXVAHD_OUTPUT_RATE_CUSTOM = 2
  182. } DXVAHD_OUTPUT_RATE;
  183. typedef enum _DXVAHD_PROCESSOR_CAPS {
  184. DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
  185. DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
  186. DXVAHD_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
  187. DXVAHD_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
  188. DXVAHD_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
  189. DXVAHD_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20
  190. } DXVAHD_PROCESSOR_CAPS;
  191. typedef enum _DXVAHD_STREAM_STATE {
  192. DXVAHD_STREAM_STATE_D3DFORMAT = 0,
  193. DXVAHD_STREAM_STATE_FRAME_FORMAT = 1,
  194. DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = 2,
  195. DXVAHD_STREAM_STATE_OUTPUT_RATE = 3,
  196. DXVAHD_STREAM_STATE_SOURCE_RECT = 4,
  197. DXVAHD_STREAM_STATE_DESTINATION_RECT = 5,
  198. DXVAHD_STREAM_STATE_ALPHA = 6,
  199. DXVAHD_STREAM_STATE_PALETTE = 7,
  200. DXVAHD_STREAM_STATE_LUMA_KEY = 8,
  201. DXVAHD_STREAM_STATE_ASPECT_RATIO = 9,
  202. DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = 100,
  203. DXVAHD_STREAM_STATE_FILTER_CONTRAST = 101,
  204. DXVAHD_STREAM_STATE_FILTER_HUE = 102,
  205. DXVAHD_STREAM_STATE_FILTER_SATURATION = 103,
  206. DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = 104,
  207. DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = 105,
  208. DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = 106,
  209. DXVAHD_STREAM_STATE_PRIVATE = 1000
  210. } DXVAHD_STREAM_STATE;
  211. typedef enum _DXVAHD_SURFACE_TYPE {
  212. DXVAHD_SURFACE_TYPE_VIDEO_INPUT = 0,
  213. DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = 1,
  214. DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = 2
  215. } DXVAHD_SURFACE_TYPE;
  216. typedef struct _DXVAHD_VPDEVCAPS {
  217. DXVAHD_DEVICE_TYPE DeviceType;
  218. UINT DeviceCaps;
  219. UINT FeatureCaps;
  220. UINT FilterCaps;
  221. UINT InputFormatCaps;
  222. D3DPOOL InputPool;
  223. UINT OutputFormatCount;
  224. UINT InputFormatCount;
  225. UINT VideoProcessorCount;
  226. UINT MaxInputStreams;
  227. UINT MaxStreamStates;
  228. } DXVAHD_VPDEVCAPS;
  229. typedef struct _DXVAHD_BLT_STATE_ALPHA_FILL_DATA {
  230. DXVAHD_ALPHA_FILL_MODE Mode;
  231. UINT StreamNumber;
  232. } DXVAHD_BLT_STATE_ALPHA_FILL_DATA;
  233. typedef struct _DXVAHD_BLT_STATE_CONSTRICTION_DATA {
  234. WINBOOL Enable;
  235. SIZE Size;
  236. } DXVAHD_BLT_STATE_CONSTRICTION_DATA;
  237. typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
  238. UINT Usage : 1;
  239. UINT RGB_Range : 1;
  240. UINT YCbCr_Matrix : 1;
  241. UINT YCbCr_xvYCC : 1;
  242. } DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;
  243. typedef struct _DXVAHD_BLT_STATE_PRIVATE_DATA {
  244. GUID Guid;
  245. UINT DataSize;
  246. void *pData;
  247. } DXVAHD_BLT_STATE_PRIVATE_DATA;
  248. typedef struct _DXVAHD_BLT_STATE_TARGET_RECT_DATA {
  249. WINBOOL Enable;
  250. RECT TargetRect;
  251. } DXVAHD_BLT_STATE_TARGET_RECT_DATA;
  252. typedef struct _DXVAHD_RATIONAL {
  253. UINT Numerator;
  254. UINT Denominator;
  255. } DXVAHD_RATIONAL;
  256. typedef struct _DXVAHD_CONTENT_DESC {
  257. DXVAHD_FRAME_FORMAT InputFrameFormat;
  258. DXVAHD_RATIONAL InputFrameRate;
  259. UINT InputWidth;
  260. UINT InputHeight;
  261. DXVAHD_RATIONAL OutputFrameRate;
  262. UINT OutputWidth;
  263. UINT OutputHeight;
  264. } DXVAHD_CONTENT_DESC;
  265. typedef struct _DXVAHD_CUSTOM_RATE_DATA {
  266. DXVAHD_RATIONAL CustomRate;
  267. UINT OutputFrames;
  268. WINBOOL InputInterlaced;
  269. UINT InputFramesOrFields;
  270. } DXVAHD_CUSTOM_RATE_DATA;
  271. typedef struct _DXVAHD_FILTER_RANGE_DATA {
  272. INT Minimum;
  273. INT Maximum;
  274. INT Default;
  275. FLOAT Multiplier;
  276. } DXVAHD_FILTER_RANGE_DATA;
  277. typedef struct _DXVAHD_STREAM_DATA {
  278. WINBOOL Enable;
  279. UINT OutputIndex;
  280. UINT InputFrameOrField;
  281. UINT PastFrames;
  282. UINT FutureFrames;
  283. IDirect3DSurface9 **ppPastSurfaces;
  284. IDirect3DSurface9 *pInputSurface;
  285. IDirect3DSurface9 **ppFutureSurfaces;
  286. } DXVAHD_STREAM_DATA;
  287. typedef struct _DXVAHD_VPCAPS {
  288. GUID VPGuid;
  289. UINT PastFrames;
  290. UINT FutureFrames;
  291. UINT ProcessorCaps;
  292. UINT ITelecineCaps;
  293. UINT CustomRateCount;
  294. } DXVAHD_VPCAPS;
  295. typedef struct _DXVAHD_STREAM_STATE_ALPHA_DATA {
  296. WINBOOL Enable;
  297. FLOAT Alpha;
  298. } DXVAHD_STREAM_STATE_ALPHA_DATA;
  299. typedef struct _DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA {
  300. WINBOOL Enable;
  301. DXVAHD_RATIONAL SourceAspectRatio;
  302. DXVAHD_RATIONAL DestinationAspectRatio;
  303. } DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA;
  304. typedef struct _DXVAHD_STREAM_STATE_D3DFORMAT_DATA {
  305. D3DFORMAT Format;
  306. } DXVAHD_STREAM_STATE_D3DFORMAT_DATA;
  307. typedef struct _DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA {
  308. WINBOOL Enable;
  309. RECT DestinationRect;
  310. } DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA;
  311. typedef struct _DXVAHD_STREAM_STATE_FILTER_DATA {
  312. WINBOOL Enable;
  313. INT Level;
  314. } DXVAHD_STREAM_STATE_FILTER_DATA;
  315. typedef struct _DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA {
  316. DXVAHD_FRAME_FORMAT FrameFormat;
  317. } DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA;
  318. typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA {
  319. UINT Type : 1;
  320. UINT RGB_Range : 1;
  321. UINT YCbCr_Matrix : 1;
  322. UINT YCbCr_xvYCC : 1;
  323. } DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA;
  324. typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
  325. WINBOOL Enable;
  326. FLOAT Lower;
  327. FLOAT Upper;
  328. } DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
  329. typedef struct _DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA {
  330. WINBOOL RepeatFrame;
  331. DXVAHD_OUTPUT_RATE OutputRate;
  332. DXVAHD_RATIONAL CustomRate;
  333. } DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA;
  334. typedef struct _DXVAHD_STREAM_STATE_SOURCE_RECT_DATA {
  335. WINBOOL Enable;
  336. RECT SourceRect;
  337. } DXVAHD_STREAM_STATE_SOURCE_RECT_DATA;
  338. typedef struct _DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA {
  339. WINBOOL Enable;
  340. UINT ITelecineFlags;
  341. UINT Frames;
  342. UINT InputField;
  343. } DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA;
  344. typedef struct _DXVAHD_STREAM_STATE_PRIVATE_DATA {
  345. GUID Guid;
  346. UINT DataSize;
  347. void *pData;
  348. } DXVAHD_STREAM_STATE_PRIVATE_DATA;
  349. typedef struct _DXVAHD_STREAM_STATE_PALETTE_DATA {
  350. UINT Count;
  351. D3DCOLOR *pEntries;
  352. } DXVAHD_STREAM_STATE_PALETTE_DATA;
  353. typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateDevice )(IDirect3DDevice9Ex *pD3DDevice,HANDLE *phDevice);
  354. typedef HRESULT ( CALLBACK *PDXVAHDSW_ProposeVideoPrivateFormat )(HANDLE hDevice,D3DFORMAT *pFormat);
  355. typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorDeviceCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,DXVAHD_VPDEVCAPS *pCaps);
  356. typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorOutputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);
  357. typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorInputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);
  358. typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,DXVAHD_VPCAPS *pCaps);
  359. typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCustomRates )(HANDLE hDevice,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates);
  360. typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessBltState )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData);
  361. typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateVideoProcessor )(HANDLE hDevice,const GUID *pVPGuid,HANDLE *phVideoProcessor);
  362. typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyDevice )(HANDLE hDevice);
  363. typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorFilterRange )(HANDLE hDevice,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange);
  364. typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyVideoProcessor )(HANDLE hVideoProcessor);
  365. typedef HRESULT ( CALLBACK *PDXVAHDSW_VideoProcessBltHD )(HANDLE hVideoProcessor,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams);
  366. typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessStreamStatePrivate )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE_PRIVATE_DATA *pData);
  367. typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessStreamState )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData);
  368. typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessBltStatePrivate )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE_PRIVATE_DATA *pData);
  369. typedef HRESULT ( CALLBACK *PDXVAHDSW_Plugin )(UINT Size,void *pCallbacks);
  370. typedef struct _DXVAHDSW_CALLBACKS {
  371. PDXVAHDSW_CreateDevice CreateDevice;
  372. PDXVAHDSW_ProposeVideoPrivateFormat ProposeVideoPrivateFormat;
  373. PDXVAHDSW_GetVideoProcessorDeviceCaps GetVideoProcessorDeviceCaps;
  374. PDXVAHDSW_GetVideoProcessorOutputFormats GetVideoProcessorOutputFormats;
  375. PDXVAHDSW_GetVideoProcessorInputFormats GetVideoProcessorInputFormats;
  376. PDXVAHDSW_GetVideoProcessorCaps GetVideoProcessorCaps;
  377. PDXVAHDSW_GetVideoProcessorCustomRates GetVideoProcessorCustomRates;
  378. PDXVAHDSW_GetVideoProcessorFilterRange GetVideoProcessorFilterRange;
  379. PDXVAHDSW_DestroyDevice DestroyDevice;
  380. PDXVAHDSW_CreateVideoProcessor CreateVideoProcessor;
  381. PDXVAHDSW_SetVideoProcessBltState SetVideoProcessBltState;
  382. PDXVAHDSW_GetVideoProcessBltStatePrivate GetVideoProcessBltStatePrivate;
  383. PDXVAHDSW_SetVideoProcessStreamState SetVideoProcessStreamState;
  384. PDXVAHDSW_GetVideoProcessStreamStatePrivate GetVideoProcessStreamStatePrivate;
  385. PDXVAHDSW_VideoProcessBltHD VideoProcessBltHD;
  386. PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor;
  387. } DXVAHDSW_CALLBACKS;
  388. HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);
  389. /*****************************************************************************
  390. * IDXVAHD_Device interface
  391. */
  392. #ifndef __IDXVAHD_Device_INTERFACE_DEFINED__
  393. #define __IDXVAHD_Device_INTERFACE_DEFINED__
  394. DEFINE_GUID(IID_IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d);
  395. #if defined(__cplusplus) && !defined(CINTERFACE)
  396. MIDL_INTERFACE("95f12dfd-d77e-49be-815f-57d579634d6d")
  397. IDXVAHD_Device : public IUnknown
  398. {
  399. virtual HRESULT STDMETHODCALLTYPE CreateVideoSurface(
  400. UINT Width,
  401. UINT Height,
  402. D3DFORMAT Format,
  403. D3DPOOL Pool,
  404. DWORD Usage,
  405. DXVAHD_SURFACE_TYPE Type,
  406. UINT NumSurfaces,
  407. IDirect3DSurface9 **ppSurfaces,
  408. HANDLE *pSharedHandle) = 0;
  409. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorDeviceCaps(
  410. DXVAHD_VPDEVCAPS *pCaps) = 0;
  411. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorOutputFormats(
  412. UINT Count,
  413. D3DFORMAT *pFormats) = 0;
  414. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorInputFormats(
  415. UINT Count,
  416. D3DFORMAT *pFormats) = 0;
  417. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
  418. UINT Count,
  419. DXVAHD_VPCAPS *pCaps) = 0;
  420. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCustomRates(
  421. const GUID *pVPGuid,
  422. UINT Count,
  423. DXVAHD_CUSTOM_RATE_DATA *pRates) = 0;
  424. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorFilterRange(
  425. DXVAHD_FILTER Filter,
  426. DXVAHD_FILTER_RANGE_DATA *pRange) = 0;
  427. virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
  428. const GUID *pVPGuid,
  429. IDXVAHD_VideoProcessor **ppVideoProcessor) = 0;
  430. };
  431. #ifdef __CRT_UUID_DECL
  432. __CRT_UUID_DECL(IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d)
  433. #endif
  434. #else
  435. typedef struct IDXVAHD_DeviceVtbl {
  436. BEGIN_INTERFACE
  437. /*** IUnknown methods ***/
  438. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  439. IDXVAHD_Device *This,
  440. REFIID riid,
  441. void **ppvObject);
  442. ULONG (STDMETHODCALLTYPE *AddRef)(
  443. IDXVAHD_Device *This);
  444. ULONG (STDMETHODCALLTYPE *Release)(
  445. IDXVAHD_Device *This);
  446. /*** IDXVAHD_Device methods ***/
  447. HRESULT (STDMETHODCALLTYPE *CreateVideoSurface)(
  448. IDXVAHD_Device *This,
  449. UINT Width,
  450. UINT Height,
  451. D3DFORMAT Format,
  452. D3DPOOL Pool,
  453. DWORD Usage,
  454. DXVAHD_SURFACE_TYPE Type,
  455. UINT NumSurfaces,
  456. IDirect3DSurface9 **ppSurfaces,
  457. HANDLE *pSharedHandle);
  458. HRESULT (STDMETHODCALLTYPE *GetVideoProcessorDeviceCaps)(
  459. IDXVAHD_Device *This,
  460. DXVAHD_VPDEVCAPS *pCaps);
  461. HRESULT (STDMETHODCALLTYPE *GetVideoProcessorOutputFormats)(
  462. IDXVAHD_Device *This,
  463. UINT Count,
  464. D3DFORMAT *pFormats);
  465. HRESULT (STDMETHODCALLTYPE *GetVideoProcessorInputFormats)(
  466. IDXVAHD_Device *This,
  467. UINT Count,
  468. D3DFORMAT *pFormats);
  469. HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
  470. IDXVAHD_Device *This,
  471. UINT Count,
  472. DXVAHD_VPCAPS *pCaps);
  473. HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCustomRates)(
  474. IDXVAHD_Device *This,
  475. const GUID *pVPGuid,
  476. UINT Count,
  477. DXVAHD_CUSTOM_RATE_DATA *pRates);
  478. HRESULT (STDMETHODCALLTYPE *GetVideoProcessorFilterRange)(
  479. IDXVAHD_Device *This,
  480. DXVAHD_FILTER Filter,
  481. DXVAHD_FILTER_RANGE_DATA *pRange);
  482. HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)(
  483. IDXVAHD_Device *This,
  484. const GUID *pVPGuid,
  485. IDXVAHD_VideoProcessor **ppVideoProcessor);
  486. END_INTERFACE
  487. } IDXVAHD_DeviceVtbl;
  488. interface IDXVAHD_Device {
  489. CONST_VTBL IDXVAHD_DeviceVtbl* lpVtbl;
  490. };
  491. #ifdef COBJMACROS
  492. #ifndef WIDL_C_INLINE_WRAPPERS
  493. /*** IUnknown methods ***/
  494. #define IDXVAHD_Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  495. #define IDXVAHD_Device_AddRef(This) (This)->lpVtbl->AddRef(This)
  496. #define IDXVAHD_Device_Release(This) (This)->lpVtbl->Release(This)
  497. /*** IDXVAHD_Device methods ***/
  498. #define IDXVAHD_Device_CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle) (This)->lpVtbl->CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle)
  499. #define IDXVAHD_Device_GetVideoProcessorDeviceCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorDeviceCaps(This,pCaps)
  500. #define IDXVAHD_Device_GetVideoProcessorOutputFormats(This,Count,pFormats) (This)->lpVtbl->GetVideoProcessorOutputFormats(This,Count,pFormats)
  501. #define IDXVAHD_Device_GetVideoProcessorInputFormats(This,Count,pFormats) (This)->lpVtbl->GetVideoProcessorInputFormats(This,Count,pFormats)
  502. #define IDXVAHD_Device_GetVideoProcessorCaps(This,Count,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,Count,pCaps)
  503. #define IDXVAHD_Device_GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates) (This)->lpVtbl->GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates)
  504. #define IDXVAHD_Device_GetVideoProcessorFilterRange(This,Filter,pRange) (This)->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange)
  505. #define IDXVAHD_Device_CreateVideoProcessor(This,pVPGuid,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,pVPGuid,ppVideoProcessor)
  506. #else
  507. /*** IUnknown methods ***/
  508. static FORCEINLINE HRESULT IDXVAHD_Device_QueryInterface(IDXVAHD_Device* This,REFIID riid,void **ppvObject) {
  509. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  510. }
  511. static FORCEINLINE ULONG IDXVAHD_Device_AddRef(IDXVAHD_Device* This) {
  512. return This->lpVtbl->AddRef(This);
  513. }
  514. static FORCEINLINE ULONG IDXVAHD_Device_Release(IDXVAHD_Device* This) {
  515. return This->lpVtbl->Release(This);
  516. }
  517. /*** IDXVAHD_Device methods ***/
  518. static FORCEINLINE HRESULT IDXVAHD_Device_CreateVideoSurface(IDXVAHD_Device* This,UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DXVAHD_SURFACE_TYPE Type,UINT NumSurfaces,IDirect3DSurface9 **ppSurfaces,HANDLE *pSharedHandle) {
  519. return This->lpVtbl->CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle);
  520. }
  521. static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorDeviceCaps(IDXVAHD_Device* This,DXVAHD_VPDEVCAPS *pCaps) {
  522. return This->lpVtbl->GetVideoProcessorDeviceCaps(This,pCaps);
  523. }
  524. static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorOutputFormats(IDXVAHD_Device* This,UINT Count,D3DFORMAT *pFormats) {
  525. return This->lpVtbl->GetVideoProcessorOutputFormats(This,Count,pFormats);
  526. }
  527. static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorInputFormats(IDXVAHD_Device* This,UINT Count,D3DFORMAT *pFormats) {
  528. return This->lpVtbl->GetVideoProcessorInputFormats(This,Count,pFormats);
  529. }
  530. static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorCaps(IDXVAHD_Device* This,UINT Count,DXVAHD_VPCAPS *pCaps) {
  531. return This->lpVtbl->GetVideoProcessorCaps(This,Count,pCaps);
  532. }
  533. static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorCustomRates(IDXVAHD_Device* This,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates) {
  534. return This->lpVtbl->GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates);
  535. }
  536. static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorFilterRange(IDXVAHD_Device* This,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange) {
  537. return This->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange);
  538. }
  539. static FORCEINLINE HRESULT IDXVAHD_Device_CreateVideoProcessor(IDXVAHD_Device* This,const GUID *pVPGuid,IDXVAHD_VideoProcessor **ppVideoProcessor) {
  540. return This->lpVtbl->CreateVideoProcessor(This,pVPGuid,ppVideoProcessor);
  541. }
  542. #endif
  543. #endif
  544. #endif
  545. #endif /* __IDXVAHD_Device_INTERFACE_DEFINED__ */
  546. /*****************************************************************************
  547. * IDXVAHD_VideoProcessor interface
  548. */
  549. #ifndef __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__
  550. #define __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__
  551. DEFINE_GUID(IID_IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52);
  552. #if defined(__cplusplus) && !defined(CINTERFACE)
  553. MIDL_INTERFACE("95f4edf4-6e03-4cd7-be1b-3075d665aa52")
  554. IDXVAHD_VideoProcessor : public IUnknown
  555. {
  556. virtual HRESULT STDMETHODCALLTYPE SetVideoProcessBltState(
  557. DXVAHD_BLT_STATE State,
  558. UINT DataSize,
  559. const void *pData) = 0;
  560. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessBltState(
  561. DXVAHD_BLT_STATE State,
  562. UINT DataSize,
  563. void *pData) = 0;
  564. virtual HRESULT STDMETHODCALLTYPE SetVideoProcessStreamState(
  565. UINT StreamNumber,
  566. DXVAHD_STREAM_STATE State,
  567. UINT DataSize,
  568. const void *pData) = 0;
  569. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessStreamState(
  570. UINT StreamNumber,
  571. DXVAHD_STREAM_STATE State,
  572. UINT DataSize,
  573. void *pData) = 0;
  574. virtual HRESULT STDMETHODCALLTYPE VideoProcessBltHD(
  575. IDirect3DSurface9 *pOutputSurface,
  576. UINT OutputFrame,
  577. UINT StreamCount,
  578. const DXVAHD_STREAM_DATA *pStreams) = 0;
  579. };
  580. #ifdef __CRT_UUID_DECL
  581. __CRT_UUID_DECL(IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52)
  582. #endif
  583. #else
  584. typedef struct IDXVAHD_VideoProcessorVtbl {
  585. BEGIN_INTERFACE
  586. /*** IUnknown methods ***/
  587. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  588. IDXVAHD_VideoProcessor *This,
  589. REFIID riid,
  590. void **ppvObject);
  591. ULONG (STDMETHODCALLTYPE *AddRef)(
  592. IDXVAHD_VideoProcessor *This);
  593. ULONG (STDMETHODCALLTYPE *Release)(
  594. IDXVAHD_VideoProcessor *This);
  595. /*** IDXVAHD_VideoProcessor methods ***/
  596. HRESULT (STDMETHODCALLTYPE *SetVideoProcessBltState)(
  597. IDXVAHD_VideoProcessor *This,
  598. DXVAHD_BLT_STATE State,
  599. UINT DataSize,
  600. const void *pData);
  601. HRESULT (STDMETHODCALLTYPE *GetVideoProcessBltState)(
  602. IDXVAHD_VideoProcessor *This,
  603. DXVAHD_BLT_STATE State,
  604. UINT DataSize,
  605. void *pData);
  606. HRESULT (STDMETHODCALLTYPE *SetVideoProcessStreamState)(
  607. IDXVAHD_VideoProcessor *This,
  608. UINT StreamNumber,
  609. DXVAHD_STREAM_STATE State,
  610. UINT DataSize,
  611. const void *pData);
  612. HRESULT (STDMETHODCALLTYPE *GetVideoProcessStreamState)(
  613. IDXVAHD_VideoProcessor *This,
  614. UINT StreamNumber,
  615. DXVAHD_STREAM_STATE State,
  616. UINT DataSize,
  617. void *pData);
  618. HRESULT (STDMETHODCALLTYPE *VideoProcessBltHD)(
  619. IDXVAHD_VideoProcessor *This,
  620. IDirect3DSurface9 *pOutputSurface,
  621. UINT OutputFrame,
  622. UINT StreamCount,
  623. const DXVAHD_STREAM_DATA *pStreams);
  624. END_INTERFACE
  625. } IDXVAHD_VideoProcessorVtbl;
  626. interface IDXVAHD_VideoProcessor {
  627. CONST_VTBL IDXVAHD_VideoProcessorVtbl* lpVtbl;
  628. };
  629. #ifdef COBJMACROS
  630. #ifndef WIDL_C_INLINE_WRAPPERS
  631. /*** IUnknown methods ***/
  632. #define IDXVAHD_VideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  633. #define IDXVAHD_VideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
  634. #define IDXVAHD_VideoProcessor_Release(This) (This)->lpVtbl->Release(This)
  635. /*** IDXVAHD_VideoProcessor methods ***/
  636. #define IDXVAHD_VideoProcessor_SetVideoProcessBltState(This,State,DataSize,pData) (This)->lpVtbl->SetVideoProcessBltState(This,State,DataSize,pData)
  637. #define IDXVAHD_VideoProcessor_GetVideoProcessBltState(This,State,DataSize,pData) (This)->lpVtbl->GetVideoProcessBltState(This,State,DataSize,pData)
  638. #define IDXVAHD_VideoProcessor_SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData) (This)->lpVtbl->SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData)
  639. #define IDXVAHD_VideoProcessor_GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData) (This)->lpVtbl->GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData)
  640. #define IDXVAHD_VideoProcessor_VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams) (This)->lpVtbl->VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams)
  641. #else
  642. /*** IUnknown methods ***/
  643. static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_QueryInterface(IDXVAHD_VideoProcessor* This,REFIID riid,void **ppvObject) {
  644. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  645. }
  646. static FORCEINLINE ULONG IDXVAHD_VideoProcessor_AddRef(IDXVAHD_VideoProcessor* This) {
  647. return This->lpVtbl->AddRef(This);
  648. }
  649. static FORCEINLINE ULONG IDXVAHD_VideoProcessor_Release(IDXVAHD_VideoProcessor* This) {
  650. return This->lpVtbl->Release(This);
  651. }
  652. /*** IDXVAHD_VideoProcessor methods ***/
  653. static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_SetVideoProcessBltState(IDXVAHD_VideoProcessor* This,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData) {
  654. return This->lpVtbl->SetVideoProcessBltState(This,State,DataSize,pData);
  655. }
  656. static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_GetVideoProcessBltState(IDXVAHD_VideoProcessor* This,DXVAHD_BLT_STATE State,UINT DataSize,void *pData) {
  657. return This->lpVtbl->GetVideoProcessBltState(This,State,DataSize,pData);
  658. }
  659. static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_SetVideoProcessStreamState(IDXVAHD_VideoProcessor* This,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData) {
  660. return This->lpVtbl->SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData);
  661. }
  662. static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_GetVideoProcessStreamState(IDXVAHD_VideoProcessor* This,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,void *pData) {
  663. return This->lpVtbl->GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData);
  664. }
  665. static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_VideoProcessBltHD(IDXVAHD_VideoProcessor* This,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams) {
  666. return This->lpVtbl->VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams);
  667. }
  668. #endif
  669. #endif
  670. #endif
  671. #endif /* __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__ */
  672. #endif /*(_WIN32_WINNT >= 0x0601)*/
  673. #endif /*WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)*/
  674. /* Begin additional prototypes for all interfaces */
  675. /* End additional prototypes */
  676. #ifdef __cplusplus
  677. }
  678. #endif
  679. #endif /* __dxvahd_h__ */