164 lines
4.3 KiB
C
164 lines
4.3 KiB
C
/* (C) Copyright Microsoft Corporation 1991. All Rights Reserved */
|
|
/*
|
|
* MEDBITS.H
|
|
*
|
|
* Contains definition of the change structure for MBIT and HDIB
|
|
* resources. It should be used by all users of these resource types.
|
|
*
|
|
* This file requires "windows.h" and "mediaman.h"
|
|
*/
|
|
|
|
#ifndef _MEDBITS_H_
|
|
#define _MEDBITS_H_
|
|
|
|
/* Defintions that windows forgot */
|
|
typedef RGBQUAD FAR *LPRGBQUAD;
|
|
typedef RGBQUAD NEAR *NPRGBQUAD;
|
|
typedef PALETTEENTRY NEAR *NPPALETTEENTRY;
|
|
|
|
/*
|
|
* MDIB HANDLER
|
|
*/
|
|
|
|
#define medtypeMDIB medFOURCC('M', 'D', 'I', 'B')
|
|
|
|
/* Associated physical handlers */
|
|
#define medtypeRDIB medFOURCC('R', 'D', 'I', 'B')
|
|
#define medtypePCX medFOURCC('P', 'C', 'X', ' ')
|
|
#define medtypePICT medFOURCC('P', 'I', 'C', 'T')
|
|
#define medtypeGIF medFOURCC('G', 'I', 'F', ' ')
|
|
#define medtypeTGA medFOURCC('T', 'G', 'A', ' ')
|
|
#define medtypeRLE medFOURCC('R', 'L', 'E', ' ')
|
|
#define medtypeRRLE medFOURCC('R', 'R', 'L', 'E')
|
|
|
|
|
|
/*
|
|
* Structure used for creation of MDIB resources.
|
|
*/
|
|
typedef struct _MDIBCreateStruct {
|
|
DWORD dwWidth;
|
|
DWORD dwHeight;
|
|
WORD wDepth;
|
|
MEDID medidPalette;
|
|
WORD wPalSize;
|
|
BOOL fRGBQuads;
|
|
LPPALETTEENTRY lpPalEntries;
|
|
} MDIBCreateStruct;
|
|
typedef MDIBCreateStruct FAR *FPMDIBCreateStruct;
|
|
|
|
#define mdibMAXPALETTESIZE 256
|
|
|
|
/* MDIB messages */
|
|
#define MDIB_GETPALETTE (MED_USER + 1)
|
|
#define MDIB_GETPALSIZE (MED_USER + 2)
|
|
#define MDIB_GETPALMEDID (MED_USER + 3)
|
|
#define MDIB_SETPALMEDID (MED_USER + 4)
|
|
#define MDIB_SETSIZE (MED_USER + 6)
|
|
#define MDIB_SETDEPTH (MED_USER + 7)
|
|
#define MDIB_REMAP (MED_USER + 8)
|
|
|
|
/* Flags for MDIB_SETPALMEDID */
|
|
#define MDIBSP_COPYPALRES 0x0001
|
|
|
|
// This flag was never implemented. It never will be. (davidmay 12/18/90)
|
|
// /* Flags for accessing MDIB resources */
|
|
// #define MDIBLOAD_NOYIELDING 0x0001
|
|
|
|
/* MedUser-Notification messages for MDIB handler */
|
|
#define MDIBCH_SIZE (MED_USER + 2)
|
|
#define MDIBCH_DEPTH (MED_USER + 3)
|
|
#define MDIBCH_REMAP (MED_USER + 4)
|
|
#define MDIBCH_NEWPALMEDID (MED_USER + 5)
|
|
#define MDIBCH_PALCHANGE (MED_USER + 6)
|
|
|
|
|
|
/********************************************************/
|
|
|
|
/*
|
|
* MPAL HANDLER
|
|
*/
|
|
|
|
#define medtypeMPAL medFOURCC('M','P','A','L')
|
|
#define medtypeDIBP medFOURCC('D','I','B','P')
|
|
#define medtypeRDBP medFOURCC('R','D','B','P')
|
|
|
|
typedef struct _MPALCreateStruct {
|
|
HPALETTE hPalette;
|
|
WORD wSize;
|
|
BOOL fRGBQuads;
|
|
LPSTR lpPalEntries;
|
|
} MPALCreateStruct;
|
|
typedef MPALCreateStruct FAR *FPMPALCreateStruct;
|
|
typedef MPALCreateStruct NEAR *NPMPALCreateStruct;
|
|
|
|
|
|
#define MPAL_COPYPAL (MED_USER + 1) // return GDI copy of palette.
|
|
#define MPAL_GETPALETTE (MED_USER + 2) // get the current GDI palette object.
|
|
#define MPAL_SETPALETTE (MED_USER + 3) // set to new GDI palette. remaps
|
|
#define MPAL_GETPALSIZE (MED_USER + 4)
|
|
|
|
#define MPAL_APPEND (MED_USER + 5)
|
|
#define MPAL_DELETE (MED_USER + 6)
|
|
#define MPAL_REPLACE (MED_USER + 7)
|
|
#define MPAL_MOVE (MED_USER + 8)
|
|
|
|
/* Structures for MPAL_REPLACE and MPAL_DELETE */
|
|
typedef struct {
|
|
int iEntryIndex;
|
|
int iNewIndex;
|
|
WORD wFlags;
|
|
} MPALEntry;
|
|
typedef MPALEntry FAR *FPMPALEntry;
|
|
typedef MPALEntry NEAR *NPMPALEntry;
|
|
|
|
#define MPALENT_CLOSEST 1
|
|
#define MPALENT_OLDINDEX 2
|
|
#define MPALENT_REPLACE 3
|
|
|
|
typedef struct {
|
|
WORD wNumEntries;
|
|
MPALEntry aDeletedEntries[1];
|
|
} MPALDeleteStruct;
|
|
typedef MPALDeleteStruct NEAR *NPMPALDeleteStruct;
|
|
typedef MPALDeleteStruct FAR *FPMPALDeleteStruct;
|
|
|
|
typedef struct {
|
|
WORD wNumEntries;
|
|
WORD wInsertPoint;
|
|
WORD wMovedEntries[1];
|
|
} MPALMoveStruct;
|
|
typedef MPALMoveStruct NEAR *NPMPALMoveStruct;
|
|
typedef MPALMoveStruct FAR *FPMPALMoveStruct;
|
|
|
|
typedef struct {
|
|
WORD wNumEntries;
|
|
WORD wInsertPoint;
|
|
PALETTEENTRY aInsertedColors[1];
|
|
} MPALReplaceStruct;
|
|
typedef MPALReplaceStruct NEAR *NPMPALReplaceStruct;
|
|
typedef MPALReplaceStruct FAR *FPMPALReplaceStruct;
|
|
|
|
|
|
/* Change messages from/for the palette resource */
|
|
#define MPALCH_CHANGE (MED_USER + 1)
|
|
|
|
typedef struct {
|
|
WORD wNumNewEntries;
|
|
WORD wNumOldEntries; // size of array
|
|
HPALETTE hPalette;
|
|
WORD wAction;
|
|
WORD wEntries[1];
|
|
} MPALRemapStruct;
|
|
typedef MPALRemapStruct NEAR *NPMPALRemapStruct;
|
|
typedef MPALRemapStruct FAR *FPMPALRemapStruct;
|
|
|
|
/* Flags for hibyte of wEntries array in MPALChangeStruct */
|
|
#define MPALR_FLAGMASK 0xff00
|
|
#define MPALR_ADD 0x8000
|
|
#define MPALR_DELETE 0x4000 // contains closest match index
|
|
#define MPALR_MOVE 0x2000 // contains new index
|
|
#define MPALR_EDIT 0x1000
|
|
#define MPALR_NEWOBJECT 0x0800
|
|
|
|
#endif /* _MEDBITS_H_ */
|