--- mstools/h/windef.h 2018/08/09 18:20:01 1.1 +++ mstools/h/windef.h 2018/08/09 18:20:32 1.1.1.2 @@ -15,37 +15,29 @@ Abstract: #ifndef _WINDEF_ #define _WINDEF_ +// the typedef of ULONG should go away here. It will continue to be +// defined in windows\inc\windefp.h + +#ifndef BASETYPE_ULONG +#define BASETYPE_ULONG +typedef unsigned long ULONG; +typedef ULONG *PULONG; +#endif + +//#ifndef NO_STRICT +//#define STRICT 1 +//#endif // BASETYPES is defined in ntdef.h if these types are already defined #ifndef BASETYPES #define BASETYPES -typedef unsigned long ULONG; -typedef ULONG *PULONG; typedef unsigned short USHORT; typedef USHORT *PUSHORT; typedef unsigned char UCHAR; typedef UCHAR *PUCHAR; typedef char *PSZ; -typedef char *PCHAR; - -#ifndef THANKS -#define IN -#define OUT -#define OPTIONAL -#endif // !THANKS - #endif // !BASETYPES -#ifndef THANKS -#define CRITICAL -#define XXX -#define NEXTCOUNT -#define PREVCOUNT -#define BATCH -#define CHUNKY -#define BREAK -#endif // !THANKS - #define MAX_PATH 260 #ifndef NULL @@ -60,20 +52,43 @@ typedef char *PCHAR; #define TRUE 1 #endif +#ifndef IN +#define IN +#endif + +#ifndef OUT +#define OUT +#endif + +#ifndef OPTIONAL +#define OPTIONAL +#endif + #define far #define near #define pascal #ifdef DOSWIN32 #define cdecl _cdecl +#ifndef CDECL +#define CDECL _cdecl +#endif #else #define cdecl +#ifndef CDECL +#define CDECL #endif -#define APIENTRY +#endif +#define CALLBACK +#define WINAPI +#define APIENTRY WINAPI #define APIPRIVATE #define FAR far #define NEAR near #define PASCAL pascal +#ifndef CONST +#define CONST const +#endif typedef unsigned long DWORD; typedef int BOOL; @@ -83,9 +98,6 @@ typedef float FLOAT; typedef FLOAT *PFLOAT; typedef BOOL near *PBOOL; typedef BOOL far *LPBOOL; -typedef char near *PSTR; -typedef char near *NPSTR; -typedef char far *LPSTR; typedef BYTE near *PBYTE; typedef BYTE far *LPBYTE; typedef int near *PINT; @@ -105,6 +117,16 @@ typedef unsigned int *PUINT; #include #endif // NT_INCLUDED +#ifdef STRICT +#undef LONG +typedef signed long LONG; +#endif + +/* Types use for passing & returning polymorphic values */ +typedef UINT WPARAM; +typedef LONG LPARAM; +typedef LONG LRESULT; + #ifndef NOMINMAX #ifndef max @@ -126,37 +148,62 @@ typedef unsigned int *PUINT; #ifndef WIN_INTERNAL -typedef HANDLE HWND; -typedef HANDLE HHOOK; +DECLARE_HANDLE (HWND); +DECLARE_HANDLE (HHOOK); #endif typedef WORD ATOM; typedef HANDLE NEAR *SPHANDLE; typedef HANDLE FAR *LPHANDLE; -typedef HANDLE GLOBALHANDLE; -typedef HANDLE LOCALHANDLE; -typedef int (FAR APIENTRY *FARPROC)(); // should be removed some day!!! -typedef int (NEAR APIENTRY *NEARPROC)(); -typedef int (APIENTRY *PROC)(); // new 32-bit version - -typedef HANDLE HSTR; -typedef HANDLE HICON; -typedef HANDLE HDC; -typedef HANDLE HWINSTA; -typedef HANDLE HDESK; -typedef HANDLE HMENU; -typedef HANDLE HPEN; -typedef HANDLE HFONT; -typedef HANDLE HBRUSH; -typedef HANDLE HBITMAP; -typedef HANDLE HCURSOR; -typedef HANDLE HRGN; -typedef HANDLE HPALETTE; -typedef HANDLE HMODULE; -typedef HANDLE HMF; +typedef HANDLE HGLOBAL; +typedef HANDLE HLOCAL; +typedef HANDLE GLOBALHANDLE; +typedef HANDLE LOCALHANDLE; +#ifdef STRICT +typedef void (FAR WINAPI *FARPROC)(void); // should be removed some day!!! +typedef void (NEAR WINAPI *NEARPROC)(void); +typedef void (WINAPI *PROC)(void); // new 32-bit version +#else +typedef int (FAR WINAPI *FARPROC)(); // should be removed some day!!! +typedef int (NEAR WINAPI *NEARPROC)(); +typedef int (WINAPI *PROC)(); // new 32-bit version +#endif + +#ifdef STRICT +typedef const void NEAR* HGDIOBJ; +#else +DECLARE_HANDLE(HGDIOBJ); +#endif + +DECLARE_HANDLE(HACCEL); +DECLARE_HANDLE(HBITMAP); +DECLARE_HANDLE(HBRUSH); +DECLARE_HANDLE(HDC); +DECLARE_HANDLE(HDESK); +DECLARE_HANDLE(HENHMETAFILE); +DECLARE_HANDLE(HMF); +DECLARE_HANDLE(HEMF); +DECLARE_HANDLE(HFONT); +DECLARE_HANDLE(HICON); +DECLARE_HANDLE(HMENU); +DECLARE_HANDLE(HMETAFILE); +DECLARE_HANDLE(HMODULE); +DECLARE_HANDLE(HPALETTE); +DECLARE_HANDLE(HPEN); +DECLARE_HANDLE(HRGN); +DECLARE_HANDLE(HRSRC); +DECLARE_HANDLE(HSTR); +DECLARE_HANDLE(HWINSTA); +DECLARE_HANDLE(HKL); + +typedef int HFILE; /* Polymorphic with C runtime file handle type */ +typedef HICON HCURSOR; /* HICONs & HCURSORs are polymorphic */ typedef DWORD COLORREF; +typedef DWORD *LPCOLORREF; + +#define HFILE_ERROR ((HFILE)-1) typedef struct tagRECT { @@ -166,7 +213,7 @@ typedef struct tagRECT LONG bottom; } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT; -typedef struct _RECTL /* rcl */ +typedef struct _RECTL /* rcl */ { LONG left; LONG top; @@ -224,6 +271,13 @@ typedef struct tagPOINTS #define DC_EXTRA 9 #define DC_VERSION 10 #define DC_DRIVER 11 +#define DC_BINNAMES 12 +#define DC_ENUMRESOLUTIONS 13 +#define DC_FILEDEPENDENCIES 14 +#define DC_TRUETYPE 15 +#define DC_PAPERNAMES 16 +#define DC_ORIENTATION 17 +#define DC_COPIES 18 #endif // _WINDEF_