Release 960811
[wine/hacks.git] / include / winbase.h
blob536e73f4e561f874a353dcc9ffc411dd59a5a32e
1 #ifndef __WINE_WINBASE_H
2 #define __WINE_WINBASE_H
4 #include "wintypes.h"
6 #define INVALID_HANDLE_VALUE ((HANDLE32) -1)
8 #define WAIT_FAILED 0xffffffff
9 #define WAIT_OBJECT_0 0
10 #define WAIT_ABANDONED STATUS_ABANDONED_WAIT_0
11 #define WAIT_ABANDONED_0 STATUS_ABANDONED_WAIT_0
12 #define WAIT_TIMEOUT STATUS_TIMEOUT
14 #define PAGE_NOACCESS 0x01
15 #define PAGE_READONLY 0x02
16 #define PAGE_READWRITE 0x04
17 #define PAGE_WRITECOPY 0x08
18 #define PAGE_EXECUTE 0x10
19 #define PAGE_EXECUTE_READ 0x20
20 #define PAGE_EXECUTE_READWRITE 0x40
21 #define PAGE_EXECUTE_WRITECOPY 0x80
22 #define PAGE_GUARD 0x100
23 #define PAGE_NOCACHE 0x200
25 #define MEM_COMMIT 0x00001000
26 #define MEM_RESERVE 0x00002000
27 #define MEM_DECOMMIT 0x00004000
28 #define MEM_RELEASE 0x00008000
29 #define MEM_FREE 0x00010000
30 #define MEM_PRIVATE 0x00020000
31 #define MEM_MAPPED 0x00040000
32 #define MEM_TOP_DOWN 0x00100000
34 #define FILE_CASE_SENSITIVE_SEARCH 0x00000001
35 #define FILE_CASE_PRESERVED_NAMES 0x00000002
36 #define FILE_UNICODE_ON_DISK 0x00000004
37 #define FILE_PERSISTENT_ACLS 0x00000008
39 #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
40 #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
41 #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
43 struct _EXCEPTION_POINTERS;
45 typedef LONG (TOP_LEVEL_EXCEPTION_FILTER)(struct _EXCEPTION_POINTERS *);
47 TOP_LEVEL_EXCEPTION_FILTER *SetUnhandledExceptionFilter(TOP_LEVEL_EXCEPTION_FILTER *func);
49 /*WINAPI int SetErrorMode(int);*/
51 #define STATUS_WAIT_0 0x00000000
52 #define STATUS_ABANDONED_WAIT_0 0x00000080
53 #define STATUS_USER_APC 0x000000C0
54 #define STATUS_TIMEOUT 0x00000102
55 #define STATUS_PENDING 0x00000103
56 #define STATUS_GUARD_PAGE_VIOLATION 0x80000001
57 #define STATUS_DATATYPE_MISALIGNMENT 0x80000002
58 #define STATUS_BREAKPOINT 0x80000003
59 #define STATUS_SINGLE_STEP 0x80000004
60 #define STATUS_ACCESS_VIOLATION 0xC0000005
61 #define STATUS_IN_PAGE_ERROR 0xC0000006
62 #define STATUS_NO_MEMORY 0xC0000017
63 #define STATUS_ILLEGAL_INSTRUCTION 0xC000001D
64 #define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025
65 #define STATUS_INVALID_DISPOSITION 0xC0000026
66 #define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C
67 #define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D
68 #define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E
69 #define STATUS_FLOAT_INEXACT_RESULT 0xC000008F
70 #define STATUS_FLOAT_INVALID_OPERATION 0xC0000090
71 #define STATUS_FLOAT_OVERFLOW 0xC0000091
72 #define STATUS_FLOAT_STACK_CHECK 0xC0000092
73 #define STATUS_FLOAT_UNDERFLOW 0xC0000093
74 #define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094
75 #define STATUS_INTEGER_OVERFLOW 0xC0000095
76 #define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096
77 #define STATUS_STACK_OVERFLOW 0xC00000FD
78 #define STATUS_CONTROL_C_EXIT 0xC000013A
80 #define DUPLICATE_CLOSE_SOURCE 0x00000001
81 #define DUPLICATE_SAME_ACCESS 0x00000002
83 typedef struct
85 int type;
86 } exception;
88 typedef struct
90 int pad[39];
91 int edi;
92 int esi;
93 int ebx;
94 int edx;
95 int ecx;
96 int eax;
98 int ebp;
99 int eip;
100 int cs;
101 int eflags;
102 int esp;
103 int ss;
104 } exception_info;
106 /* Could this type be considered opaque? */
107 typedef struct {
108 LPVOID DebugInfo;
109 LONG LockCount;
110 LONG RecursionCount;
111 HANDLE32 OwningThread;
112 HANDLE32 LockSemaphore;
113 DWORD Reserved;
114 }CRITICAL_SECTION;
116 typedef struct {
117 DWORD dwOSVersionInfoSize;
118 DWORD dwMajorVersion;
119 DWORD dwMinorVersion;
120 DWORD dwBuildNumber;
121 DWORD dwPlatformId;
122 CHAR szCSDVersion[128];
123 } OSVERSIONINFO32A;
125 typedef struct {
126 DWORD dwOSVersionInfoSize;
127 DWORD dwMajorVersion;
128 DWORD dwMinorVersion;
129 DWORD dwBuildNumber;
130 DWORD dwPlatformId;
131 WCHAR szCSDVersion[128];
132 } OSVERSIONINFO32W;
134 DECL_WINELIB_TYPE_AW(OSVERSIONINFO);
136 typedef struct
138 DWORD dwFileAttributes;
139 FILETIME ftCreationTime;
140 FILETIME ftLastAccessTime;
141 FILETIME ftLastWriteTime;
142 DWORD nFileSizeHigh;
143 DWORD nFileSizeLow;
144 DWORD dwReserved0;
145 DWORD dwReserved1;
146 CHAR cFileName[260];
147 CHAR cAlternateFileName[14];
148 } WIN32_FIND_DATA32A, *LPWIN32_FIND_DATA32A;
150 typedef struct
152 DWORD dwFileAttributes;
153 FILETIME ftCreationTime;
154 FILETIME ftLastAccessTime;
155 FILETIME ftLastWriteTime;
156 DWORD nFileSizeHigh;
157 DWORD nFileSizeLow;
158 DWORD dwReserved0;
159 DWORD dwReserved1;
160 WCHAR cFileName[260];
161 WCHAR cAlternateName[14];
162 } WIN32_FIND_DATA32W, *LPWIN32_FIND_DATA32W;
164 DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA);
165 DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA);
167 #define VER_PLATFORM_WIN32s 0
168 #define VER_PLATFORM_WIN32_WINDOWS 1
169 #define VER_PLATFORM_WIN32_NT 2
171 /*DWORD WINAPI GetVersion( void );*/
172 BOOL32 GetVersionEx32A(OSVERSIONINFO32A*);
173 BOOL32 GetVersionEx32W(OSVERSIONINFO32W*);
174 #define GetVersionEx WINELIB_NAME_AW(GetVersionEx)
176 /*int WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);*/
178 HACCEL32 LoadAcceleratorsA( HINSTANCE32, const char *);
180 void DeleteCriticalSection(CRITICAL_SECTION *lpCrit);
181 void EnterCriticalSection(CRITICAL_SECTION *lpCrit);
182 int GetCurrentProcessId(void);
183 void InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
184 void LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
185 HANDLE32 OpenProcess(DWORD access, BOOL32 inherit, DWORD id);
186 int TerminateProcess(HANDLE32 h, int ret);
188 #endif /* __WINE_WINBASE_H */