ReactOS  0.4.14-dev-583-g2a1ba2c
vmr9.idl
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Maarten Lankhorst
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 import "unknwn.idl";
20 
21 cpp_quote("#if 0")
22 interface IDirect3DSurface9;
23 interface IDirect3DDevice9;
24 typedef LONGLONG REFERENCE_TIME;
25 typedef DWORD D3DFORMAT;
26 typedef DWORD D3DPOOL;
27 typedef HANDLE HMONITOR;
28 typedef struct { char dummy; } AM_MEDIA_TYPE;
29 typedef struct { char dummy; } D3DCOLOR;
30 cpp_quote("#endif")
31 
46 
48 {
55 
56 typedef struct _VMR9PresentationInfo
57 {
58  DWORD dwFlags; /* Flags defined above */
59  IDirect3DSurface9 *lpSurf;
68 
69 [
70  local,
71  object,
72  uuid(69188c61-12a3-40f0-8ffc-342e7b433fd7),
73  helpstring("IVMRImagePresenter9 interface"),
75 ]
77 {
81 };
82 
84 {
93 
94 typedef struct _VMR9AllocationInfo
95 {
96  DWORD dwFlags; /* Flags defined above */
105 
106 [
107  local,
108  object,
109  uuid(8d5148ea-3f5d-46cf-9df1-d1b896eedb1f),
110  helpstring("IVMRSurfaceAllocator9 interface"),
112 ]
114 {
115  HRESULT InitializeDevice([in] DWORD_PTR id, [in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers);
117  HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface);
119 };
120 
121 [
122  local,
123  object,
124  uuid(6de9a68a-a928-4522-bf57-655ae3866456),
125  helpstring("IVMRSurfaceAllocatorEx9 interface"),
127 ]
129 {
130  HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest);
131 };
132 
133 [
134  local,
135  object,
136  uuid(dca3f5df-bb3a-4d03-bd81-84614bfbfa0c),
137  helpstring("IVMRSurfaceAllocatorNotify9 interface"),
139 ]
141 {
143  HRESULT SetD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
144  HRESULT ChangeD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
145  HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface);
146  HRESULT NotifyEvent([in] LONG code, [in] LONG_PTR param1, [in] LONG_PTR param2);
147 };
148 
150 {
154 
155 [
156  local,
157  object,
158  uuid(8f537d09-f85e-4414-b23b-502e54c79927),
159  helpstring("IVMRWindowlessControl interface"),
161 ]
163 {
164  HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *arwidth, [out] LONG *arheight);
167  HRESULT SetVideoPosition([in] const RECT *source, [in] const RECT *dest);
177 };
178 
179 typedef enum _VMR9MixerPrefs
180 {
181  /* Decimation */
187 
188  /* Filtering */
196 
197  /* Render target */
201 
207 
208 typedef struct _VMR9NormalizedRect
209 {
215 
217 {
224 
225 typedef struct _VMR9ProcAmpControl
226 {
234 
236 {
244 
245 [
246  local,
247  object,
248  uuid(1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b),
249  helpstring("IVMRMixerControl9 interface"),
251 ]
253 {
254  HRESULT SetAlpha([in] DWORD streamid, [in] FLOAT alpha);
255  HRESULT GetAlpha([in] DWORD streamid, [out] FLOAT *alpha);
256  HRESULT SetZOrder([in] DWORD streamid, [in] DWORD zorder);
257  HRESULT GetZOrder([in] DWORD streamid, [out] DWORD *zorder);
258  HRESULT SetOutputRect([in] DWORD streamid, [in] const VMR9NormalizedRect *rect);
262  HRESULT SetMixingPrefs([in] DWORD mixingprefs);
263  HRESULT GetMixingPrefs([out] DWORD *mixingprefs);
264  HRESULT SetProcAmpControl([in] DWORD streamid, [in] VMR9ProcAmpControl *control);
265  HRESULT GetProcAmpControl([in] DWORD streamid, [in, out] VMR9ProcAmpControl *control);
266  HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange);
267 };
268 
269 typedef struct _VMR9AlphaBitmap
270 {
273  IDirect3DSurface9 *pDDS;
280 
282 {
290 
291 [
292  local,
293  object,
294  uuid(ced175e5-1935-4820-81bd-ff6ad00c9108),
295  helpstring("IVMRMixerBitmap interface"),
297 ]
299 {
303 };
304 
305 [
306  local,
307  object,
308  uuid(dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc),
309  helpstring("IVMRSurface interface"),
311 ]
313 {
315  HRESULT LockSurface([out] BYTE **surface);
317  HRESULT GetSurface([out] IDirect3DSurface9 **surface);
318 };
319 
320 typedef enum _VMR9RenderPrefs
321 {
325 
326 [
327  local,
328  object,
329  uuid(45c15cab-6e22-420a-8043-ae1f0ac02c7d),
330  helpstring("IVMRImagePresenterConfig9 interface"),
332 ]
334 {
335  HRESULT SetRenderingPrefs([in] DWORD renderflags);
336  HRESULT GetRenderingPrefs([out] DWORD *renderflags);
337 };
338 
339 [
340  local,
341  object,
342  uuid(d0cfe38b-93e7-4772-8957-0400c49a4485),
343  helpstring("IVMRMixerStreamConfig interface"),
345 ]
347 {
350 };
351 
352 typedef enum _VMR9Mode
353 {
358 } VMR9Mode;
359 
360 [
361  local,
362  object,
363  uuid(5a804648-4f66-4867-9c43-4f5c822cf1b8),
364  helpstring("IVMRFilterConfig9 interface"),
366 ]
368 {
372  HRESULT SetRenderingPrefs([in] DWORD renderflags);
373  HRESULT GetRenderingPrefs([out] DWORD *renderflags);
376 };
377 
378 [
379  local,
380  object,
381  uuid(00d96c29-bbde-4efc-9901-bb5036392146),
382  helpstring("IVMRAspectRatioControl9 interface"),
384 ]
386 {
389 }
390 
391 #define VMR9DEVICENAMELEN 32
392 #define VMR9DEVICEDESCRIPTIONLEN 512
393 
394 typedef struct _VMR9MonitorInfo
395 {
408 
409 [
410  local,
411  object,
412  uuid(46c2e457-8ba0-4eef-b80b-0680f0978749),
413  helpstring("IVMRMonitorConfig9 interface"),
415 ]
417 {
418  HRESULT SetMonitor([in] UINT uDev);
419  HRESULT GetMonitor([out] UINT *uDev);
422  HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev);
423 };
424 
426 {
432 
434 {
444 
445 typedef struct _VMR9Frequency
446 {
449 } VMR9Frequency;
450 
451 typedef enum _VMR9_SampleFormat
452 {
460 
461 typedef struct _VMR9VideoDesc
462 {
470 } VMR9VideoDesc;
471 
472 typedef struct _VMR9DeinterlaceCaps {
479 
480 [
481  local,
482  object,
483  uuid(a215fb8d-13c2-4f7f-993c-003d6271a459),
484  helpstring("IVMRDeinterlaceControl9 interface"),
486 ]
488 {
491  HRESULT GetDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
492  HRESULT SetDeinterlaceMode([in] DWORD streamid, [in] GUID *mode);
496 };
497 
498 typedef struct _VMR9VideoStreamInfo {
499  IDirect3DSurface9 *pddsVideoSurface;
509 
510 [
511  local,
512  object,
513  uuid(4a5c89eb-df51-4654-ac2a-e48e02bbabf6),
514  helpstring("IVMRImageCompositor9 interface"),
516 ]
518 {
521  HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget,
523  [in] VMR9VideoStreamInfo *info, [in] UINT streams);
524 };
HRESULT ChangeD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor)
HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height)
struct _VMR9VideoStreamInfo VMR9VideoStreamInfo
HRESULT GetBackgroundClr([out] COLORREF *back)
HRESULT GetRenderingPrefs([out] DWORD *renderflags)
enum _VMR9AlphaBitmapFlags VMR9AlphaBitmapFlags
HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange)
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
GLint GLint GLsizei width
Definition: gl.h:1546
COLORREF clrSrcKey
Definition: vmr9.idl:277
#define max(a, b)
Definition: svc.c:63
_VMR9ProcAmpControlFlags
Definition: vmr9.idl:216
static const struct update_accum a3
Definition: msg.c:600
DWORD dwNumPreviousOutputFrames
Definition: vmr9.idl:474
HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest)
HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMR9VideoDesc *desc, [out] VMR9DeinterlaceCaps *caps)
HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify9 *allocnotify)
HRESULT SetImageCompositor([in] IVMRImageCompositor9 *compositor)
REFERENCE_TIME rtStart
Definition: vmr9.idl:60
HRESULT SetNumberOfStreams([in] DWORD max)
D3DFORMAT Format
Definition: vmr9.idl:99
VMR9DeinterlaceTech DeinterlaceTechnology
Definition: vmr9.idl:477
_VMR9DeinterlaceTech
Definition: vmr9.idl:433
HRESULT GetProcAmpControl([in] DWORD streamid, [in, out] VMR9ProcAmpControl *control)
_VMR9DeinterlacePrefs
Definition: vmr9.idl:425
_VMR9AspectRatioMode
Definition: vmr9.idl:149
HRESULT TermCompositionDevice([in] IUnknown *d3ddev)
typedef helpstring
static HDC
Definition: imagelist.c:92
enum _D3DPOOL D3DPOOL
HRESULT GetRenderingMode([out] DWORD *mode)
IDirect3DSurface9 * pDDS
Definition: vmr9.idl:273
HRESULT GetActualDeinterlaceMode([in] DWORD streamid, [out] GUID *mode)
_VMR9RenderPrefs
Definition: vmr9.idl:320
HRESULT TerminateDevice([in] DWORD_PTR id)
HRESULT SetAspectRatioMode([in] DWORD mode)
DWORD dwRevision
Definition: vmr9.idl:406
HRESULT GetAspectRatioMode([out] DWORD *mode)
HRESULT GetVideoPosition([out] RECT *source, [out] RECT *dest)
HRESULT GetCurrentImage([out] BYTE **dib)
HRESULT StopPresenting([in] DWORD_PTR id)
HRESULT GetAspectRatioMode([out] DWORD *mode)
VMR9_SampleFormat SampleFormat
Definition: vmr9.idl:466
DWORD D3DCOLOR
Definition: d3d8types.h:990
HRESULT SetOutputRect([in] DWORD streamid, [in] const VMR9NormalizedRect *rect)
CHARS_IN_GUID struct _AMMediaType AM_MEDIA_TYPE
& rect
Definition: startmenu.cpp:1413
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface)
HRESULT SetDeinterlacePrefs([in] DWORD prefs)
DWORD dwSampleHeight
Definition: vmr9.idl:465
HRESULT IsSurfaceLocked()
HMONITOR hMon
Definition: vmr9.idl:398
HRESULT GetSurface([out] IDirect3DSurface9 **surface)
HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget, [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop, D3DCOLOR back, [in] VMR9VideoStreamInfo *info, [in] UINT streams)
HRESULT GetZOrder([in] DWORD streamid, [out] DWORD *zorder)
DWORD dwVendorId
Definition: vmr9.idl:403
struct _VMR9AlphaBitmap VMR9AlphaBitmap
#define VMR9DEVICEDESCRIPTIONLEN
Definition: vmr9.idl:392
DWORD dwNumForwardRefSamples
Definition: vmr9.idl:475
HRESULT SetVideoClippingWindow([in] HWND hwnd)
unsigned int BOOL
Definition: ntddk_ex.h:94
HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface)
long LONG
Definition: pedump.c:60
GLuint color
Definition: glext.h:6243
Definition: devices.h:37
static const WCHAR desc[]
Definition: protectdata.c:36
_VMR9MixerPrefs
Definition: vmr9.idl:179
struct _VMR9PresentationInfo VMR9PresentationInfo
HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc)
struct _VMR9ProcAmpControl VMR9ProcAmpControl
struct _VMR9Frequency VMR9Frequency
HRESULT StartPresenting([in] DWORD_PTR id)
HRESULT InitCompositionDevice([in] IUnknown *d3ddev)
HRESULT SetAspectRatioMode([in] DWORD mode)
HRESULT GetDefaultMonitor([out] UINT *uDev)
VMR9_SampleFormat SampleFormat
Definition: vmr9.idl:507
enum _VMR9_SampleFormat VMR9_SampleFormat
HRESULT SetVideoPosition([in] const RECT *source, [in] const RECT *dest)
enum _D3DFORMAT D3DFORMAT
char dummy
Definition: vmr9.idl:28
HRESULT SetZOrder([in] DWORD streamid, [in] DWORD zorder)
VMR9Frequency InputSampleFreq
Definition: vmr9.idl:468
HRESULT GetRenderingPrefs([out] DWORD *renderflags)
DWORD dwSize
Definition: vmr9.idl:463
HRESULT GetDeinterlaceMode([in] DWORD streamid, [out] GUID *mode)
HRESULT GetDeinterlacePrefs([out] DWORD *prefs)
HRESULT GetAlpha([in] DWORD streamid, [out] FLOAT *alpha)
Definition: uimain.c:88
int64_t LONGLONG
Definition: typedefs.h:66
HRESULT InitializeDevice([in] DWORD_PTR id, [in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers)
HRESULT SetBorderColor([in] COLORREF color)
HRESULT SetRenderingMode([in] DWORD mode)
HRESULT GetStreamActiveState([out] BOOL *active)
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
DWORD dwFourCC
Definition: vmr9.idl:467
DWORD COLORREF
Definition: windef.h:300
HRESULT PresentImage([in] DWORD_PTR id, [in] VMR9PresentationInfo *info)
HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height)
REFERENCE_TIME rtEnd
Definition: vmr9.idl:506
HRESULT SetRenderingPrefs([in] DWORD renderflags)
const GLubyte * c
Definition: glext.h:8905
HRESULT SetAlphaBitmap([in] const VMR9AlphaBitmap *bitmap)
static FILE * out
Definition: regtests2xml.c:44
HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator9 *alloc)
unsigned long DWORD
Definition: ntddk_ex.h:95
_VMR9Mode
Definition: vmr9.idl:352
HRESULT GetMonitor([out] UINT *uDev)
HRESULT SetMixingPrefs([in] DWORD mixingprefs)
enum _VMR9MixerPrefs VMR9MixerPrefs
_VMR9SurfaceAllocationFlags
Definition: vmr9.idl:83
DWORD dwFilterMode
Definition: vmr9.idl:278
HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *arwidth, [out] LONG *arheight)
GLbitfield flags
Definition: glext.h:7161
HRESULT GetOutputRect([in] DWORD streamid, [out] VMR9NormalizedRect *rect)
HRESULT SetDeinterlaceMode([in] DWORD streamid, [in] GUID *mode)
struct _VMR9ProcAmpControlRange VMR9ProcAmpControlRange
RECT rcMonitor
Definition: vmr9.idl:397
DWORD dwFlags
Definition: vmr9.idl:399
enum _VMR9PresentationFlags VMR9PresentationFlags
HDC hdc
Definition: main.c:9
DWORD dwDenominator
Definition: vmr9.idl:448
unsigned char BYTE
Definition: mem.h:68
enum _VMR9DeinterlaceTech VMR9DeinterlaceTech
struct _VMR9AllocationInfo VMR9AllocationInfo
VMR9ProcAmpControlFlags dwProperty
Definition: vmr9.idl:238
uint32_t DWORD_PTR
Definition: typedefs.h:63
GLenum mode
Definition: glext.h:6217
#define interface
Definition: basetyps.h:61
HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev)
VMR9NormalizedRect rNormal
Definition: vmr9.idl:504
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
HRESULT SetProcAmpControl([in] DWORD streamid, [in] VMR9ProcAmpControl *control)
HRESULT GetMixingPrefs([out] DWORD *mixingprefs)
#define local
Definition: zutil.h:30
#define VMR9DEVICENAMELEN
Definition: vmr9.idl:391
FLOAT fAlpha
Definition: vmr9.idl:276
HRESULT GetAlphaBitmapParameters([out] VMR9AlphaBitmap *bitmap)
HRESULT GetNumberOfStreams([out] DWORD *max)
char dummy
Definition: vmr9.idl:29
GLuint in
Definition: glext.h:9616
IDirect3DSurface9 * pddsVideoSurface
Definition: vmr9.idl:499
static unsigned char pointer_default
Definition: parser.tab.c:114
HRESULT SetStreamActiveState([in] BOOL active)
HRESULT LockSurface([out] BYTE **surface)
HRESULT NotifyEvent([in] LONG code, [in] LONG_PTR param1, [in] LONG_PTR param2)
GLuint start
Definition: gl.h:1545
enum _VMR9Mode VMR9Mode
HRESULT SetDefaultMonitor([in] UINT uDev)
enum _VMR9AspectRatioMode VMR9AspectRatioMode
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define alloc
Definition: rosglue.h:13
HRESULT DisplayModeChanged()
unsigned int UINT
Definition: ndis.h:50
struct _VMR9MonitorInfo VMR9MonitorInfo
VMR9NormalizedRect * rDest
Definition: vmr9.idl:275
static const BYTE dib[]
Definition: ole2.c:201
DWORD dwNumerator
Definition: vmr9.idl:447
_VMR9_SampleFormat
Definition: vmr9.idl:451
WCHAR szDevice[VMR9DEVICENAMELEN]
Definition: vmr9.idl:400
DWORD dwSampleWidth
Definition: vmr9.idl:464
struct _VMR9VideoDesc VMR9VideoDesc
HRESULT SetD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor)
HRESULT UnlockSurface()
GLclampf GLclampf GLclampf alpha
Definition: gl.h:1740
float FLOAT
Definition: typedefs.h:67
_VMR9AlphaBitmapFlags
Definition: vmr9.idl:281
enum _VMR9DeinterlacePrefs VMR9DeinterlacePrefs
HRESULT UpdateAlphaBitmapParameters([in] const VMR9AlphaBitmap *bitmap)
HRESULT SetAlpha([in] DWORD streamid, [in] FLOAT alpha)
struct _VMR9DeinterlaceCaps VMR9DeinterlaceCaps
static char * dest
Definition: rtl.c:135
REFERENCE_TIME rtStart
Definition: vmr9.idl:505
HRESULT SetBackgroundClr([in] COLORREF back)
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
struct _VMR9NormalizedRect VMR9NormalizedRect
HRESULT GetNumberOfDeinterlaceModes([in] VMR9VideoDesc *desc, [in, out] DWORD *nummodes, [out] GUID *modes)
HRESULT SetRenderingPrefs([in] DWORD renderflags)
IDirect3DSurface9 * lpSurf
Definition: vmr9.idl:59
DWORD dwFlags
Definition: vmr9.idl:271
DWORD dwNumBackwardRefSamples
Definition: vmr9.idl:476
enum _VMR9RenderPrefs VMR9RenderPrefs
WCHAR szDescription[VMR9DEVICEDESCRIPTIONLEN]
Definition: vmr9.idl:401
VMR9Frequency OutputFrameFreq
Definition: vmr9.idl:469
_VMR9PresentationFlags
Definition: vmr9.idl:47
LARGE_INTEGER liDriverVersion
Definition: vmr9.idl:402
DWORD dwSubSysId
Definition: vmr9.idl:405
enum _VMR9ProcAmpControlFlags VMR9ProcAmpControlFlags
void * object
Definition: jmemsys.h:48
enum _VMR9SurfaceAllocationFlags VMR9SurfaceAllocationFlags
REFERENCE_TIME rtEnd
Definition: vmr9.idl:61
DWORD dwDeviceId
Definition: vmr9.idl:404
HRESULT SetMonitor([in] UINT uDev)
HRESULT GetBorderColor([out] COLORREF *color)