|
|
/*++ BUILD Version: 0001
* * MVDM v1.0 * * Copyright (c) 1991, Microsoft Corporation * * MVDM.H * Constants, macros, and types common to all of MVDM * * History: * Created 14-May-1991 by Jeff Parsons (jeffpar) --*/
/* Common constants, not defined in NT/WIN32
*/ #define K 1024L
/* Common types, not defined in NT/WIN32
*/ #ifdef H2INC
typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; typedef long LONG; typedef char CHAR; typedef short SHORT; typedef unsigned short USHORT; typedef unsigned long ULONG; typedef char *PSZ; typedef void *PVOID; typedef ULONG *PULONG; typedef WORD ATOM; #endif
// typedef int INT;
// typedef DWORD UINT;
typedef short FAR *LPSHORT; typedef char SZ[]; typedef char FAR *LPSZ; typedef PBYTE *PPBYTE; typedef PWORD *PPWORD; typedef PDWORD *PPDWORD; // typedef UINT *PUINT;
// unaligned typedefs
typedef WORD UNALIGNED *PWORD16; typedef SHORT UNALIGNED *PSHORT16; typedef DWORD UNALIGNED *PDWORD16;
#define WORDOF16(i,n) (((PWORD16)&(i))[n])
#define LOW16(l) WORDOF16(l,0)
#define HIW16(l) WORDOF16(l,1)
/* Common macros, not defined in NT/WIN32
*/ #define BYTEOF(i,n) (((PBYTE)&(i))[n])
#define LOB(i) BYTEOF(i,0)
#define HIB(i) BYTEOF(i,1)
#define WORDOF(i,n) (((PWORD)&(i))[n])
#define LOW(l) WORDOF(l,0)
#define HIW(l) WORDOF(l,1)
#define INTOF(i,n) (((PINT)&(i))[n])
#define UINTOF(i,n) (((PUINT)&(i))[n])
#ifndef MAKEWORD
#define MAKEWORD(l,h) ((WORD)((BYTE)(l)|((BYTE)(h)<<8)))
#endif
#define MAKEDWORD(l0,h0,l1,h1) ((DWORD)MAKEWORD(l0,h0)|((DWORD)MAKEWORD(l1,h1)<<16))
#define GETBYTE(p) *((PBYTE)p)++
#ifdef i386
#define FETCHWORD(s) ((WORD)(s))
#define FETCHDWORD(s) ((DWORD)(s))
#define STOREWORD(d,s) (WORD)d=(WORD)s
#define STOREDWORD(d,s) (DWORD)d=(DWORD)s
#else
#define FETCHWORD(s) (*(UNALIGNED WORD *)&(s))
#define FETCHDWORD(s) (*(UNALIGNED DWORD *)&(s))
#define STOREWORD(d,s) *(UNALIGNED WORD *)&(d)=(WORD)s
#define STOREDWORD(d,s) *(UNALIGNED DWORD *)&(d)=(DWORD)s
#endif
#define FETCHSHORT(s) ((SHORT)(FETCHWORD(s)))
#define FETCHLONG(s) ((LONG)(FETCHDWORD(s)))
#define STORESHORT(d,s) STOREWORD(d,s)
#define STORELONG(d,s) STOREDWORD(d,s)
#define NUMEL(a) ((sizeof a)/(sizeof a[0]))
#define OFFSETOF(t,f) ((INT)&(((t *)0)->f))
|