2 * Basic type definitions for 16 bit variations on Windows types.
3 * These types are provided mostly to insure compatibility with
7 #ifndef __WINE_WINDEF16_H
8 #define __WINE_WINDEF16_H
12 /* Standard data types */
15 typedef unsigned short UINT16;
16 typedef unsigned short BOOL16;
19 typedef UINT16 HANDLE16;
20 typedef HANDLE16 *LPHANDLE16;
22 typedef UINT16 WPARAM16;
23 typedef INT16 *LPINT16;
24 typedef UINT16 *LPUINT16;
26 #define HFILE_ERROR16 ((HFILE16)-1)
28 #define DECLARE_HANDLE16(a) \
29 typedef HANDLE16 a##16; \
30 typedef a##16 *P##a##16; \
31 typedef a##16 *NP##a##16; \
32 typedef a##16 *LP##a##16
34 DECLARE_HANDLE16(HACMDRIVERID);
35 DECLARE_HANDLE16(HACMDRIVER);
36 DECLARE_HANDLE16(HACMOBJ);
37 DECLARE_HANDLE16(HACMSTREAM);
38 DECLARE_HANDLE16(HMETAFILEPICT);
40 DECLARE_HANDLE16(HACCEL);
41 DECLARE_HANDLE16(HBITMAP);
42 DECLARE_HANDLE16(HBRUSH);
43 DECLARE_HANDLE16(HCOLORSPACE);
44 DECLARE_HANDLE16(HCURSOR);
45 DECLARE_HANDLE16(HDC);
46 DECLARE_HANDLE16(HDROP);
47 DECLARE_HANDLE16(HDRVR);
48 DECLARE_HANDLE16(HDWP);
49 DECLARE_HANDLE16(HENHMETAFILE);
50 DECLARE_HANDLE16(HFILE);
51 DECLARE_HANDLE16(HFONT);
52 DECLARE_HANDLE16(HICON);
53 DECLARE_HANDLE16(HINSTANCE);
54 DECLARE_HANDLE16(HKEY);
55 DECLARE_HANDLE16(HMENU);
56 DECLARE_HANDLE16(HMETAFILE);
57 DECLARE_HANDLE16(HMIDI);
58 DECLARE_HANDLE16(HMIDIIN);
59 DECLARE_HANDLE16(HMIDIOUT);
60 DECLARE_HANDLE16(HMIDISTRM);
61 DECLARE_HANDLE16(HMIXER);
62 DECLARE_HANDLE16(HMIXEROBJ);
63 DECLARE_HANDLE16(HMMIO);
64 DECLARE_HANDLE16(HPALETTE);
65 DECLARE_HANDLE16(HPEN);
66 DECLARE_HANDLE16(HQUEUE);
67 DECLARE_HANDLE16(HRGN);
68 DECLARE_HANDLE16(HRSRC);
69 DECLARE_HANDLE16(HTASK);
70 DECLARE_HANDLE16(HWAVE);
71 DECLARE_HANDLE16(HWAVEIN);
72 DECLARE_HANDLE16(HWAVEOUT);
73 DECLARE_HANDLE16(HWINSTA);
74 DECLARE_HANDLE16(HDESK);
75 DECLARE_HANDLE16(HWND);
76 DECLARE_HANDLE16(HKL);
77 DECLARE_HANDLE16(HIC);
78 DECLARE_HANDLE16(HRASCONN);
79 #undef DECLARE_HANDLE16
81 typedef HINSTANCE16 HMODULE16;
82 typedef HANDLE16 HGDIOBJ16;
83 typedef HANDLE16 HGLOBAL16;
84 typedef HANDLE16 HLOCAL16;
86 /* The SIZE structure */
92 } SIZE16, *PSIZE16, *LPSIZE16;
94 /* The POINT structure */
100 } POINT16, *PPOINT16, *LPPOINT16;
102 /* The RECT structure */
112 #define CONV_SIZE16TO32(s16,s32) \
113 ((s32)->cx = (INT)(s16)->cx, (s32)->cy = (INT)(s16)->cy)
114 #define CONV_SIZE32TO16(s32,s16) \
115 ((s16)->cx = (INT16)(s32)->cx, (s16)->cy = (INT16)(s32)->cy)
117 #define CONV_POINT16TO32(p16,p32) \
118 ((p32)->x = (INT)(p16)->x, (p32)->y = (INT)(p16)->y)
119 #define CONV_POINT32TO16(p32,p16) \
120 ((p16)->x = (INT16)(p32)->x, (p16)->y = (INT16)(p32)->y)
122 #define CONV_RECT16TO32(r16,r32) \
123 ((r32)->left = (INT)(r16)->left, (r32)->top = (INT)(r16)->top, \
124 (r32)->right = (INT)(r16)->right, (r32)->bottom = (INT)(r16)->bottom)
125 #define CONV_RECT32TO16(r32,r16) \
126 ((r16)->left = (INT16)(r32)->left, (r16)->top = (INT16)(r32)->top, \
127 (r16)->right = (INT16)(r32)->right, (r16)->bottom = (INT16)(r32)->bottom)
129 /* Callback function pointers types */
131 typedef LRESULT CALLBACK (*DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM);
132 typedef BOOL16 CALLBACK (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
133 typedef INT16 CALLBACK (*EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16);
134 typedef LRESULT CALLBACK (*FARPROC16)();
135 typedef INT16 CALLBACK (*PROC16)();
136 typedef BOOL16 CALLBACK (*GRAYSTRINGPROC16)(HDC16,LPARAM,INT16);
137 typedef LRESULT CALLBACK (*HOOKPROC16)(INT16,WPARAM16,LPARAM);
138 typedef BOOL16 CALLBACK (*PROPENUMPROC16)(HWND16,SEGPTR,HANDLE16);
139 typedef VOID CALLBACK (*TIMERPROC16)(HWND16,UINT16,UINT16,DWORD);
140 typedef LRESULT CALLBACK (*WNDENUMPROC16)(HWND16,LPARAM);
141 typedef LRESULT CALLBACK (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
143 #endif /* __WINE_WINDEF16_H */