home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v5.zip
/
TOOLKT21
/
C
/
OS2H
/
PMBITMAP.H
< prev
next >
Wrap
Text File
|
1993-04-22
|
9KB
|
249 lines
/****************************** Module Header ******************************\
*
* Module Name: PMBITMAP.H
*
* OS/2 Presentation Manager Bit Map, Icon and Pointer type declarations.
*
* Copyright (c) International Business Machines Corporation 1981, 1988-1992
*
* ===========================================================================
*
* This is the file format structure for Bit Maps, Pointers and Icons
* as stored in the resource file of a PM application.
*
* Notes on file format:
*
* Each BITMAPFILEHEADER entry is immediately followed by the color table
* for the bit map bits it references.
* Icons and Pointers contain two BITMAPFILEHEADERs for each ARRAYHEADER
* item. The first one is for the ANDXOR mask, the second is for the
* COLOR mask. All offsets are absolute based on the start of the FILE.
*
* For OS/2 Version 2.0 and later BITMAPFILEHEADER2 and the other '2'
* versions of each structure are recommended. Use the non-2 versions
* of each structure if compatibility with OS/2 Version 1.X is required.
*
* ===========================================================================
*
* Comments at the end of each typedef line give the name tags used in
* the assembler include version of this file.
*
* The assembler include version of this file excludes lines between XLATOFF
* and XLATON comments.
*
\***************************************************************************/
/* XLATOFF */
#ifdef __IBMC__
#pragma checkout( suspend )
#ifndef __CHKHDR__
#pragma checkout( suspend )
#endif
#pragma checkout( resume )
#endif
/* XLATON */
/* XLATOFF */
#ifndef PMBITMAP_INCLUDED
/* XLATON */
#define PMBITMAP_INCLUDED
/* XLATOFF */
#pragma pack(1) /* pack on wordboundary */
/* XLATON */
/* bitmap parameterization used by GpiCreateBitmap and others */
typedef struct _BITMAPINFOHEADER /* bmp */
{
ULONG cbFix;
USHORT cx;
USHORT cy;
USHORT cPlanes;
USHORT cBitCount;
} BITMAPINFOHEADER;
typedef BITMAPINFOHEADER *PBITMAPINFOHEADER;
/* RGB data for _BITMAPINFO struct */
typedef struct _RGB /* rgb */
{
BYTE bBlue;
BYTE bGreen;
BYTE bRed;
} RGB;
/* bitmap data used by GpiSetBitmapBits and others */
typedef struct _BITMAPINFO /* bmi */
{
ULONG cbFix;
USHORT cx;
USHORT cy;
USHORT cPlanes;
USHORT cBitCount;
RGB argbColor[1];
} BITMAPINFO;
typedef BITMAPINFO *PBITMAPINFO;
/* Constants for compression/decompression command */
#define CBD_COMPRESSION 1L
#define CBD_DECOMPRESSION 2L
#define CBD_BITS 0L
/* Flags for compression/decompression option */
#define CBD_COLOR_CONVERSION 0x00000001L
/* Compression scheme in the ulCompression field of the bitmapinfo structure */
#define BCA_UNCOMP 0L
#define BCA_HUFFMAN1D 3L
#define BCA_RLE4 2L
#define BCA_RLE8 1L
#define BCA_RLE24 4L
#define BRU_METRIC 0L
#define BRA_BOTTOMUP 0L
#define BRH_NOTHALFTONED 0L
#define BRH_ERRORDIFFUSION 1L
#define BRH_PANDA 2L
#define BRH_SUPERCIRCLE 3L
#define BCE_PALETTE (-1L)
#define BCE_RGB 0L
typedef struct _BITMAPINFOHEADER2 /* bmp2 */
{
ULONG cbFix; /* Length of structure */
ULONG cx; /* Bit-map width in pels */
ULONG cy; /* Bit-map height in pels */
USHORT cPlanes; /* Number of bit planes */
USHORT cBitCount; /* Number of bits per pel within a plane */
ULONG ulCompression; /* Compression scheme used to store the bitmap */
ULONG cbImage; /* Length of bit-map storage data in bytes*/
ULONG cxResolution; /* x resolution of target device */
ULONG cyResolution; /* y resolution of target device */
ULONG cclrUsed; /* Number of color indices used */
ULONG cclrImportant; /* Number of important color indices */
USHORT usUnits; /* Units of measure */
USHORT usReserved; /* Reserved */
USHORT usRecording; /* Recording algorithm */
USHORT usRendering; /* Halftoning algorithm */
ULONG cSize1; /* Size value 1 */
ULONG cSize2; /* Size value 2 */
ULONG ulColorEncoding; /* Color encoding */
ULONG ulIdentifier; /* Reserved for application use */
} BITMAPINFOHEADER2;
typedef BITMAPINFOHEADER2 *PBITMAPINFOHEADER2;
typedef struct _RGB2 /* rgb2 */
{
BYTE bBlue; /* Blue component of the color definition */
BYTE bGreen; /* Green component of the color definition*/
BYTE bRed; /* Red component of the color definition */
BYTE fcOptions; /* Reserved, must be zero */
} RGB2;
typedef RGB2 *PRGB2;
typedef struct _BITMAPINFO2 /* bmi2 */
{
ULONG cbFix; /* Length of fixed portion of structure */
ULONG cx; /* Bit-map width in pels */
ULONG cy; /* Bit-map height in pels */
USHORT cPlanes; /* Number of bit planes */
USHORT cBitCount; /* Number of bits per pel within a plane */
ULONG ulCompression; /* Compression scheme used to store the bitmap */
ULONG cbImage; /* Length of bit-map storage data in bytes*/
ULONG cxResolution; /* x resolution of target device */
ULONG cyResolution; /* y resolution of target device */
ULONG cclrUsed; /* Number of color indices used */
ULONG cclrImportant; /* Number of important color indices */
USHORT usUnits; /* Units of measure */
USHORT usReserved; /* Reserved */
USHORT usRecording; /* Recording algorithm */
USHORT usRendering; /* Halftoning algorithm */
ULONG cSize1; /* Size value 1 */
ULONG cSize2; /* Size value 2 */
ULONG ulColorEncoding; /* Color encoding */
ULONG ulIdentifier; /* Reserved for application use */
RGB2 argbColor[1]; /* Color definition record */
} BITMAPINFO2;
typedef BITMAPINFO2 *PBITMAPINFO2;
typedef struct _BITMAPFILEHEADER /* bfh */
{
USHORT usType;
ULONG cbSize;
SHORT xHotspot;
SHORT yHotspot;
ULONG offBits;
BITMAPINFOHEADER bmp;
} BITMAPFILEHEADER;
typedef BITMAPFILEHEADER *PBITMAPFILEHEADER;
typedef struct _BITMAPARRAYFILEHEADER /* bafh */
{
USHORT usType;
ULONG cbSize;
ULONG offNext;
USHORT cxDisplay;
USHORT cyDisplay;
BITMAPFILEHEADER bfh;
} BITMAPARRAYFILEHEADER;
typedef BITMAPARRAYFILEHEADER *PBITMAPARRAYFILEHEADER;
typedef struct _BITMAPFILEHEADER2 /* bfh2 */
{
USHORT usType;
ULONG cbSize;
SHORT xHotspot;
SHORT yHotspot;
ULONG offBits;
BITMAPINFOHEADER2 bmp2;
} BITMAPFILEHEADER2;
typedef BITMAPFILEHEADER2 *PBITMAPFILEHEADER2;
typedef struct _BITMAPARRAYFILEHEADER2 /* bafh2 */
{
USHORT usType;
ULONG cbSize;
ULONG offNext;
USHORT cxDisplay;
USHORT cyDisplay;
BITMAPFILEHEADER2 bfh2;
} BITMAPARRAYFILEHEADER2;
typedef BITMAPARRAYFILEHEADER2 *PBITMAPARRAYFILEHEADER2;
/*************************************************************************
* These are the identifying values that go in the usType field of the
* BITMAPFILEHEADER(2) and BITMAPARRAYFILEHEADER(2).
* (BFT_ => Bit map File Type)
*************************************************************************/
#define BFT_ICON 0x4349 /* 'IC' */
#define BFT_BMAP 0x4d42 /* 'BM' */
#define BFT_POINTER 0x5450 /* 'PT' */
#define BFT_COLORICON 0x4943 /* 'CI' */
#define BFT_COLORPOINTER 0x5043 /* 'CP' */
#define BFT_BITMAPARRAY 0x4142 /* 'BA' */
/* XLATOFF */
#pragma pack() /* reset to default packing */
/* XLATON */
/* XLATOFF */
#endif /* PMBITMAP_INCLUDED */
/* XLATON */
/* XLATOFF */
#ifdef __IBMC__
#pragma checkout( suspend )
#ifndef __CHKHDR__
#pragma checkout( resume )
#endif
#pragma checkout( resume )
#endif
/* XLATON */
/**************************** end of file **********************************/