395 lines
9.0 KiB
C
395 lines
9.0 KiB
C
/****************************************************************************
|
|
* *
|
|
* windef.h -- Basic Windows Type Definitions *
|
|
* *
|
|
* Copyright (c) Microsoft Corporation. All rights reserved. *
|
|
* *
|
|
****************************************************************************/
|
|
|
|
|
|
#ifndef _WINDEF_
|
|
#define _WINDEF_
|
|
|
|
#ifndef NO_STRICT
|
|
#ifndef STRICT
|
|
#define STRICT 1
|
|
#endif
|
|
#endif /* NO_STRICT */
|
|
|
|
// Win32 defines _WIN32 automatically,
|
|
// but Macintosh doesn't, so if we are using
|
|
// Win32 Functions, we must do it here
|
|
|
|
#ifdef _MAC
|
|
#ifndef _WIN32
|
|
#define _WIN32
|
|
#endif
|
|
#endif //_MAC
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef WINVER
|
|
#define WINVER 0x0500
|
|
#endif /* WINVER */
|
|
|
|
/*
|
|
* 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;
|
|
#endif /* !BASETYPES */
|
|
|
|
#define MAX_PATH 260
|
|
|
|
#ifndef NULL
|
|
#ifdef __cplusplus
|
|
#define NULL 0
|
|
#else
|
|
#define NULL ((void *)0)
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
|
|
#ifndef IN
|
|
#define IN
|
|
#endif
|
|
|
|
#ifndef OUT
|
|
#define OUT
|
|
#endif
|
|
|
|
#ifndef OPTIONAL
|
|
#define OPTIONAL
|
|
#endif
|
|
|
|
#undef far
|
|
#undef near
|
|
#undef pascal
|
|
|
|
#define far
|
|
#define near
|
|
#if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED))
|
|
#define pascal __stdcall
|
|
#else
|
|
#define pascal
|
|
#endif
|
|
|
|
#if defined(DOSWIN32) || defined(_MAC)
|
|
#define cdecl _cdecl
|
|
#ifndef CDECL
|
|
#define CDECL _cdecl
|
|
#endif
|
|
#else
|
|
#define cdecl
|
|
#ifndef CDECL
|
|
#define CDECL
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef _MAC
|
|
#define CALLBACK PASCAL
|
|
#define WINAPI CDECL
|
|
#define WINAPIV CDECL
|
|
#define APIENTRY WINAPI
|
|
#define APIPRIVATE CDECL
|
|
#ifdef _68K_
|
|
#define PASCAL __pascal
|
|
#else
|
|
#define PASCAL
|
|
#endif
|
|
#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
|
|
#define CALLBACK __stdcall
|
|
#define WINAPI __stdcall
|
|
#define WINAPIV __cdecl
|
|
#define APIENTRY WINAPI
|
|
#define APIPRIVATE __stdcall
|
|
#define PASCAL __stdcall
|
|
#else
|
|
#define CALLBACK
|
|
#define WINAPI
|
|
#define WINAPIV
|
|
#define APIENTRY WINAPI
|
|
#define APIPRIVATE
|
|
#define PASCAL pascal
|
|
#endif
|
|
|
|
#undef FAR
|
|
#undef NEAR
|
|
#define FAR far
|
|
#define NEAR near
|
|
#ifndef CONST
|
|
#define CONST const
|
|
#endif
|
|
|
|
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 CONST void far *LPCVOID;
|
|
|
|
typedef int INT;
|
|
typedef unsigned int UINT;
|
|
typedef unsigned int *PUINT;
|
|
|
|
#ifndef NT_INCLUDED
|
|
#include <winnt.h>
|
|
#endif /* NT_INCLUDED */
|
|
|
|
/* Types use for passing & returning polymorphic values */
|
|
typedef UINT_PTR WPARAM;
|
|
typedef LONG_PTR LPARAM;
|
|
typedef LONG_PTR LRESULT;
|
|
|
|
#ifndef NOMINMAX
|
|
|
|
#ifndef max
|
|
#define max(a,b) (((a) > (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#ifndef min
|
|
#define min(a,b) (((a) < (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#endif /* NOMINMAX */
|
|
|
|
#define MAKEWORD(a, b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))
|
|
#define MAKELONG(a, b) ((LONG)(((WORD)((DWORD_PTR)(a) & 0xffff)) | ((DWORD)((WORD)((DWORD_PTR)(b) & 0xffff))) << 16))
|
|
#define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xffff))
|
|
#define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16))
|
|
#define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xff))
|
|
#define HIBYTE(w) ((BYTE)((DWORD_PTR)(w) >> 8))
|
|
|
|
|
|
#ifndef WIN_INTERNAL
|
|
DECLARE_HANDLE (HWND);
|
|
DECLARE_HANDLE (HHOOK);
|
|
#ifdef WINABLE
|
|
DECLARE_HANDLE (HEVENT);
|
|
#endif
|
|
#endif
|
|
|
|
typedef WORD ATOM;
|
|
|
|
typedef HANDLE NEAR *SPHANDLE;
|
|
typedef HANDLE FAR *LPHANDLE;
|
|
typedef HANDLE HGLOBAL;
|
|
typedef HANDLE HLOCAL;
|
|
typedef HANDLE GLOBALHANDLE;
|
|
typedef HANDLE LOCALHANDLE;
|
|
#ifndef _MAC
|
|
#ifdef _WIN64
|
|
typedef INT_PTR (FAR WINAPI *FARPROC)();
|
|
typedef INT_PTR (NEAR WINAPI *NEARPROC)();
|
|
typedef INT_PTR (WINAPI *PROC)();
|
|
#else
|
|
typedef int (FAR WINAPI *FARPROC)();
|
|
typedef int (NEAR WINAPI *NEARPROC)();
|
|
typedef int (WINAPI *PROC)();
|
|
#endif // _WIN64
|
|
#else
|
|
typedef int (CALLBACK *FARPROC)();
|
|
typedef int (CALLBACK *NEARPROC)();
|
|
typedef int (CALLBACK *PROC)();
|
|
#endif
|
|
|
|
#if !defined(_MAC) || !defined(GDI_INTERNAL)
|
|
#ifdef STRICT
|
|
typedef void NEAR* HGDIOBJ;
|
|
#else
|
|
DECLARE_HANDLE(HGDIOBJ);
|
|
#endif
|
|
#endif
|
|
|
|
DECLARE_HANDLE(HKEY);
|
|
typedef HKEY *PHKEY;
|
|
|
|
#if !defined(_MAC) || !defined(WIN_INTERNAL)
|
|
DECLARE_HANDLE(HACCEL);
|
|
#endif
|
|
#if !defined(_MAC) || !defined(GDI_INTERNAL)
|
|
DECLARE_HANDLE(HBITMAP);
|
|
DECLARE_HANDLE(HBRUSH);
|
|
#endif
|
|
#if(WINVER >= 0x0400)
|
|
DECLARE_HANDLE(HCOLORSPACE);
|
|
#endif /* WINVER >= 0x0400 */
|
|
#if !defined(_MAC) || !defined(GDI_INTERNAL)
|
|
DECLARE_HANDLE(HDC);
|
|
#endif
|
|
DECLARE_HANDLE(HGLRC); // OpenGL
|
|
DECLARE_HANDLE(HDESK);
|
|
DECLARE_HANDLE(HENHMETAFILE);
|
|
#if !defined(_MAC) || !defined(GDI_INTERNAL)
|
|
DECLARE_HANDLE(HFONT);
|
|
#endif
|
|
DECLARE_HANDLE(HICON);
|
|
#if !defined(_MAC) || !defined(WIN_INTERNAL)
|
|
DECLARE_HANDLE(HMENU);
|
|
#endif
|
|
DECLARE_HANDLE(HMETAFILE);
|
|
DECLARE_HANDLE(HINSTANCE);
|
|
typedef HINSTANCE HMODULE; /* HMODULEs can be used in place of HINSTANCEs */
|
|
#if !defined(_MAC) || !defined(GDI_INTERNAL)
|
|
DECLARE_HANDLE(HPALETTE);
|
|
DECLARE_HANDLE(HPEN);
|
|
#endif
|
|
DECLARE_HANDLE(HRGN);
|
|
DECLARE_HANDLE(HRSRC);
|
|
DECLARE_HANDLE(HSTR);
|
|
DECLARE_HANDLE(HTASK);
|
|
DECLARE_HANDLE(HWINSTA);
|
|
DECLARE_HANDLE(HKL);
|
|
|
|
#if(WINVER >= 0x0500)
|
|
#ifndef _MAC
|
|
DECLARE_HANDLE(HMONITOR);
|
|
DECLARE_HANDLE(HWINEVENTHOOK);
|
|
#endif
|
|
DECLARE_HANDLE(HUMPD);
|
|
#endif /* WINVER >= 0x0500 */
|
|
|
|
#ifndef _MAC
|
|
typedef int HFILE;
|
|
typedef HICON HCURSOR; /* HICONs & HCURSORs are polymorphic */
|
|
#else
|
|
typedef short HFILE;
|
|
DECLARE_HANDLE(HCURSOR); /* HICONs & HCURSORs are not polymorphic */
|
|
#endif
|
|
|
|
typedef DWORD COLORREF;
|
|
typedef DWORD *LPCOLORREF;
|
|
|
|
#define HFILE_ERROR ((HFILE)-1)
|
|
|
|
typedef struct tagRECT
|
|
{
|
|
LONG left;
|
|
LONG top;
|
|
LONG right;
|
|
LONG bottom;
|
|
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
|
|
|
|
typedef const RECT FAR* LPCRECT;
|
|
|
|
typedef struct _RECTL /* rcl */
|
|
{
|
|
LONG left;
|
|
LONG top;
|
|
LONG right;
|
|
LONG bottom;
|
|
} RECTL, *PRECTL, *LPRECTL;
|
|
|
|
typedef const RECTL FAR* LPCRECTL;
|
|
|
|
typedef struct tagPOINT
|
|
{
|
|
LONG x;
|
|
LONG y;
|
|
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;
|
|
|
|
typedef struct _POINTL /* ptl */
|
|
{
|
|
LONG x;
|
|
LONG y;
|
|
} POINTL, *PPOINTL;
|
|
|
|
typedef struct tagSIZE
|
|
{
|
|
LONG cx;
|
|
LONG cy;
|
|
} SIZE, *PSIZE, *LPSIZE;
|
|
|
|
typedef SIZE SIZEL;
|
|
typedef SIZE *PSIZEL, *LPSIZEL;
|
|
|
|
typedef struct tagPOINTS
|
|
{
|
|
#ifndef _MAC
|
|
SHORT x;
|
|
SHORT y;
|
|
#else
|
|
SHORT y;
|
|
SHORT x;
|
|
#endif
|
|
} POINTS, *PPOINTS, *LPPOINTS;
|
|
|
|
//
|
|
// File System time stamps are represented with the following structure:
|
|
//
|
|
|
|
typedef struct _FILETIME {
|
|
DWORD dwLowDateTime;
|
|
DWORD dwHighDateTime;
|
|
} FILETIME, *PFILETIME, *LPFILETIME;
|
|
#define _FILETIME_
|
|
|
|
|
|
/* mode selections for the device mode function */
|
|
#define DM_UPDATE 1
|
|
#define DM_COPY 2
|
|
#define DM_PROMPT 4
|
|
#define DM_MODIFY 8
|
|
|
|
#define DM_IN_BUFFER DM_MODIFY
|
|
#define DM_IN_PROMPT DM_PROMPT
|
|
#define DM_OUT_BUFFER DM_COPY
|
|
#define DM_OUT_DEFAULT DM_UPDATE
|
|
|
|
/* device capabilities indices */
|
|
#define DC_FIELDS 1
|
|
#define DC_PAPERS 2
|
|
#define DC_PAPERSIZE 3
|
|
#define DC_MINEXTENT 4
|
|
#define DC_MAXEXTENT 5
|
|
#define DC_BINS 6
|
|
#define DC_DUPLEX 7
|
|
#define DC_SIZE 8
|
|
#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
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _WINDEF_ */
|
|
|