1 #ifndef __WINE_WINE_WINBASE16_H
2 #define __WINE_WINE_WINBASE16_H
7 #include "wine/windef16.h"
10 typedef struct _SEGINFO {
22 #define WF_PMODE 0x0001
23 #define WF_CPU286 0x0002
24 #define WF_CPU386 0x0004
25 #define WF_CPU486 0x0008
26 #define WF_STANDARD 0x0010
27 #define WF_WIN286 0x0010
28 #define WF_ENHANCED 0x0020
29 #define WF_WIN386 0x0020
30 #define WF_CPU086 0x0040
31 #define WF_CPU186 0x0080
32 #define WF_LARGEFRAME 0x0100
33 #define WF_SMALLFRAME 0x0200
34 #define WF_80x87 0x0400
35 #define WF_PAGING 0x0800
36 #define WF_HASCPUID 0x2000
37 #define WF_WIN32WOW 0x4000 /* undoc */
40 /* Parameters for LoadModule() */
43 HGLOBAL16 hEnvironment; /* Environment segment */
44 SEGPTR cmdLine WINE_PACKED; /* Command-line */
45 SEGPTR showCmd WINE_PACKED; /* Code for ShowWindow() */
46 SEGPTR reserved WINE_PACKED;
51 #define INVALID_HANDLE_VALUE16 ((HANDLE16) -1)
52 #define INFINITE16 0xFFFF
55 DWORD dwOSVersionInfoSize;
60 CHAR szCSDVersion[128];
65 * NE Header FORMAT FLAGS
67 #define NE_FFLAGS_SINGLEDATA 0x0001
68 #define NE_FFLAGS_MULTIPLEDATA 0x0002
69 #define NE_FFLAGS_WIN32 0x0010
70 #define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */
71 #define NE_FFLAGS_FRAMEBUF 0x0100 /* OS/2 fullscreen app */
72 #define NE_FFLAGS_CONSOLE 0x0200 /* OS/2 console app */
73 #define NE_FFLAGS_GUI 0x0300 /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */
74 #define NE_FFLAGS_SELFLOAD 0x0800
75 #define NE_FFLAGS_LINKERROR 0x2000
76 #define NE_FFLAGS_CALLWEP 0x4000
77 #define NE_FFLAGS_LIBMODULE 0x8000
80 * NE Header OPERATING SYSTEM
82 #define NE_OSFLAGS_UNKNOWN 0x01
83 #define NE_OSFLAGS_WINDOWS 0x04
86 * NE Header ADDITIONAL FLAGS
88 #define NE_AFLAGS_WIN2_PROTMODE 0x02
89 #define NE_AFLAGS_WIN2_PROFONTS 0x04
90 #define NE_AFLAGS_FASTLOAD 0x08
95 #define NE_SEGFLAGS_DATA 0x0001
96 #define NE_SEGFLAGS_ALLOCATED 0x0002
97 #define NE_SEGFLAGS_LOADED 0x0004
98 #define NE_SEGFLAGS_ITERATED 0x0008
99 #define NE_SEGFLAGS_MOVEABLE 0x0010
100 #define NE_SEGFLAGS_SHAREABLE 0x0020
101 #define NE_SEGFLAGS_PRELOAD 0x0040
102 #define NE_SEGFLAGS_EXECUTEONLY 0x0080
103 #define NE_SEGFLAGS_READONLY 0x0080
104 #define NE_SEGFLAGS_RELOC_DATA 0x0100
105 #define NE_SEGFLAGS_SELFLOAD 0x0800
106 #define NE_SEGFLAGS_DISCARDABLE 0x1000
107 #define NE_SEGFLAGS_32BIT 0x2000
110 * Resource table structures.
124 WORD type_id; /* Type identifier */
125 WORD count; /* Number of resources of this type */
126 FARPROC16 resloader; /* SetResourceHandler() */
132 #define NE_RSCTYPE_CURSOR 0x8001
133 #define NE_RSCTYPE_BITMAP 0x8002
134 #define NE_RSCTYPE_ICON 0x8003
135 #define NE_RSCTYPE_MENU 0x8004
136 #define NE_RSCTYPE_DIALOG 0x8005
137 #define NE_RSCTYPE_STRING 0x8006
138 #define NE_RSCTYPE_FONTDIR 0x8007
139 #define NE_RSCTYPE_FONT 0x8008
140 #define NE_RSCTYPE_ACCELERATOR 0x8009
141 #define NE_RSCTYPE_RCDATA 0x800a
142 #define NE_RSCTYPE_GROUP_CURSOR 0x800c
143 #define NE_RSCTYPE_GROUP_ICON 0x800e
146 /* undocumented functions */
147 WORD WINAPI AllocCStoDSAlias16(WORD);
148 WORD WINAPI AllocDStoCSAlias16(WORD);
149 HGLOBAL16 WINAPI AllocResource16(HINSTANCE16,HRSRC16,DWORD);
150 WORD WINAPI AllocSelector16(WORD);
151 WORD WINAPI AllocSelectorArray16(WORD);
152 VOID WINAPI DirectedYield16(HTASK16);
153 HGLOBAL16 WINAPI DirectResAlloc16(HINSTANCE16,WORD,UINT16);
154 HANDLE16 WINAPI FarGetOwner16(HGLOBAL16);
155 VOID WINAPI FarSetOwner16(HGLOBAL16,HANDLE16);
156 FARPROC16 WINAPI FileCDR16(FARPROC16);
157 WORD WINAPI FreeSelector16(WORD);
158 HANDLE16 WINAPI GetAtomHandle16(ATOM);
159 HANDLE16 WINAPI GetCodeHandle16(FARPROC16);
160 BOOL16 WINAPI GetCodeInfo16(FARPROC16,SEGINFO*);
161 DWORD WINAPI GetCurrentPDB16(void);
162 HTASK16 WINAPI GetCurrentTask(void);
163 SEGPTR WINAPI GetDOSEnvironment16(void);
164 HMODULE16 WINAPI GetExePtr(HANDLE16);
165 WORD WINAPI GetExeVersion16(void);
166 WORD WINAPI GetExpWinVer16(HMODULE16);
167 DWORD WINAPI GetHeapSpaces16(HMODULE16);
168 INT16 WINAPI GetInstanceData16(HINSTANCE16,WORD,INT16);
169 BOOL16 WINAPI GetModuleName16(HINSTANCE16,LPSTR,INT16);
170 INT16 WINAPI GetModuleUsage16(HINSTANCE16);
171 UINT16 WINAPI GetNumTasks16(void);
172 SEGPTR WINAPI GetpWin16Lock16(void);
173 DWORD WINAPI GetSelectorLimit16(WORD);
174 FARPROC16 WINAPI GetSetKernelDOSProc16(FARPROC16 DosProc);
175 HINSTANCE16 WINAPI GetTaskDS16(void);
176 HQUEUE16 WINAPI GetTaskQueue16(HTASK16);
177 DWORD WINAPI GetWinFlags16(void);
178 DWORD WINAPI GlobalDOSAlloc16(DWORD);
179 WORD WINAPI GlobalDOSFree16(WORD);
180 void WINAPI GlobalFreeAll16(HGLOBAL16);
181 DWORD WINAPI GlobalHandleNoRIP16(WORD);
182 WORD WINAPI GlobalHandleToSel16(HGLOBAL16);
183 HGLOBAL16 WINAPI GlobalLRUNewest16(HGLOBAL16);
184 HGLOBAL16 WINAPI GlobalLRUOldest16(HGLOBAL16);
185 VOID WINAPI GlobalNotify16(FARPROC16);
186 WORD WINAPI GlobalPageLock16(HGLOBAL16);
187 WORD WINAPI GlobalPageUnlock16(HGLOBAL16);
188 BOOL16 WINAPI IsSharedSelector16(HANDLE16);
189 BOOL16 WINAPI IsTask16(HTASK16);
190 HTASK16 WINAPI IsTaskLocked16(void);
191 VOID WINAPI LogError16(UINT16, LPVOID);
192 VOID WINAPI LogParamError16(UINT16,FARPROC16,LPVOID);
193 WORD WINAPI LocalCountFree16(void);
194 WORD WINAPI LocalHandleDelta16(WORD);
195 WORD WINAPI LocalHeapSize16(void);
196 BOOL16 WINAPI LocalInit16(HANDLE16,WORD,WORD);
197 FARPROC16 WINAPI LocalNotify16(FARPROC16);
198 HTASK16 WINAPI LockCurrentTask16(BOOL16);
199 VOID WINAPI OldYield16(void);
200 VOID WINAPI WIN32_OldYield16(void);
201 VOID WINAPI PostEvent16(HTASK16);
202 WORD WINAPI PrestoChangoSelector16(WORD,WORD);
203 WORD WINAPI SelectorAccessRights16(WORD,WORD,WORD);
204 VOID WINAPI SetPriority16(HTASK16,INT16);
205 FARPROC16 WINAPI SetResourceHandler16(HINSTANCE16,SEGPTR,FARPROC16);
206 WORD WINAPI SetSelectorLimit16(WORD,DWORD);
207 HQUEUE16 WINAPI SetTaskQueue16(HTASK16,HQUEUE16);
208 VOID WINAPI SwitchStackTo16(WORD,WORD,WORD);
209 BOOL16 WINAPI WaitEvent16(HTASK16);
210 VOID WINAPI WriteOutProfiles16(void);
211 VOID WINAPI hmemcpy16(LPVOID,LPCVOID,LONG);
212 VOID WINAPI _CreateSysLevel(SYSLEVEL*,INT);
213 VOID WINAPI _EnterWin16Lock(void);
214 VOID WINAPI _LeaveWin16Lock(void);
217 INT16 WINAPI AccessResource16(HINSTANCE16,HRSRC16);
218 ATOM WINAPI AddAtom16(LPCSTR);
219 UINT16 WINAPI CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
220 BOOL16 WINAPI CreateDirectory16(LPCSTR,LPVOID);
221 BOOL16 WINAPI DefineHandleTable16(WORD);
222 ATOM WINAPI DeleteAtom16(ATOM);
223 BOOL16 WINAPI DeleteFile16(LPCSTR);
224 void WINAPI ExitKernel16(void);
225 void WINAPI FatalAppExit16(UINT16,LPCSTR);
226 ATOM WINAPI FindAtom16(LPCSTR);
227 BOOL16 WINAPI FindClose16(HANDLE16);
228 VOID WINAPI FreeLibrary16(HINSTANCE16);
229 HANDLE16 WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA);
230 BOOL16 WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA);
231 HRSRC16 WINAPI FindResource16(HINSTANCE16,LPCSTR,LPCSTR);
232 BOOL16 WINAPI FreeModule16(HMODULE16);
233 void WINAPI FreeProcInstance16(FARPROC16);
234 BOOL16 WINAPI FreeResource16(HGLOBAL16);
235 UINT16 WINAPI GetAtomName16(ATOM,LPSTR,INT16);
236 UINT16 WINAPI GetCurrentDirectory16(UINT16,LPSTR);
237 BOOL16 WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
238 UINT16 WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */
239 INT16 WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16);
240 DWORD WINAPI GetFileAttributes16(LPCSTR);
241 DWORD WINAPI GetFreeSpace16(UINT16);
242 INT16 WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
243 HMODULE16 WINAPI GetModuleHandle16(LPCSTR);
244 UINT16 WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
245 INT16 WINAPI GetPrivateProfileSection16(LPCSTR,LPSTR,UINT16,LPCSTR);
246 WORD WINAPI GetPrivateProfileSectionNames16(LPSTR,UINT16,LPCSTR);
247 INT16 WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16,LPCSTR);
248 BOOL16 WINAPI GetPrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
249 FARPROC16 WINAPI GetProcAddress16(HMODULE16,LPCSTR);
250 UINT16 WINAPI GetProfileInt16(LPCSTR,LPCSTR,INT16);
251 INT16 WINAPI GetProfileSection16(LPCSTR,LPSTR,UINT16);
252 WORD WINAPI GetProfileSectionNames16(LPSTR,WORD);
253 INT16 WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16);
254 DWORD WINAPI GetSelectorBase(WORD);
255 BOOL16 WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
256 UINT16 WINAPI GetSystemDirectory16(LPSTR,UINT16);
257 UINT16 WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
258 LONG WINAPI GetVersion16(void);
259 BOOL16 WINAPI GetVersionEx16(OSVERSIONINFO16*);
260 BOOL16 WINAPI GetWinDebugInfo16(LPWINDEBUGINFO,UINT16);
261 UINT16 WINAPI GetWindowsDirectory16(LPSTR,UINT16);
262 HGLOBAL16 WINAPI GlobalAlloc16(UINT16,DWORD);
263 DWORD WINAPI GlobalCompact16(DWORD);
264 LPVOID WINAPI GlobalLock16(HGLOBAL16);
265 WORD WINAPI GlobalFix16(HGLOBAL16);
266 UINT16 WINAPI GlobalFlags16(HGLOBAL16);
267 HGLOBAL16 WINAPI GlobalFree16(HGLOBAL16);
268 DWORD WINAPI GlobalHandle16(WORD);
269 HGLOBAL16 WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
270 DWORD WINAPI GlobalSize16(HGLOBAL16);
271 VOID WINAPI GlobalUnfix16(HGLOBAL16);
272 BOOL16 WINAPI GlobalUnlock16(HGLOBAL16);
273 BOOL16 WINAPI GlobalUnWire16(HGLOBAL16);
274 SEGPTR WINAPI GlobalWire16(HGLOBAL16);
275 WORD WINAPI InitAtomTable16(WORD);
276 BOOL16 WINAPI IsBadCodePtr16(SEGPTR);
277 BOOL16 WINAPI IsBadHugeReadPtr16(SEGPTR,DWORD);
278 BOOL16 WINAPI IsBadHugeWritePtr16(SEGPTR,DWORD);
279 BOOL16 WINAPI IsBadReadPtr16(SEGPTR,UINT16);
280 BOOL16 WINAPI IsBadStringPtr16(SEGPTR,UINT16);
281 BOOL16 WINAPI IsBadWritePtr16(SEGPTR,UINT16);
282 BOOL16 WINAPI IsDBCSLeadByte16(BYTE);
283 HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
284 HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
285 HGLOBAL16 WINAPI LoadResource16(HINSTANCE16,HRSRC16);
286 HLOCAL16 WINAPI LocalAlloc16(UINT16,WORD);
287 UINT16 WINAPI LocalCompact16(UINT16);
288 UINT16 WINAPI LocalFlags16(HLOCAL16);
289 HLOCAL16 WINAPI LocalFree16(HLOCAL16);
290 HLOCAL16 WINAPI LocalHandle16(WORD);
291 SEGPTR WINAPI LocalLock16(HLOCAL16);
292 HLOCAL16 WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16);
293 UINT16 WINAPI LocalShrink16(HGLOBAL16,UINT16);
294 UINT16 WINAPI LocalSize16(HLOCAL16);
295 BOOL16 WINAPI LocalUnlock16(HLOCAL16);
296 LPVOID WINAPI LockResource16(HGLOBAL16);
297 HGLOBAL16 WINAPI LockSegment16(HGLOBAL16);
298 FARPROC16 WINAPI MakeProcInstance16(FARPROC16,HANDLE16);
299 HFILE16 WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
300 DWORD WINAPI RegCloseKey16(HKEY);
301 DWORD WINAPI RegCreateKey16(HKEY,LPCSTR,LPHKEY);
302 DWORD WINAPI RegDeleteKey16(HKEY,LPCSTR);
303 DWORD WINAPI RegDeleteValue16(HKEY,LPSTR);
304 DWORD WINAPI RegEnumKey16(HKEY,DWORD,LPSTR,DWORD);
305 DWORD WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
306 DWORD WINAPI RegOpenKey16(HKEY,LPCSTR,LPHKEY);
307 DWORD WINAPI RegQueryValue16(HKEY,LPCSTR,LPSTR,LPDWORD);
308 DWORD WINAPI RegQueryValueEx16(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
309 DWORD WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
310 DWORD WINAPI RegSetValueEx16(HKEY,LPCSTR,DWORD,DWORD,CONST BYTE*,DWORD);
311 BOOL16 WINAPI RemoveDirectory16(LPCSTR);
312 BOOL16 WINAPI SetCurrentDirectory16(LPCSTR);
313 UINT16 WINAPI SetErrorMode16(UINT16);
314 BOOL16 WINAPI SetFileAttributes16(LPCSTR,DWORD);
315 UINT16 WINAPI SetHandleCount16(UINT16);
316 WORD WINAPI SetSelectorBase(WORD,DWORD);
317 LONG WINAPI SetSwapAreaSize16(WORD);
318 BOOL16 WINAPI SetWinDebugInfo16(LPWINDEBUGINFO);
319 DWORD WINAPI SizeofResource16(HMODULE16,HRSRC16);
320 void WINAPI UnlockSegment16(HGLOBAL16);
321 BOOL16 WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
322 BOOL16 WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR);
323 VOID WINAPI Yield16(void);
324 SEGPTR WINAPI lstrcat16(SEGPTR,LPCSTR);
325 SEGPTR WINAPI lstrcatn16(SEGPTR,LPCSTR,INT16);
326 SEGPTR WINAPI lstrcpy16(SEGPTR,LPCSTR);
327 SEGPTR WINAPI lstrcpyn16(SEGPTR,LPCSTR,INT16);
328 INT16 WINAPI lstrlen16(LPCSTR);
329 HINSTANCE16 WINAPI WinExec16(LPCSTR,UINT16);
330 LONG WINAPI _hread16(HFILE16,LPVOID,LONG);
331 LONG WINAPI _hwrite16(HFILE16,LPCSTR,LONG);
332 HFILE16 WINAPI _lcreat16(LPCSTR,INT16);
333 HFILE16 WINAPI _lclose16(HFILE16);
334 LONG WINAPI _llseek16(HFILE16,LONG,INT16);
335 HFILE16 WINAPI _lopen16(LPCSTR,INT16);
336 UINT16 WINAPI _lread16(HFILE16,LPVOID,UINT16);
337 UINT16 WINAPI _lwrite16(HFILE16,LPCSTR,UINT16);
338 BOOL16 WINAPI WritePrivateProfileSection16(LPCSTR,LPCSTR,LPCSTR);
339 BOOL16 WINAPI WritePrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
340 BOOL16 WINAPI WriteProfileSection16(LPCSTR,LPCSTR);
342 /* Extra functions that don't exist in the Windows API */
344 SEGPTR WINAPI WIN16_GlobalLock16(HGLOBAL16);
345 SEGPTR WINAPI WIN16_LockResource16(HGLOBAL16);
346 LONG WINAPI WIN16_hread(HFILE16,SEGPTR,LONG);
347 UINT16 WINAPI WIN16_lread(HFILE16,SEGPTR,UINT16);
349 /* Wine-specific functions */
350 WORD WINAPI wine_call_to_16_word( FARPROC16 target, INT nArgs );
351 LONG WINAPI wine_call_to_16_long( FARPROC16 target, INT nArgs );
352 void WINAPI wine_call_to_16_regs_short( CONTEXT86 *context, INT nArgs );
353 void WINAPI wine_call_to_16_regs_long ( CONTEXT86 *context, INT nArgs );
355 #endif /* __WINE_WINE_WINBASE16_H */