home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Multimedia Development Kit 0.9 beta / MDKBeta_Release3_ISO9660.iso / mdk / include / mmp.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-16  |  6.8 KB  |  235 lines

  1.  
  2. /*
  3.  * Copyright (c) 1991, Microsoft Corporation. All rights reserved.
  4.  */
  5.  
  6.  /***************************************************************************
  7.  
  8.                      WINDOWS MUTLIMEDIA MOVIE Player 2.0
  9.                                     Beta Release
  10.                             Loadable DLL Driver
  11.                        (c) Copyright 1990 MacroMind
  12.                        All Rights Reserved.
  13.  
  14. *****************************************************************************/
  15. /*
  16.     This file to be included in any applicaton wishing to play back Windows
  17.     MultiMedia Movies.
  18. */ 
  19.  
  20. /*
  21. ------------------------------------------------------------------------------
  22. Constants:
  23. ------------------------------------------------------------------------------
  24. */
  25.  
  26. /***************************\
  27.           ERROR CODES
  28. \***************************/
  29.                     
  30. #define     MMPERR_NO_ERROR       0    /* Function succesful, no error dude */
  31. #define MMPERR_FATAL_ERROR    -101    /* fatal error -- program abort */
  32. #define MMPERR_STAGE_ERROR    -102    /* error creating stage window */
  33. #define MMPERR_FILE_VER     -110    /* wrong file version */
  34. #define MMPERR_FILE_TYPE    -111    /* wrong file type -- not an MMP movie file    */
  35. #define MMPERR_OPEN_ERROR    -112    /* DOS error opening file */
  36. #define MMPERR_READ_ERROR    -113    /* DOS read error on file */
  37. #define MMPERR_EOF_ERROR    -115    /* unexpected end of file */
  38. #define MMPERR_REC_HEADER    -116    /* invalid record header */
  39. #define MMPERR_CAST_ERROR    -117    /* error reading cast    */
  40. #define MMPERR_CAST_MAP_ERROR    -118    /* cast/bitmap mismatch */
  41. #define MMPERR_MEM_ALLOC    -121    /* memory allocation error  */
  42.  
  43. #define MMPERR_BAD_ID        -412    /* re-entered (from FrameHook) with different ID */
  44. #define MMPERR_BAD_PARM     -426    /* bad parameters   */
  45.  
  46. #define MMP_MOVEOK         1    /* boolean field definition */
  47. #define SCRIPTCHANNEL        -1    /* definition for a script channel action code */
  48.  
  49. #define MMP_MAXERRORLENGTH  128     /* Guaranteed maximum length of error strings */
  50.  
  51. /*
  52.     Constants used with the Animation
  53. */
  54.  
  55. #define MMP_FRAME_FIRST 1
  56. #define MMP_FRAME_LAST  0x7FFF
  57.  
  58. //#define MMP_VERSION     0x00000032L
  59.  
  60. /*
  61.     mmpSetTempo
  62. */
  63.  
  64. #define MMPTEMPO_MOUSEWAIT -128
  65.  
  66. /*
  67.     Animation status: returned from mmpAnimate and mmpAnimStatus
  68. */
  69.  
  70. #define MMP_TEMPO_WAIT       2  // waiting for enuf time to pass to advance frame
  71. #define MMP_ANIM_DRAW       1  // next frame drawn on this call
  72. #define MMP_MOUSE_WAIT      -1  // animation is waiting for mouse click
  73. #define MMP_DEVICE_WAIT   -2  // animation is waiting for device to finish
  74. #define MMP_ANIM_STOPPED  -3  // animation is stopped
  75.  
  76. /*
  77.     Use at own Risk (with mmpGetInfo) -- peek into internal structures:
  78. */
  79.  
  80. #define MMPINFO_LABELLIST    -6
  81. #define MMPINFO_LABELTEXT    -7
  82. #define MMPINFO_LABELCOUNT    -8
  83. #define MMPINFO_ACTIONLIST    -9
  84. #define MMPINFO_ACTIONTEXT    -10
  85. #define MMPINFO_ACTIONCOUNT    -11
  86.     
  87. /*
  88.     MMP_STAGE_ options for MMPSetStage and MMPGetStage.
  89. */
  90.  
  91. #define MMP_STAGE_CENTER    0x1     /* stage rect is centered in stage wind */
  92. #define MMP_STAGE_OFFSET    0x2     /* stage rect is offset to a fixed location */
  93. #define MMP_STAGE_BORDER    0x4     /* border is drawn around stage rect */
  94. #define MMP_STAGE_FIXED     0x8     /* stage size doesn't change between movies */
  95.  
  96. /*
  97.     MMP_LOAD_ options.
  98. */
  99.  
  100. #define MMP_LOAD_REFERENCED    0x1     /* load if referenced from score */
  101. #define MMP_LOAD_NOSTATIC    0x2    
  102. #define MMP_LOAD_NOBUFFER    0x4
  103. // note: MMP_DRAW_FRAME (0xC000) is also an Load option
  104.  
  105. /*
  106.     MMP_FRAME_ options for MMPStepFrame, MMPGoToFrame, MMPDrawFrame, etc.  !!!
  107.     High order bits are used since they may be combined with other options.
  108. */
  109.  
  110. #define MMP_ERASE_FRAME     0x2000  /* erase entire stage */
  111. #define MMP_DRAW_FRAME        0xC000 // (MMP_FRAME_IMAGE | MMP_FRAME_UPDATE)
  112.  
  113. /*
  114. ------------------------------------------------------------------------------
  115. Types:
  116. ------------------------------------------------------------------------------
  117. */
  118.  
  119. typedef DWORD   MMPID;      /* ID of an MMP animation port */
  120.  
  121. typedef struct {
  122.     DWORD  dwFileVersion;
  123.     DWORD  dwTotalFrames;
  124.     DWORD  dwInitialFramesPerSecond;
  125.     WORD   wPixelDepth;
  126.     DWORD  dwMovieExtentX;
  127.     DWORD  dwMovieExtentY;
  128.     char   achFullMacName[128];
  129. } MMPINFO, FAR *LPMMPINFO;
  130.  
  131. /* per-frame-hook callback */
  132. typedef BOOL (FAR PASCAL *LPMMPFRAMEHOOK)(MMPID id, WORD msg, WORD wParam, LONG lParam);
  133.  
  134. /* messages passed to callback */
  135.  
  136. #define MMP_HOOK_FRAME       0x0003
  137. #define MMP_HOOK_SCRIPT      0x0004
  138.  
  139. /*
  140. ------------------------------------------------------------------------------
  141. Functions:
  142. ------------------------------------------------------------------------------
  143. */
  144.  
  145. extern MMPID FAR PASCAL
  146. mmpOpen( HWND hWndStage, WORD fsOptions );
  147.  
  148. extern BOOL FAR PASCAL
  149. mmpClose( MMPID id, WORD fsOptions );
  150.  
  151. extern BOOL FAR PASCAL
  152. mmpStartAnimating( MMPID id, WORD fsOptions );
  153.  
  154. extern int FAR PASCAL       /* function modified CRK 8-30-90 */
  155. mmpAnimate( MMPID id );
  156.  
  157. extern int FAR PASCAL
  158. mmpAnimStatus( MMPID id );
  159.  
  160. extern BOOL FAR PASCAL
  161. mmpStopAnimating( MMPID id, WORD fsOptions );
  162.  
  163. extern BOOL FAR PASCAL
  164. mmpGoToFrame( MMPID id, short sFrameCtr, WORD fsOptions );
  165.  
  166. extern BOOL FAR PASCAL
  167. mmpUpdate( MMPID id, HDC hDC, RECT FAR * prectArea );
  168.  
  169. extern BOOL FAR PASCAL
  170. mmpSetFrameHook( MMPID id, LPMMPFRAMEHOOK lpFrameHook );
  171.  
  172. extern LPMMPFRAMEHOOK FAR PASCAL
  173. mmpGetFrameHook( MMPID id );
  174.  
  175. extern BOOL FAR PASCAL
  176. mmpGetFileInfo( char FAR * pstrFileName, LPMMPINFO lpMMPInfo );
  177.  
  178. extern BOOL FAR PASCAL
  179. mmpGetMovieInfo( MMPID id, LPMMPINFO lpMMPInfo );
  180.  
  181. extern BOOL FAR PASCAL
  182. mmpLoadFile( MMPID id, char FAR *pstrFileName, WORD fsOptions );
  183.  
  184. extern BOOL FAR PASCAL
  185. mmpFreeFile( MMPID id, WORD fsOptions );
  186.  
  187. extern BOOL FAR PASCAL
  188. mmpFileLoaded( MMPID id );
  189.  
  190. extern short FAR PASCAL
  191. mmpError( MMPID id, LPSTR szError, WORD wBufLen);
  192.  
  193. extern BOOL FAR PASCAL
  194. mmpAnimStopped( MMPID id );
  195.  
  196. extern short FAR PASCAL
  197. mmpGetCurFrame( MMPID id );
  198.  
  199. extern BOOL FAR PASCAL
  200. mmpGetMute( MMPID id, BYTE FAR *bpSquelchOn);
  201.  
  202. extern BOOL FAR PASCAL
  203. mmpSetMute( MMPID id, BOOL bbSquelchOn );
  204.  
  205. extern BOOL FAR PASCAL
  206. mmpSetStage( MMPID id, HWND hWndStage, RECT FAR * prectStage, WORD fsOptions );
  207.  
  208. extern BOOL FAR PASCAL
  209. mmpGetStage( MMPID id, HWND FAR *phWndStage, RECT FAR * prectStage, LPWORD pfsOptions );
  210.  
  211. extern BOOL FAR PASCAL
  212. mmpSetRepeat( MMPID id, BOOL bbRepeat );
  213.  
  214. extern BOOL FAR PASCAL
  215. mmpGetRepeat( MMPID id );
  216.  
  217. extern BOOL FAR PASCAL
  218. mmpSetDC( MMPID id, HDC hDC );
  219.  
  220. extern HPALETTE FAR PASCAL
  221. mmpGetPaletteHandle( MMPID id );
  222.  
  223.  
  224. extern BOOL FAR PASCAL
  225. mmpSetTempo( MMPID id, short sTempo );
  226.  
  227. extern short FAR PASCAL
  228. mmpGetTempo( MMPID id );
  229.  
  230. extern BOOL FAR PASCAL
  231.  mmpGetInfo(MMPID id, int nIndex, LPVOID pvData, WORD wLen);
  232.  
  233. extern BOOL FAR PASCAL
  234.  mmpSetInfo(MMPID id, int nIndex, LPVOID pvData, WORD wLen);
  235.