349 lines
6.8 KiB
C
349 lines
6.8 KiB
C
/** types.h - Generic types
|
|
*
|
|
* This file contains generic types such as USHORT, ushort,
|
|
* WORD, etc., which are not directly related to CodeView.
|
|
* Every attempt is made to define them in such a way as they
|
|
* will not conflict with the standard header files such as
|
|
* windows.h and os2.h.
|
|
*/
|
|
|
|
|
|
/*** The master copy of this file resides in the CVINC project.
|
|
* All Microsoft projects are required to use the master copy without
|
|
* modification. Modification of the master version or a copy
|
|
* without consultation with all parties concerned is extremely
|
|
* risky.
|
|
*
|
|
* The projects known to use this file are:
|
|
*
|
|
* CodeView (uses version in CVINC project)
|
|
* C/C++ expression evaluator (uses version in CVINC project)
|
|
* Symbol Handler (uses version in CVINC project)
|
|
* Stump (OSDebug) (uses version in CVINC project)
|
|
*/
|
|
|
|
#ifndef _VC_VER_INC
|
|
#include "..\include\vcver.h"
|
|
#endif
|
|
|
|
#ifndef CVINC_TYPES /* whole file */
|
|
#define CVINC_TYPES
|
|
|
|
#ifdef HOST32 /* { */
|
|
|
|
#define _export
|
|
|
|
#ifndef LOADDS
|
|
#define LOADDS
|
|
#endif
|
|
|
|
#ifndef PASCAL
|
|
#define PASCAL __stdcall
|
|
#endif
|
|
|
|
#ifndef CDECL
|
|
#define CDECL _cdecl
|
|
#endif
|
|
|
|
#ifndef FASTCALL
|
|
#define FASTCALL __fastcall
|
|
#endif
|
|
|
|
#ifndef far
|
|
#define far
|
|
#endif
|
|
|
|
#ifndef FAR
|
|
#define FAR far
|
|
#endif
|
|
|
|
#ifndef near
|
|
#define near
|
|
#endif
|
|
|
|
#ifndef NEAR
|
|
#define NEAR near
|
|
#endif
|
|
|
|
#ifndef _HUGE_
|
|
#define _HUGE_
|
|
#endif
|
|
|
|
// Use SEGBASED for based on a segment [e.g. SEGBASED(__segname("_CODE"))]
|
|
#ifndef SEGBASED
|
|
#define SEGBASED(x)
|
|
#endif
|
|
|
|
/*
|
|
** This set of functions need to be expanded to deal with
|
|
** unicode and other problems.
|
|
*/
|
|
|
|
// These #defines are taken care of by windowsx.h
|
|
|
|
#ifndef _INC_WINDOWSX
|
|
|
|
#define _ncalloc calloc
|
|
#define _nexpand expand
|
|
#define _ffree free
|
|
#define _fmalloc malloc
|
|
#define _fmemccpy _memccpy
|
|
#define _fmemchr memchr
|
|
#define _fmemcmp memcmp
|
|
#define _fmemcpy memcpy
|
|
#define _fmemicmp _memicmp
|
|
#define _fmemmove memmove
|
|
#define _fmemset memset
|
|
#define _fmsize _msize
|
|
#define _frealloc realloc
|
|
#define _fstrcat strcat
|
|
#define _fstrchr strchr
|
|
#define _fstrcmp strcmp
|
|
#define _fstrcpy strcpy
|
|
#define _fstrcspn strcspn
|
|
#define _fstrdup _strdup
|
|
#define _fstricmp _stricmp
|
|
#define _fstrlen strlen
|
|
#define _fstrlwr _strlwr
|
|
#define _fstrncat strncat
|
|
#define _fstrncmp strncmp
|
|
#define _fstrncpy strncpy
|
|
#define _fstrnicmp _strnicmp
|
|
#define _fstrnset _strnset
|
|
#define _fstrpbrk strpbrk
|
|
#define _fstrrchr strrchr
|
|
#define _fstrrev _strrev
|
|
#define _fstrset _strset
|
|
#define _fstrspn strspn
|
|
#define _fstrstr strstr
|
|
#define _fstrtok strtok
|
|
#define _fstrupr _strupr
|
|
#define _nfree free
|
|
#define _nmalloc malloc
|
|
#define _nmsize msize
|
|
#define _nrealloc realloc
|
|
#define _nstrdup _strdup
|
|
#define hmemcpy memcpy
|
|
|
|
#endif
|
|
|
|
#define FP_OFF(x) x
|
|
|
|
#else // !HOST32 }{
|
|
|
|
#ifndef LOADDS
|
|
#define LOADDS _loadds
|
|
#endif
|
|
|
|
#ifndef PASCAL
|
|
#define PASCAL _pascal
|
|
#endif
|
|
|
|
#ifndef CDECL
|
|
#define CDECL _cdecl
|
|
#endif
|
|
|
|
#ifndef FASTCALL
|
|
#define FASTCALL _fastcall
|
|
#endif
|
|
|
|
#ifndef FAR
|
|
#define FAR _far
|
|
#endif
|
|
|
|
#ifndef NEAR
|
|
#define NEAR _near
|
|
#endif
|
|
|
|
#ifndef _HUGE_
|
|
#define _HUGE_ _huge
|
|
#endif
|
|
|
|
// Use SEGBASED for based on a segment [e.g. SEGBASED(__segname("_CODE"))]
|
|
#ifndef SEGBASED
|
|
#define SEGBASED(x) _based(x)
|
|
#endif
|
|
|
|
#endif // HOST32 }
|
|
|
|
#ifndef INTERRUPT
|
|
#define INTERRUPT _interrupt
|
|
#endif
|
|
|
|
#ifndef LOCAL
|
|
#ifdef DEBUGVER
|
|
#define LOCAL
|
|
#else
|
|
#define LOCAL static
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef GLOBAL
|
|
#define GLOBAL
|
|
#endif
|
|
|
|
#ifndef INLINE
|
|
#define INLINE __inline
|
|
#endif
|
|
|
|
|
|
// Things that come from either windows.h or os2.h
|
|
|
|
|
|
#if !defined(LOWORD) && !defined(OS2_INCLUDED)
|
|
|
|
#define VOID void
|
|
|
|
typedef unsigned char BYTE;
|
|
|
|
typedef int BOOL;
|
|
|
|
#define LONG long
|
|
|
|
#endif
|
|
|
|
|
|
// Things that come from windows.h and cwindows.h
|
|
|
|
|
|
#if !defined(LOWORD)
|
|
|
|
#if defined ( _WIN32 ) || defined ( _M_MPPC ) || defined ( _M_M68K )
|
|
typedef void * HANDLE;
|
|
#else
|
|
typedef unsigned int HANDLE;
|
|
#endif
|
|
|
|
typedef HANDLE HWND;
|
|
typedef char FAR * LPSTR;
|
|
|
|
typedef unsigned short WORD;
|
|
typedef unsigned long DWORD;
|
|
|
|
|
|
#endif
|
|
|
|
#if !defined ( WIN32 ) && !defined ( WIN32S ) && !defined ( WIN )
|
|
|
|
typedef unsigned long DWORD;
|
|
typedef int BOOL;
|
|
typedef unsigned char BYTE;
|
|
typedef unsigned short WORD;
|
|
typedef float FLOAT;
|
|
typedef FLOAT *PFLOAT;
|
|
typedef BOOL near *PBOOL;
|
|
typedef BOOL far *LPBOOL;
|
|
typedef BYTE near *PBYTE;
|
|
typedef BYTE far *LPBYTE;
|
|
typedef int near *PINT;
|
|
typedef int far *LPINT;
|
|
typedef WORD near *PWORD;
|
|
typedef WORD far *LPWORD;
|
|
typedef long far *LPLONG;
|
|
typedef DWORD near *PDWORD;
|
|
typedef DWORD far *LPDWORD;
|
|
typedef void far *LPVOID;
|
|
|
|
typedef int INT;
|
|
typedef unsigned int UINT;
|
|
typedef unsigned int *PUINT;
|
|
|
|
typedef HANDLE FAR *LPHANDLE;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// Things that come from os2.h
|
|
|
|
|
|
#if !defined(OS2_INCLUDED)
|
|
|
|
#define CHAR char
|
|
|
|
typedef unsigned char UCHAR;
|
|
typedef short SHORT;
|
|
typedef int INT;
|
|
typedef unsigned short USHORT;
|
|
typedef unsigned int UINT;
|
|
typedef unsigned long ULONG;
|
|
|
|
typedef char * PCH;
|
|
|
|
#endif
|
|
|
|
#if !defined(LOWORD)
|
|
|
|
#define LOWORD(l) ((WORD)(l))
|
|
#define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
|
|
|
|
#endif
|
|
|
|
#ifndef NULL
|
|
#define NULL ((void *) 0)
|
|
#endif
|
|
|
|
#if !defined(TRUE) || !defined(FALSE)
|
|
#undef TRUE
|
|
#undef FALSE
|
|
|
|
#define FALSE 0
|
|
#define TRUE 1
|
|
#endif
|
|
|
|
#if !defined(fTrue) || !defined(fFalse)
|
|
#undef fTrue
|
|
#undef fFalse
|
|
|
|
#define fFalse 0
|
|
#define fTrue 1
|
|
#endif
|
|
|
|
#ifndef min
|
|
#define min(a,b) (((a) < (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#ifndef max
|
|
#define max(a,b) (((a) > (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#ifndef Unreferenced
|
|
#define Unreferenced(a) ((void)a)
|
|
#endif
|
|
|
|
typedef unsigned short ushort;
|
|
typedef unsigned char uchar;
|
|
typedef unsigned long ulong;
|
|
typedef unsigned int uint;
|
|
|
|
typedef void * PV;
|
|
typedef void FAR * LPV;
|
|
|
|
typedef char * SZ;
|
|
typedef char FAR * LSZ;
|
|
typedef char FAR * LPCH;
|
|
|
|
typedef BOOL FAR * LPF;
|
|
typedef BYTE FAR * LPB;
|
|
typedef WORD FAR * LPW;
|
|
typedef DWORD FAR * LPDW;
|
|
typedef LONG FAR * LPL;
|
|
typedef ULONG FAR * LPUL;
|
|
typedef USHORT FAR *LPUS;
|
|
typedef DWORD FAR * LPDWORD;
|
|
|
|
typedef short SWORD;
|
|
|
|
#ifndef _BASETSD_H_
|
|
typedef UINT WPARAM;
|
|
typedef LONG LPARAM;
|
|
#endif
|
|
|
|
#ifdef HOST32
|
|
typedef ULONG IWORD;
|
|
#else
|
|
typedef USHORT IWORD;
|
|
#endif
|
|
|
|
#endif /* CVINC_TYPES */
|