您的位置:首页 > 编程语言

Windef.h说明

2016-06-05 09:21 381 查看
/****************************************************************************

*                                                                           *

* windef.h -- Basic Windows Type Definitions                                *

*                                                                           *

* Copyright (c) Microsoft Corporation. All rights reserved.                 *

*                                                                           *

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

#ifndef _WINDEF_

#define _WINDEF_

#pragma once

#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

#ifndef WIN32

#define WIN32

#endif

#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

#ifdef _M_CEE_PURE

#define WINAPI_INLINE  __clrcall

#else

#define WINAPI_INLINE  WINAPI

#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 */

#include <specstrings.h>

/* 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) & 0xffff))

#define LOBYTE(w)           ((BYTE)(((DWORD_PTR)(w)) & 0xff))

#define HIBYTE(w)           ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))

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

#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

#else

typedef INT_PTR (WINAPI *FARPROC)(void);

typedef INT_PTR (WINAPI *NEARPROC)(void);

typedef INT_PTR (WINAPI *PROC)(void);

#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
4000
_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(HSPRITE);

DECLARE_HANDLE(HLSURF);

DECLARE_HANDLE(HSTR);

DECLARE_HANDLE(HTASK);

DECLARE_HANDLE(HWINSTA);

DECLARE_HANDLE(HKL);

#if(WINVER >= 0x0400)

DECLARE_HANDLE(HWINEVENTHOOK);

#endif /* WINVER >= 0x0400 */

#if(WINVER >= 0x0500)

#ifndef _MAC

DECLARE_HANDLE(HMONITOR);

#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_ */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息