f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Copyright 2008 Maarten Lankhorst
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * This library is free software; you can redistribute it and/or
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * modify it under the terms of the GNU Lesser General Public
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * License as published by the Free Software Foundation; either
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * version 2.1 of the License, or (at your option) any later version.
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * This library is distributed in the hope that it will be useful,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Lesser General Public License for more details.
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * You should have received a copy of the GNU Lesser General Public
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * License along with this library; if not, write to the Free Software
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * a choice of LGPL license versions is made available with the language indicating
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * of the LGPL is applied is otherwise unspecified.
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncimport "unknwn.idl";
interface IVMRImagePresenter9;
interface IVMRImagePresenterConfig9;
interface IVMRMonitorConfig9;
interface IVMRWindowlessControl9;
interface IVMRMixerControl9;
interface IVMRImageCompositor9;
interface IVMRMixerBitmap9;
interface IVMRFilterConfig9;
interface IVMRAspectRatioControl9;
interface IVMRVideoStreamControl9;
HRESULT InitializeDevice([in] DWORD_PTR id, [in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers);
HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface);
HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest);
HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface);
HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *arwidth, [out] LONG *arheight);
HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange);
} VMR9Mode;
HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev);
HRESULT GetNumberOfDeinterlaceModes([in] VMR9VideoDesc *desc, [in, out] DWORD *nummodes, [out] GUID *modes);
HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMR9VideoDesc *desc, [out] VMR9DeinterlaceCaps *caps);
HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget,