af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2008 Maarten Lankhorst
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * a choice of LGPL license versions is made available with the language indicating
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * of the LGPL is applied is otherwise unspecified.
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync */
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#if 0")
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef DWORD IDirectDrawSurface7;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef DWORD IDirectDraw7;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef DWORD *LPBITMAPINFOHEADER;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef DWORD *LPDDPIXELFORMAT;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct { DWORD dw1, dw2; } DDCOLORKEY;
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#endif")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#include <ddraw.h>")
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRSurface;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRSurfaceAllocator;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRSurfaceAllocatorNotify;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRImagePresenter;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRImagePresenterNotify;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRWindowlessControl;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRMixerControl;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRMixerBitmap;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRFilterConfig;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRAspectRatioControl;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRDeinterlaceControl;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRMonitorConfig;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRImageCompositor;
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRVideoStreamControl;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum _VMRPresentationFlags
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRSample_SyncPoint = 0x01,
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRSample_Preroll = 0x02,
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRSample_Discontinuity = 0x04,
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRSample_TimeValid = 0x08,
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRSample_SrcDstRectsValid = 0x10
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRPresentationFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagVMRPRESENTATIONINFO
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync IDirectDrawSurface7 *lpSurf;
af062818b47340eef15700d2f0211576ba3506eevboxsync REFERENCE_TIME rtStart, rtEnd;
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE szAspectRatio;
af062818b47340eef15700d2f0211576ba3506eevboxsync RECT rcSrc, rcDst;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwTypeSpecificFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwInterlaceFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRPRESENTATIONINFO;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(ce704fe7-e71e-41fb-baa2-c4403e1182f5),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRImagePresenter interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRImagePresenter : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT StartPresenting([in] DWORD_PTR id);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT StopPresenting([in] DWORD_PTR id);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT PresentImage([in] DWORD_PTR id, [in] VMRPRESENTATIONINFO *info);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum _VMRSurfaceAllocationFlags
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync AMAP_PIXELFORMAT_VALID = 0x01,
af062818b47340eef15700d2f0211576ba3506eevboxsync AMAP_3D_TARGET = 0x02,
af062818b47340eef15700d2f0211576ba3506eevboxsync AMAP_ALLOW_SYSMEM = 0x04,
af062818b47340eef15700d2f0211576ba3506eevboxsync AMAP_FORCE_SYSMEM = 0x08,
af062818b47340eef15700d2f0211576ba3506eevboxsync AMAP_DIRECTED_FLIP = 0x10,
af062818b47340eef15700d2f0211576ba3506eevboxsync AMAP_DXVA_TARGET = 0x20
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRSurfaceAllocationFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagVMRALLOCATIONINFO
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPBITMAPINFOHEADER lpHdr;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPDDPIXELFORMAT lpPixFmt;
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE szAspectRatio;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwMinBuffers;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwMaxBuffers;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwInterlaceFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE szNativeSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRALLOCATIONINFO;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRSurfaceAllocator interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRSurfaceAllocator : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT AllocateSurface([in] DWORD_PTR id, [in] VMRALLOCATIONINFO *allocinfo, [in, out] DWORD *buffers, IDirectDrawSurface7 **surface);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT FreeSurface([in] DWORD_PTR id);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT PrepareSurface([in] DWORD_PTR id, [in] IDirectDrawSurface7 *surface, [in] DWORD dwSurfaceFlags);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify *notify);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRSurfaceAllocatorNotify interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRSurfaceAllocatorNotify : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator *allocator);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetDDrawDevice([in] IDirectDraw7 *device, [in] HMONITOR monitor);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT ChangeDDrawDevice([in] IDirectDraw7 *device, [in] HMONITOR monitor);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT RestoreDDrawSurfaces();
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT NotifyEvent([in] LONG EventCode, [in] LONG_PTR p1, [in] LONG_PTR p2);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetBorderColor([in] COLORREF border);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum _VMR_ASPECT_RATIO_MODE
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync VMR_ARMODE_NONE,
af062818b47340eef15700d2f0211576ba3506eevboxsync VMR_ARMODE_LETTER_BOX
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMR_ASPECT_RATIO_MODE;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRWindowlessControl interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRWindowlessControl : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *ar_width, [out] LONG *ar_height);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetVideoPosition([in] const RECT *src_rect, [in] const RECT *dst_rect);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetVideoPosition([out] RECT *src_rect, [out] RECT *dst_rect);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAspectRatioMode([out] DWORD *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetAspectRatioMode([in] DWORD mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetVideoClippingWindow([in] HWND hwnd);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT DisplayModeChanged();
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetCurrentImage([out] BYTE **data);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetBorderColor([in] COLORREF border);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetBorderColor([out] COLORREF *border);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetColorKey([in] COLORREF key);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetColorKey([out] COLORREF *key);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum _VMRMixerPrefs
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_NoDecimation = 0x0001,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_DecimateOutput = 0x0002,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_ARAdjustXorY = 0x0004,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_DecimationReserved = 0x0008,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_DecimateMask = 0x000f,
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_BiLinearFiltering = 0x0010,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_PointFiltering = 0x0020,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_FinteringMask = 0x00f0,
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_RenderTargetRGB = 0x0100,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_RenderTargetYUV = 0x1000,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_RenderTargetYUV420 = 0x0200,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_RenderTargetYUV422 = 0x0400,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_RenderTargetYUV444 = 0x0800,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_RenderTargetReserved = 0xe000,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_RenderTargetMask = 0xff00,
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_DynamicSwitchToBOB = 0x10000,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_DynamicDecimateBy2 = 0x20000,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_DynamicReserved = 0xc0000,
af062818b47340eef15700d2f0211576ba3506eevboxsync MixerPref_DynamicMask = 0xf0000
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRMixerPrefs;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _NORMALIZEDRECT
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT left, top, right, bottom;
af062818b47340eef15700d2f0211576ba3506eevboxsync} NORMALIZEDRECT;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(1c1a17b0-bed0-415d-974b-dc6696131599),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRMixerControl interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRMixerControl : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetAlpha([in] DWORD id, [in] FLOAT alpha);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAlpha([in] DWORD id, [out] FLOAT *alpha);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetZOrder([in] DWORD id, [in] DWORD z);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetZOrder([in] DWORD id, [out] DWORD *z);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetOutputRect([in] DWORD id, [in] const NORMALIZEDRECT *rect);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetBackgroundClr([in] COLORREF background);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetBackgroundClr([out] COLORREF *background);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetMixingPrefs([in] DWORD prefs);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetMixingPrefs([out] DWORD *prefs);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagVMRGUID
af062818b47340eef15700d2f0211576ba3506eevboxsync{
a3133ef29cdf3656735d569fd64e54c9286effc0vboxsync struct _GUID *pGUID, GUID;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRGUID;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define VMRDEVICENAMELEN 32
af062818b47340eef15700d2f0211576ba3506eevboxsync#define VMRDEVICEDESCRIPTIONLEN 256
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagVMRMONITORINFO
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRGUID guid;
af062818b47340eef15700d2f0211576ba3506eevboxsync RECT rcMonitor;
af062818b47340eef15700d2f0211576ba3506eevboxsync HMONITOR hMon;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync WCHAR szDevice[VMRDEVICENAMELEN];
af062818b47340eef15700d2f0211576ba3506eevboxsync WCHAR szDescription[VMRDEVICEDESCRIPTIONLEN];
af062818b47340eef15700d2f0211576ba3506eevboxsync LARGE_INTEGER liDriverVersion;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwVendorId;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwDeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwSubSysId;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwRevision;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRMONITORINFO;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRMonitorConfig interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRMonitorConfig : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetMonitor([in] const VMRGUID *vmrguid);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetMonitor([out] VMRGUID *vmrguid);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetDefaultMonitor([in] const VMRGUID *vmrguid);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDefaultMonitor([out] VMRGUID *vmrguid);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAvailableMonitors([out, size_is(array_size)] VMRMONITORINFO *info, [in] DWORD array_size, [out] DWORD *retrieved);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum _VMRRenderPrefs
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_RestrictToInitialMonitor = 0x00,
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_ForceOffScreen = 0x01,
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_ForceOverlays = 0x02,
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_AllowOverlays = 0x00,
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_AllowOffscreen = 0x00,
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_DoNotRenderColorKeyAndBorder = 0x08,
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_Reserved = 0x10,
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_PreferAGPMemWhenMixing = 0x20,
af062818b47340eef15700d2f0211576ba3506eevboxsync RenderPrefs_Mask = 0x3f
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRRenderPrefs;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum _VMRMode
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRMode_Windowed = 0x1,
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRMode_Windowless = 0x2,
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRMode_Renderless = 0x4,
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRMode_Mask = 0x7
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRMode;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncenum { MAX_NUMBER_OF_STREAMS = 16 };
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(9e5530c5-7034-48b4-bb46-0b8a6efc8e36),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRFilterConfig interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRFilterConfig : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetImageCompositor([in] IVMRImageCompositor *compositor);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetNumberOfStreams([in] DWORD streams);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetNumberOfStreams([out] DWORD *streams);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetRenderingPrefs([in] DWORD prefs);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetRenderingPrefs([out] DWORD *prefs);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetRenderingMode([in] DWORD mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetRenderingMode([out] DWORD *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(ede80b5c-bad6-4623-b537-65586c9f8dfd),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRAspectRatioControl interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRAspectRatioControl : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAspectRatioMode([out] DWORD *armode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetAspectRatioMode([in] DWORD armode);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum _VMRDeinterlacePrefs
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlacePref_NextBest = 0x1,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlacePref_BOB = 0x2,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlacePref_Weave = 0x4,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlacePref_Mask = 0x7
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRDeinterlacePrefs;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum _VMRDeinterlaceTech
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlaceTech_Unknown = 0x00,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlaceTech_BOBLineReplicate = 0x01,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlaceTech_BOBVerticalStretch = 0x02,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlaceTech_MedianFiltering = 0x04,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlaceTech_EdgeFiltering = 0x08,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlaceTech_FieldAdaptive = 0x10,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlaceTech_PixelAdaptive = 0x20,
af062818b47340eef15700d2f0211576ba3506eevboxsync DeinterlaceTech_MotionVectorSteered = 0x80
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRDeinterlaceTech;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _VMRFrequency
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwNumerator, dwDenominator;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRFrequency;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _VMRVideoDesc
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwSampleWidth;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwSampleHeight;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL SingleFieldPerSample;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwFourCC;
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRFrequency InputSampleFreq;
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRFrequency OutputFrameFreq;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRVideoDesc;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _VMRDeinterlaceCaps
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwNumPreviousOutputFrames;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwNumForwardRefSamples;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwNumBackwardRefSamples;
af062818b47340eef15700d2f0211576ba3506eevboxsync VMRDeinterlaceTech DeinterlaceTechnology;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRDeinterlaceCaps;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(bb057577-0db8-4e6a-87a7-1a8c9a505a0f),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRDeinterlaceControl interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRDeinterlaceControl : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc *desc, [in, out] DWORD *num_modes, [out] GUID *modes);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMRVideoDesc *desc, [in, out] VMRDeinterlaceCaps *caps);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDeinterlaceMode([in] DWORD id, [out] GUID *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetDeinterlaceMode([in] DWORD id, [in] GUID *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDeinterlacePrefs([out] DWORD *prefs);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetDeinterlacePrefs([in] DWORD prefs);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetActualDeinterlaceMode([in] DWORD id, [out] GUID *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _VMRALPHABITMAP
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync HDC hdc;
af062818b47340eef15700d2f0211576ba3506eevboxsync IDirectDrawSurface7 *pDDS;
af062818b47340eef15700d2f0211576ba3506eevboxsync RECT rSrc;
af062818b47340eef15700d2f0211576ba3506eevboxsync RECT rDest;
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT fAlpha;
af062818b47340eef15700d2f0211576ba3506eevboxsync COLORREF clrSrcKey;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRALPHABITMAP, *PVMRALPHABITMAP;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define VMRBITMAP_DISABLE (0x01)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define VMRBITMAP_HDC (0x02)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define VMRBITMAP_ENTIREDDS (0x04)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define VMRBITMAP_SRCCOLORKEY (0x08)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define VMRBITMAP_SRCRECT (0x10)")
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(1e673275-0257-40aa-af20-7c608d4a0428),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRMixerBitmap interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRMixerBitmap : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *params);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT UpdateAlphaBitmapParameters([in] VMRALPHABITMAP *params);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAlphaBitmapParameters([out] VMRALPHABITMAP *params);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _VMRVIDEOSTREAMINFO
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync IDirectDrawSurface7 *pddsVideoSurface;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwWidth;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwHeight;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwStrmID;
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT fAlpha;
af062818b47340eef15700d2f0211576ba3506eevboxsync DDCOLORKEY ddClrKey;
af062818b47340eef15700d2f0211576ba3506eevboxsync NORMALIZEDRECT rNormal;
af062818b47340eef15700d2f0211576ba3506eevboxsync} VMRVIDEOSTREAMINFO;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(7a4fb5af-479f-4074-bb40-ce6722e43c82),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRImageCompositor interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRImageCompositor : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT InitCompositionTarget([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT TermCompositionTarget([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetStreamMediaType([in] DWORD id, [in] AM_MEDIA_TYPE *pmt, [in] BOOL texture);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] AM_MEDIA_TYPE *pmt, [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] DWORD backgrnd, [in] VMRVIDEOSTREAMINFO *info, [in] UINT streams);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(058d1f11-2a54-4bef-bd54-df706626b727),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRVideoStreamControl interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRVideoStreamControl : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetColorKey([in] DDCOLORKEY *key);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetColorKey([out] DDCOLORKEY *key);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetStreamActiveState([in] BOOL active);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetStreamActiveState([out] BOOL *active);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(9f3a1c85-8555-49ba-935f-be5b5b29d178),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRImagePresenterConfig interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRImagePresenterConfig : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetRenderingPrefs([in] DWORD prefs);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetRenderingPrefs([out] DWORD *prefs);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(e6f7ce40-4673-44f1-8f77-5499d68cb4ea),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRImagePresenterExclModeConfig interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetXlcModeDDObjAndPrimarySurface([in] IDirectDraw7 *dddev, [in] IDirectDrawSurface7 *ddsurface);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetXlcModeDDObjAndPrimarySurface([out] IDirectDraw7 **dddev, [out] IDirectDrawSurface7 **ddsurface);
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(aac18c18-e186-46d2-825d-a1f8dc8e395a),
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVPManager interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVPManager : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetVideoPortIndex([in] DWORD index);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetVideoPortIndex([out] DWORD *index);
af062818b47340eef15700d2f0211576ba3506eevboxsync};