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 19 import "unknwn.idl"; 20 import "mmstream.idl"; 21 22 cpp_quote("#ifndef __DDRAW_INCLUDED__") 23 typedef void * LPDDSURFACEDESC; 24 typedef struct tDDSURFACEDESC DDSURFACEDESC; 25 interface IDirectDraw; 26 interface IDirectDrawSurface; 27 interface IDirectDrawPalette; 28 cpp_quote("#endif") 29 cpp_quote("#include <ddraw.h>") 30 31 enum { 32 DDSFF_PROGRESSIVERENDER = 0x00000001 33 }; 34 35 interface IDirectDrawMediaStream; 36 interface IDirectDrawStreamSample; 37 38 [ 39 object, 40 local, 41 uuid(F4104FCE-9A70-11d0-8FDE-00C04FD9189D), 42 pointer_default(unique) 43 ] 44 interface 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 [ 74 object, 75 local, 76 uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D), 77 pointer_default(unique) 78 ] 79 interface 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