1 #ifndef __WINE_WINTYPES_H
2 #define __WINE_WINTYPES_H
22 typedef unsigned short WORD
;
23 typedef unsigned long DWORD
;
24 typedef unsigned short BOOL
;
25 typedef unsigned char BYTE
;
27 typedef unsigned char CHAR
;
28 /* Some systems might have wchar_t, but we really need 16 bit characters */
29 typedef unsigned short WCHAR
;
33 typedef unsigned int UINT
;
43 /* Should probably eventually be unsigned short, but not now */
47 typedef unsigned short UINT
;
56 /* TCHAR is just char in Win16 */
64 typedef const char *LPCSTR
;
65 typedef TCHAR
*LPTSTR
;
66 typedef const TCHAR
*LPCTSTR
;
67 typedef WCHAR
*LPWSTR
;
68 typedef const WCHAR
*LPCWSTR
;
73 typedef DWORD
*LPDWORD
;
76 typedef const void *LPCVOID
;
77 typedef WORD CATCHBUF
[9];
78 typedef WORD
*LPCATCHBUF
;
80 #define DECLARE_HANDLE(a) typedef HANDLE a;
82 DECLARE_HANDLE(HBITMAP
);
83 DECLARE_HANDLE(HBRUSH
);
84 DECLARE_HANDLE(HCLASS
);
85 DECLARE_HANDLE(HCURSOR
);
87 DECLARE_HANDLE(HDROP
);
88 DECLARE_HANDLE(HDRVR
);
90 DECLARE_HANDLE(HFONT
);
91 DECLARE_HANDLE(HGDIOBJ
);
92 DECLARE_HANDLE(HGLOBAL
);
93 DECLARE_HANDLE(HICON
);
94 DECLARE_HANDLE(HINSTANCE
);
95 DECLARE_HANDLE(HLOCAL
);
96 DECLARE_HANDLE(HMENU
);
97 DECLARE_HANDLE(HMETAFILE
);
98 DECLARE_HANDLE(HMODULE
);
99 DECLARE_HANDLE(HPALETTE
);
100 DECLARE_HANDLE(HPEN
);
101 DECLARE_HANDLE(HQUEUE
);
102 DECLARE_HANDLE(HRGN
);
103 DECLARE_HANDLE(HRSRC
);
104 DECLARE_HANDLE(HTASK
);
105 DECLARE_HANDLE(HWND
);
106 DECLARE_HANDLE(LOCALHANDLE
);
108 DECLARE_HANDLE(HKEY
);
112 typedef HKEY
* LPHKEY
;
113 typedef HGLOBAL GLOBALHANDLE
;
116 typedef long (*FARPROC
)();
117 typedef LRESULT (*WNDPROC
)(HWND
,UINT
,WPARAM
,LPARAM
);
118 typedef LRESULT (*WNDENUMPROC
)(HWND
,LPARAM
);
119 /*typedef int (*FONTENUMPROC)(const LOGFONT*,const TEXTMETRIC*,DWORD,LPARAM);*/
120 typedef int (*FONTENUMPROC
)(const void*,const void*,DWORD
,LPARAM
);
121 typedef int (*GOBJENUMPROC
)(LPVOID
,LPARAM
);
122 typedef BOOL (*PROPENUMPROC
)(HWND
,LPCTSTR
,HANDLE
);
123 /*typedef int (*MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM);*/
124 typedef int (*MFENUMPROC
)(HDC
,void*,void*,int,LPARAM
);
126 typedef SEGPTR FARPROC
;
127 typedef SEGPTR WNDPROC
;
128 typedef SEGPTR WNDENUMPROC
;
129 typedef SEGPTR FONTENUMPROC
;
130 typedef SEGPTR GOBJENUMPROC
;
131 typedef SEGPTR PROPENUMPROC
;
132 typedef SEGPTR MFENUMPROC
;
134 typedef FARPROC DLGPROC
;
135 typedef FARPROC HOOKPROC
;
139 #define CW_USEDEFAULT ((INT)0x8000)
148 #define WINAPI PASCAL
149 #define CALLBACK PASCAL
157 #define WINE_PACKED __attribute__ ((packed))
160 #define LOBYTE(w) ((BYTE)(UINT)(w))
161 #define HIBYTE(w) ((BYTE)((UINT)(w) >> 8))
163 #define LOWORD(l) ((WORD)(DWORD)(l))
164 #define HIWORD(l) ((WORD)((DWORD)(l) >> 16))
166 #define SLOWORD(l) ((INT)(LONG)(l))
167 #define SHIWORD(l) ((INT)((LONG)(l) >> 16))
169 #define MAKELONG(low, high) ((LONG)(((WORD)(low)) | \
170 (((DWORD)((WORD)(high))) << 16)))
172 #define SELECTOROF(ptr) (HIWORD(ptr))
173 #define OFFSETOF(ptr) (LOWORD(ptr))
176 #define MAX(a,b) (((a) > (b)) ? (a) : (b))
180 #define MIN(a,b) (((a) < (b)) ? (a) : (b))
183 #ifndef DONT_DEFINE_min_AND_max
185 #define min(a,b) MIN(a,b)
188 #define max(a,b) MAX(a,b)
192 #endif /* __WINE_WINTYPES_H */