3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2008 Maarten Lankhorst
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT PresentImage([in] DWORD_PTR id, [in] VMRPRESENTATIONINFO *info);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AllocateSurface([in] DWORD_PTR id, [in] VMRALLOCATIONINFO *allocinfo, [in, out] DWORD *buffers, IDirectDrawSurface7 **surface);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT PrepareSurface([in] DWORD_PTR id, [in] IDirectDrawSurface7 *surface, [in] DWORD dwSurfaceFlags);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify *notify);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync helpstring("IVMRSurfaceAllocatorNotify interface"),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator *allocator);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetDDrawDevice([in] IDirectDraw7 *device, [in] HMONITOR monitor);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ChangeDDrawDevice([in] IDirectDraw7 *device, [in] HMONITOR monitor);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT NotifyEvent([in] LONG EventCode, [in] LONG_PTR p1, [in] LONG_PTR p2);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *ar_width, [out] LONG *ar_height);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetVideoPosition([in] const RECT *src_rect, [in] const RECT *dst_rect);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetVideoPosition([out] RECT *src_rect, [out] RECT *dst_rect);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetAlpha([in] DWORD id, [out] FLOAT *alpha);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetOutputRect([in] DWORD id, [in] const NORMALIZEDRECT *rect);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetBackgroundClr([in] COLORREF background);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetBackgroundClr([out] COLORREF *background);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetDefaultMonitor([in] const VMRGUID *vmrguid);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetAvailableMonitors([out, size_is(array_size)] VMRMONITORINFO *info, [in] DWORD array_size, [out] DWORD *retrieved);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetImageCompositor([in] IVMRImageCompositor *compositor);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc *desc, [in, out] DWORD *num_modes, [out] GUID *modes);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMRVideoDesc *desc, [in, out] VMRDeinterlaceCaps *caps);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetDeinterlaceMode([in] DWORD id, [out] GUID *mode);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetDeinterlaceMode([in] DWORD id, [in] GUID *mode);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetActualDeinterlaceMode([in] DWORD id, [out] GUID *mode);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *params);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT UpdateAlphaBitmapParameters([in] VMRALPHABITMAP *params);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetAlphaBitmapParameters([out] VMRALPHABITMAP *params);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT InitCompositionTarget([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT TermCompositionTarget([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetStreamMediaType([in] DWORD id, [in] AM_MEDIA_TYPE *pmt, [in] BOOL texture);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] AM_MEDIA_TYPE *pmt, [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD backgrnd, [in] VMRVIDEOSTREAMINFO *info, [in] UINT streams);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync helpstring("IVMRImagePresenterExclModeConfig interface"),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetXlcModeDDObjAndPrimarySurface([in] IDirectDraw7 *dddev, [in] IDirectDrawSurface7 *ddsurface);