文档库 最新最全的文档下载
当前位置:文档库 › windef_h

windef_h

windef_h
windef_h

windef.h

/****************************************************************************

* *

* windef.h -- Basic Windows Type Definitions *

* *

* Copyright (c) 1985-1997, Microsoft Corp. 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_PA TH 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 APIPRIV A TE 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 APIPRIV A TE __stdcall

#define PASCAL __stdcall

#else

#define CALLBACK

#define WINAPI

#define WINAPIV

#define APIENTRY WINAPI

#define APIPRIV A TE

#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

#endif /* NT_INCLUDED */

/* Types use for passing & returning polymorphic values */

typedef UINT WPARAM;

typedef LONG LPARAM;

typedef LONG 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)(a)) | ((WORD)((BYTE)(b))) << 8))

#define MAKELONG(a, b) ((LONG)(((WORD)(a)) | ((DWORD)((WORD)(b))) << 16)) #define LOWORD(l) ((WORD)(l))

#define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))

#define LOBYTE(w) ((BYTE)(w))

#define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF)) #ifndef WIN_INTERNAL

DECLARE_HANDLE (HWND);

DECLARE_HANDLE (HHOOK);

#ifdef WINABLE

DECLARE_HANDLE (HEVENT);

#endif

#endif

typedef WORD A TOM;

typedef HANDLE NEAR *SPHANDLE;

typedef HANDLE FAR *LPHANDLE;

typedef HANDLE HGLOBAL;

typedef HANDLE HLOCAL;

typedef HANDLE GLOBALHANDLE;

typedef HANDLE LOCALHANDLE;

#ifndef _MAC

typedef int (FAR WINAPI *FARPROC)();

typedef int (NEAR WINAPI *NEARPROC)();

typedef int (WINAPI *PROC)();

#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

#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(HTERMINAL);

DECLARE_HANDLE(HWINEVENTHOOK);

#endif

#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;

/* mode selections for the device mode function */

#define DM_UPDA TE 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_UPDA TE /* 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_ */

相关文档