Make use of .half and/or .asciiz assembler keywords when necessary.
[wine] / include / wine / winbase16.h
1 /*
2  * Copyright (C) the Wine project
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef __WINE_WINE_WINBASE16_H
20 #define __WINE_WINE_WINBASE16_H
21
22 #include "windef.h"
23 #include "winbase.h"
24 #include "winnls.h"
25 #include "wine/windef16.h"
26 #include "wine/library.h"
27
28 #include "pshpack1.h"
29 typedef struct _SEGINFO {
30     UINT16    offSegment;
31     UINT16    cbSegment;
32     UINT16    flags;
33     UINT16    cbAlloc;
34     HGLOBAL16 h;
35     UINT16    alignShift;
36     UINT16    reserved[2];
37 } SEGINFO;
38
39 /* GetWinFlags */
40
41 #define WF_PMODE        0x0001
42 #define WF_CPU286       0x0002
43 #define WF_CPU386       0x0004
44 #define WF_CPU486       0x0008
45 #define WF_STANDARD     0x0010
46 #define WF_WIN286       0x0010
47 #define WF_ENHANCED     0x0020
48 #define WF_WIN386       0x0020
49 #define WF_CPU086       0x0040
50 #define WF_CPU186       0x0080
51 #define WF_LARGEFRAME   0x0100
52 #define WF_SMALLFRAME   0x0200
53 #define WF_80x87        0x0400
54 #define WF_PAGING       0x0800
55 #define WF_HASCPUID     0x2000
56 #define WF_WIN32WOW     0x4000  /* undoc */
57 #define WF_WLO          0x8000
58
59 /* Parameters for LoadModule() */
60 typedef struct
61 {
62     HGLOBAL16 hEnvironment;         /* Environment segment */
63     SEGPTR    cmdLine WINE_PACKED;  /* Command-line */
64     SEGPTR    showCmd WINE_PACKED;  /* Code for ShowWindow() */
65     SEGPTR    reserved WINE_PACKED;
66 } LOADPARAMS16;
67
68 /* Debugging support (DEBUG SYSTEM ONLY) */
69 typedef struct
70 {
71     WORD    flags;
72     DWORD   dwOptions WINE_PACKED;
73     DWORD   dwFilter WINE_PACKED;
74     CHAR    achAllocModule[8] WINE_PACKED;
75     DWORD   dwAllocBreak WINE_PACKED;
76     DWORD   dwAllocCount WINE_PACKED;
77 } WINDEBUGINFO16, *LPWINDEBUGINFO16;
78
79 #include "poppack.h"
80
81 #define INVALID_HANDLE_VALUE16  ((HANDLE16) -1)
82 #define INFINITE16      0xFFFF
83
84 typedef struct {
85         DWORD dwOSVersionInfoSize;
86         DWORD dwMajorVersion;
87         DWORD dwMinorVersion;
88         DWORD dwBuildNumber;
89         DWORD dwPlatformId;
90         CHAR szCSDVersion[128];
91 } OSVERSIONINFO16;
92
93
94 /*
95  * NE Header FORMAT FLAGS
96  */
97 #define NE_FFLAGS_SINGLEDATA    0x0001
98 #define NE_FFLAGS_MULTIPLEDATA  0x0002
99 #define NE_FFLAGS_WIN32         0x0010
100 #define NE_FFLAGS_BUILTIN       0x0020  /* Wine built-in module */
101 #define NE_FFLAGS_FRAMEBUF      0x0100  /* OS/2 fullscreen app */
102 #define NE_FFLAGS_CONSOLE       0x0200  /* OS/2 console app */
103 #define NE_FFLAGS_GUI           0x0300  /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */
104 #define NE_FFLAGS_SELFLOAD      0x0800
105 #define NE_FFLAGS_LINKERROR     0x2000
106 #define NE_FFLAGS_CALLWEP       0x4000
107 #define NE_FFLAGS_LIBMODULE     0x8000
108
109 /*
110  * NE Header OPERATING SYSTEM
111  */
112 #define NE_OSFLAGS_UNKNOWN      0x01
113 #define NE_OSFLAGS_WINDOWS      0x04
114
115 /*
116  * NE Header ADDITIONAL FLAGS
117  */
118 #define NE_AFLAGS_WIN2_PROTMODE 0x02
119 #define NE_AFLAGS_WIN2_PROFONTS 0x04
120 #define NE_AFLAGS_FASTLOAD      0x08
121
122 /*
123  * Segment Flags
124  */
125 #define NE_SEGFLAGS_DATA        0x0001
126 #define NE_SEGFLAGS_ALLOCATED   0x0002
127 #define NE_SEGFLAGS_LOADED      0x0004
128 #define NE_SEGFLAGS_ITERATED    0x0008
129 #define NE_SEGFLAGS_MOVEABLE    0x0010
130 #define NE_SEGFLAGS_SHAREABLE   0x0020
131 #define NE_SEGFLAGS_PRELOAD     0x0040
132 #define NE_SEGFLAGS_EXECUTEONLY 0x0080
133 #define NE_SEGFLAGS_READONLY    0x0080
134 #define NE_SEGFLAGS_RELOC_DATA  0x0100
135 #define NE_SEGFLAGS_SELFLOAD    0x0800
136 #define NE_SEGFLAGS_DISCARDABLE 0x1000
137 #define NE_SEGFLAGS_32BIT       0x2000
138
139 /*
140  * Resource table structures.
141  */
142 typedef struct
143 {
144     WORD     offset;
145     WORD     length;
146     WORD     flags;
147     WORD     id;
148     HANDLE16 handle;
149     WORD     usage;
150 } NE_NAMEINFO;
151
152 typedef struct
153 {
154     WORD        type_id;   /* Type identifier */
155     WORD        count;     /* Number of resources of this type */
156     FARPROC16   resloader; /* SetResourceHandler() */
157     /*
158      * Name info array.
159      */
160 } NE_TYPEINFO;
161
162 #define NE_RSCTYPE_CURSOR         0x8001
163 #define NE_RSCTYPE_BITMAP         0x8002
164 #define NE_RSCTYPE_ICON           0x8003
165 #define NE_RSCTYPE_MENU           0x8004
166 #define NE_RSCTYPE_DIALOG         0x8005
167 #define NE_RSCTYPE_STRING         0x8006
168 #define NE_RSCTYPE_FONTDIR        0x8007
169 #define NE_RSCTYPE_FONT           0x8008
170 #define NE_RSCTYPE_ACCELERATOR    0x8009
171 #define NE_RSCTYPE_RCDATA         0x800a
172 #define NE_RSCTYPE_GROUP_CURSOR   0x800c
173 #define NE_RSCTYPE_GROUP_ICON     0x800e
174
175
176 #define __AHSHIFT  3  /* don't change! */
177 #define __AHINCR   (1 << __AHSHIFT)
178
179 /* undocumented functions */
180 WORD        WINAPI AllocCStoDSAlias16(WORD);
181 WORD        WINAPI AllocDStoCSAlias16(WORD);
182 HGLOBAL16   WINAPI AllocResource16(HINSTANCE16,HRSRC16,DWORD);
183 WORD        WINAPI AllocSelector16(WORD);
184 WORD        WINAPI AllocSelectorArray16(WORD);
185 VOID        WINAPI DirectedYield16(HTASK16);
186 HGLOBAL16   WINAPI DirectResAlloc16(HINSTANCE16,WORD,UINT16);
187 HANDLE16    WINAPI FarGetOwner16(HGLOBAL16);
188 VOID        WINAPI FarSetOwner16(HGLOBAL16,HANDLE16);
189 FARPROC16   WINAPI FileCDR16(FARPROC16);
190 WORD        WINAPI FreeSelector16(WORD);
191 HANDLE16    WINAPI GetAtomHandle16(ATOM);
192 HANDLE16    WINAPI GetCodeHandle16(FARPROC16);
193 BOOL16      WINAPI GetCodeInfo16(FARPROC16,SEGINFO*);
194 DWORD       WINAPI GetCurrentPDB16(void);
195 HTASK16     WINAPI GetCurrentTask(void);
196 SEGPTR      WINAPI GetDOSEnvironment16(void);
197 HMODULE16   WINAPI GetExePtr(HANDLE16);
198 WORD        WINAPI GetExeVersion16(void);
199 WORD        WINAPI GetExpWinVer16(HMODULE16);
200 HQUEUE16    WINAPI GetFastQueue16(void);
201 DWORD       WINAPI GetHeapSpaces16(HMODULE16);
202 INT16       WINAPI GetInstanceData16(HINSTANCE16,WORD,INT16);
203 BOOL16      WINAPI GetModuleName16(HINSTANCE16,LPSTR,INT16);
204 INT16       WINAPI GetModuleUsage16(HINSTANCE16);
205 UINT16      WINAPI GetNumTasks16(void);
206 SEGPTR      WINAPI GetpWin16Lock16(void);
207 DWORD       WINAPI GetSelectorLimit16(WORD);
208 FARPROC16   WINAPI GetSetKernelDOSProc16(FARPROC16 DosProc);
209 HINSTANCE16 WINAPI GetTaskDS16(void);
210 HQUEUE16    WINAPI GetTaskQueue16(HTASK16);
211 HQUEUE16    WINAPI GetThreadQueue16(DWORD);
212 DWORD       WINAPI GetWinFlags16(void);
213 DWORD       WINAPI GlobalDOSAlloc16(DWORD);
214 WORD        WINAPI GlobalDOSFree16(WORD);
215 void        WINAPI GlobalFreeAll16(HGLOBAL16);
216 DWORD       WINAPI GlobalHandleNoRIP16(WORD);
217 WORD        WINAPI GlobalHandleToSel16(HGLOBAL16);
218 HGLOBAL16   WINAPI GlobalLRUNewest16(HGLOBAL16);
219 HGLOBAL16   WINAPI GlobalLRUOldest16(HGLOBAL16);
220 VOID        WINAPI GlobalNotify16(FARPROC16);
221 WORD        WINAPI GlobalPageLock16(HGLOBAL16);
222 WORD        WINAPI GlobalPageUnlock16(HGLOBAL16);
223 BOOL16      WINAPI IsSharedSelector16(HANDLE16);
224 BOOL16      WINAPI IsTask16(HTASK16);
225 HTASK16     WINAPI IsTaskLocked16(void);
226 DWORD       WINAPI K32WOWCallback16(DWORD,DWORD);
227 BOOL        WINAPI K32WOWCallback16Ex(DWORD,DWORD,DWORD,LPVOID,LPDWORD);
228 VOID        WINAPI K32WOWDirectedYield16(WORD);
229 BOOL        WINAPI K32WOWGetDescriptor(SEGPTR,LPLDT_ENTRY);
230 LPVOID      WINAPI K32WOWGetVDMPointer(DWORD,DWORD,BOOL);
231 LPVOID      WINAPI K32WOWGetVDMPointerFix(DWORD,DWORD,BOOL);
232 VOID        WINAPI K32WOWGetVDMPointerUnfix(DWORD);
233 WORD        WINAPI K32WOWGlobalAlloc16(WORD,DWORD);
234 DWORD       WINAPI K32WOWGlobalAllocLock16(WORD,DWORD,WORD*);
235 WORD        WINAPI K32WOWGlobalFree16(WORD);
236 SEGPTR      WINAPI K32WOWGlobalLock16(HGLOBAL16);
237 DWORD       WINAPI K32WOWGlobalLockSize16(WORD,PDWORD);
238 BOOL        WINAPI K32WOWGlobalUnlock16(WORD);
239 WORD        WINAPI K32WOWGlobalUnlockFree16(DWORD);
240 VOID        WINAPI K32WOWYield16(void);
241 VOID        WINAPI LogError16(UINT16, LPVOID);
242 VOID        WINAPI LogParamError16(UINT16,FARPROC16,LPVOID);
243 WORD        WINAPI LocalCountFree16(void);
244 WORD        WINAPI LocalHandleDelta16(WORD);
245 WORD        WINAPI LocalHeapSize16(void);
246 BOOL16      WINAPI LocalInit16(HANDLE16,WORD,WORD);
247 FARPROC16   WINAPI LocalNotify16(FARPROC16);
248 HTASK16     WINAPI LockCurrentTask16(BOOL16);
249 VOID        WINAPI OldYield16(void);
250 VOID        WINAPI WIN32_OldYield16(void);
251 VOID        WINAPI PostEvent16(HTASK16);
252 WORD        WINAPI PrestoChangoSelector16(WORD,WORD);
253 WORD        WINAPI SelectorAccessRights16(WORD,WORD,WORD);
254 void        WINAPI SetFastQueue16(DWORD,HQUEUE16);
255 VOID        WINAPI SetPriority16(HTASK16,INT16);
256 FARPROC16   WINAPI SetResourceHandler16(HINSTANCE16,LPCSTR,FARPROC16);
257 WORD        WINAPI SetSelectorLimit16(WORD,DWORD);
258 HQUEUE16    WINAPI SetTaskQueue16(HTASK16,HQUEUE16);
259 HQUEUE16    WINAPI SetThreadQueue16(DWORD,HQUEUE16);
260 VOID        WINAPI SwitchStackTo16(WORD,WORD,WORD);
261 BOOL16      WINAPI WaitEvent16(HTASK16);
262 VOID        WINAPI WriteOutProfiles16(void);
263 VOID        WINAPI hmemcpy16(LPVOID,LPCVOID,LONG);
264 VOID        WINAPI _CreateSysLevel(SYSLEVEL*,INT);
265 VOID        WINAPI _EnterWin16Lock(void);
266 VOID        WINAPI _LeaveWin16Lock(void);
267
268
269 INT16       WINAPI AccessResource16(HINSTANCE16,HRSRC16);
270 ATOM        WINAPI AddAtom16(LPCSTR);
271 UINT16      WINAPI CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
272 BOOL16      WINAPI CreateDirectory16(LPCSTR,LPVOID);
273 BOOL16      WINAPI DefineHandleTable16(WORD);
274 ATOM        WINAPI DeleteAtom16(ATOM);
275 BOOL16      WINAPI DeleteFile16(LPCSTR);
276 void        WINAPI ExitKernel16(void);
277 void        WINAPI FatalAppExit16(UINT16,LPCSTR);
278 ATOM        WINAPI FindAtom16(LPCSTR);
279 BOOL16      WINAPI FindClose16(HANDLE16);
280 VOID        WINAPI FreeLibrary16(HINSTANCE16);
281 HANDLE16    WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA);
282 BOOL16      WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA);
283 HRSRC16     WINAPI FindResource16(HINSTANCE16,LPCSTR,LPCSTR);
284 BOOL16      WINAPI FreeModule16(HMODULE16);
285 void        WINAPI FreeProcInstance16(FARPROC16);
286 BOOL16      WINAPI FreeResource16(HGLOBAL16);
287 UINT16      WINAPI GetAtomName16(ATOM,LPSTR,INT16);
288 UINT16      WINAPI GetCurrentDirectory16(UINT16,LPSTR);
289 BOOL16      WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
290 UINT16      WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */
291 INT16       WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16);
292 DWORD       WINAPI GetFileAttributes16(LPCSTR);
293 DWORD       WINAPI GetFreeSpace16(UINT16);
294 INT16       WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
295 HMODULE16   WINAPI GetModuleHandle16(LPCSTR);
296 UINT16      WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
297 INT16       WINAPI GetPrivateProfileSection16(LPCSTR,LPSTR,UINT16,LPCSTR);
298 WORD        WINAPI GetPrivateProfileSectionNames16(LPSTR,UINT16,LPCSTR);
299 INT16       WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16,LPCSTR);
300 BOOL16      WINAPI GetPrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
301 FARPROC16   WINAPI GetProcAddress16(HMODULE16,LPCSTR);
302 UINT16      WINAPI GetProfileInt16(LPCSTR,LPCSTR,INT16);
303 INT16       WINAPI GetProfileSection16(LPCSTR,LPSTR,UINT16);
304 WORD        WINAPI GetProfileSectionNames16(LPSTR,WORD);
305 INT16       WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16);
306 DWORD       WINAPI GetSelectorBase(WORD);
307 BOOL16      WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
308 UINT16      WINAPI GetSystemDirectory16(LPSTR,UINT16);
309 UINT16      WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
310 LONG        WINAPI GetVersion16(void);
311 BOOL16      WINAPI GetVersionEx16(OSVERSIONINFO16*);
312 BOOL16      WINAPI GetWinDebugInfo16(LPWINDEBUGINFO16,UINT16);
313 UINT16      WINAPI GetWindowsDirectory16(LPSTR,UINT16);
314 HGLOBAL16   WINAPI GlobalAlloc16(UINT16,DWORD);
315 DWORD       WINAPI GlobalCompact16(DWORD);
316 LPVOID      WINAPI GlobalLock16(HGLOBAL16);
317 WORD        WINAPI GlobalFix16(HGLOBAL16);
318 UINT16      WINAPI GlobalFlags16(HGLOBAL16);
319 HGLOBAL16   WINAPI GlobalFree16(HGLOBAL16);
320 DWORD       WINAPI GlobalHandle16(WORD);
321 HGLOBAL16   WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
322 DWORD       WINAPI GlobalSize16(HGLOBAL16);
323 VOID        WINAPI GlobalUnfix16(HGLOBAL16);
324 BOOL16      WINAPI GlobalUnlock16(HGLOBAL16);
325 BOOL16      WINAPI GlobalUnWire16(HGLOBAL16);
326 SEGPTR      WINAPI GlobalWire16(HGLOBAL16);
327 WORD        WINAPI InitAtomTable16(WORD);
328 BOOL16      WINAPI IsBadCodePtr16(SEGPTR);
329 BOOL16      WINAPI IsBadHugeReadPtr16(SEGPTR,DWORD);
330 BOOL16      WINAPI IsBadHugeWritePtr16(SEGPTR,DWORD);
331 BOOL16      WINAPI IsBadReadPtr16(SEGPTR,UINT16);
332 BOOL16      WINAPI IsBadStringPtr16(SEGPTR,UINT16);
333 BOOL16      WINAPI IsBadWritePtr16(SEGPTR,UINT16);
334 BOOL16      WINAPI IsDBCSLeadByte16(BYTE);
335 HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
336 HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
337 HGLOBAL16   WINAPI LoadResource16(HINSTANCE16,HRSRC16);
338 HLOCAL16    WINAPI LocalAlloc16(UINT16,WORD);
339 UINT16      WINAPI LocalCompact16(UINT16);
340 UINT16      WINAPI LocalFlags16(HLOCAL16);
341 HLOCAL16    WINAPI LocalFree16(HLOCAL16);
342 HLOCAL16    WINAPI LocalHandle16(WORD);
343 SEGPTR      WINAPI LocalLock16(HLOCAL16);
344 HLOCAL16    WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16);
345 UINT16      WINAPI LocalShrink16(HGLOBAL16,UINT16);
346 UINT16      WINAPI LocalSize16(HLOCAL16);
347 BOOL16      WINAPI LocalUnlock16(HLOCAL16);
348 LPVOID      WINAPI LockResource16(HGLOBAL16);
349 HGLOBAL16   WINAPI LockSegment16(HGLOBAL16);
350 FARPROC16   WINAPI MakeProcInstance16(FARPROC16,HANDLE16);
351 HFILE16     WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
352 DWORD       WINAPI RegCloseKey16(HKEY);
353 DWORD       WINAPI RegCreateKey16(HKEY,LPCSTR,PHKEY);
354 DWORD       WINAPI RegDeleteKey16(HKEY,LPCSTR);
355 DWORD       WINAPI RegDeleteValue16(HKEY,LPSTR);
356 DWORD       WINAPI RegEnumKey16(HKEY,DWORD,LPSTR,DWORD);
357 DWORD       WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
358 DWORD       WINAPI RegOpenKey16(HKEY,LPCSTR,PHKEY);
359 DWORD       WINAPI RegQueryValue16(HKEY,LPCSTR,LPSTR,LPDWORD);
360 DWORD       WINAPI RegQueryValueEx16(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
361 DWORD       WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
362 DWORD       WINAPI RegSetValueEx16(HKEY,LPCSTR,DWORD,DWORD,CONST BYTE*,DWORD);
363 BOOL16      WINAPI RemoveDirectory16(LPCSTR);
364 BOOL16      WINAPI SetCurrentDirectory16(LPCSTR);
365 UINT16      WINAPI SetErrorMode16(UINT16);
366 BOOL16      WINAPI SetFileAttributes16(LPCSTR,DWORD);
367 UINT16      WINAPI SetHandleCount16(UINT16);
368 WORD        WINAPI SetSelectorBase(WORD,DWORD);
369 LONG        WINAPI SetSwapAreaSize16(WORD);
370 BOOL16      WINAPI SetWinDebugInfo16(LPWINDEBUGINFO16);
371 DWORD       WINAPI SizeofResource16(HMODULE16,HRSRC16);
372 void        WINAPI UnlockSegment16(HGLOBAL16);
373 BOOL16      WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
374 BOOL16      WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR);
375 /* Yield16 will only be available from kernel module, use K32WOWYield instead */
376 VOID        WINAPI Yield16(void);
377 SEGPTR      WINAPI lstrcat16(SEGPTR,LPCSTR);
378 SEGPTR      WINAPI lstrcatn16(SEGPTR,LPCSTR,INT16);
379 SEGPTR      WINAPI lstrcpy16(SEGPTR,LPCSTR);
380 SEGPTR      WINAPI lstrcpyn16(SEGPTR,LPCSTR,INT16);
381 INT16       WINAPI lstrlen16(LPCSTR);
382 HINSTANCE16 WINAPI WinExec16(LPCSTR,UINT16);
383 LONG        WINAPI _hread16(HFILE16,LPVOID,LONG);
384 LONG        WINAPI _hwrite16(HFILE16,LPCSTR,LONG);
385 HFILE16     WINAPI _lcreat16(LPCSTR,INT16);
386 HFILE16     WINAPI _lclose16(HFILE16);
387 LONG        WINAPI _llseek16(HFILE16,LONG,INT16);
388 HFILE16     WINAPI _lopen16(LPCSTR,INT16);
389 UINT16      WINAPI _lread16(HFILE16,LPVOID,UINT16);
390 UINT16      WINAPI _lwrite16(HFILE16,LPCSTR,UINT16);
391 BOOL16      WINAPI WritePrivateProfileSection16(LPCSTR,LPCSTR,LPCSTR);
392 BOOL16      WINAPI WritePrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
393 BOOL16      WINAPI WriteProfileSection16(LPCSTR,LPCSTR);
394
395 /* Wine-specific functions */
396 LONG        WINAPI wine_call_to_16( FARPROC16 target, INT nArgs );
397 void        WINAPI wine_call_to_16_regs_short( CONTEXT86 *context, INT nArgs );
398 void        WINAPI wine_call_to_16_regs_long ( CONTEXT86 *context, INT nArgs );
399
400 /* Some optimizations */
401 extern inline LPVOID WINAPI MapSL( SEGPTR segptr )
402 {
403     return (char *)wine_ldt_copy.base[SELECTOROF(segptr) >> __AHSHIFT] + OFFSETOF(segptr);
404 }
405
406 #endif /* __WINE_WINE_WINBASE16_H */