windows-nt/Source/XPSP1/NT/multimedia/media/avi/inc/medbits.h

164 lines
4.3 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/* (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_ */