Release 951003
[wine/multimedia.git] / include / wintypes.h
blob348af36c13b82c6efedb0ca0e42923ff3af35747
1 #ifndef __WINE_WINTYPES_H
2 #define __WINE_WINTYPES_H
4 #ifdef WINELIB
5 # ifdef WINELIB16
6 # undef WINELIB32
7 # else
8 # ifndef WINELIB32
9 # define WINELIB32
10 # endif
11 # endif
12 #endif
14 typedef short INT;
15 typedef unsigned short UINT;
16 #define UIFMT "%hu"
17 typedef unsigned short WORD;
18 typedef unsigned long DWORD;
19 typedef unsigned short BOOL;
20 typedef unsigned char BYTE;
21 typedef long LONG;
22 #ifdef WINELIB32
23 typedef LONG WPARAM;
24 #else
25 typedef UINT WPARAM;
26 #endif
27 typedef LONG LPARAM;
28 typedef LONG LRESULT;
29 #ifdef WINELIB32
30 typedef void* HANDLE;
31 typedef void* NPVOID;
32 #define NPFMT "%p"
33 #else
34 typedef WORD HANDLE;
35 typedef WORD NPVOID;
36 #define NPFMT "%04X"
37 #endif
38 typedef DWORD HHOOK;
39 typedef DWORD SEGPTR;
40 typedef char *LPSTR;
41 typedef const char *LPCSTR;
42 typedef char *NPSTR;
43 typedef INT *LPINT;
44 typedef UINT *LPUINT;
45 typedef WORD *LPWORD;
46 typedef DWORD *LPDWORD;
47 typedef LONG *LPLONG;
48 typedef void *LPVOID;
49 typedef WORD CATCHBUF[9];
50 typedef WORD *LPCATCHBUF;
52 #define DECLARE_HANDLE(a) typedef HANDLE a;
54 DECLARE_HANDLE(HBITMAP);
55 DECLARE_HANDLE(HBRUSH);
56 DECLARE_HANDLE(HCLASS);
57 DECLARE_HANDLE(HCURSOR);
58 DECLARE_HANDLE(HDC);
59 DECLARE_HANDLE(HDROP);
60 DECLARE_HANDLE(HDRVR);
61 DECLARE_HANDLE(HDWP);
62 DECLARE_HANDLE(HFONT);
63 DECLARE_HANDLE(HGLOBAL);
64 DECLARE_HANDLE(HICON);
65 DECLARE_HANDLE(HINSTANCE);
66 DECLARE_HANDLE(HLOCAL);
67 DECLARE_HANDLE(HMENU);
68 DECLARE_HANDLE(HMETAFILE);
69 DECLARE_HANDLE(HMODULE);
70 DECLARE_HANDLE(HPALETTE);
71 DECLARE_HANDLE(HPEN);
72 DECLARE_HANDLE(HRGN);
73 DECLARE_HANDLE(HRSRC);
74 DECLARE_HANDLE(HTASK);
75 DECLARE_HANDLE(HWND);
76 DECLARE_HANDLE(LOCALHANDLE);
78 #ifdef WINELIB
79 typedef long (*FARPROC)();
80 typedef LRESULT (*WNDPROC)(HWND,UINT,WPARAM,LPARAM);
81 #else
82 typedef SEGPTR FARPROC;
83 typedef SEGPTR WNDPROC;
84 #endif
85 typedef FARPROC DLGPROC;
86 typedef FARPROC HOOKPROC;
88 #define TRUE 1
89 #define FALSE 0
90 #define CW_USEDEFAULT ((INT)0x8000)
91 #define FAR
92 #define NEAR
93 #define PASCAL
94 #define VOID void
95 #define WINAPI PASCAL
96 #define CALLBACK PASCAL
98 #undef NULL
99 #define NULL 0
101 #ifdef WINELIB
102 #define WINE_PACKED
103 #else
104 #define WINE_PACKED __attribute__ ((packed))
105 #endif
107 #define LOBYTE(w) ((BYTE)(UINT)(w))
108 #define HIBYTE(w) ((BYTE)((UINT)(w) >> 8))
110 #define LOWORD(l) ((WORD)(DWORD)(l))
111 #define HIWORD(l) ((WORD)((DWORD)(l) >> 16))
113 #define SLOWORD(l) ((INT)(LONG)(l))
114 #define SHIWORD(l) ((INT)((LONG)(l) >> 16))
116 #define MAKELONG(low, high) ((LONG)(((WORD)(low)) | \
117 (((DWORD)((WORD)(high))) << 16)))
119 #define SELECTOROF(ptr) (HIWORD(ptr))
120 #define OFFSETOF(ptr) (LOWORD(ptr))
122 #ifndef max
123 #define max(a,b) (((a) > (b)) ? (a) : (b))
124 #endif
126 #ifndef min
127 #define min(a,b) (((a) < (b)) ? (a) : (b))
128 #endif
130 #endif /* __WINE_WINTYPES_H */