Moved standard syslevel APIs declaration to winbase.h.
[wine] / include / wine / windef16.h
1 /*
2  * Basic type definitions for 16 bit variations on Windows types.
3  * These types are provided mostly to insure compatibility with
4  * 16 bit windows code.
5  */
6
7 #ifndef __WINE_WINDEF16_H
8 #define __WINE_WINDEF16_H
9
10 #include "windef.h"
11
12 /* Standard data types */
13
14 typedef short           INT16;
15 typedef unsigned short  UINT16;
16 typedef unsigned short  BOOL16;
17 typedef DWORD           SEGPTR;
18
19 typedef UINT16          HANDLE16;
20 typedef HANDLE16       *LPHANDLE16;
21
22 typedef UINT16          WPARAM16;
23 typedef INT16          *LPINT16;
24 typedef UINT16         *LPUINT16;
25
26 #define HFILE_ERROR16   ((HFILE16)-1)
27
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 
33
34 DECLARE_HANDLE16(HACMDRIVERID);
35 DECLARE_HANDLE16(HACMDRIVER);
36 DECLARE_HANDLE16(HACMOBJ);
37 DECLARE_HANDLE16(HACMSTREAM);
38 DECLARE_HANDLE16(HMETAFILEPICT);
39
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
80
81 typedef HINSTANCE16 HMODULE16;
82 typedef HANDLE16 HGDIOBJ16;
83 typedef HANDLE16 HGLOBAL16;
84 typedef HANDLE16 HLOCAL16;
85
86 /* The SIZE structure */
87
88 typedef struct
89 {
90     INT16  cx;
91     INT16  cy;
92 } SIZE16, *PSIZE16, *LPSIZE16;
93
94 /* The POINT structure */
95
96 typedef struct
97 {
98     INT16  x;
99     INT16  y;
100 } POINT16, *PPOINT16, *LPPOINT16;
101
102 /* The RECT structure */
103
104 typedef struct
105 {
106     INT16  left;
107     INT16  top;
108     INT16  right;
109     INT16  bottom;
110 } RECT16, *LPRECT16;
111
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)
116
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)
121
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)
128
129 /* Callback function pointers types */
130
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);
142
143 #endif /* __WINE_WINDEF16_H */