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