167 lines
3.9 KiB
C
167 lines
3.9 KiB
C
|
/**
|
||
|
** Header for the New version of RC.EXE. This contains the structures
|
||
|
** for new format of BITMAP files.
|
||
|
**/
|
||
|
|
||
|
/* The width of the name field in the Data for the group resources */
|
||
|
|
||
|
#define NAMELEN 14
|
||
|
|
||
|
typedef struct tagNEWHEADER
|
||
|
{
|
||
|
WORD Reserved;
|
||
|
WORD ResType;
|
||
|
WORD ResCount;
|
||
|
} NEWHEADER, *PNEWHEADER;
|
||
|
|
||
|
typedef struct tagDESCRIPTOR
|
||
|
{
|
||
|
BYTE Width; // 16, 32, 64
|
||
|
BYTE Height; // 16, 32, 64
|
||
|
BYTE ColorCount; // 2, 8, 16
|
||
|
BYTE reserved;
|
||
|
WORD xHotSpot;
|
||
|
WORD yHotSpot;
|
||
|
DWORD BytesInRes;
|
||
|
DWORD OffsetToBits;
|
||
|
} DESCRIPTOR;
|
||
|
|
||
|
typedef struct tagICONRESDIR
|
||
|
{
|
||
|
BYTE Width; // 16, 32, 64
|
||
|
BYTE Height; // 16, 32, 64
|
||
|
BYTE ColorCount; // 2, 8, 16
|
||
|
BYTE reserved;
|
||
|
} ICONRESDIR;
|
||
|
|
||
|
typedef struct tagCURSORDIR
|
||
|
{
|
||
|
WORD Width;
|
||
|
WORD Height;
|
||
|
} CURSORDIR;
|
||
|
|
||
|
typedef struct tagRESDIR
|
||
|
{
|
||
|
union
|
||
|
{
|
||
|
ICONRESDIR Icon;
|
||
|
CURSORDIR Cursor;
|
||
|
} ResInfo;
|
||
|
WORD Planes;
|
||
|
WORD BitCount;
|
||
|
DWORD BytesInRes;
|
||
|
} RESDIR;
|
||
|
|
||
|
typedef struct tagLOCALHEADER
|
||
|
{
|
||
|
WORD xHotSpot;
|
||
|
WORD yHotSpot;
|
||
|
} LOCALHEADER;
|
||
|
|
||
|
typedef struct tagBITMAPHEADER
|
||
|
{
|
||
|
DWORD biSize;
|
||
|
DWORD biWidth;
|
||
|
DWORD biHeight;
|
||
|
WORD biPlanes;
|
||
|
WORD biBitCount;
|
||
|
DWORD biStyle;
|
||
|
DWORD biSizeImage;
|
||
|
DWORD biXPelsPerMeter;
|
||
|
DWORD biYPelsPerMeter;
|
||
|
DWORD biClrUsed;
|
||
|
DWORD biClrImportant;
|
||
|
} BITMAPHEADER;
|
||
|
|
||
|
|
||
|
#define BFOFFBITS(pbfh) MAKELONG(*(LPWORD)((LPWORD)pbfh+5), \
|
||
|
*(LPWORD)((LPWORD)pbfh+6))
|
||
|
|
||
|
#define TOCORE(bi) (*(BITMAPCOREHEADER *)&(bi))
|
||
|
|
||
|
/****************************************************\
|
||
|
* *
|
||
|
* Imported from asdf.h in windows\inc *
|
||
|
* *
|
||
|
\****************************************************/
|
||
|
|
||
|
// RIFF chunk header.
|
||
|
|
||
|
typedef struct _RTAG {
|
||
|
FOURCC ckID;
|
||
|
DWORD ckSize;
|
||
|
} RTAG, *PRTAG;
|
||
|
|
||
|
|
||
|
// Valid TAG types.
|
||
|
|
||
|
// 'ANI ' - simple ANImation file
|
||
|
|
||
|
#define FOURCC_ACON mmioFOURCC('A', 'C', 'O', 'N')
|
||
|
|
||
|
|
||
|
// 'anih' - ANImation Header
|
||
|
// Contains an ANIHEADER structure.
|
||
|
|
||
|
#define FOURCC_anih mmioFOURCC('a', 'n', 'i', 'h')
|
||
|
|
||
|
|
||
|
// 'rate' - RATE table (array of jiffies)
|
||
|
// Contains an array of JIFs. Each JIF specifies how long the corresponding
|
||
|
// animation frame is to be displayed before advancing to the next frame.
|
||
|
// If the AF_SEQUENCE flag is set then the count of JIFs == anih.cSteps,
|
||
|
// otherwise the count == anih.cFrames.
|
||
|
|
||
|
#define FOURCC_rate mmioFOURCC('r', 'a', 't', 'e')
|
||
|
|
||
|
|
||
|
// 'seq ' - SEQuence table (array of frame index values)
|
||
|
// Countains an array of DWORD frame indices. anih.cSteps specifies how
|
||
|
// many.
|
||
|
|
||
|
#define FOURCC_seq mmioFOURCC('s', 'e', 'q', ' ')
|
||
|
|
||
|
|
||
|
// 'fram' - list type for the icon list that follows
|
||
|
|
||
|
#define FOURCC_fram mmioFOURCC('f', 'r', 'a', 'm')
|
||
|
|
||
|
// 'icon' - Windows ICON format image (replaces MPTR)
|
||
|
|
||
|
#define FOURCC_icon mmioFOURCC('i', 'c', 'o', 'n')
|
||
|
|
||
|
|
||
|
// Standard tags (but for some reason not defined in MMSYSTEM.H)
|
||
|
|
||
|
#define FOURCC_INFO mmioFOURCC('I', 'N', 'F', 'O') // INFO list
|
||
|
#define FOURCC_IART mmioFOURCC('I', 'A', 'R', 'T') // Artist
|
||
|
#define FOURCC_INAM mmioFOURCC('I', 'N', 'A', 'M') // Name/Title
|
||
|
|
||
|
#if 0 //in winuser.w
|
||
|
typedef DWORD JIF; // in winuser.w
|
||
|
|
||
|
typedef struct _ANIHEADER { // anih
|
||
|
DWORD cbSizeof;
|
||
|
DWORD cFrames;
|
||
|
DWORD cSteps;
|
||
|
DWORD cx, cy;
|
||
|
DWORD cBitCount, cPlanes;
|
||
|
JIF jifRate;
|
||
|
DWORD fl;
|
||
|
} ANIHEADER, *PANIHEADER;
|
||
|
|
||
|
// If the AF_ICON flag is specified the fields cx, cy, cBitCount, and
|
||
|
// cPlanes are all unused. Each frame will be of type ICON and will
|
||
|
// contain its own dimensional information.
|
||
|
|
||
|
#define AF_ICON 0x0001L // Windows format icon/cursor animation
|
||
|
|
||
|
#define AF_SEQUENCE 0x0002L // Animation is sequenced
|
||
|
#endif
|
||
|
|
||
|
/**************************\
|
||
|
* *
|
||
|
* End Import from asdf.h *
|
||
|
* *
|
||
|
\**************************/
|