/* (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_ */