Home | History | Annotate | Download | only in include
      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