Category : Windows 3.X Files
Archive   : PMAN151.ZIP
Filename : CUSTCONV.H

Output of file : CUSTCONV.H contained in archive : PMAN151.ZIP


#ifndef CUSTOM_H
// Initialiation file
#define SRC_SECTION "Sources"
#define DST_SECTION "Destinations"

// Common entry points
#define MAGICPROC "Magic"
#define GETDESCRIPTIONPROC "GetDescription"
#define GETEXTENSIONPROC "GetExtension"
#define GETFLAGSPROC "GetFlags"
#define SETOPTIONSPROC "SetOptions"
#define CLEANUPPROC "CleanUp"

// Reader entry points
#define READHEADERPROC "ReadHeader"
#define READROWPROC "ReadRow"
#define READFILEPROC "ReadFile"

// Writer entry points
#define WRITEHEADERPROC "WriteHeader"
#define WRITEROWPROC "WriteRow"
#define WRITEFILEPROC "WriteFile"
#define ENDWRITEPROC "EndWrite"

// Color palette type
typedef BYTE PAL[3][256];
typedef BYTE * PPAL[256];
typedef BYTE FAR * LPPAL[256];

// I/I means INPUT parameter for both ReadHeader and WriteHeader
// O/I means OUTPUT parameter for ReadHeader and INPUT for WriteHeader
// O/O means OUTPUT parameter for both ReadHeader and WriteHeader

// Parameter block for ReadHeader / WriteHeader
typedef struct
OFSTRUCT of; // I/I Opened Source/Destination file
int file; // I/I --/--
WORD w; // O/I Width
WORD h; // O/I Height
WORD bps; // O/I 1,4,8 or 24
WORD numcolors; // O/I Actual number of colors/shades ( 0 for bps == 24 )
WORD nplanes; // O/O Number of bitplanes
WORD bplin; // O/O Bytes per one bitplane
DWORD xres; // O/I X Resolution
DWORD yres; // O/I Y Resolution
WORD resunit;// O/I Resolution unit (See below)
DWORD flags; // ??? Miscellaneous flags (See below)
PAL pal; // O/I Color palette

typedef INFO * PINFO;
typedef INFO FAR * LPINFO;

// Values for resunit
#define RES_UNKNOWN 0
#define RES_NOUNIT 1
#define RES_SCREEN 2
#define RES_DPI 3
#define RES_DPCM 4
#define RES_DPM 5

// Bits for INFO.flags
// Color info bits
#define INFO_COLOR 1l // O/I Image is colored
#define INFO_PALETTE 2l // O/I Image is paletted
#define INFO_NEGATIVE 4l // O/I Image is negative
// File organization bits
#define INFO_TEMPFILE 8l // O/O Only by temporary file
#define INFO_COMPRESSED 0x10l // O/O Image is compressed
#define INFO_FORWARD 0x20l // O/O Up to down
#define INFO_BACKWARD 0x40l // O/O Down to up
#define INFO_RANDOM 0x80l // O/O Random access is allowed
// Row organization bits
#define INFO_PACKED 0x100l // O/O (bps < 8) bits are shifted together
#define INFO_SEPARATE 0x200l // O/O (bps !=8) bitplanes are separated

// Bits for GetFlags()
// Destination capabilites bits
#define INFO_1BPS 0x400l // -/O Accepts 1-bit data
#define INFO_4BPS 0x800l // -/O Accepts 4-bit data
#define INFO_8BPS 0x1000l // -/O Accepts 8-bit data
#define INFO_24BPS 0x2000l // -/O Accepts 24-bit data
#define INFO_GRAY 0x4000l // -/O Accepts true gray data
#define INFO_STDPAL 0x8000l // -/O Requires std. EGA/VGA palette
#define INFO_ANYPAL 0x10000l// -/O Accepts any palette
// Source/Destination capabilites bits
#define INFO_HASOPTIONS 0x20000l// O/O Has SetOptions()
#define INFO_NOFILE 0x40000l// O/O Do not open src/dst file


// Return values for Magic
#define SRC_MAGIC 0x1234
#define DST_MAGIC 0x4321

// Common return values
#define OK 0
#define BADFORMAT 1 // Bad signature
#define UNSUPPORTED 2 // Unsupported subformat
#define BADFILE 3 // Error in file structure
#define CANNOTOPEN 4 // Cannot open src/dest
#define INTERNAL 5 // Reserved
#define BADDLL 6 // Error initializing DLL
#define BADREQUEST 7 // Unsupported type of conversion
#define BADTEMPFILE 8 // Error creating/reading tempfile
#define NOMEMORY 9 // No enough global heap
#define NODISK 10 // No enough disk space
#define USERABORT 11 // Cancelled by user
#define BADPARMS 12 // Conflicting parameters

WORD FAR PASCAL Magic(void);
void FAR PASCAL GetDescription(LPSTR);
void FAR PASCAL GetExtension(LPSTR);
DWORD FAR PASCAL GetFlags(void);
int FAR PASCAL SetOptions(HWND,void far *);
int FAR PASCAL GetPrivateSize(void);
void FAR PASCAL CleanUp(void far *);

int FAR PASCAL ReadHeader(LPINFO,void far * );
int FAR PASCAL ReadRow(int,LPBYTE,void far *);
int FAR PASCAL ReadFile(int, void far *, FARPROC);

int FAR PASCAL WriteHeader(LPINFO,void far * );
int FAR PASCAL WriteRow(int,LPBYTE,void far *);
int FAR PASCAL WriteFile(int,void far *, FARPROC);
int FAR PASCAL EndWrite(void far *);
#define CUSTOM_H