3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) the Wine project
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Process database (i.e. a normal DOS PSP) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WORD nextParagraph; /* 02 Segment of next paragraph */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 savedint22; /* 0a Saved int 22h handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 savedint23; /* 0e Saved int 23h handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 savedint24; /* 12 Saved int 24h handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HANDLE16 environment; /* 2c Selector of environment */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SEGPTR fileHandlesPtr; /* 34 Pointer to file handle table */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HANDLE16 hFileHandles; /* 38 Handle to fileHandlesPtr */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BYTE cmdLine[128]; /* 80 Command-line (first byte is len)*/
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BYTE padding[16]; /* Some apps access beyond the end of the cmd line */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Task database. See 'Windows Internals' p. 226.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Note that 16-bit OLE 2 libs like to read it directly
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * so we have to keep entry offsets as they are.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HANDLE16 hPrevInstance; /* 0e Previous instance of module */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT16 error_mode; /* 18 Error mode (see SetErrorMode)*/
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HANDLE16 hInstance; /* 1c Instance handle for task */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HTASK16 hParent; /* 22 Selector of TDB of parent */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WORD signal_flags; /* 24 Flags for signal handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 userhandler; /* 2a USER signal handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 discardhandler; /* 2e Handler for GlobalNotify() */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 int0; /* 32 int 0 (divide by 0) handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 int6; /* 3e int 6 (invalid opc) handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 int7; /* 42 int 7 (coprocessor) handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 int3e; /* 46 int 3e (80x87 emu) handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FARPROC16 int75; /* 4a int 75 (80x87 error) handler */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync struct _TEB *teb; /* 54 Pointer to thread database */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WORD nCmdShow; /* a8 cmdShow parameter to WinMain */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dlls_to_init; /* ac Ptr to DLLs to initialize */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HANDLE16 hCSAlias; /* b0 Code segment for this TDB */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WORD thunks[8*4]; /* b2 Make proc instance thunks */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* TDB flags */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Windows 3.1 USER signals */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* GetWinFlags */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Parameters for LoadModule() */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Debugging support (DEBUG SYSTEM ONLY) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* definitions specific to Wine 16-bit relaying support */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* 32-bit stack layout after __wine_call_to_16() */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD restore_addr; /* 00 return address for restoring code selector */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD codeselector; /* 04 code selector to restore */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync EXCEPTION_REGISTRATION_RECORD frame; /* 08 Exception frame */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SEGPTR frame16; /* 10 16-bit frame from last CallFrom16() */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD target; /* 28 target address / CONTEXT86 pointer */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD nb_args; /* 2c number of 16-bit argument bytes */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* 16-bit stack layout after __wine_call_from_16() */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STACK32FRAME *frame32; /* 00 32-bit frame from last CallTo16() */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD entry_point; /* 26 API entry point to call, reused as mutex count */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* argument type flags for relay debugging */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ARG_STR, /* linear pointer to null-terminated string */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ARG_SEGSTR, /* segmented pointer to null-terminated string */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * NE Header FORMAT FLAGS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NE_FFLAGS_FRAMEBUF 0x0100 /* OS/2 fullscreen app */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NE_FFLAGS_CONSOLE 0x0200 /* OS/2 console app */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NE_FFLAGS_GUI 0x0300 /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * NE Header OPERATING SYSTEM
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * NE Header ADDITIONAL FLAGS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Segment Flags
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Resource table structures.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Name info array.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NE_RSCTYPE_SCALABLE_FONTPATH 0x80cc /* Resource found in .fot files */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* undocumented functions */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* [GS]etProcessDword offsets */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncHGLOBAL16 WINAPI AllocResource16(HINSTANCE16,HRSRC16,DWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncHGLOBAL16 WINAPI DirectResAlloc16(HINSTANCE16,WORD,UINT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncINT16 WINAPI GetInstanceData16(HINSTANCE16,WORD,INT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI GetModuleName16(HINSTANCE16,LPSTR,INT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncFARPROC16 WINAPI GetSetKernelDOSProc16(FARPROC16 DosProc);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVOID WINAPI LogParamError16(UINT16,FARPROC16,LPVOID);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncFARPROC16 WINAPI SetResourceHandler16(HINSTANCE16,LPCSTR,FARPROC16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncUINT16 WINAPI CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncHANDLE16 WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncHRSRC16 WINAPI FindResource16(HINSTANCE16,LPCSTR,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncUINT16 WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncINT16 WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncINT16 WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncUINT16 WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncINT16 WINAPI GetPrivateProfileSection16(LPCSTR,LPSTR,UINT16,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncWORD WINAPI GetPrivateProfileSectionNames16(LPSTR,UINT16,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncINT16 WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI GetPrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncFARPROC16 WINAPI GetProcAddress16(HMODULE16,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncINT16 WINAPI GetProfileSection16(LPCSTR,LPSTR,UINT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncINT16 WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncUINT16 WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI GetWinDebugInfo16(LPWINDEBUGINFO16,UINT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncHGLOBAL16 WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncHGLOBAL16 WINAPI LoadResource16(HINSTANCE16,HRSRC16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncHLOCAL16 WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncFARPROC16 WINAPI MakeProcInstance16(FARPROC16,HANDLE16);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDWORD WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDWORD WINAPI RegQueryValue16(HKEY,LPCSTR,LPSTR,LPDWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDWORD WINAPI RegQueryValueEx16(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDWORD WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDWORD WINAPI RegSetValueEx16(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Yield16 will only be available from kernel module, use WOWYield instead */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI WritePrivateProfileSection16(LPCSTR,LPCSTR,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL16 WINAPI WritePrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* __WINE_WINE_WINBASE16_H */