1/* 2 * Copyright 2004 Christian Costa 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 19import "unknwn.idl"; 20import "mmstream.idl"; 21 22cpp_quote("#ifndef __DDRAW_INCLUDED__") 23typedef void * LPDDSURFACEDESC; 24typedef struct tDDSURFACEDESC DDSURFACEDESC; 25interface IDirectDraw; 26interface IDirectDrawSurface; 27interface IDirectDrawPalette; 28cpp_quote("#endif") 29cpp_quote("#include <ddraw.h>") 30 31enum { 32 DDSFF_PROGRESSIVERENDER = 0x00000001 33}; 34 35interface IDirectDrawMediaStream; 36interface IDirectDrawStreamSample; 37 38[ 39object, 40local, 41uuid(F4104FCE-9A70-11d0-8FDE-00C04FD9189D), 42pointer_default(unique) 43] 44interface IDirectDrawMediaStream : IMediaStream 45{ 46 HRESULT GetFormat( 47 [out] DDSURFACEDESC *pDDSDCurrent, 48 [out] IDirectDrawPalette **ppDirectDrawPalette, 49 [out] DDSURFACEDESC *pDDSDDesired, 50 [out] DWORD *pdwFlags); 51 52 HRESULT SetFormat( 53 [in] const DDSURFACEDESC *pDDSurfaceDesc, 54 [in] IDirectDrawPalette *pDirectDrawPalette); 55 56 HRESULT GetDirectDraw( 57 [out] IDirectDraw **ppDirectDraw); 58 59 HRESULT SetDirectDraw( 60 [in] IDirectDraw *pDirectDraw); 61 62 HRESULT CreateSample( 63 [in] IDirectDrawSurface *pSurface, 64 [in] const RECT *pRect, 65 [in] DWORD dwFlags, 66 [out] IDirectDrawStreamSample **ppSample); 67 68 HRESULT GetTimePerFrame( 69 [out] STREAM_TIME *pFrameTime); 70} 71 72 73[ 74object, 75local, 76uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D), 77pointer_default(unique) 78] 79interface IDirectDrawStreamSample : IStreamSample 80{ 81 HRESULT GetSurface( 82 [out] IDirectDrawSurface ** ppDirectDrawSurface, 83 [out] RECT * pRect); 84 85 HRESULT SetRect( 86 [in] const RECT * pRect); 87 88} 89