vmrender.idl revision 589fd26cedb2b4ebbed14f2964cad03cc8ebbca2
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2008 Maarten Lankhorst
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 * 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 * 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
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * other than GPL or LGPL is available it will apply instead, Sun 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.
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT PresentImage([in] DWORD_PTR id, [in] VMRPRESENTATIONINFO *info);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT AllocateSurface([in] DWORD_PTR id, [in] VMRALLOCATIONINFO *allocinfo, [in, out] DWORD *buffers, IDirectDrawSurface7 **surface);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT PrepareSurface([in] DWORD_PTR id, [in] IDirectDrawSurface7 *surface, [in] DWORD dwSurfaceFlags);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify *notify);
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRSurfaceAllocatorNotify interface"),
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 NotifyEvent([in] LONG EventCode, [in] LONG_PTR p1, [in] LONG_PTR p2);
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 RepaintVideo([in] HWND hwnd, [in] HDC hdc);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAlpha([in] DWORD id, [out] FLOAT *alpha);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetOutputRect([in] DWORD id, [in] const NORMALIZEDRECT *rect);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetBackgroundClr([in] COLORREF background);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetBackgroundClr([out] COLORREF *background);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetDefaultMonitor([in] const VMRGUID *vmrguid);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAvailableMonitors([out, size_is(array_size)] VMRMONITORINFO *info, [in] DWORD array_size, [out] DWORD *retrieved);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetImageCompositor([in] IVMRImageCompositor *compositor);
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 GetActualDeinterlaceMode([in] DWORD id, [out] GUID *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *params);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT UpdateAlphaBitmapParameters([in] VMRALPHABITMAP *params);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAlphaBitmapParameters([out] VMRALPHABITMAP *params);
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 helpstring("IVMRImagePresenterExclModeConfig interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetXlcModeDDObjAndPrimarySurface([in] IDirectDraw7 *dddev, [in] IDirectDrawSurface7 *ddsurface);