home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / ddstream.idl < prev    next >
Text File  |  1998-04-25  |  2KB  |  78 lines

  1. import "unknwn.idl";
  2. import "mmstream.idl";
  3.  
  4. cpp_quote("//")
  5. cpp_quote("//    The following declarations within the 'if 0' block are dummy typedefs used to make")
  6. cpp_quote("//    the ddstream.idl file build.  The actual definitions are contained in DDRAW.H")
  7. cpp_quote("//")
  8. cpp_quote("#if 0")
  9. typedef void * LPDDSURFACEDESC;
  10. typedef struct tDDSURFACEDESC DDSURFACEDESC;
  11. cpp_quote("#endif")
  12. cpp_quote("#include <ddraw.h>")
  13.  
  14. enum {
  15.     DDSFF_PROGRESSIVERENDER = 0x00000001
  16. };
  17.  
  18. interface IDirectDraw;
  19. interface IDirectDrawSurface;
  20. interface IDirectDrawPalette;
  21.  
  22. interface IDirectDrawMediaStream;
  23. interface IDirectDrawStreamSample;
  24.  
  25. // IDirectDrawMediaStream
  26. [
  27. object,
  28. local,
  29. uuid(F4104FCE-9A70-11d0-8FDE-00C04FD9189D),
  30. pointer_default(unique)
  31. ]
  32. interface IDirectDrawMediaStream : IMediaStream
  33. {
  34.     HRESULT GetFormat(
  35.         [out] [optional] DDSURFACEDESC *pDDSDCurrent,
  36.         [out] [optional] IDirectDrawPalette **ppDirectDrawPalette,
  37.         [out] [optional] DDSURFACEDESC *pDDSDDesired,
  38.         [out] [optional] DWORD *pdwFlags);
  39.  
  40.     HRESULT SetFormat(
  41.         [in] const DDSURFACEDESC *pDDSurfaceDesc,
  42.         [in] [optional] IDirectDrawPalette *pDirectDrawPalette);
  43.  
  44.     HRESULT GetDirectDraw(
  45.         [out] IDirectDraw **ppDirectDraw);
  46.  
  47.     HRESULT SetDirectDraw(
  48.         [in] IDirectDraw *pDirectDraw);
  49.  
  50.     HRESULT CreateSample(
  51.         [in] [optional] IDirectDrawSurface *pSurface,
  52.         [in] [optional] const RECT *pRect,
  53.         [in] DWORD dwFlags,
  54.         [out]IDirectDrawStreamSample **ppSample);
  55.  
  56.         HRESULT GetTimePerFrame(
  57.                 [out] STREAM_TIME *pFrameTime);
  58. };
  59.  
  60.  
  61. // IDirectDrawStreamSample
  62. [
  63. object,
  64. local,
  65. uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D),
  66. pointer_default(unique)
  67. ]
  68. interface IDirectDrawStreamSample : IStreamSample
  69. {
  70.     HRESULT GetSurface(
  71.         [out] [optional] IDirectDrawSurface ** ppDirectDrawSurface,
  72.         [out] [optional] RECT * pRect);
  73.  
  74.     HRESULT SetRect(
  75.         [in] const RECT * pRect);
  76.  
  77. };
  78.