📄 windef.h
字号:
/* * Basic types definitions * * Copyright 1996 Alexandre Julliard * * Modified for use with MPlayer, detailed changelog at * http://svn.mplayerhq.hu/mplayer/trunk/ * $Id: windef.h,v 1.2 2008/03/03 08:11:38 dsqiu Exp $ * */#ifndef WINE_WINDEF_H#define WINE_WINDEF_H# include "config.h"#ifdef _EGCS_#define __stdcall#endif#ifdef __cplusplusextern "C" {#endif/* Misc. constants. */#ifdef FALSE#undef FALSE#endif#define FALSE 0#ifdef TRUE#undef TRUE#endif#define TRUE 1#ifdef NULL#undef NULL#endif#define NULL 0/* Macros to map Winelib names to the correct implementation name *//* Note that Winelib is purely Win32. */# define WINELIB_NAME_AW(func) \ func##_must_be_suffixed_with_W_or_A_in_this_context \ func##_must_be_suffixed_with_W_or_A_in_this_context# define DECL_WINELIB_TYPE_AW(type) /* nothing */#ifndef NONAMELESSSTRUCT# define NONAMELESSSTRUCT#endif /* !defined(NONAMELESSSTRUCT) */#ifndef NONAMELESSUNION# define NONAMELESSUNION#endif /* !defined(NONAMELESSUNION) */#ifndef NONAMELESSSTRUCT#define DUMMYSTRUCTNAME#define DUMMYSTRUCTNAME1#define DUMMYSTRUCTNAME2#define DUMMYSTRUCTNAME3#define DUMMYSTRUCTNAME4#define DUMMYSTRUCTNAME5#else /* !defined(NONAMELESSSTRUCT) */#define DUMMYSTRUCTNAME s#define DUMMYSTRUCTNAME1 s1#define DUMMYSTRUCTNAME2 s2#define DUMMYSTRUCTNAME3 s3#define DUMMYSTRUCTNAME4 s4#define DUMMYSTRUCTNAME5 s5#endif /* !defined(NONAMELESSSTRUCT) */#ifndef NONAMELESSUNION#define DUMMYUNIONNAME#define DUMMYUNIONNAME1#define DUMMYUNIONNAME2#define DUMMYUNIONNAME3#define DUMMYUNIONNAME4#define DUMMYUNIONNAME5#else /* !defined(NONAMELESSUNION) */#define DUMMYUNIONNAME u#define DUMMYUNIONNAME1 u1#define DUMMYUNIONNAME2 u2#define DUMMYUNIONNAME3 u3#define DUMMYUNIONNAME4 u4#define DUMMYUNIONNAME5 u5#endif /* !defined(NONAMELESSUNION) *//* Calling conventions definitions */#ifdef __i386__# if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))# ifndef _EGCS_ #define __stdcall __attribute__((__stdcall__))#define __cdecl __attribute__((__cdecl__))# define __RESTORE_ES __asm__ __volatile__("pushl %ds\n\tpopl %es")# endif# else// # error You need gcc >= 2.7 to build Wine on a 386# endif#else # define __stdcall# define __cdecl# define __RESTORE_ES#endif#define CALLBACK __stdcall#define WINAPI __stdcall#define APIPRIVATE __stdcall#define PASCAL __stdcall#define pascal __stdcall#define _pascal __stdcall#if !defined(__CYGWIN__) && !defined(__MINGW32__)#define _stdcall __stdcall#define _fastcall __stdcall#define __fastcall __stdcall#endif#define __export __stdcall#define CDECL __cdecl#define _CDECL __cdecl#define cdecl __cdecl#if !defined(__CYGWIN__) && !defined(__MINGW32__)#define _cdecl __cdecl#endif#define WINAPIV __cdecl#define APIENTRY WINAPI#if !defined(__CYGWIN__) && !defined(__MINGW32__)#define __declspec(x)#endif#define dllimport#define dllexport#define CONST const/* Standard data types. These are the same for emulator and library. */typedef void VOID;typedef int INT;typedef unsigned int UINT;typedef unsigned short WORD;typedef unsigned long DWORD;typedef unsigned long ULONG;typedef unsigned char BYTE;typedef long LONG;typedef short SHORT;typedef unsigned short USHORT;typedef char CHAR;typedef unsigned char UCHAR;typedef LONG SCODE;/* Some systems might have wchar_t, but we really need 16 bit characters */typedef unsigned short WCHAR;typedef int WIN_BOOL;typedef double DATE;typedef double DOUBLE;typedef long long LONGLONG;typedef unsigned long long ULONGLONG;/* FIXME: Wine does not compile with strict on, therefore strict * handles are presently only usable on machines where sizeof(UINT) == * sizeof(void*). HANDLEs are supposed to be void* but a large amount * of WINE code operates on HANDLES as if they are UINTs. So to WINE * they exist as UINTs but to the Winelib user who turns on strict, * they exist as void*. If there is a size difference between UINT and * void* then things get ugly. */#ifdef STRICTtypedef VOID* HANDLE;#elsetypedef UINT HANDLE;#endiftypedef HANDLE *LPHANDLE;/* Integer types. These are the same for emulator and library. */typedef UINT WPARAM;typedef LONG LPARAM;typedef LONG HRESULT;typedef LONG LRESULT;typedef WORD ATOM;typedef WORD CATCHBUF[9];typedef WORD *LPCATCHBUF;typedef HANDLE HHOOK;typedef HANDLE HMONITOR;typedef DWORD LCID;typedef WORD LANGID;typedef DWORD LCTYPE;typedef float FLOAT;/* Pointers types. These are the same for emulator and library. *//* winnt types */typedef VOID *PVOID;typedef const void *PCVOID;typedef CHAR *PCHAR;typedef UCHAR *PUCHAR;typedef BYTE *PBYTE;typedef WORD *PWORD;typedef USHORT *PUSHORT;typedef SHORT *PSHORT;typedef ULONG *PULONG;typedef LONG *PLONG;typedef DWORD *PDWORD;/* common win32 types */typedef CHAR *LPSTR;typedef CHAR *PSTR;typedef const CHAR *LPCSTR;typedef const CHAR *PCSTR;typedef WCHAR *LPWSTR;typedef WCHAR *PWSTR;typedef const WCHAR *LPCWSTR;typedef const WCHAR *PCWSTR;typedef BYTE *LPBYTE;typedef WORD *LPWORD;typedef DWORD *LPDWORD;typedef LONG *LPLONG;typedef VOID *LPVOID;typedef const VOID *LPCVOID;typedef INT *PINT;typedef INT *LPINT;typedef UINT *PUINT;typedef UINT *LPUINT;typedef FLOAT *PFLOAT;typedef FLOAT *LPFLOAT;typedef WIN_BOOL *PWIN_BOOL;typedef WIN_BOOL *LPWIN_BOOL;/* Special case: a segmented pointer is just a pointer in the user's code. */typedef DWORD SEGPTR;/* Handle types that exist both in Win16 and Win32. */#ifdef STRICT#define DECLARE_HANDLE(a) \ typedef struct a##__ { int unused; } *a; \ typedef a *P##a; \ typedef a *LP##a#else /*STRICT*/#define DECLARE_HANDLE(a) \ typedef HANDLE a; \ typedef a *P##a; \ typedef a *LP##a#endif /*STRICT*/DECLARE_HANDLE(HACMDRIVERID);DECLARE_HANDLE(HACMDRIVER);DECLARE_HANDLE(HACMOBJ);DECLARE_HANDLE(HACMSTREAM);DECLARE_HANDLE(HMETAFILEPICT);DECLARE_HANDLE(HACCEL);DECLARE_HANDLE(HBITMAP);DECLARE_HANDLE(HBRUSH);DECLARE_HANDLE(HCOLORSPACE);DECLARE_HANDLE(HCURSOR);DECLARE_HANDLE(HDC);DECLARE_HANDLE(HDROP);DECLARE_HANDLE(HDRVR);DECLARE_HANDLE(HDWP);DECLARE_HANDLE(HENHMETAFILE);DECLARE_HANDLE(HFILE);DECLARE_HANDLE(HFONT);DECLARE_HANDLE(HICON);DECLARE_HANDLE(HINSTANCE);DECLARE_HANDLE(HKEY);DECLARE_HANDLE(HMENU);DECLARE_HANDLE(HMETAFILE);DECLARE_HANDLE(HMIDI);DECLARE_HANDLE(HMIDIIN);DECLARE_HANDLE(HMIDIOUT);DECLARE_HANDLE(HMIDISTRM);DECLARE_HANDLE(HMIXER);DECLARE_HANDLE(HMIXEROBJ);DECLARE_HANDLE(HMMIO);DECLARE_HANDLE(HPALETTE);DECLARE_HANDLE(HPEN);DECLARE_HANDLE(HQUEUE);DECLARE_HANDLE(HRGN);DECLARE_HANDLE(HRSRC);DECLARE_HANDLE(HTASK);DECLARE_HANDLE(HWAVE);DECLARE_HANDLE(HWAVEIN);DECLARE_HANDLE(HWAVEOUT);DECLARE_HANDLE(HWINSTA);DECLARE_HANDLE(HDESK);DECLARE_HANDLE(HWND);DECLARE_HANDLE(HKL);DECLARE_HANDLE(HIC);DECLARE_HANDLE(HRASCONN);/* Handle types that must remain interchangeable even with strict on */typedef HINSTANCE HMODULE;typedef HANDLE HGDIOBJ;typedef HANDLE HGLOBAL;typedef HANDLE HLOCAL;typedef HANDLE GLOBALHANDLE;typedef HANDLE LOCALHANDLE;/* Callback function pointers types *///WIN_BOOL CALLBACK DATEFMT_ENUMPROCA(LPSTR);typedef WIN_BOOL CALLBACK (* DATEFMT_ENUMPROCA)(LPSTR);typedef WIN_BOOL CALLBACK (* DATEFMT_ENUMPROCW)(LPWSTR);DECL_WINELIB_TYPE_AW(DATEFMT_ENUMPROC)typedef WIN_BOOL CALLBACK (*DLGPROC)(HWND,UINT,WPARAM,LPARAM);typedef LRESULT CALLBACK (*DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM);typedef INT CALLBACK (*EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT);typedef INT CALLBACK (*EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT);DECL_WINELIB_TYPE_AW(EDITWORDBREAKPROC)typedef LRESULT CALLBACK (*FARPROC)();typedef INT CALLBACK (*PROC)();typedef WIN_BOOL CALLBACK (*GRAYSTRINGPROC)(HDC,LPARAM,INT);typedef LRESULT CALLBACK (*HOOKPROC)(INT,WPARAM,LPARAM);typedef WIN_BOOL CALLBACK (*PROPENUMPROCA)(HWND,LPCSTR,HANDLE);typedef WIN_BOOL CALLBACK (*PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);DECL_WINELIB_TYPE_AW(PROPENUMPROC)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -