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 BYTE 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 BYTE 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;
170 #define INVALID_HANDLE_VALUE16 ((HANDLE16) -1)
171 #define INFINITE16 0xFFFF
174 DWORD dwOSVersionInfoSize;
175 DWORD dwMajorVersion;
176 DWORD dwMinorVersion;
179 CHAR szCSDVersion[128];
184 * NE Header FORMAT FLAGS
186 #define NE_FFLAGS_SINGLEDATA 0x0001
187 #define NE_FFLAGS_MULTIPLEDATA 0x0002
188 #define NE_FFLAGS_WIN32 0x0010
189 #define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */
190 #define NE_FFLAGS_FRAMEBUF 0x0100 /* OS/2 fullscreen app */
191 #define NE_FFLAGS_CONSOLE 0x0200 /* OS/2 console app */
192 #define NE_FFLAGS_GUI 0x0300 /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */
193 #define NE_FFLAGS_SELFLOAD 0x0800
194 #define NE_FFLAGS_LINKERROR 0x2000
195 #define NE_FFLAGS_CALLWEP 0x4000
196 #define NE_FFLAGS_LIBMODULE 0x8000
199 * NE Header OPERATING SYSTEM
201 #define NE_OSFLAGS_UNKNOWN 0x01
202 #define NE_OSFLAGS_WINDOWS 0x04
205 * NE Header ADDITIONAL FLAGS
207 #define NE_AFLAGS_WIN2_PROTMODE 0x02
208 #define NE_AFLAGS_WIN2_PROFONTS 0x04
209 #define NE_AFLAGS_FASTLOAD 0x08
214 #define NE_SEGFLAGS_DATA 0x0001
215 #define NE_SEGFLAGS_ALLOCATED 0x0002
216 #define NE_SEGFLAGS_LOADED 0x0004
217 #define NE_SEGFLAGS_ITERATED 0x0008
218 #define NE_SEGFLAGS_MOVEABLE 0x0010
219 #define NE_SEGFLAGS_SHAREABLE 0x0020
220 #define NE_SEGFLAGS_PRELOAD 0x0040
221 #define NE_SEGFLAGS_EXECUTEONLY 0x0080
222 #define NE_SEGFLAGS_READONLY 0x0080
223 #define NE_SEGFLAGS_RELOC_DATA 0x0100
224 #define NE_SEGFLAGS_SELFLOAD 0x0800
225 #define NE_SEGFLAGS_DISCARDABLE 0x1000
226 #define NE_SEGFLAGS_32BIT 0x2000
229 * Resource table structures.
243 WORD type_id; /* Type identifier */
244 WORD count; /* Number of resources of this type */
245 FARPROC16 resloader; /* SetResourceHandler() */
251 #define NE_RSCTYPE_CURSOR 0x8001
252 #define NE_RSCTYPE_BITMAP 0x8002
253 #define NE_RSCTYPE_ICON 0x8003
254 #define NE_RSCTYPE_MENU 0x8004
255 #define NE_RSCTYPE_DIALOG 0x8005
256 #define NE_RSCTYPE_STRING 0x8006
257 #define NE_RSCTYPE_FONTDIR 0x8007
258 #define NE_RSCTYPE_FONT 0x8008
259 #define NE_RSCTYPE_ACCELERATOR 0x8009
260 #define NE_RSCTYPE_RCDATA 0x800a
261 #define NE_RSCTYPE_GROUP_CURSOR 0x800c
262 #define NE_RSCTYPE_GROUP_ICON 0x800e
265 #define __AHSHIFT 3 /* don't change! */
266 #define __AHINCR (1 << __AHSHIFT)
268 /* undocumented functions */
269 WORD WINAPI AllocCStoDSAlias16(WORD);
270 WORD WINAPI AllocDStoCSAlias16(WORD);
271 HGLOBAL16 WINAPI AllocResource16(HINSTANCE16,HRSRC16,DWORD);
272 WORD WINAPI AllocSelector16(WORD);
273 WORD WINAPI AllocSelectorArray16(WORD);
274 VOID WINAPI DirectedYield16(HTASK16);
275 HGLOBAL16 WINAPI DirectResAlloc16(HINSTANCE16,WORD,UINT16);
276 HANDLE16 WINAPI FarGetOwner16(HGLOBAL16);
277 VOID WINAPI FarSetOwner16(HGLOBAL16,HANDLE16);
278 FARPROC16 WINAPI FileCDR16(FARPROC16);
279 WORD WINAPI FreeSelector16(WORD);
280 HANDLE16 WINAPI GetAtomHandle16(ATOM);
281 HANDLE16 WINAPI GetCodeHandle16(FARPROC16);
282 BOOL16 WINAPI GetCodeInfo16(FARPROC16,SEGINFO*);
283 DWORD WINAPI GetCurrentPDB16(void);
284 HTASK16 WINAPI GetCurrentTask(void);
285 SEGPTR WINAPI GetDOSEnvironment16(void);
286 HMODULE16 WINAPI GetExePtr(HANDLE16);
287 WORD WINAPI GetExeVersion16(void);
288 WORD WINAPI GetExpWinVer16(HMODULE16);
289 HQUEUE16 WINAPI GetFastQueue16(void);
290 DWORD WINAPI GetHeapSpaces16(HMODULE16);
291 INT16 WINAPI GetInstanceData16(HINSTANCE16,WORD,INT16);
292 BOOL16 WINAPI GetModuleName16(HINSTANCE16,LPSTR,INT16);
293 INT16 WINAPI GetModuleUsage16(HINSTANCE16);
294 UINT16 WINAPI GetNumTasks16(void);
295 SEGPTR WINAPI GetpWin16Lock16(void);
296 DWORD WINAPI GetSelectorLimit16(WORD);
297 FARPROC16 WINAPI GetSetKernelDOSProc16(FARPROC16 DosProc);
298 HINSTANCE16 WINAPI GetTaskDS16(void);
299 HQUEUE16 WINAPI GetTaskQueue16(HTASK16);
300 HQUEUE16 WINAPI GetThreadQueue16(DWORD);
301 DWORD WINAPI GetWinFlags16(void);
302 DWORD WINAPI GlobalDOSAlloc16(DWORD);
303 WORD WINAPI GlobalDOSFree16(WORD);
304 void WINAPI GlobalFreeAll16(HGLOBAL16);
305 DWORD WINAPI GlobalHandleNoRIP16(WORD);
306 WORD WINAPI GlobalHandleToSel16(HGLOBAL16);
307 HGLOBAL16 WINAPI GlobalLRUNewest16(HGLOBAL16);
308 HGLOBAL16 WINAPI GlobalLRUOldest16(HGLOBAL16);
309 VOID WINAPI GlobalNotify16(FARPROC16);
310 WORD WINAPI GlobalPageLock16(HGLOBAL16);
311 WORD WINAPI GlobalPageUnlock16(HGLOBAL16);
312 SEGPTR WINAPI HasGPHandler16(SEGPTR);
313 BOOL16 WINAPI IsSharedSelector16(HANDLE16);
314 BOOL16 WINAPI IsTask16(HTASK16);
315 HTASK16 WINAPI IsTaskLocked16(void);
316 DWORD WINAPI K32WOWCallback16(DWORD,DWORD);
317 BOOL WINAPI K32WOWCallback16Ex(DWORD,DWORD,DWORD,LPVOID,LPDWORD);
318 VOID WINAPI K32WOWDirectedYield16(WORD);
319 BOOL WINAPI K32WOWGetDescriptor(SEGPTR,LPLDT_ENTRY);
320 LPVOID WINAPI K32WOWGetVDMPointer(DWORD,DWORD,BOOL);
321 LPVOID WINAPI K32WOWGetVDMPointerFix(DWORD,DWORD,BOOL);
322 VOID WINAPI K32WOWGetVDMPointerUnfix(DWORD);
323 WORD WINAPI K32WOWGlobalAlloc16(WORD,DWORD);
324 DWORD WINAPI K32WOWGlobalAllocLock16(WORD,DWORD,WORD*);
325 WORD WINAPI K32WOWGlobalFree16(WORD);
326 SEGPTR WINAPI K32WOWGlobalLock16(HGLOBAL16);
327 DWORD WINAPI K32WOWGlobalLockSize16(WORD,PDWORD);
328 BOOL WINAPI K32WOWGlobalUnlock16(WORD);
329 WORD WINAPI K32WOWGlobalUnlockFree16(DWORD);
330 VOID WINAPI K32WOWYield16(void);
331 VOID WINAPI LogError16(UINT16, LPVOID);
332 VOID WINAPI LogParamError16(UINT16,FARPROC16,LPVOID);
333 WORD WINAPI LocalCountFree16(void);
334 WORD WINAPI LocalHandleDelta16(WORD);
335 WORD WINAPI LocalHeapSize16(void);
336 BOOL16 WINAPI LocalInit16(HANDLE16,WORD,WORD);
337 FARPROC16 WINAPI LocalNotify16(FARPROC16);
338 HTASK16 WINAPI LockCurrentTask16(BOOL16);
339 VOID WINAPI OldYield16(void);
340 VOID WINAPI WIN32_OldYield16(void);
341 VOID WINAPI PostEvent16(HTASK16);
342 WORD WINAPI PrestoChangoSelector16(WORD,WORD);
343 WORD WINAPI SelectorAccessRights16(WORD,WORD,WORD);
344 void WINAPI SetFastQueue16(DWORD,HQUEUE16);
345 VOID WINAPI SetPriority16(HTASK16,INT16);
346 FARPROC16 WINAPI SetResourceHandler16(HINSTANCE16,LPCSTR,FARPROC16);
347 WORD WINAPI SetSelectorLimit16(WORD,DWORD);
348 HQUEUE16 WINAPI SetTaskQueue16(HTASK16,HQUEUE16);
349 HQUEUE16 WINAPI SetThreadQueue16(DWORD,HQUEUE16);
350 VOID WINAPI SwitchStackTo16(WORD,WORD,WORD);
351 BOOL16 WINAPI WaitEvent16(HTASK16);
352 VOID WINAPI WriteOutProfiles16(void);
353 VOID WINAPI hmemcpy16(LPVOID,LPCVOID,LONG);
354 VOID WINAPI _CreateSysLevel(SYSLEVEL*,INT);
355 VOID WINAPI _EnterWin16Lock(void);
356 VOID WINAPI _LeaveWin16Lock(void);
359 INT16 WINAPI AccessResource16(HINSTANCE16,HRSRC16);
360 ATOM WINAPI AddAtom16(LPCSTR);
361 UINT16 WINAPI CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
362 BOOL16 WINAPI CreateDirectory16(LPCSTR,LPVOID);
363 BOOL16 WINAPI DefineHandleTable16(WORD);
364 ATOM WINAPI DeleteAtom16(ATOM);
365 BOOL16 WINAPI DeleteFile16(LPCSTR);
366 void WINAPI ExitKernel16(void);
367 void WINAPI FatalAppExit16(UINT16,LPCSTR);
368 ATOM WINAPI FindAtom16(LPCSTR);
369 BOOL16 WINAPI FindClose16(HANDLE16);
370 VOID WINAPI FreeLibrary16(HINSTANCE16);
371 HANDLE16 WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA);
372 BOOL16 WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA);
373 HRSRC16 WINAPI FindResource16(HINSTANCE16,LPCSTR,LPCSTR);
374 BOOL16 WINAPI FreeModule16(HMODULE16);
375 void WINAPI FreeProcInstance16(FARPROC16);
376 BOOL16 WINAPI FreeResource16(HGLOBAL16);
377 UINT16 WINAPI GetAtomName16(ATOM,LPSTR,INT16);
378 UINT16 WINAPI GetCurrentDirectory16(UINT16,LPSTR);
379 BOOL16 WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
380 UINT16 WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */
381 INT16 WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16);
382 DWORD WINAPI GetFileAttributes16(LPCSTR);
383 DWORD WINAPI GetFreeSpace16(UINT16);
384 INT16 WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
385 HMODULE16 WINAPI GetModuleHandle16(LPCSTR);
386 UINT16 WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
387 INT16 WINAPI GetPrivateProfileSection16(LPCSTR,LPSTR,UINT16,LPCSTR);
388 WORD WINAPI GetPrivateProfileSectionNames16(LPSTR,UINT16,LPCSTR);
389 INT16 WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16,LPCSTR);
390 BOOL16 WINAPI GetPrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
391 FARPROC16 WINAPI GetProcAddress16(HMODULE16,LPCSTR);
392 UINT16 WINAPI GetProfileInt16(LPCSTR,LPCSTR,INT16);
393 INT16 WINAPI GetProfileSection16(LPCSTR,LPSTR,UINT16);
394 WORD WINAPI GetProfileSectionNames16(LPSTR,WORD);
395 INT16 WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16);
396 DWORD WINAPI GetSelectorBase(WORD);
397 BOOL16 WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
398 UINT16 WINAPI GetSystemDirectory16(LPSTR,UINT16);
399 UINT16 WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
400 DWORD WINAPI GetVersion16(void);
401 BOOL16 WINAPI GetVersionEx16(OSVERSIONINFO16*);
402 BOOL16 WINAPI GetWinDebugInfo16(LPWINDEBUGINFO16,UINT16);
403 UINT16 WINAPI GetWindowsDirectory16(LPSTR,UINT16);
404 HGLOBAL16 WINAPI GlobalAlloc16(UINT16,DWORD);
405 DWORD WINAPI GlobalCompact16(DWORD);
406 LPVOID WINAPI GlobalLock16(HGLOBAL16);
407 WORD WINAPI GlobalFix16(HGLOBAL16);
408 UINT16 WINAPI GlobalFlags16(HGLOBAL16);
409 HGLOBAL16 WINAPI GlobalFree16(HGLOBAL16);
410 DWORD WINAPI GlobalHandle16(WORD);
411 HGLOBAL16 WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
412 DWORD WINAPI GlobalSize16(HGLOBAL16);
413 VOID WINAPI GlobalUnfix16(HGLOBAL16);
414 BOOL16 WINAPI GlobalUnlock16(HGLOBAL16);
415 BOOL16 WINAPI GlobalUnWire16(HGLOBAL16);
416 SEGPTR WINAPI GlobalWire16(HGLOBAL16);
417 WORD WINAPI InitAtomTable16(WORD);
418 BOOL16 WINAPI IsBadCodePtr16(SEGPTR);
419 BOOL16 WINAPI IsBadHugeReadPtr16(SEGPTR,DWORD);
420 BOOL16 WINAPI IsBadHugeWritePtr16(SEGPTR,DWORD);
421 BOOL16 WINAPI IsBadReadPtr16(SEGPTR,UINT16);
422 BOOL16 WINAPI IsBadStringPtr16(SEGPTR,UINT16);
423 BOOL16 WINAPI IsBadWritePtr16(SEGPTR,UINT16);
424 BOOL16 WINAPI IsDBCSLeadByte16(BYTE);
425 HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
426 HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
427 HGLOBAL16 WINAPI LoadResource16(HINSTANCE16,HRSRC16);
428 HLOCAL16 WINAPI LocalAlloc16(UINT16,WORD);
429 UINT16 WINAPI LocalCompact16(UINT16);
430 UINT16 WINAPI LocalFlags16(HLOCAL16);
431 HLOCAL16 WINAPI LocalFree16(HLOCAL16);
432 HLOCAL16 WINAPI LocalHandle16(WORD);
433 SEGPTR WINAPI LocalLock16(HLOCAL16);
434 HLOCAL16 WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16);
435 UINT16 WINAPI LocalShrink16(HGLOBAL16,UINT16);
436 UINT16 WINAPI LocalSize16(HLOCAL16);
437 BOOL16 WINAPI LocalUnlock16(HLOCAL16);
438 LPVOID WINAPI LockResource16(HGLOBAL16);
439 HGLOBAL16 WINAPI LockSegment16(HGLOBAL16);
440 FARPROC16 WINAPI MakeProcInstance16(FARPROC16,HANDLE16);
441 HFILE16 WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
442 DWORD WINAPI RegCloseKey16(HKEY);
443 DWORD WINAPI RegCreateKey16(HKEY,LPCSTR,PHKEY);
444 DWORD WINAPI RegDeleteKey16(HKEY,LPCSTR);
445 DWORD WINAPI RegDeleteValue16(HKEY,LPSTR);
446 DWORD WINAPI RegEnumKey16(HKEY,DWORD,LPSTR,DWORD);
447 DWORD WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
448 DWORD WINAPI RegOpenKey16(HKEY,LPCSTR,PHKEY);
449 DWORD WINAPI RegQueryValue16(HKEY,LPCSTR,LPSTR,LPDWORD);
450 DWORD WINAPI RegQueryValueEx16(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
451 DWORD WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
452 DWORD WINAPI RegSetValueEx16(HKEY,LPCSTR,DWORD,DWORD,CONST BYTE*,DWORD);
453 BOOL16 WINAPI RemoveDirectory16(LPCSTR);
454 BOOL16 WINAPI SetCurrentDirectory16(LPCSTR);
455 UINT16 WINAPI SetErrorMode16(UINT16);
456 BOOL16 WINAPI SetFileAttributes16(LPCSTR,DWORD);
457 UINT16 WINAPI SetHandleCount16(UINT16);
458 WORD WINAPI SetSelectorBase(WORD,DWORD);
459 LONG WINAPI SetSwapAreaSize16(WORD);
460 BOOL16 WINAPI SetWinDebugInfo16(LPWINDEBUGINFO16);
461 DWORD WINAPI SizeofResource16(HMODULE16,HRSRC16);
462 void WINAPI UnlockSegment16(HGLOBAL16);
463 BOOL16 WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
464 BOOL16 WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR);
465 /* Yield16 will only be available from kernel module, use K32WOWYield instead */
466 VOID WINAPI Yield16(void);
467 SEGPTR WINAPI lstrcat16(SEGPTR,LPCSTR);
468 SEGPTR WINAPI lstrcatn16(SEGPTR,LPCSTR,INT16);
469 SEGPTR WINAPI lstrcpy16(SEGPTR,LPCSTR);
470 SEGPTR WINAPI lstrcpyn16(SEGPTR,LPCSTR,INT16);
471 INT16 WINAPI lstrlen16(LPCSTR);
472 HINSTANCE16 WINAPI WinExec16(LPCSTR,UINT16);
473 LONG WINAPI _hread16(HFILE16,LPVOID,LONG);
474 LONG WINAPI _hwrite16(HFILE16,LPCSTR,LONG);
475 HFILE16 WINAPI _lcreat16(LPCSTR,INT16);
476 HFILE16 WINAPI _lclose16(HFILE16);
477 LONG WINAPI _llseek16(HFILE16,LONG,INT16);
478 HFILE16 WINAPI _lopen16(LPCSTR,INT16);
479 UINT16 WINAPI _lread16(HFILE16,LPVOID,UINT16);
480 UINT16 WINAPI _lwrite16(HFILE16,LPCSTR,UINT16);
481 BOOL16 WINAPI WritePrivateProfileSection16(LPCSTR,LPCSTR,LPCSTR);
482 BOOL16 WINAPI WritePrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
483 BOOL16 WINAPI WriteProfileSection16(LPCSTR,LPCSTR);
485 /* Some optimizations */
486 extern inline LPVOID WINAPI MapSL( SEGPTR segptr )
488 return (char *)wine_ldt_copy.base[SELECTOROF(segptr) >> __AHSHIFT] + OFFSETOF(segptr);
491 #endif /* __WINE_WINE_WINBASE16_H */