Release 4.20.
[wine.git] / include / wine / winbase16.h
blobd4a5096ee11b29b90a595223ed8dc156420c1e2d
1 /*
2 * Copyright (C) the Wine project
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.
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.
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_WINE_WINBASE16_H
20 #define __WINE_WINE_WINBASE16_H
22 #include <stdarg.h>
23 #include <windef.h>
24 #include <winbase.h>
25 #include <winnls.h>
26 #include <wine/windef16.h>
28 #include <pshpack1.h>
30 /* Process database (i.e. a normal DOS PSP) */
31 typedef struct
33 WORD int20; /* 00 int 20h instruction */
34 WORD nextParagraph; /* 02 Segment of next paragraph */
35 BYTE reserved1;
36 BYTE dispatcher[5]; /* 05 Long call to DOS */
37 FARPROC16 savedint22; /* 0a Saved int 22h handler */
38 FARPROC16 savedint23; /* 0e Saved int 23h handler */
39 FARPROC16 savedint24; /* 12 Saved int 24h handler */
40 WORD parentPSP; /* 16 Selector of parent PSP */
41 BYTE fileHandles[20]; /* 18 Open file handles */
42 HANDLE16 environment; /* 2c Selector of environment */
43 DWORD saveStack; /* 2e SS:SP on last int21 call */
44 WORD nbFiles; /* 32 Number of file handles */
45 SEGPTR fileHandlesPtr; /* 34 Pointer to file handle table */
46 HANDLE16 hFileHandles; /* 38 Handle to fileHandlesPtr */
47 WORD reserved3[17];
48 BYTE fcb1[16]; /* 5c First FCB */
49 BYTE fcb2[20]; /* 6c Second FCB */
50 BYTE cmdLine[128]; /* 80 Command-line (first byte is len)*/
51 BYTE padding[16]; /* Some apps access beyond the end of the cmd line */
52 } PDB16;
54 /* Task database. See 'Windows Internals' p. 226.
55 * Note that 16-bit OLE 2 libs like to read it directly
56 * so we have to keep entry offsets as they are.
58 typedef struct _TDB
60 HTASK16 hNext; /* 00 Selector of next TDB */
61 DWORD ss_sp; /* 02 Stack pointer of task */
62 WORD nEvents; /* 06 Events for this task */
63 INT16 priority; /* 08 Task priority, -32..15 */
64 WORD unused1; /* 0a */
65 HTASK16 hSelf; /* 0c Selector of this TDB */
66 HANDLE16 hPrevInstance; /* 0e Previous instance of module */
67 DWORD unused2; /* 10 */
68 WORD ctrlword8087; /* 14 80x87 control word */
69 WORD flags; /* 16 Task flags */
70 UINT16 error_mode; /* 18 Error mode (see SetErrorMode)*/
71 WORD version; /* 1a Expected Windows version */
72 HANDLE16 hInstance; /* 1c Instance handle for task */
73 HMODULE16 hModule; /* 1e Module handle */
74 HQUEUE16 hQueue; /* 20 Selector of task queue */
75 HTASK16 hParent; /* 22 Selector of TDB of parent */
76 WORD signal_flags; /* 24 Flags for signal handler */
77 FARPROC16 sighandler; /* 26 Signal handler */
78 FARPROC16 userhandler; /* 2a USER signal handler */
79 FARPROC16 discardhandler; /* 2e Handler for GlobalNotify() */
80 FARPROC16 int0; /* 32 int 0 (divide by 0) handler */
81 FARPROC16 int2; /* 36 int 2 (NMI) handler */
82 FARPROC16 int4; /* 3a int 4 (INTO) handler */
83 FARPROC16 int6; /* 3e int 6 (invalid opc) handler */
84 FARPROC16 int7; /* 42 int 7 (coprocessor) handler */
85 FARPROC16 int3e; /* 46 int 3e (80x87 emu) handler */
86 FARPROC16 int75; /* 4a int 75 (80x87 error) handler */
87 DWORD compat_flags; /* 4e Compatibility flags */
88 BYTE unused4[2]; /* 52 */
89 struct _TEB *teb; /* 54 Pointer to thread database */
90 BYTE unused5[8]; /* 58 */
91 HANDLE16 hPDB; /* 60 Selector of PDB (i.e. PSP) */
92 SEGPTR dta; /* 62 Current DTA */
93 BYTE curdrive; /* 66 Current drive */
94 CHAR curdir[65]; /* 67 Current directory */
95 WORD nCmdShow; /* a8 cmdShow parameter to WinMain */
96 HTASK16 hYieldTo; /* aa Next task to schedule */
97 DWORD dlls_to_init; /* ac Ptr to DLLs to initialize */
98 HANDLE16 hCSAlias; /* b0 Code segment for this TDB */
99 WORD thunks[8*4]; /* b2 Make proc instance thunks */
100 CHAR module_name[8]; /* f2 Module name for task */
101 WORD magic; /* fa TDB signature */
102 HANDLE hEvent; /* fc scheduler event handle */
103 PDB16 pdb; /* 100 PDB for this task */
104 } TDB;
106 /* TDB flags */
107 #define TDBF_WINOLDAP 0x0001
108 #define TDBF_OS2APP 0x0008
109 #define TDBF_WIN32 0x0010
111 /* Windows 3.1 USER signals */
112 #define USIG16_TERMINATION 0x0020
113 #define USIG16_DLL_LOAD 0x0040
114 #define USIG16_DLL_UNLOAD 0x0080
115 #define USIG16_GPF 0x0666
117 typedef struct _SEGINFO {
118 UINT16 offSegment;
119 UINT16 cbSegment;
120 UINT16 flags;
121 UINT16 cbAlloc;
122 HGLOBAL16 h;
123 UINT16 alignShift;
124 UINT16 reserved[2];
125 } SEGINFO;
127 /* GetWinFlags */
129 #define WF_PMODE 0x0001
130 #define WF_CPU286 0x0002
131 #define WF_CPU386 0x0004
132 #define WF_CPU486 0x0008
133 #define WF_STANDARD 0x0010
134 #define WF_WIN286 0x0010
135 #define WF_ENHANCED 0x0020
136 #define WF_WIN386 0x0020
137 #define WF_CPU086 0x0040
138 #define WF_CPU186 0x0080
139 #define WF_LARGEFRAME 0x0100
140 #define WF_SMALLFRAME 0x0200
141 #define WF_80x87 0x0400
142 #define WF_PAGING 0x0800
143 #define WF_HASCPUID 0x2000
144 #define WF_WIN32WOW 0x4000 /* undoc */
145 #define WF_WLO 0x8000
147 /* Parameters for LoadModule() */
148 typedef struct
150 HGLOBAL16 hEnvironment; /* Environment segment */
151 SEGPTR cmdLine; /* Command-line */
152 SEGPTR showCmd; /* Code for ShowWindow() */
153 SEGPTR reserved;
154 } LOADPARAMS16;
156 /* Debugging support (DEBUG SYSTEM ONLY) */
157 typedef struct
159 WORD flags;
160 DWORD dwOptions;
161 DWORD dwFilter;
162 CHAR achAllocModule[8];
163 DWORD dwAllocBreak;
164 DWORD dwAllocCount;
165 } WINDEBUGINFO16, *LPWINDEBUGINFO16;
167 /* definitions specific to Wine 16-bit relaying support */
169 /* 32-bit stack layout after __wine_call_to_16() */
170 typedef struct _STACK32FRAME
172 DWORD restore_addr; /* 00 return address for restoring code selector */
173 DWORD codeselector; /* 04 code selector to restore */
174 EXCEPTION_REGISTRATION_RECORD frame; /* 08 Exception frame */
175 SEGPTR frame16; /* 10 16-bit frame from last CallFrom16() */
176 DWORD edi; /* 14 saved registers */
177 DWORD esi; /* 18 */
178 DWORD ebx; /* 1c */
179 DWORD ebp; /* 20 saved 32-bit frame pointer */
180 DWORD retaddr; /* 24 return address */
181 DWORD target; /* 28 target address / CONTEXT86 pointer */
182 DWORD nb_args; /* 2c number of 16-bit argument bytes */
183 } STACK32FRAME;
185 /* 16-bit stack layout after __wine_call_from_16() */
186 typedef struct _STACK16FRAME
188 STACK32FRAME *frame32; /* 00 32-bit frame from last CallTo16() */
189 DWORD edx; /* 04 saved registers */
190 DWORD ecx; /* 08 */
191 DWORD ebp; /* 0c */
192 WORD ds; /* 10 */
193 WORD es; /* 12 */
194 WORD fs; /* 14 */
195 WORD gs; /* 16 */
196 DWORD callfrom_ip; /* 18 callfrom tail IP */
197 DWORD module_cs; /* 1c module code segment */
198 DWORD relay; /* 20 relay function address */
199 WORD entry_ip; /* 22 entry point IP */
200 DWORD entry_point; /* 26 API entry point to call, reused as mutex count */
201 WORD bp; /* 2a 16-bit stack frame chain */
202 WORD ip; /* 2c return address */
203 WORD cs; /* 2e */
204 } STACK16FRAME;
206 /* argument type flags for relay debugging */
207 enum arg_types
209 ARG_NONE = 0, /* indicates end of arg list */
210 ARG_WORD, /* unsigned word */
211 ARG_SWORD, /* signed word */
212 ARG_LONG, /* long or segmented pointer */
213 ARG_PTR, /* linear pointer */
214 ARG_STR, /* linear pointer to null-terminated string */
215 ARG_SEGSTR, /* segmented pointer to null-terminated string */
216 ARG_VARARG /* start of varargs */
219 #define INVALID_HANDLE_VALUE16 ((HANDLE16) -1)
220 #define INFINITE16 0xFFFF
222 typedef struct {
223 DWORD dwOSVersionInfoSize;
224 DWORD dwMajorVersion;
225 DWORD dwMinorVersion;
226 DWORD dwBuildNumber;
227 DWORD dwPlatformId;
228 CHAR szCSDVersion[128];
229 } OSVERSIONINFO16;
233 * NE Header FORMAT FLAGS
235 #define NE_FFLAGS_SINGLEDATA 0x0001
236 #define NE_FFLAGS_MULTIPLEDATA 0x0002
237 #define NE_FFLAGS_WIN32 0x0010
238 #define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */
239 #define NE_FFLAGS_FRAMEBUF 0x0100 /* OS/2 fullscreen app */
240 #define NE_FFLAGS_CONSOLE 0x0200 /* OS/2 console app */
241 #define NE_FFLAGS_GUI 0x0300 /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */
242 #define NE_FFLAGS_SELFLOAD 0x0800
243 #define NE_FFLAGS_LINKERROR 0x2000
244 #define NE_FFLAGS_CALLWEP 0x4000
245 #define NE_FFLAGS_LIBMODULE 0x8000
248 * NE Header OPERATING SYSTEM
250 #define NE_OSFLAGS_UNKNOWN 0x00
251 #define NE_OSFLAGS_OS2 0x01
252 #define NE_OSFLAGS_WINDOWS 0x02
255 * NE Header ADDITIONAL FLAGS
257 #define NE_AFLAGS_WIN2_PROTMODE 0x02
258 #define NE_AFLAGS_WIN2_PROFONTS 0x04
259 #define NE_AFLAGS_FASTLOAD 0x08
262 * Segment Flags
264 #define NE_SEGFLAGS_DATA 0x0001
265 #define NE_SEGFLAGS_ALLOCATED 0x0002
266 #define NE_SEGFLAGS_LOADED 0x0004
267 #define NE_SEGFLAGS_ITERATED 0x0008
268 #define NE_SEGFLAGS_MOVEABLE 0x0010
269 #define NE_SEGFLAGS_SHAREABLE 0x0020
270 #define NE_SEGFLAGS_PRELOAD 0x0040
271 #define NE_SEGFLAGS_EXECUTEONLY 0x0080
272 #define NE_SEGFLAGS_READONLY 0x0080
273 #define NE_SEGFLAGS_RELOC_DATA 0x0100
274 #define NE_SEGFLAGS_SELFLOAD 0x0800
275 #define NE_SEGFLAGS_DISCARDABLE 0x1000
276 #define NE_SEGFLAGS_32BIT 0x2000
279 * Resource table structures.
281 typedef struct
283 WORD offset;
284 WORD length;
285 WORD flags;
286 WORD id;
287 HANDLE16 handle;
288 WORD usage;
289 } NE_NAMEINFO;
291 typedef struct
293 WORD type_id; /* Type identifier */
294 WORD count; /* Number of resources of this type */
295 FARPROC16 resloader; /* SetResourceHandler() */
297 * Name info array.
299 } NE_TYPEINFO;
301 #define NE_RSCTYPE_CURSOR 0x8001
302 #define NE_RSCTYPE_BITMAP 0x8002
303 #define NE_RSCTYPE_ICON 0x8003
304 #define NE_RSCTYPE_MENU 0x8004
305 #define NE_RSCTYPE_DIALOG 0x8005
306 #define NE_RSCTYPE_STRING 0x8006
307 #define NE_RSCTYPE_FONTDIR 0x8007
308 #define NE_RSCTYPE_FONT 0x8008
309 #define NE_RSCTYPE_ACCELERATOR 0x8009
310 #define NE_RSCTYPE_RCDATA 0x800a
311 #define NE_RSCTYPE_GROUP_CURSOR 0x800c
312 #define NE_RSCTYPE_GROUP_ICON 0x800e
313 #define NE_RSCTYPE_SCALABLE_FONTPATH 0x80cc /* Resource found in .fot files */
315 #include <poppack.h>
317 #define __AHSHIFT 3 /* don't change! */
318 #define __AHINCR (1 << __AHSHIFT)
320 /* undocumented functions */
322 typedef struct tagSYSLEVEL
324 CRITICAL_SECTION crst;
325 INT level;
326 } SYSLEVEL;
328 /* [GS]etProcessDword offsets */
329 #define GPD_APP_COMPAT_FLAGS (-56)
330 #define GPD_LOAD_DONE_EVENT (-52)
331 #define GPD_HINSTANCE16 (-48)
332 #define GPD_WINDOWS_VERSION (-44)
333 #define GPD_THDB (-40)
334 #define GPD_PDB (-36)
335 #define GPD_STARTF_SHELLDATA (-32)
336 #define GPD_STARTF_HOTKEY (-28)
337 #define GPD_STARTF_SHOWWINDOW (-24)
338 #define GPD_STARTF_SIZE (-20)
339 #define GPD_STARTF_POSITION (-16)
340 #define GPD_STARTF_FLAGS (-12)
341 #define GPD_PARENT (- 8)
342 #define GPD_FLAGS (- 4)
343 #define GPD_USERDATA ( 0)
345 WORD WINAPI AllocCStoDSAlias16(WORD);
346 WORD WINAPI AllocDStoCSAlias16(WORD);
347 HGLOBAL16 WINAPI AllocResource16(HINSTANCE16,HRSRC16,DWORD);
348 WORD WINAPI AllocSelector16(WORD);
349 WORD WINAPI AllocSelectorArray16(WORD);
350 VOID WINAPI DirectedYield16(HTASK16);
351 HGLOBAL16 WINAPI DirectResAlloc16(HINSTANCE16,WORD,UINT16);
352 void WINAPI DisposeLZ32Handle(HANDLE);
353 HANDLE WINAPI DosFileHandleToWin32Handle(HFILE);
354 HANDLE16 WINAPI FarGetOwner16(HGLOBAL16);
355 VOID WINAPI FarSetOwner16(HGLOBAL16,HANDLE16);
356 FARPROC16 WINAPI FileCDR16(FARPROC16);
357 WORD WINAPI FreeSelector16(WORD);
358 HANDLE16 WINAPI GetAtomHandle16(ATOM);
359 DWORD WINAPI GetCodeHandle16(FARPROC16);
360 BOOL16 WINAPI GetCodeInfo16(FARPROC16,SEGINFO*);
361 DWORD WINAPI GetCurrentPDB16(void);
362 HTASK16 WINAPI GetCurrentTask(void);
363 SEGPTR WINAPI GetDOSEnvironment16(void);
364 HMODULE16 WINAPI GetExePtr(HANDLE16);
365 WORD WINAPI GetExeVersion16(void);
366 WORD WINAPI GetExpWinVer16(HMODULE16);
367 HQUEUE16 WINAPI GetFastQueue16(void);
368 DWORD WINAPI GetHeapSpaces16(HMODULE16);
369 INT16 WINAPI GetInstanceData16(HINSTANCE16,WORD,INT16);
370 BOOL16 WINAPI GetModuleName16(HINSTANCE16,LPSTR,INT16);
371 INT16 WINAPI GetModuleUsage16(HINSTANCE16);
372 UINT16 WINAPI GetNumTasks16(void);
373 VOID WINAPI GetpWin16Lock(SYSLEVEL**);
374 SEGPTR WINAPI GetpWin16Lock16(void);
375 DWORD WINAPI GetProcessDword(DWORD,INT);
376 DWORD WINAPI GetSelectorLimit16(WORD);
377 FARPROC16 WINAPI GetSetKernelDOSProc16(FARPROC16 DosProc);
378 HINSTANCE16 WINAPI GetTaskDS16(void);
379 HQUEUE16 WINAPI GetTaskQueue16(HTASK16);
380 HQUEUE16 WINAPI GetThreadQueue16(DWORD);
381 DWORD WINAPI GetWinFlags16(void);
382 DWORD WINAPI GlobalDOSAlloc16(DWORD);
383 WORD WINAPI GlobalDOSFree16(WORD);
384 void WINAPI GlobalFreeAll16(HGLOBAL16);
385 DWORD WINAPI GlobalHandleNoRIP16(WORD);
386 WORD WINAPI GlobalHandleToSel16(HGLOBAL16);
387 HGLOBAL16 WINAPI GlobalLRUNewest16(HGLOBAL16);
388 HGLOBAL16 WINAPI GlobalLRUOldest16(HGLOBAL16);
389 VOID WINAPI GlobalNotify16(FARPROC16);
390 WORD WINAPI GlobalPageLock16(HGLOBAL16);
391 WORD WINAPI GlobalPageUnlock16(HGLOBAL16);
392 SEGPTR WINAPI HasGPHandler16(SEGPTR);
393 BOOL16 WINAPI IsSharedSelector16(HANDLE16);
394 BOOL16 WINAPI IsTask16(HTASK16);
395 HTASK16 WINAPI IsTaskLocked16(void);
396 VOID WINAPI LogError16(UINT16, LPVOID);
397 VOID WINAPI LogParamError16(UINT16,FARPROC16,LPVOID);
398 WORD WINAPI LocalCountFree16(void);
399 WORD WINAPI LocalHandleDelta16(WORD);
400 WORD WINAPI LocalHeapSize16(void);
401 BOOL16 WINAPI LocalInit16(HANDLE16,WORD,WORD);
402 FARPROC16 WINAPI LocalNotify16(FARPROC16);
403 HTASK16 WINAPI LockCurrentTask16(BOOL16);
404 DWORD WINAPI MapLS(LPCVOID);
405 LPVOID WINAPI MapSL(DWORD);
406 VOID WINAPI OldYield16(void);
407 VOID WINAPI WIN32_OldYield16(void);
408 VOID WINAPI PostEvent16(HTASK16);
409 WORD WINAPI PrestoChangoSelector16(WORD,WORD);
410 VOID WINAPI ReleaseThunkLock(DWORD*);
411 VOID WINAPI RestoreThunkLock(DWORD);
412 WORD WINAPI SelectorAccessRights16(WORD,WORD,WORD);
413 void WINAPI SetFastQueue16(DWORD,HQUEUE16);
414 VOID WINAPI SetPriority16(HTASK16,INT16);
415 FARPROC16 WINAPI SetResourceHandler16(HINSTANCE16,LPCSTR,FARPROC16);
416 WORD WINAPI SetSelectorLimit16(WORD,DWORD);
417 HQUEUE16 WINAPI SetTaskQueue16(HTASK16,HQUEUE16);
418 HQUEUE16 WINAPI SetThreadQueue16(DWORD,HQUEUE16);
419 VOID WINAPI SwitchStackTo16(WORD,WORD,WORD);
420 VOID WINAPI UnMapLS(DWORD);
421 BOOL16 WINAPI WaitEvent16(HTASK16);
422 HFILE WINAPI Win32HandleToDosFileHandle(HANDLE);
423 VOID WINAPI WriteOutProfiles16(void);
424 VOID WINAPI hmemcpy16(LPVOID,LPCVOID,LONG);
425 VOID WINAPI _CheckNotSysLevel(SYSLEVEL *lock);
426 DWORD WINAPI _ConfirmSysLevel(SYSLEVEL*);
427 DWORD WINAPI _ConfirmWin16Lock(void);
428 VOID WINAPI _CreateSysLevel(SYSLEVEL*,INT);
429 VOID WINAPI _EnterSysLevel(SYSLEVEL*);
430 VOID WINAPI _EnterWin16Lock(void);
431 VOID WINAPI _LeaveSysLevel(SYSLEVEL*);
432 VOID WINAPI _LeaveWin16Lock(void);
435 INT16 WINAPI AccessResource16(HINSTANCE16,HRSRC16);
436 ATOM WINAPI AddAtom16(LPCSTR);
437 INT16 WINAPI CompareString16(LCID,DWORD,LPCSTR,INT16,LPCSTR,INT16);
438 BOOL16 WINAPI CreateDirectory16(LPCSTR,LPVOID);
439 BOOL16 WINAPI DefineHandleTable16(WORD);
440 ATOM WINAPI DeleteAtom16(ATOM);
441 BOOL16 WINAPI DeleteFile16(LPCSTR);
442 void WINAPI ExitKernel16(void);
443 void WINAPI FatalAppExit16(UINT16,LPCSTR);
444 ATOM WINAPI FindAtom16(LPCSTR);
445 BOOL16 WINAPI FindClose16(HANDLE16);
446 VOID WINAPI FreeLibrary16(HINSTANCE16);
447 HANDLE16 WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA);
448 BOOL16 WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA);
449 HRSRC16 WINAPI FindResource16(HINSTANCE16,LPCSTR,LPCSTR);
450 BOOL16 WINAPI FreeModule16(HMODULE16);
451 void WINAPI FreeProcInstance16(FARPROC16);
452 BOOL16 WINAPI FreeResource16(HGLOBAL16);
453 UINT16 WINAPI GetAtomName16(ATOM,LPSTR,INT16);
454 UINT16 WINAPI GetCurrentDirectory16(UINT16,LPSTR);
455 BOOL16 WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
456 UINT16 WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */
457 INT16 WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16);
458 DWORD WINAPI GetFileAttributes16(LPCSTR);
459 DWORD WINAPI GetFreeSpace16(UINT16);
460 INT16 WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
461 HMODULE16 WINAPI GetModuleHandle16(LPCSTR);
462 UINT16 WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
463 INT16 WINAPI GetPrivateProfileSection16(LPCSTR,LPSTR,UINT16,LPCSTR);
464 WORD WINAPI GetPrivateProfileSectionNames16(LPSTR,UINT16,LPCSTR);
465 INT16 WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16,LPCSTR);
466 BOOL16 WINAPI GetPrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
467 FARPROC16 WINAPI GetProcAddress16(HMODULE16,LPCSTR);
468 UINT16 WINAPI GetProfileInt16(LPCSTR,LPCSTR,INT16);
469 INT16 WINAPI GetProfileSection16(LPCSTR,LPSTR,UINT16);
470 WORD WINAPI GetProfileSectionNames16(LPSTR,WORD);
471 INT16 WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16);
472 DWORD WINAPI GetSelectorBase(WORD);
473 BOOL16 WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
474 UINT16 WINAPI GetSystemDirectory16(LPSTR,UINT16);
475 UINT16 WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
476 DWORD WINAPI GetVersion16(void);
477 BOOL16 WINAPI GetVersionEx16(OSVERSIONINFO16*);
478 BOOL16 WINAPI GetWinDebugInfo16(LPWINDEBUGINFO16,UINT16);
479 UINT16 WINAPI GetWindowsDirectory16(LPSTR,UINT16);
480 HGLOBAL16 WINAPI GlobalAlloc16(UINT16,DWORD);
481 DWORD WINAPI GlobalCompact16(DWORD);
482 LPVOID WINAPI GlobalLock16(HGLOBAL16);
483 WORD WINAPI GlobalFix16(HGLOBAL16);
484 UINT16 WINAPI GlobalFlags16(HGLOBAL16);
485 HGLOBAL16 WINAPI GlobalFree16(HGLOBAL16);
486 DWORD WINAPI GlobalHandle16(WORD);
487 HGLOBAL16 WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
488 DWORD WINAPI GlobalSize16(HGLOBAL16);
489 VOID WINAPI GlobalUnfix16(HGLOBAL16);
490 BOOL16 WINAPI GlobalUnlock16(HGLOBAL16);
491 BOOL16 WINAPI GlobalUnWire16(HGLOBAL16);
492 SEGPTR WINAPI GlobalWire16(HGLOBAL16);
493 WORD WINAPI InitAtomTable16(WORD);
494 void WINAPI InitTask16(CONTEXT*);
495 BOOL16 WINAPI IsBadCodePtr16(SEGPTR);
496 BOOL16 WINAPI IsBadHugeReadPtr16(SEGPTR,DWORD);
497 BOOL16 WINAPI IsBadHugeWritePtr16(SEGPTR,DWORD);
498 BOOL16 WINAPI IsBadReadPtr16(SEGPTR,UINT16);
499 BOOL16 WINAPI IsBadStringPtr16(SEGPTR,UINT16);
500 BOOL16 WINAPI IsBadWritePtr16(SEGPTR,UINT16);
501 BOOL16 WINAPI IsDBCSLeadByte16(BYTE);
502 HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
503 HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
504 HGLOBAL16 WINAPI LoadResource16(HINSTANCE16,HRSRC16);
505 HLOCAL16 WINAPI LocalAlloc16(UINT16,WORD);
506 UINT16 WINAPI LocalCompact16(UINT16);
507 UINT16 WINAPI LocalFlags16(HLOCAL16);
508 HLOCAL16 WINAPI LocalFree16(HLOCAL16);
509 HLOCAL16 WINAPI LocalHandle16(WORD);
510 SEGPTR WINAPI LocalLock16(HLOCAL16);
511 HLOCAL16 WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16);
512 UINT16 WINAPI LocalShrink16(HGLOBAL16,UINT16);
513 UINT16 WINAPI LocalSize16(HLOCAL16);
514 BOOL16 WINAPI LocalUnlock16(HLOCAL16);
515 LPVOID WINAPI LockResource16(HGLOBAL16);
516 HGLOBAL16 WINAPI LockSegment16(HGLOBAL16);
517 FARPROC16 WINAPI MakeProcInstance16(FARPROC16,HANDLE16);
518 HFILE16 WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
519 DWORD WINAPI RegCloseKey16(HKEY);
520 DWORD WINAPI RegCreateKey16(HKEY,LPCSTR,PHKEY);
521 DWORD WINAPI RegDeleteKey16(HKEY,LPCSTR);
522 DWORD WINAPI RegDeleteValue16(HKEY,LPSTR);
523 DWORD WINAPI RegEnumKey16(HKEY,DWORD,LPSTR,DWORD);
524 DWORD WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
525 DWORD WINAPI RegOpenKey16(HKEY,LPCSTR,PHKEY);
526 DWORD WINAPI RegQueryValue16(HKEY,LPCSTR,LPSTR,LPDWORD);
527 DWORD WINAPI RegQueryValueEx16(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
528 DWORD WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
529 DWORD WINAPI RegSetValueEx16(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD);
530 BOOL16 WINAPI RemoveDirectory16(LPCSTR);
531 BOOL16 WINAPI SetCurrentDirectory16(LPCSTR);
532 UINT16 WINAPI SetErrorMode16(UINT16);
533 BOOL16 WINAPI SetFileAttributes16(LPCSTR,DWORD);
534 UINT16 WINAPI SetHandleCount16(UINT16);
535 WORD WINAPI SetSelectorBase(WORD,DWORD);
536 LONG WINAPI SetSwapAreaSize16(WORD);
537 BOOL16 WINAPI SetWinDebugInfo16(LPWINDEBUGINFO16);
538 DWORD WINAPI SizeofResource16(HMODULE16,HRSRC16);
539 void WINAPI UnlockSegment16(HGLOBAL16);
540 BOOL16 WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
541 BOOL16 WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR);
542 /* Yield16 will only be available from kernel module, use WOWYield instead */
543 VOID WINAPI Yield16(void);
544 SEGPTR WINAPI lstrcat16(SEGPTR,LPCSTR);
545 SEGPTR WINAPI lstrcatn16(SEGPTR,LPCSTR,INT16);
546 SEGPTR WINAPI lstrcpy16(SEGPTR,LPCSTR);
547 SEGPTR WINAPI lstrcpyn16(SEGPTR,LPCSTR,INT16);
548 INT16 WINAPI lstrlen16(LPCSTR);
549 HINSTANCE16 WINAPI WinExec16(LPCSTR,UINT16);
550 LONG WINAPI _hread16(HFILE16,LPVOID,LONG);
551 LONG WINAPI _hwrite16(HFILE16,LPCSTR,LONG);
552 HFILE16 WINAPI _lcreat16(LPCSTR,INT16);
553 HFILE16 WINAPI _lclose16(HFILE16);
554 LONG WINAPI _llseek16(HFILE16,LONG,INT16);
555 HFILE16 WINAPI _lopen16(LPCSTR,INT16);
556 UINT16 WINAPI _lread16(HFILE16,LPVOID,UINT16);
557 UINT16 WINAPI _lwrite16(HFILE16,LPCSTR,UINT16);
558 BOOL16 WINAPI WritePrivateProfileSection16(LPCSTR,LPCSTR,LPCSTR);
559 BOOL16 WINAPI WritePrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
560 BOOL16 WINAPI WriteProfileSection16(LPCSTR,LPCSTR);
562 #endif /* __WINE_WINE_WINBASE16_H */