home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sdktools / aniedit / anicur.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-28  |  2.3 KB  |  85 lines

  1. /****************************** Module Header ******************************\
  2. * Module Name: ANICUR.H
  3. *
  4. * This header contains all structures and constants needed for manipulating
  5. * Animated cursor files.
  6. *
  7. * History:
  8. *   28-Apr-1993 JonPa   Copied from Windows NT
  9. *
  10. \***************************************************************************/
  11.  
  12. #include <mmsystem.h>
  13.  
  14. // RIFF chunk header.
  15.  
  16. typedef struct _RTAG {
  17.     FOURCC ckID;
  18.     DWORD ckSize;
  19. } RTAG, *PRTAG;
  20.  
  21.  
  22. // Valid TAG types.
  23.  
  24. // 'ANI ' - simple ANImation file
  25.  
  26. #define FOURCC_ACON  mmioFOURCC('A', 'C', 'O', 'N')
  27.  
  28.  
  29. // 'anih' - ANImation Header
  30. // Contains an ANIHEADER structure.
  31.  
  32. #define FOURCC_anih mmioFOURCC('a', 'n', 'i', 'h')
  33.  
  34.  
  35. // 'rate' - RATE table (array of jiffies)
  36. // Contains an array of JIFs.  Each JIF specifies how long the corresponding
  37. // animation frame is to be displayed before advancing to the next frame.
  38. // If the AF_SEQUENCE flag is set then the count of JIFs == anih.cSteps,
  39. // otherwise the count == anih.cFrames.
  40.  
  41. #define FOURCC_rate mmioFOURCC('r', 'a', 't', 'e')
  42.  
  43.  
  44. // 'seq ' - SEQuence table (array of frame index values)
  45. // Countains an array of DWORD frame indices.  anih.cSteps specifies how
  46. // many.
  47.  
  48. #define FOURCC_seq  mmioFOURCC('s', 'e', 'q', ' ')
  49.  
  50.  
  51. // 'fram' - list type for the icon list that follows
  52.  
  53. #define FOURCC_fram mmioFOURCC('f', 'r', 'a', 'm')
  54.  
  55. // 'icon' - Windows ICON format image (replaces MPTR)
  56.  
  57. #define FOURCC_icon mmioFOURCC('i', 'c', 'o', 'n')
  58.  
  59.  
  60. // Standard tags (but for some reason not defined in MMSYSTEM.H)
  61.  
  62. #define FOURCC_INFO mmioFOURCC('I', 'N', 'F', 'O')      // INFO list
  63. #define FOURCC_IART mmioFOURCC('I', 'A', 'R', 'T')      // Artist
  64. #define FOURCC_INAM mmioFOURCC('I', 'N', 'A', 'M')      // Name/Title
  65.  
  66. typedef DWORD JIF, *PJIF;
  67.  
  68. typedef struct _ANIHEADER {     /* anih */
  69.     DWORD cbSizeof;
  70.     DWORD cFrames;
  71.     DWORD cSteps;
  72.     DWORD cx, cy;
  73.     DWORD cBitCount, cPlanes;
  74.     JIF   jifRate;
  75.     DWORD fl;
  76. } ANIHEADER, *PANIHEADER;
  77.  
  78. /* If the AF_ICON flag is specified the fields cx, cy, cBitCount, and
  79.  * cPlanes are all unused.  Each frame will be of type ICON and will
  80.  * contain its own dimensional information.
  81.  */
  82.  
  83. #define AF_ICON     0x0001L     /* Windows format icon/cursor animation */
  84. #define AF_SEQUENCE 0x0002L     /* Animation is sequenced */
  85.