History

win32 merge

bellard committed 21 years ago

Commit 48217021 parent d733dc782 files · +23836 −13Browse files

Unified · Split

82 files
  1. tcc-doc.texi +3 −3
  2. tcc.c +13 −2
  3. tccpe.c +0 −8
  4. tiny_impdef.c +372 −0
  5. win32/examples/dll.c +15 −0
  6. win32/examples/dll.def +6 −0
  7. win32/examples/fib.c +23 −0
  8. win32/examples/hello_dll.c +19 −0
  9. win32/examples/hello_win.c +159 −0
  10. win32/include/_mingw.h +51 −0
  11. win32/include/assert.h +71 −0
  12. win32/include/conio.h +159 −0
  13. win32/include/ctype.h +232 −0
  14. win32/include/dir.h +26 −0
  15. win32/include/direct.h +95 −0
  16. win32/include/dirent.h +96 −0
  17. win32/include/dos.h +110 −0
  18. win32/include/errno.h +117 −0
  19. win32/include/excpt.h +20 −0
  20. win32/include/fcntl.h +135 −0
  21. win32/include/fenv.h +85 −0
  22. win32/include/float.h +224 −0
  23. win32/include/inttypes.h +275 −0
  24. win32/include/io.h +296 −0
  25. win32/include/limits.h +115 −0
  26. win32/include/locale.h +100 −0
  27. win32/include/malloc.h +87 −0
  28. win32/include/math.h +438 −0
  29. win32/include/mem.h +8 −0
  30. win32/include/memory.h +9 −0
  31. win32/include/process.h +158 −0
  32. win32/include/setjmp.h +72 −0
  33. win32/include/share.h +44 −0
  34. win32/include/signal.h +111 −0
  35. win32/include/stdarg.h +15 −0
  36. win32/include/stdbool.h +10 −0
  37. win32/include/stddef.h +21 −0
  38. win32/include/stdint.h +184 −0
  39. win32/include/stdio.h +413 −0
  40. win32/include/stdlib.h +482 −0
  41. win32/include/string.h +206 −0
  42. win32/include/sys/fcntl.h +8 −0
  43. win32/include/sys/file.h +9 −0
  44. win32/include/sys/locking.h +52 −0
  45. win32/include/sys/stat.h +190 −0
  46. win32/include/sys/time.h +3 −0
  47. win32/include/sys/timeb.h +82 −0
  48. win32/include/sys/types.h +118 −0
  49. win32/include/sys/unistd.h +9 −0
  50. win32/include/sys/utime.h +89 −0
  51. win32/include/tchar.h +367 −0
  52. win32/include/time.h +219 −0
  53. win32/include/unistd.h +10 −0
  54. win32/include/values.h +4 −0
  55. win32/include/varargs.h +11 −0
  56. win32/include/wchar.h +318 −0
  57. win32/include/wctype.h +127 −0
  58. win32/include/winapi/basetsd.h +119 −0
  59. win32/include/winapi/basetyps.h +144 −0
  60. win32/include/winapi/winbase.h +1852 −0
  61. win32/include/winapi/wincon.h +207 −0
  62. win32/include/winapi/windef.h +240 −0
  63. win32/include/winapi/windows.h +176 −0
  64. win32/include/winapi/winerror.h +1054 −0
  65. win32/include/winapi/wingdi.h +2843 −0
  66. win32/include/winapi/winnetwk.h +346 −0
  67. win32/include/winapi/winnls.h +651 −0
  68. win32/include/winapi/winnt.h +2667 −0
  69. win32/include/winapi/winreg.h +159 −0
  70. win32/include/winapi/winsvc.h +309 −0
  71. win32/include/winapi/winuser.h +3472 −0
  72. win32/include/winapi/winver.h +133 −0
  73. win32/lib/chkstk.S +29 −0
  74. win32/lib/crt1.c +35 −0
  75. win32/lib/dllcrt1.c +13 −0
  76. win32/lib/dllmain.c +9 −0
  77. win32/lib/gdi32.def +337 −0
  78. win32/lib/kernel32.def +763 −0
  79. win32/lib/msvcrt.def +782 −0
  80. win32/lib/user32.def +654 −0
  81. win32/lib/wincrt1.c +49 −0
  82. win32/readme.txt +102 −0
tcc-doc.texi+3−3
@@ -58,9 +58,9 @@ these checks even if non patched libraries are used. · 57 unmodified lines
58With @code{libtcc}, you can use TCC as a backend for dynamic code58With @code{libtcc}, you can use TCC as a backend for dynamic code
59generation (@pxref{Libtcc}).59generation (@pxref{Libtcc}).
60 60
61TCC mainly supports the i386 target. There are alpha ports for the ARM61TCC mainly supports the i386 target on Linux and Windows. There are alpha
62(@code{arm-tcc}) and the TMS320C67xx targets (@code{c67-tcc}). More62ports for the ARM (@code{arm-tcc}) and the TMS320C67xx targets
63information about the ARM port is available at63(@code{c67-tcc}). More information about the ARM port is available at
64@url{http://lists.gnu.org/archive/html/tinycc-devel/2003-10/msg00044.html}.64@url{http://lists.gnu.org/archive/html/tinycc-devel/2003-10/msg00044.html}.
65 65
66@node Invoke66@node Invoke
tcc.c+13−2
@@ -85,6 +85,10 @@ · 84 unmodified lines
85#define CONFIG_TCC_BCHECK /* enable bound checking code */85#define CONFIG_TCC_BCHECK /* enable bound checking code */
86#endif86#endif
87 87
88#if defined(WIN32) && !defined(TCC_TARGET_PE)
89#define CONFIG_TCC_STATIC
90#endif
91
88/* define it to include assembler support */92/* define it to include assembler support */
89#if !defined(TCC_TARGET_ARM) && !defined(TCC_TARGET_C67)93#if !defined(TCC_TARGET_ARM) && !defined(TCC_TARGET_C67)
90#define CONFIG_TCC_ASM94#define CONFIG_TCC_ASM
@@ -392,7 +396,7 @@ static const char **rt_bound_error_msg; · 301 unmodified lines
392static struct TCCState *tcc_state;396static struct TCCState *tcc_state;
393 397
394/* give the path of the tcc libraries */398/* give the path of the tcc libraries */
395static const char *tcc_lib_path = CONFIG_TCC_LIBDIR "/tcc";399static const char *tcc_lib_path = CONFIG_TCCDIR;
396 400
397struct TCCState {401struct TCCState {
398 int output_type;402 int output_type;
@@ -699,6 +703,12 @@ static const char tcc_keywords[] = · 300 unmodified lines
699#define TOK_UIDENT TOK_DEFINE703#define TOK_UIDENT TOK_DEFINE
700 704
701#ifdef WIN32705#ifdef WIN32
706int __stdcall GetModuleFileNameA(void *, char *, int);
707void *__stdcall GetProcAddress(void *, const char *);
708void *__stdcall GetModuleHandleA(const char *);
709void *__stdcall LoadLibraryA(const char *);
710int __stdcall FreeConsole(void);
711
702#define snprintf _snprintf712#define snprintf _snprintf
703#define vsnprintf _vsnprintf713#define vsnprintf _vsnprintf
704#endif714#endif
@@ -10499,7 +10509,8 @@ int main(int argc, char **argv) · 9794 unmodified lines
10499 of 'tcc.exe' */10509 of 'tcc.exe' */
10500 {10510 {
10501 static char path[1024];10511 static char path[1024];
10502 10512 char *p, *d;
10513
10503 GetModuleFileNameA(NULL, path, sizeof path);10514 GetModuleFileNameA(NULL, path, sizeof path);
10504 p = d = strlwr(path);10515 p = d = strlwr(path);
10505 while (*d)10516 while (*d)
tccpe.c+0−8
@@ -380,14 +380,6 @@ ST char pe_type; · 379 unmodified lines
380#define PE_GUI 2380#define PE_GUI 2
381#define PE_EXE 3381#define PE_EXE 3
382 382
383#ifdef WIN32
384int __stdcall GetModuleFileNameA(void *, char *, int);
385void *__stdcall GetProcAddress(void *, const char *);
386void *__stdcall GetModuleHandleA(const char *);
387void *__stdcall LoadLibraryA(const char *);
388int __stdcall FreeConsole(void);
389#endif
390
391ST int pe_find_import(TCCState * s1, const char *symbol, char *ret)383ST int pe_find_import(TCCState * s1, const char *symbol, char *ret)
392{384{
393 int sym_index = find_elf_sym(s1->dynsymtab_section, symbol);385 int sym_index = find_elf_sym(s1->dynsymtab_section, symbol);
tiny_impdef.c+372−0
@@ -0,0 +1,372 @@
1/* -------------------------------------------------------------- */
2/*
3 "tiny_impdef creates a .def file from a dll"
4
5 "Usage: tiny_impdef [-p] <library.dll> [-o outputfile]"
6 "Options:"
7 " -p print to stdout"
8*/
9
10#include <windows.h>
11#include <stdio.h>
12
13/* Offset to PE file signature */
14#define NTSIGNATURE(a) ((LPVOID)((BYTE *)a + \
15 ((PIMAGE_DOS_HEADER)a)->e_lfanew))
16
17/* MS-OS header identifies the NT PEFile signature dword;
18 the PEFILE header exists just after that dword. */
19#define PEFHDROFFSET(a) ((LPVOID)((BYTE *)a + \
20 ((PIMAGE_DOS_HEADER)a)->e_lfanew + \
21 SIZE_OF_NT_SIGNATURE))
22
23/* PE optional header is immediately after PEFile header. */
24#define OPTHDROFFSET(a) ((LPVOID)((BYTE *)a + \
25 ((PIMAGE_DOS_HEADER)a)->e_lfanew + \
26 SIZE_OF_NT_SIGNATURE + \
27 sizeof (IMAGE_FILE_HEADER)))
28
29/* Section headers are immediately after PE optional header. */
30#define SECHDROFFSET(a) ((LPVOID)((BYTE *)a + \
31 ((PIMAGE_DOS_HEADER)a)->e_lfanew + \
32 SIZE_OF_NT_SIGNATURE + \
33 sizeof (IMAGE_FILE_HEADER) + \
34 sizeof (IMAGE_OPTIONAL_HEADER)))
35
36
37#define SIZE_OF_NT_SIGNATURE 4
38
39/* -------------------------------------------------------------- */
40
41int WINAPI NumOfSections (
42 LPVOID lpFile)
43{
44 /* Number of sections is indicated in file header. */
45 return (int)
46 ((PIMAGE_FILE_HEADER)
47 PEFHDROFFSET(lpFile))->NumberOfSections;
48}
49
50
51/* -------------------------------------------------------------- */
52
53LPVOID WINAPI ImageDirectoryOffset (
54 LPVOID lpFile,
55 DWORD dwIMAGE_DIRECTORY)
56{
57 PIMAGE_OPTIONAL_HEADER poh;
58 PIMAGE_SECTION_HEADER psh;
59 int nSections = NumOfSections (lpFile);
60 int i = 0;
61 LPVOID VAImageDir;
62
63 /* Retrieve offsets to optional and section headers. */
64 poh = (PIMAGE_OPTIONAL_HEADER)OPTHDROFFSET (lpFile);
65 psh = (PIMAGE_SECTION_HEADER)SECHDROFFSET (lpFile);
66
67 /* Must be 0 thru (NumberOfRvaAndSizes-1). */
68 if (dwIMAGE_DIRECTORY >= poh->NumberOfRvaAndSizes)
69 return NULL;
70
71 /* Locate image directory's relative virtual address. */
72 VAImageDir = (LPVOID)poh->DataDirectory
73 [dwIMAGE_DIRECTORY].VirtualAddress;
74
75 /* Locate section containing image directory. */
76 while (i++<nSections)
77 {
78 if (psh->VirtualAddress <= (DWORD)VAImageDir
79 && psh->VirtualAddress + psh->SizeOfRawData > (DWORD)VAImageDir)
80 break;
81 psh++;
82 }
83
84 if (i > nSections)
85 return NULL;
86
87 /* Return image import directory offset. */
88 return (LPVOID)(((int)lpFile +
89 (int)VAImageDir - psh->VirtualAddress) +
90 (int)psh->PointerToRawData);
91}
92
93/* -------------------------------------------------------------- */
94
95BOOL WINAPI GetSectionHdrByName (
96 LPVOID lpFile,
97 IMAGE_SECTION_HEADER *sh,
98 char *szSection)
99{
100 PIMAGE_SECTION_HEADER psh;
101 int nSections = NumOfSections (lpFile);
102 int i;
103
104 if ((psh = (PIMAGE_SECTION_HEADER)SECHDROFFSET (lpFile)) !=
105 NULL)
106 {
107 /* find the section by name */
108 for (i=0; i<nSections; i++)
109 {
110 if (!strcmp (psh->Name, szSection))
111 {
112 /* copy data to header */
113 memcpy ((LPVOID)sh,
114 (LPVOID)psh,
115 sizeof (IMAGE_SECTION_HEADER));
116 return TRUE;
117 }
118 else
119 psh++;
120 }
121 }
122
123 return FALSE;
124}
125
126/* -------------------------------------------------------------- */
127
128BOOL WINAPI GetSectionHdrByAddress (
129 LPVOID lpFile,
130 IMAGE_SECTION_HEADER *sh,
131 DWORD addr)
132{
133 PIMAGE_SECTION_HEADER psh;
134 int nSections = NumOfSections (lpFile);
135 int i;
136
137 if ((psh = (PIMAGE_SECTION_HEADER)SECHDROFFSET (lpFile)) !=
138 NULL)
139 {
140 /* find the section by name */
141 for (i=0; i<nSections; i++)
142 {
143 if (addr >= psh->VirtualAddress && addr < psh->VirtualAddress + psh->SizeOfRawData)
144 {
145 /* copy data to header */
146 memcpy ((LPVOID)sh,
147 (LPVOID)psh,
148 sizeof (IMAGE_SECTION_HEADER));
149 return TRUE;
150 }
151 else
152 psh++;
153 }
154 }
155
156 return FALSE;
157}
158
159/* -------------------------------------------------------------- */
160
161int WINAPI GetExportFunctionNames (
162 LPVOID lpFile,
163 HANDLE hHeap,
164 char **pszFunctions)
165{
166 IMAGE_SECTION_HEADER sh;
167 PIMAGE_EXPORT_DIRECTORY ped;
168 int *pNames, *pCnt;
169 char *pSrc, *pDest;
170 int i, nCnt;
171 DWORD VAImageDir;
172 PIMAGE_OPTIONAL_HEADER poh;
173 char *pOffset;
174
175 /* Get section header and pointer to data directory
176 for .edata section. */
177 if ((ped = (PIMAGE_EXPORT_DIRECTORY)ImageDirectoryOffset
178 (lpFile, IMAGE_DIRECTORY_ENTRY_EXPORT)) == NULL)
179 return 0;
180
181 poh = (PIMAGE_OPTIONAL_HEADER)OPTHDROFFSET (lpFile);
182 VAImageDir = poh->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress;
183
184 if (FALSE == GetSectionHdrByAddress (lpFile, &sh, VAImageDir)) return 0;
185
186 pOffset = (char *)lpFile + (sh.PointerToRawData - sh.VirtualAddress);
187
188 pNames = (int *)(pOffset + (DWORD)ped->AddressOfNames);
189
190 /* Figure out how much memory to allocate for all strings. */
191 nCnt = 1;
192 for (i=0, pCnt = pNames; i<(int)ped->NumberOfNames; i++)
193 {
194 pSrc = (pOffset + *pCnt++);
195 if (pSrc) nCnt += strlen(pSrc)+1;
196 }
197
198 /* Allocate memory off heap for function names. */
199 pDest = *pszFunctions = HeapAlloc (hHeap, HEAP_ZERO_MEMORY, nCnt);
200
201 /* Copy all strings to buffer. */
202 for (i=0, pCnt = pNames; i<(int)ped->NumberOfNames; i++)
203 {
204 pSrc = (pOffset + *pCnt++);
205 if (pSrc) { strcpy(pDest, pSrc); pDest += strlen(pSrc)+1; }
206 }
207 *pDest = 0;
208
209 return ped->NumberOfNames;
210}
211
212/* -------------------------------------------------------------- */
213
214int main(int argc, char **argv)
215{
216
217 HANDLE hHeap; HANDLE hFile; HANDLE hMapObject; VOID *pMem;
218 int nCnt, ret, argind, std;
219 char *pNames;
220 char infile[MAX_PATH];
221 char buffer[MAX_PATH];
222 char outfile[MAX_PATH];
223 char libname[80];
224
225 hHeap = NULL;
226 hFile = NULL;
227 hMapObject = NULL;
228 pMem = NULL;
229 infile[0] = 0;
230 outfile[0] = 0;
231 ret = 0;
232 std = 0;
233
234 for (argind = 1; argind < argc; ++argind)
235 {
236 const char *a = argv[argind];
237 if ('-' == a[0])
238 {
239 if (0 == strcmp(a, "-p"))
240 std = 1;
241 else
242 if (0 == strcmp(a, "-o"))
243 {
244 if (++argind == argc) goto usage;
245 strcpy(outfile, argv[argind]);
246 }
247 else
248 goto usage;
249 }
250 else
251 if (0 == infile[0])
252 strcpy(infile, a);
253 else
254 goto usage;
255 }
256
257 if (0 == infile[0])
258 {
259usage:
260 fprintf(stderr,
261 "tiny_impdef creates a .def file from a dll\n"
262 "Usage: tiny_impdef [-p] <library.dll> [-o outputfile]\n"
263 "Options:\n"
264 " -p print to stdout\n"
265 );
266error:
267 ret = 1;
268 goto the_end;
269 }
270
271 if (SearchPath(NULL, infile, ".dll", sizeof buffer, buffer, NULL))
272 strcpy(infile, buffer);
273
274 if (0 == outfile[0])
275 {
276 char *p;
277 p = strrchr(strcpy(outfile, infile), '\\');
278 if (NULL == p)
279 p = strrchr(outfile, '/');
280 if (p) strcpy(outfile, p+1);
281
282 p = strrchr(outfile, '.');
283 if (NULL == p) p = strchr(outfile, 0);
284 strcpy(p, ".def");
285 }
286
287 hFile=CreateFile(
288 infile,
289 GENERIC_READ,
290 FILE_SHARE_READ,
291 NULL,
292 OPEN_EXISTING,
293 0,
294 NULL
295 );
296
297 if (hFile == INVALID_HANDLE_VALUE)
298 {
299 fprintf(stderr, "file not found: %s\n", infile);
300 goto error;
301 }
302
303 if (!std) printf("--> %s\n", infile);
304
305 hMapObject = CreateFileMapping(
306 hFile,
307 NULL,
308 PAGE_READONLY,
309 0, 0,
310 NULL
311 );
312
313 if (NULL == hMapObject)
314 {
315 fprintf(stderr, "could not create file mapping.\n");
316 goto error;
317 }
318
319 pMem = MapViewOfFile(
320 hMapObject, // object to map view of
321 FILE_MAP_READ, // read access
322 0, // high offset: map from
323 0, // low offset: beginning
324 0); // default: map entire file
325
326 if (NULL == pMem)
327 {
328 fprintf(stderr, "could not map view of file.\n");
329 goto error;
330 }
331
332 hHeap = GetProcessHeap();
333 nCnt = GetExportFunctionNames(pMem, hHeap, &pNames);
334 {
335 FILE *op; char *p; int n;
336 if (!std) printf("<-- %s\n", outfile);
337
338 if (std)
339 op = stdout;
340 else
341 op = fopen(outfile, "wt");
342
343 if (NULL == op)
344 {
345 fprintf(stderr, "could not create file: %s\n", outfile);
346 goto error;
347 }
348
349 p = strrchr(infile, '\\');
350 if (NULL == p)
351 p = strrchr(infile, '/');
352 if (NULL == p) p = infile; else ++p;
353
354 fprintf(op, "LIBRARY %s\n\nEXPORTS", p);
355 if (std) fprintf(op, " (%d)", nCnt);
356 fprintf(op, "\n");
357 for (n = 0, p = pNames; n < nCnt; ++n)
358 {
359 fprintf(op, "%s\n", p);
360 while (*p++);
361 }
362 if (!std) fclose(op);
363 }
364
365the_end:
366 if (pMem) UnmapViewOfFile(pMem);
367 if (hMapObject) CloseHandle(hMapObject);
368 if (hFile) CloseHandle(hFile);
369 return ret;
370}
371/* -------------------------------------------------------------- */
372
win32/examples/dll.c+15−0
@@ -0,0 +1,15 @@
1//+---------------------------------------------------------------------------
2//
3// dll.c - Windows DLL example - dynamically linked part
4//
5
6#include <windows.h>
7
8#define DLL_EXPORT __declspec(dllexport)
9
10
11DLL_EXPORT void HelloWorld (void)
12{
13 MessageBox (0, "Hello World!", "From DLL", MB_ICONINFORMATION);
14}
15
win32/examples/dll.def+6−0
@@ -0,0 +1,6 @@
1; Windows DLL example - export definition for the DLL
2
3LIBRARY dll.dll
4
5EXPORTS
6HelloWorld
win32/examples/fib.c+23−0
@@ -0,0 +1,23 @@
1#include <stdio.h>
2
3int fib(n)
4{
5 if (n <= 2)
6 return 1;
7 else
8 return fib(n-1) + fib(n-2);
9}
10
11int main(int argc, char **argv)
12{
13 int n;
14 if (argc < 2) {
15 printf("usage: fib n\n"
16 "Compute nth Fibonacci number\n");
17 return 1;
18 }
19
20 n = atoi(argv[1]);
21 printf("fib(%d) = %d\n", n, fib(n, 2));
22 return 0;
23}
win32/examples/hello_dll.c+19−0
@@ -0,0 +1,19 @@
1//+---------------------------------------------------------------------------
2//
3// HELLO_DLL.C - Windows DLL example - main application part
4//
5
6#include <windows.h>
7
8void HelloWorld (void);
9
10int WINAPI WinMain(
11 HINSTANCE hInstance,
12 HINSTANCE hPrevInstance,
13 LPSTR lpCmdLine,
14 int nCmdShow)
15{
16 HelloWorld();
17 return 0;
18}
19
win32/examples/hello_win.c+159−0
@@ -0,0 +1,159 @@
1//+---------------------------------------------------------------------------
2//
3// HELLO_WIN.C - Windows GUI 'Hello World!' Example
4//
5//+---------------------------------------------------------------------------
6
7#include <windows.h>
8
9#define APPNAME "HELLO_WIN"
10
11char szAppName[] = APPNAME; // The name of this application
12char szTitle[] = APPNAME; // The title bar text
13char *pWindowText;
14
15HINSTANCE g_hInst; // current instance
16
17void CenterWindow(HWND hWnd);
18
19//+---------------------------------------------------------------------------
20//
21// Function: WndProc
22//
23// Synopsis: very unusual type of function - gets called by system to
24// process windows messages.
25//
26// Arguments: same as always.
27//----------------------------------------------------------------------------
28
29LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
30{
31 switch (message)
32 {
33 // ----------------------- first and last
34 case WM_CREATE:
35 CenterWindow(hwnd);
36 break;
37
38 case WM_DESTROY:
39 PostQuitMessage(0);
40 break;
41
42
43 // ----------------------- get out of it...
44 case WM_RBUTTONUP:
45 DestroyWindow(hwnd);
46 break;
47
48 case WM_KEYDOWN:
49 if (VK_ESCAPE == wParam)
50 DestroyWindow(hwnd);
51 break;
52
53
54 // ----------------------- display our minimal info
55 case WM_PAINT:
56 {
57 PAINTSTRUCT ps;
58 HDC hdc;
59 RECT rc;
60 hdc = BeginPaint(hwnd, &ps);
61
62 GetClientRect(hwnd, &rc);
63 SetTextColor(hdc, RGB(240,240,96));
64 SetBkMode(hdc, TRANSPARENT);
65 DrawText(hdc, pWindowText, -1, &rc, DT_CENTER|DT_SINGLELINE|DT_VCENTER);
66
67 EndPaint(hwnd, &ps);
68 break;
69 }
70
71 // ----------------------- let windows do all other stuff
72 default:
73 return DefWindowProc(hwnd, message, wParam, lParam);
74 }
75 return 0;
76}
77
78//+---------------------------------------------------------------------------
79//
80// Function: WinMain
81//
82// Synopsis: standard entrypoint for GUI Win32 apps
83//
84//----------------------------------------------------------------------------
85int APIENTRY WinMain(
86 HINSTANCE hInstance,
87 HINSTANCE hPrevInstance,
88 LPSTR lpCmdLine,
89 int nCmdShow)
90{
91 MSG msg;
92
93 WNDCLASS wc;
94
95 HWND hwnd;
96
97 // Fill in window class structure with parameters that describe
98 // the main window.
99
100 ZeroMemory(&wc, sizeof wc);
101 wc.hInstance = hInstance;
102 wc.lpszClassName = szAppName;
103 wc.lpfnWndProc = (WNDPROC)WndProc;
104 wc.style = CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;
105 wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
106 wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
107 wc.hCursor = LoadCursor(NULL, IDC_ARROW);
108
109 if (FALSE == RegisterClass(&wc)) return 0;
110
111 // create the browser
112 hwnd = CreateWindow(
113 szAppName,
114 szTitle,
115 WS_OVERLAPPEDWINDOW|WS_VISIBLE,
116 CW_USEDEFAULT,
117 CW_USEDEFAULT,
118 360,//CW_USEDEFAULT,
119 240,//CW_USEDEFAULT,
120 0,
121 0,
122 g_hInst,
123 0);
124
125 if (NULL == hwnd) return 0;
126
127 pWindowText = lpCmdLine[0] ? lpCmdLine : "Hello Windows!";
128
129 // Main message loop:
130 while (GetMessage(&msg, NULL, 0, 0) > 0)
131 {
132 TranslateMessage(&msg);
133 DispatchMessage(&msg);
134 }
135
136 return msg.wParam;
137}
138
139//+---------------------------------------------------------------------------
140
141//+---------------------------------------------------------------------------
142
143void CenterWindow(HWND hwnd_self)
144{
145 RECT rw_self, rc_parent, rw_parent; HWND hwnd_parent;
146 hwnd_parent = GetParent(hwnd_self);
147 if (NULL==hwnd_parent) hwnd_parent = GetDesktopWindow();
148 GetWindowRect(hwnd_parent, &rw_parent);
149 GetClientRect(hwnd_parent, &rc_parent);
150 GetWindowRect(hwnd_self, &rw_self);
151 SetWindowPos(hwnd_self, NULL,
152 rw_parent.left + (rc_parent.right + rw_self.left - rw_self.right) / 2,
153 rw_parent.top + (rc_parent.bottom + rw_self.top - rw_self.bottom) / 2,
154 0, 0,
155 SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE
156 );
157}
158
159//+---------------------------------------------------------------------------
win32/include/_mingw.h+51−0
@@ -0,0 +1,51 @@
1/*
2 * _mingw.h
3 *
4 * This file is for TCC-PE and not part of the Mingw32 package.
5 *
6 * THIS SOFTWARE IS NOT COPYRIGHTED
7 *
8 * This source code is offered for use in the public domain. You may
9 * use, modify or distribute it freely.
10 *
11 * This code is distributed in the hope that it will be useful but
12 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13 * DISCLAIMED. This includes but is not limited to warranties of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 *
16 */
17
18#ifndef __MINGW_H
19#define __MINGW_H
20
21#define __int64 long long
22#define __int32 long
23#define __int16 short
24#define __int8 char
25#define __cdecl __attribute__((__cdecl__))
26#define __stdcall __attribute__((__stdcall__))
27#define __declspec(x) __attribute__((x))
28
29#define __MINGW32_VERSION 2.0
30#define __MINGW32_MAJOR_VERSION 2
31#define __MINGW32_MINOR_VERSION 0
32
33#define __MSVCRT__
34#define __MINGW_IMPORT extern
35#define _CRTIMP
36#define __CRT_INLINE extern __inline__
37
38#define _WIN32
39#define WIN32
40
41#ifndef _WINT_T
42#define _WINT_T
43typedef unsigned int wint_t;
44#endif
45
46/* for winapi */
47#define NONAMELESSUNION
48#define DECLSPEC_NORETURN
49#define WIN32_LEAN_AND_MEAN
50
51#endif /* __MINGW_H */
win32/include/assert.h+71−0
@@ -0,0 +1,71 @@
1/*
2 * assert.h
3 *
4 * Define the assert macro for debug output.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _ASSERT_H_
28#define _ASSERT_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33#ifndef RC_INVOKED
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39#ifdef NDEBUG
40
41/*
42 * If not debugging, assert does nothing.
43 */
44#define assert(x) ((void)0)
45
46#else /* debugging enabled */
47
48/*
49 * CRTDLL nicely supplies a function which does the actual output and
50 * call to abort.
51 */
52void _assert (const char*, const char*, int)
53#ifdef __GNUC__
54 __attribute__ ((noreturn))
55#endif
56 ;
57
58/*
59 * Definition of the assert macro.
60 */
61#define assert(e) ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__))
62#endif /* NDEBUG */
63
64#ifdef __cplusplus
65}
66#endif
67
68#endif /* Not RC_INVOKED */
69
70#endif /* Not _ASSERT_H_ */
71
win32/include/conio.h+159−0
@@ -0,0 +1,159 @@
1/* A conio implementation for Mingw/Dev-C++.
2 *
3 * Written by:
4 * Hongli Lai <hongli@telekabel.nl>
5 * tkorrovi <tkorrovi@altavista.net> on 2002/02/26.
6 * Andrew Westcott <ajwestco@users.sourceforge.net>
7 *
8 * Offered for use in the public domain without any warranty.
9 */
10
11#ifndef _CONIO_H_
12#define _CONIO_H_
13
14
15#include <stdio.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#define BLINK 0
22
23typedef enum
24{
25 BLACK,
26 BLUE,
27 GREEN,
28 CYAN,
29 RED,
30 MAGENTA,
31 BROWN,
32 LIGHTGRAY,
33 DARKGRAY,
34 LIGHTBLUE,
35 LIGHTGREEN,
36 LIGHTCYAN,
37 LIGHTRED,
38 LIGHTMAGENTA,
39 YELLOW,
40 WHITE
41} COLORS;
42
43
44#define cgets _cgets
45#define cprintf _cprintf
46#define cputs _cputs
47#define cscanf _cscanf
48#define ScreenClear clrscr
49
50/* blinkvideo */
51
52void clreol (void);
53void clrscr (void);
54
55int _conio_gettext (int left, int top, int right, int bottom,
56 char *str);
57/* _conio_kbhit */
58
59void delline (void);
60
61/* gettextinfo */
62void gotoxy(int x, int y);
63/*
64highvideo
65insline
66intensevideo
67lowvideo
68movetext
69normvideo
70*/
71
72void puttext (int left, int top, int right, int bottom, char *str);
73
74// Screen Variables
75
76/* ScreenCols
77ScreenGetChar
78ScreenGetCursor
79ScreenMode
80ScreenPutChar
81ScreenPutString
82ScreenRetrieve
83ScreenRows
84ScreenSetCursor
85ScreenUpdate
86ScreenUpdateLine
87ScreenVisualBell
88_set_screen_lines */
89
90void _setcursortype (int type);
91
92void textattr (int _attr);
93
94void textbackground (int color);
95
96void textcolor (int color);
97
98/* textmode */
99
100int wherex (void);
101
102int wherey (void);
103
104/* window */
105
106
107
108/* The code below was part of Mingw's conio.h */
109/*
110 * conio.h
111 *
112 * Low level console I/O functions. Pretty please try to use the ANSI
113 * standard ones if you are writing new code.
114 *
115 * This file is part of the Mingw32 package.
116 *
117 * Contributors:
118 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
119 *
120 * THIS SOFTWARE IS NOT COPYRIGHTED
121 *
122 * This source code is offered for use in the public domain. You may
123 * use, modify or distribute it freely.
124 *
125 * This code is distributed in the hope that it will be useful but
126 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
127 * DISCLAMED. This includes but is not limited to warranties of
128 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
129 *
130 * $Revision: 1.1 $
131 * $Author: bellard $
132 * $Date: 2005/04/14 23:49:21 $
133 *
134 */
135
136char* _cgets (char*);
137int _cprintf (const char*, ...);
138int _cputs (const char*);
139int _cscanf (char*, ...);
140
141int _getch (void);
142int _getche (void);
143int _kbhit (void);
144int _putch (int);
145int _ungetch (int);
146
147
148int getch (void);
149int getche (void);
150int kbhit (void);
151int putch (int);
152int ungetch (int);
153
154
155#ifdef __cplusplus
156}
157#endif
158
159#endif /* _CONIO_H_ */
win32/include/ctype.h+232−0
@@ -0,0 +1,232 @@
1/*
2 * ctype.h
3 *
4 * Functions for testing character types and converting characters.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _CTYPE_H_
28#define _CTYPE_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33#define __need_wchar_t
34#define __need_wint_t
35#ifndef RC_INVOKED
36#include <stddef.h>
37#endif /* Not RC_INVOKED */
38
39
40/*
41 * The following flags are used to tell iswctype and _isctype what character
42 * types you are looking for.
43 */
44#define _UPPER 0x0001
45#define _LOWER 0x0002
46#define _DIGIT 0x0004
47#define _SPACE 0x0008 /* HT LF VT FF CR SP */
48#define _PUNCT 0x0010
49#define _CONTROL 0x0020
50#define _BLANK 0x0040 /* this is SP only, not SP and HT as in C99 */
51#define _HEX 0x0080
52#define _LEADBYTE 0x8000
53
54#define _ALPHA 0x0103
55
56#ifndef RC_INVOKED
57
58#ifdef __cplusplus
59extern "C" {
60#endif
61
62int isalnum(int);
63int isalpha(int);
64int iscntrl(int);
65int isdigit(int);
66int isgraph(int);
67int islower(int);
68int isprint(int);
69int ispunct(int);
70int isspace(int);
71int isupper(int);
72int isxdigit(int);
73
74#ifndef __STRICT_ANSI__
75int _isctype (int, int);
76#endif
77
78/* These are the ANSI versions, with correct checking of argument */
79int tolower(int);
80int toupper(int);
81
82/*
83 * NOTE: The above are not old name type wrappers, but functions exported
84 * explicitly by MSVCRT/CRTDLL. However, underscored versions are also
85 * exported.
86 */
87#ifndef __STRICT_ANSI__
88/*
89 * These are the cheap non-std versions: The return values are undefined
90 * if the argument is not ASCII char or is not of appropriate case
91 */
92int _tolower(int);
93int _toupper(int);
94#endif
95
96/* Also defined in stdlib.h */
97#ifndef MB_CUR_MAX
98# ifdef __MSVCRT__
99# define MB_CUR_MAX __mb_cur_max
100 __MINGW_IMPORT int __mb_cur_max;
101# else /* not __MSVCRT */
102# define MB_CUR_MAX __mb_cur_max_dll
103 __MINGW_IMPORT int __mb_cur_max_dll;
104# endif /* not __MSVCRT */
105#endif /* MB_CUR_MAX */
106
107__MINGW_IMPORT unsigned short _ctype[];
108#ifdef __MSVCRT__
109__MINGW_IMPORT unsigned short* _pctype;
110#else /* CRTDLL */
111__MINGW_IMPORT unsigned short* _pctype_dll;
112#define _pctype _pctype_dll
113#endif
114
115/*
116 * Use inlines here rather than macros, because macros will upset
117 * C++ usage (eg, ::isalnum), and so usually get undefined
118 *
119 * According to standard for SB chars, these function are defined only
120 * for input values representable by unsigned char or EOF.
121 * Thus, there is no range test.
122 * This reproduces behaviour of MSVCRT.dll lib implemention for SB chars.
123 *
124 * If no MB char support is needed, these can be simplified even
125 * more by command line define -DMB_CUR_MAX=1. The compiler will then
126 * optimise away the constant condition.
127 */
128
129
130#if ! (defined (__NO_CTYPE_INLINES) || defined (__STRICT_ANSI__ ))
131/* use simple lookup if SB locale, else _isctype() */
132#define __ISCTYPE(c, mask) (MB_CUR_MAX == 1 ? (_pctype[c] & mask) : _isctype(c, mask))
133extern __inline__ int isalnum(int c) {return __ISCTYPE(c, (_ALPHA|_DIGIT));}
134extern __inline__ int isalpha(int c) {return __ISCTYPE(c, _ALPHA);}
135extern __inline__ int iscntrl(int c) {return __ISCTYPE(c, _CONTROL);}
136extern __inline__ int isdigit(int c) {return __ISCTYPE(c, _DIGIT);}
137extern __inline__ int isgraph(int c) {return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT));}
138extern __inline__ int islower(int c) {return __ISCTYPE(c, _LOWER);}
139extern __inline__ int isprint(int c) {return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT));}
140extern __inline__ int ispunct(int c) {return __ISCTYPE(c, _PUNCT);}
141extern __inline__ int isspace(int c) {return __ISCTYPE(c, _SPACE);}
142extern __inline__ int isupper(int c) {return __ISCTYPE(c, _UPPER);}
143extern __inline__ int isxdigit(int c) {return __ISCTYPE(c, _HEX);}
144
145/* these reproduce behaviour of lib underscored versions */
146extern __inline__ int _tolower(int c) {return ( c -'A'+'a');}
147extern __inline__ int _toupper(int c) {return ( c -'a'+'A');}
148
149/* TODO? Is it worth inlining ANSI tolower, toupper? Probably only
150 if we only want C-locale. */
151
152#endif /* _NO_CTYPE_INLINES */
153
154/* Wide character equivalents */
155
156#ifndef WEOF
157#define WEOF (wchar_t)(0xFFFF)
158#endif
159
160#ifndef _WCTYPE_T_DEFINED
161typedef wchar_t wctype_t;
162#define _WCTYPE_T_DEFINED
163#endif
164
165int iswalnum(wint_t);
166int iswalpha(wint_t);
167int iswascii(wint_t);
168int iswcntrl(wint_t);
169int iswctype(wint_t, wctype_t);
170int is_wctype(wint_t, wctype_t); /* Obsolete! */
171int iswdigit(wint_t);
172int iswgraph(wint_t);
173int iswlower(wint_t);
174int iswprint(wint_t);
175int iswpunct(wint_t);
176int iswspace(wint_t);
177int iswupper(wint_t);
178int iswxdigit(wint_t);
179
180wchar_t towlower(wchar_t);
181wchar_t towupper(wchar_t);
182
183int isleadbyte (int);
184
185/* Also in wctype.h */
186#if ! (defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED))
187#define __WCTYPE_INLINES_DEFINED
188extern __inline__ int iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
189extern __inline__ int iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
190extern __inline__ int iswascii(wint_t wc) {return (((unsigned)wc & 0x7F) ==0);}
191extern __inline__ int iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
192extern __inline__ int iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
193extern __inline__ int iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
194extern __inline__ int iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
195extern __inline__ int iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
196extern __inline__ int iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
197extern __inline__ int iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
198extern __inline__ int iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
199extern __inline__ int iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
200extern __inline__ int isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
201#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */
202
203#ifndef __STRICT_ANSI__
204int __isascii (int);
205int __toascii (int);
206int __iscsymf (int); /* Valid first character in C symbol */
207int __iscsym (int); /* Valid character in C symbol (after first) */
208
209#ifndef __NO_CTYPE_INLINES
210extern __inline__ int __isascii(int c) {return (((unsigned)c & ~0x7F) == 0);}
211extern __inline__ int __toascii(int c) {return (c & 0x7F);}
212extern __inline__ int __iscsymf(int c) {return (isalpha(c) || (c == '_'));}
213extern __inline__ int __iscsym(int c) {return (isalnum(c) || (c == '_'));}
214#endif /* __NO_CTYPE_INLINES */
215
216#ifndef _NO_OLDNAMES
217int isascii (int);
218int toascii (int);
219int iscsymf (int);
220int iscsym (int);
221#endif /* Not _NO_OLDNAMES */
222
223#endif /* Not __STRICT_ANSI__ */
224
225#ifdef __cplusplus
226}
227#endif
228
229#endif /* Not RC_INVOKED */
230
231#endif /* Not _CTYPE_H_ */
232
win32/include/dir.h+26−0
@@ -0,0 +1,26 @@
1/*
2 * dir.h
3 *
4 * This file OBSOLESCENT and only provided for backward compatibility.
5 * Please use io.h instead.
6 *
7 * This file is part of the Mingw32 package.
8 *
9 * Contributors:
10 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
11 * Mumit Khan <khan@xraylith.wisc.edu>
12 *
13 * THIS SOFTWARE IS NOT COPYRIGHTED
14 *
15 * This source code is offered for use in the public domain. You may
16 * use, modify or distribute it freely.
17 *
18 * This code is distributed in the hope that it will be useful but
19 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
20 * DISCLAIMED. This includes but is not limited to warranties of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22 *
23 */
24
25#include <io.h>
26
win32/include/direct.h+95−0
@@ -0,0 +1,95 @@
1/*
2 * direct.h
3 *
4 * Functions for manipulating paths and directories (included from io.h)
5 * plus functions for setting the current drive.
6 *
7 * This file is part of the Mingw32 package.
8 *
9 * Contributors:
10 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
11 *
12 * THIS SOFTWARE IS NOT COPYRIGHTED
13 *
14 * This source code is offered for use in the public domain. You may
15 * use, modify or distribute it freely.
16 *
17 * This code is distributed in the hope that it will be useful but
18 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
19 * DISCLAIMED. This includes but is not limited to warranties of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 *
22 * $Revision: 1.1 $
23 * $Author: bellard $
24 * $Date: 2005/04/14 23:49:21 $
25 *
26 */
27
28#ifndef __STRICT_ANSI__
29
30#ifndef _DIRECT_H_
31#define _DIRECT_H_
32
33/* All the headers include this file. */
34#include <_mingw.h>
35
36#define __need_wchar_t
37#ifndef RC_INVOKED
38#include <stddef.h>
39#endif /* Not RC_INVOKED */
40
41#include <io.h>
42
43#ifndef RC_INVOKED
44
45#ifdef __cplusplus
46extern "C" {
47#endif
48
49#ifndef _DISKFREE_T_DEFINED
50/* needed by _getdiskfree (also in dos.h) */
51struct _diskfree_t {
52 unsigned total_clusters;
53 unsigned avail_clusters;
54 unsigned sectors_per_cluster;
55 unsigned bytes_per_sector;
56};
57#define _DISKFREE_T_DEFINED
58#endif
59
60/*
61 * You really shouldn't be using these. Use the Win32 API functions instead.
62 * However, it does make it easier to port older code.
63 */
64int _getdrive (void);
65unsigned long _getdrives(void);
66int _chdrive (int);
67char* _getdcwd (int, char*, int);
68unsigned _getdiskfree (unsigned, struct _diskfree_t *);
69
70#ifndef _NO_OLDNAMES
71# define diskfree_t _diskfree_t
72#endif
73
74#ifndef _WDIRECT_DEFINED
75/* wide character versions. Also in wchar.h */
76#ifdef __MSVCRT__
77int _wchdir(const wchar_t*);
78wchar_t* _wgetcwd(wchar_t*, int);
79wchar_t* _wgetdcwd(int, wchar_t*, int);
80int _wmkdir(const wchar_t*);
81int _wrmdir(const wchar_t*);
82#endif /* __MSVCRT__ */
83#define _WDIRECT_DEFINED
84#endif
85
86#ifdef __cplusplus
87}
88#endif
89
90#endif /* Not RC_INVOKED */
91
92#endif /* Not _DIRECT_H_ */
93
94#endif /* Not __STRICT_ANSI__ */
95
win32/include/dirent.h+96−0
@@ -0,0 +1,96 @@
1/*
2 * DIRENT.H (formerly DIRLIB.H)
3 *
4 * by M. J. Weinstein Released to public domain 1-Jan-89
5 *
6 * Because I have heard that this feature (opendir, readdir, closedir)
7 * it so useful for programmers coming from UNIX or attempting to port
8 * UNIX code, and because it is reasonably light weight, I have included
9 * it in the Mingw32 package. I have also added an implementation of
10 * rewinddir, seekdir and telldir.
11 * - Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
12 *
13 * This code is distributed in the hope that is will be useful but
14 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
15 * DISCLAIMED. This includeds but is not limited to warranties of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 *
18 * $Revision: 1.1 $
19 * $Author: bellard $
20 * $Date: 2005/04/14 23:49:21 $
21 *
22 */
23
24#ifndef __STRICT_ANSI__
25
26#ifndef _DIRENT_H_
27#define _DIRENT_H_
28
29/* All the headers include this file. */
30#include <_mingw.h>
31
32#include <io.h>
33
34#ifndef RC_INVOKED
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40struct dirent
41{
42 long d_ino; /* Always zero. */
43 unsigned short d_reclen; /* Always zero. */
44 unsigned short d_namlen; /* Length of name in d_name. */
45 char* d_name; /* File name. */
46 /* NOTE: The name in the dirent structure points to the name in the
47 * finddata_t structure in the DIR. */
48};
49
50/*
51 * This is an internal data structure. Good programmers will not use it
52 * except as an argument to one of the functions below.
53 */
54typedef struct
55{
56 /* disk transfer area for this dir */
57 struct _finddata_t dd_dta;
58
59 /* dirent struct to return from dir (NOTE: this makes this thread
60 * safe as long as only one thread uses a particular DIR struct at
61 * a time) */
62 struct dirent dd_dir;
63
64 /* _findnext handle */
65 long dd_handle;
66
67 /*
68 * Status of search:
69 * 0 = not started yet (next entry to read is first entry)
70 * -1 = off the end
71 * positive = 0 based index of next entry
72 */
73 short dd_stat;
74
75 /* given path for dir with search pattern (struct is extended) */
76 char dd_name[1];
77} DIR;
78
79
80DIR* opendir (const char*);
81struct dirent* readdir (DIR*);
82int closedir (DIR*);
83void rewinddir (DIR*);
84long telldir (DIR*);
85void seekdir (DIR*, long);
86
87#ifdef __cplusplus
88}
89#endif
90
91#endif /* Not RC_INVOKED */
92
93#endif /* Not _DIRENT_H_ */
94
95#endif /* Not __STRICT_ANSI__ */
96
win32/include/dos.h+110−0
@@ -0,0 +1,110 @@
1/*
2 * dos.h
3 *
4 * DOS-specific functions and structures.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef __STRICT_ANSI__
28
29#ifndef _DOS_H_
30#define _DOS_H_
31
32/* All the headers include this file. */
33#include <_mingw.h>
34
35#define __need_wchar_t
36#ifndef RC_INVOKED
37#include <stddef.h>
38#endif /* Not RC_INVOKED */
39
40/* For DOS file attributes */
41#include <io.h>
42
43#ifndef RC_INVOKED
44
45#ifdef __cplusplus
46extern "C" {
47#endif
48
49#ifndef __MSVCRT__ /* these are in CRTDLL, but not MSVCRT */
50#ifndef __DECLSPEC_SUPPORTED
51extern unsigned int *__imp__basemajor_dll;
52extern unsigned int *__imp__baseminor_dll;
53extern unsigned int *__imp__baseversion_dll;
54extern unsigned int *__imp__osmajor_dll;
55extern unsigned int *__imp__osminor_dll;
56extern unsigned int *__imp__osmode_dll;
57
58#define _basemajor (*__imp__basemajor_dll)
59#define _baseminor (*__imp__baseminor_dll)
60#define _baseversion (*__imp__baseversion_dll)
61#define _osmajor (*__imp__osmajor_dll)
62#define _osminor (*__imp__osminor_dll)
63#define _osmode (*__imp__osmode_dll)
64
65#else /* __DECLSPEC_SUPPORTED */
66
67__MINGW_IMPORT unsigned int _basemajor_dll;
68__MINGW_IMPORT unsigned int _baseminor_dll;
69__MINGW_IMPORT unsigned int _baseversion_dll;
70__MINGW_IMPORT unsigned int _osmajor_dll;
71__MINGW_IMPORT unsigned int _osminor_dll;
72__MINGW_IMPORT unsigned int _osmode_dll;
73
74#define _basemajor _basemajor_dll
75#define _baseminor _baseminor_dll
76#define _baseversion _baseversion_dll
77#define _osmajor _osmajor_dll
78#define _osminor _osminor_dll
79#define _osmode _osmode_dll
80
81#endif /* __DECLSPEC_SUPPORTED */
82#endif /* ! __MSVCRT__ */
83
84#ifndef _DISKFREE_T_DEFINED
85/* needed by _getdiskfree (also in direct.h) */
86struct _diskfree_t {
87 unsigned total_clusters;
88 unsigned avail_clusters;
89 unsigned sectors_per_cluster;
90 unsigned bytes_per_sector;
91};
92#define _DISKFREE_T_DEFINED
93#endif
94
95unsigned _getdiskfree (unsigned, struct _diskfree_t *);
96
97#ifndef _NO_OLDNAMES
98# define diskfree_t _diskfree_t
99#endif
100
101#ifdef __cplusplus
102}
103#endif
104
105#endif /* Not RC_INVOKED */
106
107#endif /* Not _DOS_H_ */
108
109#endif /* Not __STRICT_ANSI__ */
110
win32/include/errno.h+117−0
@@ -0,0 +1,117 @@
1/*
2 * errno.h
3 *
4 * Error numbers and access to error reporting.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _ERRNO_H_
28#define _ERRNO_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33/*
34 * Error numbers.
35 * TODO: Can't be sure of some of these assignments, I guessed from the
36 * names given by strerror and the defines in the Cygnus errno.h. A lot
37 * of the names from the Cygnus errno.h are not represented, and a few
38 * of the descriptions returned by strerror do not obviously match
39 * their error naming.
40 */
41#define EPERM 1 /* Operation not permitted */
42#define ENOFILE 2 /* No such file or directory */
43#define ENOENT 2
44#define ESRCH 3 /* No such process */
45#define EINTR 4 /* Interrupted function call */
46#define EIO 5 /* Input/output error */
47#define ENXIO 6 /* No such device or address */
48#define E2BIG 7 /* Arg list too long */
49#define ENOEXEC 8 /* Exec format error */
50#define EBADF 9 /* Bad file descriptor */
51#define ECHILD 10 /* No child processes */
52#define EAGAIN 11 /* Resource temporarily unavailable */
53#define ENOMEM 12 /* Not enough space */
54#define EACCES 13 /* Permission denied */
55#define EFAULT 14 /* Bad address */
56/* 15 - Unknown Error */
57#define EBUSY 16 /* strerror reports "Resource device" */
58#define EEXIST 17 /* File exists */
59#define EXDEV 18 /* Improper link (cross-device link?) */
60#define ENODEV 19 /* No such device */
61#define ENOTDIR 20 /* Not a directory */
62#define EISDIR 21 /* Is a directory */
63#define EINVAL 22 /* Invalid argument */
64#define ENFILE 23 /* Too many open files in system */
65#define EMFILE 24 /* Too many open files */
66#define ENOTTY 25 /* Inappropriate I/O control operation */
67/* 26 - Unknown Error */
68#define EFBIG 27 /* File too large */
69#define ENOSPC 28 /* No space left on device */
70#define ESPIPE 29 /* Invalid seek (seek on a pipe?) */
71#define EROFS 30 /* Read-only file system */
72#define EMLINK 31 /* Too many links */
73#define EPIPE 32 /* Broken pipe */
74#define EDOM 33 /* Domain error (math functions) */
75#define ERANGE 34 /* Result too large (possibly too small) */
76/* 35 - Unknown Error */
77#define EDEADLOCK 36 /* Resource deadlock avoided (non-Cyg) */
78#define EDEADLK 36
79/* 37 - Unknown Error */
80#define ENAMETOOLONG 38 /* Filename too long (91 in Cyg?) */
81#define ENOLCK 39 /* No locks available (46 in Cyg?) */
82#define ENOSYS 40 /* Function not implemented (88 in Cyg?) */
83#define ENOTEMPTY 41 /* Directory not empty (90 in Cyg?) */
84#define EILSEQ 42 /* Illegal byte sequence */
85
86/*
87 * NOTE: ENAMETOOLONG and ENOTEMPTY conflict with definitions in the
88 * sockets.h header provided with windows32api-0.1.2.
89 * You should go and put an #if 0 ... #endif around the whole block
90 * of errors (look at the comment above them).
91 */
92
93#ifndef RC_INVOKED
94
95#ifdef __cplusplus
96extern "C" {
97#endif
98
99/*
100 * Definitions of errno. For _doserrno, sys_nerr and * sys_errlist, see
101 * stdlib.h.
102 */
103#ifdef _UWIN
104#undef errno
105extern int errno;
106#else
107int* _errno(void);
108#define errno (*_errno())
109#endif
110
111#ifdef __cplusplus
112}
113#endif
114
115#endif /* Not RC_INVOKED */
116
117#endif /* Not _ERRNO_H_ */
win32/include/excpt.h+20−0
@@ -0,0 +1,20 @@
1#ifndef _EXCPT_H
2#define _EXCPT_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7/* FIXME: This will make some code compile. The programs will most
8 likely crash when an exception is raised, but at least they will
9 compile. */
10#ifdef __GNUC__
11#define __try
12#define __except(x) if (0) /* don't execute handler */
13#define __finally
14
15#define _try __try
16#define _except __except
17#define _finally __finally
18#endif
19
20#endif
win32/include/fcntl.h+135−0
@@ -0,0 +1,135 @@
1/*
2 * fcntl.h
3 *
4 * Access constants for _open. Note that the permissions constants are
5 * in sys/stat.h (ick).
6 *
7 * This code is part of the Mingw32 package.
8 *
9 * Contributors:
10 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
11 *
12 * THIS SOFTWARE IS NOT COPYRIGHTED
13 *
14 * This source code is offered for use in the public domain. You may
15 * use, modify or distribute it freely.
16 *
17 * This code is distributed in the hope that it will be useful but
18 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
19 * DISCLAIMED. This includes but is not limited to warranties of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 *
22 * $Revision: 1.1 $
23 * $Author: bellard $
24 * $Date: 2005/04/14 23:49:21 $
25 *
26 */
27
28#ifndef __STRICT_ANSI__
29
30#ifndef _FCNTL_H_
31#define _FCNTL_H_
32
33/* All the headers include this file. */
34#include <_mingw.h>
35
36/*
37 * It appears that fcntl.h should include io.h for compatibility...
38 */
39#include <io.h>
40
41/* Specifiy one of these flags to define the access mode. */
42#define _O_RDONLY 0
43#define _O_WRONLY 1
44#define _O_RDWR 2
45
46/* Mask for access mode bits in the _open flags. */
47#define _O_ACCMODE (_O_RDONLY|_O_WRONLY|_O_RDWR)
48
49#define _O_APPEND 0x0008 /* Writes will add to the end of the file. */
50
51#define _O_RANDOM 0x0010
52#define _O_SEQUENTIAL 0x0020
53#define _O_TEMPORARY 0x0040 /* Make the file dissappear after closing.
54 * WARNING: Even if not created by _open! */
55#define _O_NOINHERIT 0x0080
56
57#define _O_CREAT 0x0100 /* Create the file if it does not exist. */
58#define _O_TRUNC 0x0200 /* Truncate the file if it does exist. */
59#define _O_EXCL 0x0400 /* Open only if the file does not exist. */
60
61/* NOTE: Text is the default even if the given _O_TEXT bit is not on. */
62#define _O_TEXT 0x4000 /* CR-LF in file becomes LF in memory. */
63#define _O_BINARY 0x8000 /* Input and output is not translated. */
64#define _O_RAW _O_BINARY
65
66#ifndef _NO_OLDNAMES
67
68/* POSIX/Non-ANSI names for increased portability */
69#define O_RDONLY _O_RDONLY
70#define O_WRONLY _O_WRONLY
71#define O_RDWR _O_RDWR
72#define O_ACCMODE _O_ACCMODE
73#define O_APPEND _O_APPEND
74#define O_CREAT _O_CREAT
75#define O_TRUNC _O_TRUNC
76#define O_EXCL _O_EXCL
77#define O_TEXT _O_TEXT
78#define O_BINARY _O_BINARY
79#define O_TEMPORARY _O_TEMPORARY
80#define O_NOINHERIT _O_NOINHERIT
81#define O_SEQENTIAL _O_SEQUENTIAL
82#define O_RANDOM _O_RANDOM
83
84#endif /* Not _NO_OLDNAMES */
85
86
87#ifndef RC_INVOKED
88
89/*
90 * This variable determines the default file mode.
91 * TODO: Which flags work?
92 */
93#ifndef __DECLSPEC_SUPPORTED
94
95#ifdef __MSVCRT__
96extern unsigned int* __imp__fmode;
97#define _fmode (*__imp__fmode)
98#else
99/* CRTDLL */
100extern unsigned int* __imp__fmode_dll;
101#define _fmode (*__imp__fmode_dll)
102#endif
103
104#else /* __DECLSPEC_SUPPORTED */
105
106#ifdef __MSVCRT__
107__MINGW_IMPORT unsigned int _fmode;
108#else /* ! __MSVCRT__ */
109__MINGW_IMPORT unsigned int _fmode_dll;
110#define _fmode _fmode_dll
111#endif /* ! __MSVCRT__ */
112
113#endif /* __DECLSPEC_SUPPORTED */
114
115
116#ifdef __cplusplus
117extern "C" {
118#endif
119
120int _setmode (int, int);
121
122#ifndef _NO_OLDNAMES
123int setmode (int, int);
124#endif /* Not _NO_OLDNAMES */
125
126#ifdef __cplusplus
127}
128#endif
129
130#endif /* Not RC_INVOKED */
131
132#endif /* Not _FCNTL_H_ */
133
134#endif /* Not __STRICT_ANSI__ */
135
win32/include/fenv.h+85−0
@@ -0,0 +1,85 @@
1#ifndef _FENV_H
2#define _FENV_H
3
4/*
5 For now, support only for the basic abstraction of flags that are
6 either set or clear. fexcept_t could be structure that holds more info
7 about the fp environment.
8*/
9typedef unsigned short fexcept_t;
10
11/* This 28-byte struct represents the entire floating point
12 environment as stored by fnstenv or fstenv */
13typedef struct
14{
15 unsigned short __control_word;
16 unsigned short __unused0;
17 unsigned short __status_word;
18 unsigned short __unused1;
19 unsigned short __tag_word;
20 unsigned short __unused2;
21 unsigned int __ip_offset; /* instruction pointer offset */
22 unsigned short __ip_selector;
23 unsigned short __opcode;
24 unsigned int __data_offset;
25 unsigned short __data_selector;
26 unsigned short __unused3;
27} fenv_t;
28
29
30/* FPU status word exception flags */
31#define FE_INVALID 0x01
32#define FE_DENORMAL 0x02
33#define FE_DIVBYZERO 0x04
34#define FE_OVERFLOW 0x08
35#define FE_UNDERFLOW 0x10
36#define FE_INEXACT 0x20
37#define FE_ALL_EXCEPT (FE_INVALID | FE_DENORMAL | FE_DIVBYZERO \
38 | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
39
40/* FPU control word rounding flags */
41#define FE_TONEAREST 0x0000
42#define FE_DOWNWARD 0x0400
43#define FE_UPWARD 0x0800
44#define FE_TOWARDZERO 0x0c00
45
46
47/* The default floating point environment */
48#define FE_DFL_ENV ((const fenv_t *)-1)
49
50
51#ifndef RC_INVOKED
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56
57/*TODO: Some of these could be inlined */
58/* 7.6.2 Exception */
59
60extern int feclearexcept (int);
61extern int fegetexceptflag (fexcept_t * flagp, int excepts);
62extern int feraiseexcept (int excepts );
63extern int fesetexceptflag (const fexcept_t *, int);
64extern int fetestexcept (int excepts);
65
66
67/* 7.6.3 Rounding */
68
69extern int fegetround (void);
70extern int fesetround (int mode);
71
72
73/* 7.6.4 Environment */
74
75extern int fegetenv (fenv_t * envp);
76extern int fesetenv (const fenv_t * );
77extern int feupdateenv (const fenv_t *);
78extern int feholdexcept (fenv_t *);
79
80#ifdef __cplusplus
81}
82#endif
83#endif /* Not RC_INVOKED */
84
85#endif /* ndef _FENV_H */
win32/include/float.h+224−0
@@ -0,0 +1,224 @@
1/*
2 * float.h
3 *
4 * Constants related to floating point arithmetic.
5 *
6 * Also included here are some non-ANSI bits for accessing the floating
7 * point controller.
8 *
9 * NOTE: GCC provides float.h, and it is probably more accurate than this,
10 * but it doesn't include the non-standard stuff for accessing the
11 * fp controller. (TODO: Move those bits elsewhere?) Thus it is
12 * probably not a good idea to use the GCC supplied version instead
13 * of this header.
14 *
15 * This file is part of the Mingw32 package.
16 *
17 * Contributors:
18 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
19 *
20 * THIS SOFTWARE IS NOT COPYRIGHTED
21 *
22 * This source code is offered for use in the public domain. You may
23 * use, modify or distribute it freely.
24 *
25 * This code is distributed in the hope that it will be useful but
26 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
27 * DISCLAIMED. This includes but is not limited to warranties of
28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
29 *
30 * $Revision: 1.1 $
31 * $Author: bellard $
32 * $Date: 2005/04/14 23:49:21 $
33 *
34 */
35
36#ifndef _FLOAT_H_
37#define _FLOAT_H_
38
39/* All the headers include this file. */
40#include <_mingw.h>
41
42#define FLT_ROUNDS 1
43#define FLT_GUARD 1
44#define FLT_NORMALIZE 1
45
46/*
47 * The characteristics of float.
48 */
49
50/* The radix for floating point representation. */
51#define FLT_RADIX 2
52
53/* Decimal digits of precision. */
54#define FLT_DIG 6
55
56/* Smallest number such that 1+x != 1 */
57#define FLT_EPSILON 1.19209290e-07F
58
59/* The number of base FLT_RADIX digits in the mantissa. */
60#define FLT_MANT_DIG 24
61
62/* The maximum floating point number. */
63#define FLT_MAX 3.40282347e+38F
64
65/* Maximum n such that FLT_RADIX^n - 1 is representable. */
66#define FLT_MAX_EXP 128
67
68/* Maximum n such that 10^n is representable. */
69#define FLT_MAX_10_EXP 38
70
71/* Minimum normalized floating-point number. */
72#define FLT_MIN 1.17549435e-38F
73
74/* Minimum n such that FLT_RADIX^n is a normalized number. */
75#define FLT_MIN_EXP (-125)
76
77/* Minimum n such that 10^n is a normalized number. */
78#define FLT_MIN_10_EXP (-37)
79
80
81/*
82 * The characteristics of double.
83 */
84#define DBL_DIG 15
85#define DBL_EPSILON 1.1102230246251568e-16
86#define DBL_MANT_DIG 53
87#define DBL_MAX 1.7976931348623157e+308
88#define DBL_MAX_EXP 1024
89#define DBL_MAX_10_EXP 308
90#define DBL_MIN 2.2250738585072014e-308
91#define DBL_MIN_EXP (-1021)
92#define DBL_MIN_10_EXP (-307)
93
94
95/*
96 * The characteristics of long double.
97 * NOTE: long double is the same as double.
98 */
99#define LDBL_DIG 15
100#define LDBL_EPSILON 1.1102230246251568e-16L
101#define LDBL_MANT_DIG 53
102#define LDBL_MAX 1.7976931348623157e+308L
103#define LDBL_MAX_EXP 1024
104#define LDBL_MAX_10_EXP 308
105#define LDBL_MIN 2.2250738585072014e-308L
106#define LDBL_MIN_EXP (-1021)
107#define LDBL_MIN_10_EXP (-307)
108
109
110/*
111 * Functions and definitions for controlling the FPU.
112 */
113#ifndef __STRICT_ANSI__
114
115/* TODO: These constants are only valid for x86 machines */
116
117/* Control word masks for unMask */
118#define _MCW_EM 0x0008001F /* Error masks */
119#define _MCW_IC 0x00040000 /* Infinity */
120#define _MCW_RC 0x00000300 /* Rounding */
121#define _MCW_PC 0x00030000 /* Precision */
122
123/* Control word values for unNew (use with related unMask above) */
124#define _EM_INVALID 0x00000010
125#define _EM_DENORMAL 0x00080000
126#define _EM_ZERODIVIDE 0x00000008
127#define _EM_OVERFLOW 0x00000004
128#define _EM_UNDERFLOW 0x00000002
129#define _EM_INEXACT 0x00000001
130#define _IC_AFFINE 0x00040000
131#define _IC_PROJECTIVE 0x00000000
132#define _RC_CHOP 0x00000300
133#define _RC_UP 0x00000200
134#define _RC_DOWN 0x00000100
135#define _RC_NEAR 0x00000000
136#define _PC_24 0x00020000
137#define _PC_53 0x00010000
138#define _PC_64 0x00000000
139
140/* These are also defined in Mingw math.h, needed to work around
141 GCC build issues. */
142/* Return values for fpclass. */
143#ifndef __MINGW_FPCLASS_DEFINED
144#define __MINGW_FPCLASS_DEFINED 1
145#define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */
146#define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */
147#define _FPCLASS_NINF 0x0004 /* Negative Infinity */
148#define _FPCLASS_NN 0x0008 /* Negative Normal */
149#define _FPCLASS_ND 0x0010 /* Negative Denormal */
150#define _FPCLASS_NZ 0x0020 /* Negative Zero */
151#define _FPCLASS_PZ 0x0040 /* Positive Zero */
152#define _FPCLASS_PD 0x0080 /* Positive Denormal */
153#define _FPCLASS_PN 0x0100 /* Positive Normal */
154#define _FPCLASS_PINF 0x0200 /* Positive Infinity */
155#endif /* __MINGW_FPCLASS_DEFINED */
156
157/* invalid subconditions (_SW_INVALID also set) */
158#define _SW_UNEMULATED 0x0040 /* unemulated instruction */
159#define _SW_SQRTNEG 0x0080 /* square root of a neg number */
160#define _SW_STACKOVERFLOW 0x0200 /* FP stack overflow */
161#define _SW_STACKUNDERFLOW 0x0400 /* FP stack underflow */
162
163/* Floating point error signals and return codes */
164#define _FPE_INVALID 0x81
165#define _FPE_DENORMAL 0x82
166#define _FPE_ZERODIVIDE 0x83
167#define _FPE_OVERFLOW 0x84
168#define _FPE_UNDERFLOW 0x85
169#define _FPE_INEXACT 0x86
170#define _FPE_UNEMULATED 0x87
171#define _FPE_SQRTNEG 0x88
172#define _FPE_STACKOVERFLOW 0x8a
173#define _FPE_STACKUNDERFLOW 0x8b
174#define _FPE_EXPLICITGEN 0x8c /* raise( SIGFPE ); */
175
176#ifndef RC_INVOKED
177
178#ifdef __cplusplus
179extern "C" {
180#endif
181
182/* Set the FPU control word as cw = (cw & ~unMask) | (unNew & unMask),
183 * i.e. change the bits in unMask to have the values they have in unNew,
184 * leaving other bits unchanged. */
185unsigned int _controlfp (unsigned int unNew, unsigned int unMask);
186unsigned int _control87 (unsigned int unNew, unsigned int unMask);
187
188
189unsigned int _clearfp (void); /* Clear the FPU status word */
190unsigned int _statusfp (void); /* Report the FPU status word */
191#define _clear87 _clearfp
192#define _status87 _statusfp
193
194void _fpreset (void); /* Reset the FPU */
195void fpreset (void);
196
197/* Global 'variable' for the current floating point error code. */
198int * __fpecode(void);
199#define _fpecode (*(__fpecode()))
200
201/*
202 * IEEE recommended functions
203 */
204
205double _chgsign (double);
206double _copysign (double, double);
207double _logb (double);
208double _nextafter (double, double);
209double _scalb (double, long);
210
211int _finite (double);
212int _fpclass (double);
213int _isnan (double);
214
215#ifdef __cplusplus
216}
217#endif
218
219#endif /* Not RC_INVOKED */
220
221#endif /* Not __STRICT_ANSI__ */
222
223#endif /* _FLOAT_H_ */
224
win32/include/inttypes.h+275−0
@@ -0,0 +1,275 @@
1/* 7.8 Format conversion of integer types <inttypes.h> */
2
3#ifndef _INTTYPES_H
4#define _INTTYPES_H
5
6#include <stdint.h>
7#define __need_wchar_t
8#include <stddef.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct {
15 intmax_t quot;
16 intmax_t rem;
17 } imaxdiv_t;
18
19#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS)
20
21/* 7.8.1 Macros for format specifiers
22 *
23 * MS runtime does not yet understand C9x standard "ll"
24 * length specifier. It appears to treat "ll" as "l".
25 * The non-standard I64 length specifier causes warning in GCC,
26 * but understood by MS runtime functions.
27 */
28
29/* fprintf macros for signed types */
30#define PRId8 "d"
31#define PRId16 "d"
32#define PRId32 "d"
33#define PRId64 "I64d"
34
35#define PRIdLEAST8 "d"
36#define PRIdLEAST16 "d"
37#define PRIdLEAST32 "d"
38#define PRIdLEAST64 "I64d"
39
40#define PRIdFAST8 "d"
41#define PRIdFAST16 "d"
42#define PRIdFAST32 "d"
43#define PRIdFAST64 "I64d"
44
45#define PRIdMAX "I64d"
46#define PRIdPTR "d"
47
48#define PRIi8 "i"
49#define PRIi16 "i"
50#define PRIi32 "i"
51#define PRIi64 "I64i"
52
53#define PRIiLEAST8 "i"
54#define PRIiLEAST16 "i"
55#define PRIiLEAST32 "i"
56#define PRIiLEAST64 "I64i"
57
58#define PRIiFAST8 "i"
59#define PRIiFAST16 "i"
60#define PRIiFAST32 "i"
61#define PRIiFAST64 "I64i"
62
63#define PRIiMAX "I64i"
64#define PRIiPTR "i"
65
66#define PRIo8 "o"
67#define PRIo16 "o"
68#define PRIo32 "o"
69#define PRIo64 "I64o"
70
71#define PRIoLEAST8 "o"
72#define PRIoLEAST16 "o"
73#define PRIoLEAST32 "o"
74#define PRIoLEAST64 "I64o"
75
76#define PRIoFAST8 "o"
77#define PRIoFAST16 "o"
78#define PRIoFAST32 "o"
79#define PRIoFAST64 "I64o"
80
81#define PRIoMAX "I64o"
82
83#define PRIoPTR "o"
84
85/* fprintf macros for unsigned types */
86#define PRIu8 "u"
87#define PRIu16 "u"
88#define PRIu32 "u"
89#define PRIu64 "I64u"
90
91
92#define PRIuLEAST8 "u"
93#define PRIuLEAST16 "u"
94#define PRIuLEAST32 "u"
95#define PRIuLEAST64 "I64u"
96
97#define PRIuFAST8 "u"
98#define PRIuFAST16 "u"
99#define PRIuFAST32 "u"
100#define PRIuFAST64 "I64u"
101
102#define PRIuMAX "I64u"
103#define PRIuPTR "u"
104
105#define PRIx8 "x"
106#define PRIx16 "x"
107#define PRIx32 "x"
108#define PRIx64 "I64x"
109
110#define PRIxLEAST8 "x"
111#define PRIxLEAST16 "x"
112#define PRIxLEAST32 "x"
113#define PRIxLEAST64 "I64x"
114
115#define PRIxFAST8 "x"
116#define PRIxFAST16 "x"
117#define PRIxFAST32 "x"
118#define PRIxFAST64 "I64x"
119
120#define PRIxMAX "I64x"
121#define PRIxPTR "x"
122
123#define PRIX8 "X"
124#define PRIX16 "X"
125#define PRIX32 "X"
126#define PRIX64 "I64X"
127
128#define PRIXLEAST8 "X"
129#define PRIXLEAST16 "X"
130#define PRIXLEAST32 "X"
131#define PRIXLEAST64 "I64X"
132
133#define PRIXFAST8 "X"
134#define PRIXFAST16 "X"
135#define PRIXFAST32 "X"
136#define PRIXFAST64 "I64X"
137
138#define PRIXMAX "I64X"
139#define PRIXPTR "X"
140
141/*
142 * fscanf macros for signed int types
143 * NOTE: if 32-bit int is used for int_fast8_t and int_fast16_t
144 * (see stdint.h, 7.18.1.3), FAST8 and FAST16 should have
145 * no length identifiers
146 */
147
148#define SCNd16 "hd"
149#define SCNd32 "d"
150#define SCNd64 "I64d"
151
152#define SCNdLEAST16 "hd"
153#define SCNdLEAST32 "d"
154#define SCNdLEAST64 "I64d"
155
156#define SCNdFAST16 "hd"
157#define SCNdFAST32 "d"
158#define SCNdFAST64 "I64d"
159
160#define SCNdMAX "I64d"
161#define SCNdPTR "d"
162
163#define SCNi16 "hi"
164#define SCNi32 "i"
165#define SCNi64 "I64i"
166
167#define SCNiLEAST16 "hi"
168#define SCNiLEAST32 "i"
169#define SCNiLEAST64 "I64i"
170
171#define SCNiFAST16 "hi"
172#define SCNiFAST32 "i"
173#define SCNiFAST64 "I64i"
174
175#define SCNiMAX "I64i"
176#define SCNiPTR "i"
177
178#define SCNo16 "ho"
179#define SCNo32 "o"
180#define SCNo64 "I64o"
181
182#define SCNoLEAST16 "ho"
183#define SCNoLEAST32 "o"
184#define SCNoLEAST64 "I64o"
185
186#define SCNoFAST16 "ho"
187#define SCNoFAST32 "o"
188#define SCNoFAST64 "I64o"
189
190#define SCNoMAX "I64o"
191#define SCNoPTR "o"
192
193#define SCNx16 "hx"
194#define SCNx32 "x"
195#define SCNx64 "I64x"
196
197#define SCNxLEAST16 "hx"
198#define SCNxLEAST32 "x"
199#define SCNxLEAST64 "I64x"
200
201#define SCNxFAST16 "hx"
202#define SCNxFAST32 "x"
203#define SCNxFAST64 "I64x"
204
205#define SCNxMAX "I64x"
206#define SCNxPTR "x"
207
208
209/* fscanf macros for unsigned int types */
210
211#define SCNu16 "hu"
212#define SCNu32 "u"
213#define SCNu64 "I64u"
214
215#define SCNuLEAST16 "hu"
216#define SCNuLEAST32 "u"
217#define SCNuLEAST64 "I64u"
218
219#define SCNuFAST16 "hu"
220#define SCNuFAST32 "u"
221#define SCNuFAST64 "I64u"
222
223#define SCNuMAX "I64u"
224#define SCNuPTR "u"
225
226#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
227/*
228 * no length modifier for char types prior to C9x
229 * MS runtime scanf appears to treat "hh" as "h"
230 */
231
232/* signed char */
233#define SCNd8 "hhd"
234#define SCNdLEAST8 "hhd"
235#define SCNdFAST8 "hhd"
236
237#define SCNi8 "hhi"
238#define SCNiLEAST8 "hhi"
239#define SCNiFAST8 "hhi"
240
241#define SCNo8 "hho"
242#define SCNoLEAST8 "hho"
243#define SCNoFAST8 "hho"
244
245#define SCNx8 "hhx"
246#define SCNxLEAST8 "hhx"
247#define SCNxFAST8 "hhx"
248
249/* unsigned char */
250#define SCNu8 "hhu"
251#define SCNuLEAST8 "hhu"
252#define SCNuFAST8 "hhu"
253#endif /* __STDC_VERSION__ >= 199901 */
254
255#endif /* !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) */
256
257extern inline intmax_t imaxabs (intmax_t j)
258 {return (j >= 0 ? j : -j);}
259imaxdiv_t imaxdiv (intmax_t numer, intmax_t denom);
260
261/* 7.8.2 Conversion functions for greatest-width integer types */
262
263intmax_t strtoimax (const char* __restrict__ nptr, char** __restrict__ endptr, int base);
264uintmax_t strtoumax (const char* __restrict__ nptr, char** __restrict__ endptr, int base);
265
266intmax_t wcstoimax (const wchar_t* __restrict__ nptr, wchar_t** __restrict__ endptr,
267 int base);
268uintmax_t wcstoumax (const wchar_t* __restrict__ nptr, wchar_t** __restrict__ endptr,
269 int base);
270
271#ifdef __cplusplus
272}
273#endif
274
275#endif /* ndef _INTTYPES_H */
win32/include/io.h+296−0
@@ -0,0 +1,296 @@
1/*
2 * io.h
3 *
4 * System level I/O functions and types.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef __STRICT_ANSI__
28
29#ifndef _IO_H_
30#define _IO_H_
31
32/* All the headers include this file. */
33#include <_mingw.h>
34
35/* We need the definition of FILE anyway... */
36#include <stdio.h>
37
38/* MSVC's io.h contains the stuff from dir.h, so I will too.
39 * NOTE: This also defines off_t, the file offset type, through
40 * an inclusion of sys/types.h */
41#ifndef __STRICT_ANSI__
42
43#include <sys/types.h> /* To get time_t. */
44
45/*
46 * Attributes of files as returned by _findfirst et al.
47 */
48#define _A_NORMAL 0x00000000
49#define _A_RDONLY 0x00000001
50#define _A_HIDDEN 0x00000002
51#define _A_SYSTEM 0x00000004
52#define _A_VOLID 0x00000008
53#define _A_SUBDIR 0x00000010
54#define _A_ARCH 0x00000020
55
56
57#ifndef RC_INVOKED
58
59#ifndef _FSIZE_T_DEFINED
60typedef unsigned long _fsize_t;
61#define _FSIZE_T_DEFINED
62#endif
63
64/*
65 * The following structure is filled in by _findfirst or _findnext when
66 * they succeed in finding a match.
67 */
68struct _finddata_t
69{
70 unsigned attrib; /* Attributes, see constants above. */
71 time_t time_create;
72 time_t time_access; /* always midnight local time */
73 time_t time_write;
74 _fsize_t size;
75 char name[FILENAME_MAX]; /* may include spaces. */
76};
77
78struct _finddatai64_t {
79 unsigned attrib;
80 time_t time_create;
81 time_t time_access;
82 time_t time_write;
83 __int64 size;
84 char name[FILENAME_MAX];
85};
86
87
88#ifndef _WFINDDATA_T_DEFINED
89struct _wfinddata_t {
90 unsigned attrib;
91 time_t time_create; /* -1 for FAT file systems */
92 time_t time_access; /* -1 for FAT file systems */
93 time_t time_write;
94 _fsize_t size;
95 wchar_t name[FILENAME_MAX]; /* may include spaces. */
96};
97struct _wfinddatai64_t {
98 unsigned attrib;
99 time_t time_create;
100 time_t time_access;
101 time_t time_write;
102 __int64 size;
103 wchar_t name[FILENAME_MAX];
104};
105
106#define _WFINDDATA_T_DEFINED
107#endif
108
109#ifdef __cplusplus
110extern "C" {
111#endif
112
113/*
114 * Functions for searching for files. _findfirst returns -1 if no match
115 * is found. Otherwise it returns a handle to be used in _findnext and
116 * _findclose calls. _findnext also returns -1 if no match could be found,
117 * and 0 if a match was found. Call _findclose when you are finished.
118 */
119int _findfirst (const char*, struct _finddata_t*);
120int _findnext (int, struct _finddata_t*);
121int _findclose (int);
122
123int _chdir (const char*);
124char* _getcwd (char*, int);
125int _mkdir (const char*);
126char* _mktemp (char*);
127int _rmdir (const char*);
128
129
130#ifdef __MSVCRT__
131__int64 _filelengthi64(int);
132long _findfirsti64(const char*, struct _finddatai64_t*);
133int _findnexti64(long, struct _finddatai64_t*);
134__int64 _lseeki64(int, __int64, int);
135__int64 _telli64(int);
136#endif /* __MSVCRT__ */
137
138
139#ifndef _NO_OLDNAMES
140
141#ifndef _UWIN
142int chdir (const char*);
143char* getcwd (char*, int);
144int mkdir (const char*);
145char* mktemp (char*);
146int rmdir (const char*);
147#endif /* _UWIN */
148
149#endif /* Not _NO_OLDNAMES */
150
151#ifdef __cplusplus
152}
153#endif
154
155#endif /* Not RC_INVOKED */
156
157#endif /* Not __STRICT_ANSI__ */
158
159/* TODO: Maximum number of open handles has not been tested, I just set
160 * it the same as FOPEN_MAX. */
161#define HANDLE_MAX FOPEN_MAX
162
163
164/* Some defines for _access nAccessMode (MS doesn't define them, but
165 * it doesn't seem to hurt to add them). */
166#define F_OK 0 /* Check for file existence */
167#define X_OK 1 /* Check for execute permission. */
168#define W_OK 2 /* Check for write permission */
169#define R_OK 4 /* Check for read permission */
170
171#ifndef RC_INVOKED
172
173#ifdef __cplusplus
174extern "C" {
175#endif
176
177int _access (const char*, int);
178int _chsize (int, long);
179int _close (int);
180int _commit(int);
181
182/* NOTE: The only significant bit in unPermissions appears to be bit 7 (0x80),
183 * the "owner write permission" bit (on FAT). */
184int _creat (const char*, unsigned);
185
186int _dup (int);
187int _dup2 (int, int);
188long _filelength (int);
189int _fileno (FILE*);
190long _get_osfhandle (int);
191int _isatty (int);
192
193/* In a very odd turn of events this function is excluded from those
194 * files which define _STREAM_COMPAT. This is required in order to
195 * build GNU libio because of a conflict with _eof in streambuf.h
196 * line 107. Actually I might just be able to change the name of
197 * the enum member in streambuf.h... we'll see. TODO */
198#ifndef _STREAM_COMPAT
199int _eof (int);
200#endif
201
202/* LK_... locking commands defined in sys/locking.h. */
203int _locking (int, int, long);
204
205long _lseek (int, long, int);
206
207/* Optional third argument is unsigned unPermissions. */
208int _open (const char*, int, ...);
209
210int _open_osfhandle (long, int);
211int _pipe (int *, unsigned int, int);
212int _read (int, void*, unsigned int);
213
214/* SH_... flags for nShFlags defined in share.h
215 * Optional fourth argument is unsigned unPermissions */
216int _sopen (const char*, int, int, ...);
217
218long _tell (int);
219/* Should umask be in sys/stat.h and/or sys/types.h instead? */
220int _umask (int);
221int _unlink (const char*);
222int _write (int, const void*, unsigned int);
223
224/* Wide character versions. Also declared in wchar.h. */
225/* Not in crtdll.dll */
226#if !defined (_WIO_DEFINED)
227#if defined (__MSVCRT__)
228int _waccess(const wchar_t*, int);
229int _wchmod(const wchar_t*, int);
230int _wcreat(const wchar_t*, int);
231long _wfindfirst(wchar_t*, struct _wfinddata_t*);
232int _wfindnext(long, struct _wfinddata_t *);
233int _wunlink(const wchar_t*);
234int _wopen(const wchar_t*, int, ...);
235int _wsopen(const wchar_t*, int, int, ...);
236wchar_t * _wmktemp(wchar_t*);
237long _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*);
238int _wfindnexti64(long, struct _wfinddatai64_t*);
239#endif /* defined (__MSVCRT__) */
240#define _WIO_DEFINED
241#endif /* _WIO_DEFINED */
242
243#ifndef _NO_OLDNAMES
244/*
245 * Non-underscored versions of non-ANSI functions to improve portability.
246 * These functions live in libmoldname.a.
247 */
248
249#ifndef _UWIN
250int access (const char*, int);
251int chsize (int, long );
252int close (int);
253int creat (const char*, int);
254int dup (int);
255int dup2 (int, int);
256int eof (int);
257long filelength (int);
258int fileno (FILE*);
259int isatty (int);
260long lseek (int, long, int);
261int open (const char*, int, ...);
262int read (int, void*, unsigned int);
263int sopen (const char*, int, int, ...);
264long tell (int);
265int umask (int);
266int unlink (const char*);
267int write (int, const void*, unsigned int);
268#endif /* _UWIN */
269
270/* Wide character versions. Also declared in wchar.h. */
271/* Where do these live? Not in libmoldname.a nor in libmsvcrt.a */
272#if 0
273int waccess(const wchar_t *, int);
274int wchmod(const wchar_t *, int);
275int wcreat(const wchar_t *, int);
276long wfindfirst(wchar_t *, struct _wfinddata_t *);
277int wfindnext(long, struct _wfinddata_t *);
278int wunlink(const wchar_t *);
279int wrename(const wchar_t *, const wchar_t *);
280int wopen(const wchar_t *, int, ...);
281int wsopen(const wchar_t *, int, int, ...);
282wchar_t * wmktemp(wchar_t *);
283#endif
284
285#endif /* Not _NO_OLDNAMES */
286
287#ifdef __cplusplus
288}
289#endif
290
291#endif /* Not RC_INVOKED */
292
293#endif /* _IO_H_ not defined */
294
295#endif /* Not strict ANSI */
296
win32/include/limits.h+115−0
@@ -0,0 +1,115 @@
1/*
2 * limits.h
3 *
4 * Defines constants for the sizes of integral types.
5 *
6 * NOTE: GCC should supply a version of this header and it should be safe to
7 * use that version instead of this one (maybe safer).
8 *
9 * This file is part of the Mingw32 package.
10 *
11 * Contributors:
12 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
13 *
14 * THIS SOFTWARE IS NOT COPYRIGHTED
15 *
16 * This source code is offered for use in the public domain. You may
17 * use, modify or distribute it freely.
18 *
19 * This code is distributed in the hope that it will be useful but
20 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
21 * DISCLAIMED. This includes but is not limited to warranties of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
23 *
24 * $Revision: 1.1 $
25 * $Author: bellard $
26 * $Date: 2005/04/14 23:49:21 $
27 *
28 */
29
30#ifndef _LIMITS_H_
31#define _LIMITS_H_
32
33/* All the headers include this file. */
34#include <_mingw.h>
35
36/*
37 * File system limits
38 *
39 * TODO: NAME_MAX and OPEN_MAX are file system limits or not? Are they the
40 * same as FILENAME_MAX and FOPEN_MAX from stdio.h?
41 * NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
42 * required for the NUL. TODO: Test?
43 */
44#define PATH_MAX (259)
45
46/*
47 * Characteristics of the char data type.
48 *
49 * TODO: Is MB_LEN_MAX correct?
50 */
51#define CHAR_BIT 8
52#define MB_LEN_MAX 2
53
54#define SCHAR_MIN (-128)
55#define SCHAR_MAX 127
56
57#define UCHAR_MAX 255
58
59/* TODO: Is this safe? I think it might just be testing the preprocessor,
60 * not the compiler itself... */
61#if ('\x80' < 0)
62#define CHAR_MIN SCHAR_MIN
63#define CHAR_MAX SCHAR_MAX
64#else
65#define CHAR_MIN 0
66#define CHAR_MAX UCHAR_MAX
67#endif
68
69/*
70 * Maximum and minimum values for ints.
71 */
72#define INT_MAX 2147483647
73#define INT_MIN (-INT_MAX-1)
74
75#define UINT_MAX 0xffffffff
76
77/*
78 * Maximum and minimum values for shorts.
79 */
80#define SHRT_MAX 32767
81#define SHRT_MIN (-SHRT_MAX-1)
82
83#define USHRT_MAX 0xffff
84
85/*
86 * Maximum and minimum values for longs and unsigned longs.
87 *
88 * TODO: This is not correct for Alphas, which have 64 bit longs.
89 */
90#define LONG_MAX 2147483647L
91
92#define LONG_MIN (-LONG_MAX-1)
93
94#define ULONG_MAX 0xffffffffUL
95
96
97/*
98 * The GNU C compiler also allows 'long long int'
99 */
100#if !defined(__STRICT_ANSI__) && defined(__GNUC__)
101
102#define LONG_LONG_MAX 9223372036854775807LL
103#define LONG_LONG_MIN (-LONG_LONG_MAX-1)
104
105#define ULONG_LONG_MAX (2ULL * LONG_LONG_MAX + 1)
106
107/* ISO C9x macro names */
108#define LLONG_MAX LONG_LONG_MAX
109#define LLONG_MIN LONG_LONG_MIN
110#define ULLONG_MAX ULONG_LONG_MAX
111
112#endif /* Not Strict ANSI and GNU C compiler */
113
114
115#endif /* not _LIMITS_H_ */
win32/include/locale.h+100−0
@@ -0,0 +1,100 @@
1/*
2 * locale.h
3 *
4 * Functions and types for localization (ie. changing the appearance of
5 * output based on the standards of a certain country).
6 *
7 * This file is part of the Mingw32 package.
8 *
9 * Contributors:
10 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
11 *
12 * THIS SOFTWARE IS NOT COPYRIGHTED
13 *
14 * This source code is offered for use in the public domain. You may
15 * use, modify or distribute it freely.
16 *
17 * This code is distributed in the hope that it will be useful but
18 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
19 * DISCLAIMED. This includes but is not limited to warranties of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 *
22 * $Revision: 1.1 $
23 * $Author: bellard $
24 * $Date: 2005/04/14 23:49:21 $
25 *
26 */
27
28#ifndef _LOCALE_H_
29#define _LOCALE_H_
30
31/* All the headers include this file. */
32#include <_mingw.h>
33
34/*
35 * NOTE: I have tried to test this, but I am limited by my knowledge of
36 * locale issues. The structure does not bomb if you look at the
37 * values, and 'decimal_point' even seems to be correct. But the
38 * rest of the values are, by default, not particularly useful
39 * (read meaningless and not related to the international settings
40 * of the system).
41 */
42
43#define LC_ALL 0
44#define LC_COLLATE 1
45#define LC_CTYPE 2
46#define LC_MONETARY 3
47#define LC_NUMERIC 4
48#define LC_TIME 5
49#define LC_MIN LC_ALL
50#define LC_MAX LC_TIME
51
52#ifndef RC_INVOKED
53
54/*
55 * The structure returned by 'localeconv'.
56 */
57struct lconv
58{
59 char* decimal_point;
60 char* thousands_sep;
61 char* grouping;
62 char* int_curr_symbol;
63 char* currency_symbol;
64 char* mon_decimal_point;
65 char* mon_thousands_sep;
66 char* mon_grouping;
67 char* positive_sign;
68 char* negative_sign;
69 char int_frac_digits;
70 char frac_digits;
71 char p_cs_precedes;
72 char p_sep_by_space;
73 char n_cs_precedes;
74 char n_sep_by_space;
75 char p_sign_posn;
76 char n_sign_posn;
77};
78
79#ifdef __cplusplus
80extern "C" {
81#endif
82
83char* setlocale (int, const char*);
84struct lconv* localeconv (void);
85
86#ifndef _WLOCALE_DEFINED /* also declared in wchar.h */
87# define __need_wchar_t
88# include <stddef.h>
89 wchar_t* _wsetlocale(int, const wchar_t*);
90# define _WLOCALE_DEFINED
91#endif /* ndef _WLOCALE_DEFINED */
92
93#ifdef __cplusplus
94}
95#endif
96
97#endif /* Not RC_INVOKED */
98
99#endif /* Not _LOCALE_H_ */
100
win32/include/malloc.h+87−0
@@ -0,0 +1,87 @@
1/*
2 * malloc.h
3 *
4 * Support for programs which want to use malloc.h to get memory management
5 * functions. Unless you absolutely need some of these functions and they are
6 * not in the ANSI headers you should use the ANSI standard header files
7 * instead.
8 *
9 * This file is part of the Mingw32 package.
10 *
11 * Contributors:
12 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
13 *
14 * THIS SOFTWARE IS NOT COPYRIGHTED
15 *
16 * This source code is offered for use in the public domain. You may
17 * use, modify or distribute it freely.
18 *
19 * This code is distributed in the hope that it will be useful but
20 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
21 * DISCLAIMED. This includes but is not limited to warranties of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
23 *
24 * $Revision: 1.1 $
25 * $Author: bellard $
26 * $Date: 2005/04/14 23:49:21 $
27 *
28 */
29
30#ifndef __STRICT_ANSI__
31
32#ifndef _MALLOC_H_
33#define _MALLOC_H_
34
35/* All the headers include this file. */
36#include <_mingw.h>
37
38#include <stdlib.h>
39
40#ifndef RC_INVOKED
41
42/*
43 * The structure used to walk through the heap with _heapwalk.
44 */
45typedef struct _heapinfo
46{
47 int* _pentry;
48 size_t _size;
49 int _useflag;
50} _HEAPINFO;
51
52/* Values for _heapinfo.useflag */
53#define _USEDENTRY 0
54#define _FREEENTRY 1
55
56#ifdef __cplusplus
57extern "C" {
58#endif
59/*
60 The _heap* memory allocation functions are supported on NT
61 but not W9x. On latter, they always set errno to ENOSYS.
62*/
63int _heapwalk (_HEAPINFO*);
64
65#ifndef _NO_OLDNAMES
66int heapwalk (_HEAPINFO*);
67#endif /* Not _NO_OLDNAMES */
68
69int _heapchk (void); /* Verify heap integrety. */
70int _heapmin (void); /* Return unused heap to the OS. */
71int _heapset (unsigned int);
72
73size_t _msize (void*);
74size_t _get_sbh_threshold (void);
75int _set_sbh_threshold (size_t);
76void * _expand (void*, size_t);
77
78#ifdef __cplusplus
79}
80#endif
81
82#endif /* RC_INVOKED */
83
84#endif /* Not _MALLOC_H_ */
85
86#endif /* Not __STRICT_ANSI__ */
87
win32/include/math.h+438−0
@@ -0,0 +1,438 @@
1/*
2 * math.h
3 *
4 * Mathematical functions.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _MATH_H_
28#define _MATH_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33/*
34 * Types for the _exception structure.
35 */
36
37#define _DOMAIN 1 /* domain error in argument */
38#define _SING 2 /* singularity */
39#define _OVERFLOW 3 /* range overflow */
40#define _UNDERFLOW 4 /* range underflow */
41#define _TLOSS 5 /* total loss of precision */
42#define _PLOSS 6 /* partial loss of precision */
43
44/*
45 * Exception types with non-ANSI names for compatibility.
46 */
47
48#ifndef __STRICT_ANSI__
49#ifndef _NO_OLDNAMES
50
51#define DOMAIN _DOMAIN
52#define SING _SING
53#define OVERFLOW _OVERFLOW
54#define UNDERFLOW _UNDERFLOW
55#define TLOSS _TLOSS
56#define PLOSS _PLOSS
57
58#endif /* Not _NO_OLDNAMES */
59#endif /* Not __STRICT_ANSI__ */
60
61
62/* These are also defined in Mingw float.h; needed here as well to work
63 around GCC build issues. */
64#ifndef __STRICT_ANSI__
65#ifndef __MINGW_FPCLASS_DEFINED
66#define __MINGW_FPCLASS_DEFINED 1
67/* IEEE 754 classication */
68#define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */
69#define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */
70#define _FPCLASS_NINF 0x0004 /* Negative Infinity */
71#define _FPCLASS_NN 0x0008 /* Negative Normal */
72#define _FPCLASS_ND 0x0010 /* Negative Denormal */
73#define _FPCLASS_NZ 0x0020 /* Negative Zero */
74#define _FPCLASS_PZ 0x0040 /* Positive Zero */
75#define _FPCLASS_PD 0x0080 /* Positive Denormal */
76#define _FPCLASS_PN 0x0100 /* Positive Normal */
77#define _FPCLASS_PINF 0x0200 /* Positive Infinity */
78#endif /* __MINGW_FPCLASS_DEFINED */
79#endif /* Not __STRICT_ANSI__ */
80
81#ifndef RC_INVOKED
82
83#ifdef __cplusplus
84extern "C" {
85#endif
86
87/*
88 * HUGE_VAL is returned by strtod when the value would overflow the
89 * representation of 'double'. There are other uses as well.
90 *
91 * __imp__HUGE is a pointer to the actual variable _HUGE in
92 * MSVCRT.DLL. If we used _HUGE directly we would get a pointer
93 * to a thunk function.
94 *
95 * NOTE: The CRTDLL version uses _HUGE_dll instead.
96 */
97
98#ifndef __DECLSPEC_SUPPORTED
99
100#ifdef __MSVCRT__
101extern double* __imp__HUGE;
102#define HUGE_VAL (*__imp__HUGE)
103#else
104/* CRTDLL */
105extern double* __imp__HUGE_dll;
106#define HUGE_VAL (*__imp__HUGE_dll)
107#endif
108
109#else /* __DECLSPEC_SUPPORTED */
110
111#ifdef __MSVCRT__
112__MINGW_IMPORT double _HUGE;
113#define HUGE_VAL _HUGE
114#else
115/* CRTDLL */
116__MINGW_IMPORT double _HUGE_dll;
117#define HUGE_VAL _HUGE_dll
118#endif
119
120#endif /* __DECLSPEC_SUPPORTED */
121
122struct _exception
123{
124 int type;
125 char *name;
126 double arg1;
127 double arg2;
128 double retval;
129};
130
131
132double sin (double);
133double cos (double);
134double tan (double);
135double sinh (double);
136double cosh (double);
137double tanh (double);
138double asin (double);
139double acos (double);
140double atan (double);
141double atan2 (double, double);
142double exp (double);
143double log (double);
144double log10 (double);
145double pow (double, double);
146double sqrt (double);
147double ceil (double);
148double floor (double);
149double fabs (double);
150double ldexp (double, int);
151double frexp (double, int*);
152double modf (double, double*);
153double fmod (double, double);
154
155
156#ifndef __STRICT_ANSI__
157
158/* Complex number (for cabs) */
159struct _complex
160{
161 double x; /* Real part */
162 double y; /* Imaginary part */
163};
164
165double _cabs (struct _complex);
166double _hypot (double, double);
167double _j0 (double);
168double _j1 (double);
169double _jn (int, double);
170double _y0 (double);
171double _y1 (double);
172double _yn (int, double);
173int _matherr (struct _exception *);
174
175/* These are also declared in Mingw float.h; needed here as well to work
176 around GCC build issues. */
177/* BEGIN FLOAT.H COPY */
178/*
179 * IEEE recommended functions
180 */
181
182double _chgsign (double);
183double _copysign (double, double);
184double _logb (double);
185double _nextafter (double, double);
186double _scalb (double, long);
187
188int _finite (double);
189int _fpclass (double);
190int _isnan (double);
191
192/* END FLOAT.H COPY */
193
194#if !defined (_NO_OLDNAMES) \
195 || (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L )
196
197/*
198 * Non-underscored versions of non-ANSI functions. These reside in
199 * liboldnames.a. They are now also ISO C99 standand names.
200 * Provided for extra portability.
201 */
202
203double cabs (struct _complex);
204double hypot (double, double);
205double j0 (double);
206double j1 (double);
207double jn (int, double);
208double y0 (double);
209double y1 (double);
210double yn (int, double);
211
212#endif /* Not _NO_OLDNAMES */
213
214#endif /* Not __STRICT_ANSI__ */
215
216#ifdef __cplusplus
217}
218#endif
219#endif /* Not RC_INVOKED */
220
221
222#ifndef __NO_ISOCEXT
223
224#define INFINITY HUGE_VAL
225#define NAN (0.0F/0.0F)
226
227/*
228 Return values for fpclassify.
229 These are based on Intel x87 fpu condition codes
230 in the high byte of status word and differ from
231 the return values for MS IEEE 754 extension _fpclass()
232*/
233#define FP_NAN 0x0100
234#define FP_NORMAL 0x0400
235#define FP_INFINITE (FP_NAN | FP_NORMAL)
236#define FP_ZERO 0x4000
237#define FP_SUBNORMAL (FP_NORMAL | FP_ZERO)
238/* 0x0200 is signbit mask */
239
240#ifndef RC_INVOKED
241#ifdef __cplusplus
242extern "C" {
243#endif
244
245double nan(const char *tagp);
246float nanf(const char *tagp);
247
248#ifndef __STRICT_ANSI__
249#define nan() nan("")
250#define nanf() nanf("")
251#endif
252
253
254/*
255 We can't inline float, because we want to ensure truncation
256 to semantic type before classification. If we extend to long
257 double, we will also need to make double extern only.
258 (A normal long double value might become subnormal when
259 converted to double, and zero when converted to float.)
260*/
261extern __inline__ int __fpclassify (double x){
262 unsigned short sw;
263 __asm__ ("fxam; fstsw %%ax;" : "=a" (sw): "t" (x));
264 return sw & (FP_NAN | FP_NORMAL | FP_ZERO );
265}
266
267extern int __fpclassifyf (float);
268
269#define fpclassify(x) ((sizeof(x) == sizeof(float)) ? __fpclassifyf(x) \
270 : __fpclassify(x))
271
272/* We don't need to worry about trucation here:
273 A NaN stays a NaN. */
274
275extern __inline__ int __isnan (double _x)
276{
277 unsigned short sw;
278 __asm__ ("fxam;"
279 "fstsw %%ax": "=a" (sw) : "t" (_x));
280 return (sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL))
281 == FP_NAN;
282}
283
284extern __inline__ int __isnanf (float _x)
285{
286 unsigned short sw;
287 __asm__ ("fxam;"
288 "fstsw %%ax": "=a" (sw) : "t" (_x));
289 return (sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL))
290 == FP_NAN;
291}
292
293#define isnan(x) ((sizeof(x) == sizeof(float)) ? __isnanf(x) \
294 : __isnan(x))
295
296
297#define isfinite(x) ((fpclassify(x) & FP_NAN) == 0)
298#define isinf(x) (fpclassify(x) == FP_INFINITE)
299#define isnormal(x) (fpclassify(x) == FP_NORMAL)
300
301
302extern __inline__ int __signbit (double x) {
303 unsigned short stw;
304 __asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
305 return stw & 0x0200;
306}
307
308extern __inline__ int __signbitf (float x) {
309 unsigned short stw;
310 __asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
311 return stw & 0x0200;
312}
313
314#define signbit(x) ((sizeof(x) == sizeof(float)) ? __signbitf(x) \
315 : __signbit(x))
316/*
317 * With these functions, comparisons involving quiet NaNs set the FP
318 * condition code to "unordered". The IEEE floating-point spec
319 * dictates that the result of floating-point comparisons should be
320 * false whenever a NaN is involved, with the exception of the !=,
321 * which always returns true.
322 */
323
324#if __GNUC__ >= 3
325
326#define isgreater(x, y) __builtin_isgreater(x, y)
327#define isgreaterequal(x, y) __builtin_isgreaterequal(x, y)
328#define isless(x, y) __builtin_isless(x, y)
329#define islessequal(x, y) __builtin_islessequal(x, y)
330#define islessgreater(x, y) __builtin_islessgreater(x, y)
331#define isunordered(x, y) __builtin_isunordered(x, y)
332
333#else
334/* helper */
335extern __inline__ int __fp_unordered_compare (double x, double y){
336 unsigned short retval;
337 __asm__ ("fucom %%st(1);"
338 "fnstsw;": "=a" (retval) : "t" (x), "u" (y));
339 return retval;
340}
341
342#define isgreater(x, y) ((__fp_unordered_compare(x, y) \
343 & 0x4500) == 0)
344#define isless(x, y) ((__fp_unordered_compare (y, x) \
345 & 0x4500) == 0)
346#define isgreaterequal(x, y) ((__fp_unordered_compare (x, y) \
347 & FP_INFINITE) == 0)
348#define islessequal(x, y) ((__fp_unordered_compare(y, x) \
349 & FP_INFINITE) == 0)
350#define islessgreater(x, y) ((__fp_unordered_compare(x, y) \
351 & FP_SUBNORMAL) == 0)
352#define isunordered(x, y) ((__fp_unordered_compare(x, y) \
353 & 0x4500) == 0x4500)
354
355#endif
356
357/* round, using fpu control word settings */
358extern __inline__ double rint (double x)
359{
360 double retval;
361 __asm__ ("frndint;": "=t" (retval) : "0" (x));
362 return retval;
363}
364
365extern __inline__ float rintf (float x)
366{
367 float retval;
368 __asm__ ("frndint;" : "=t" (retval) : "0" (x) );
369 return retval;
370}
371
372/* round away from zero, regardless of fpu control word settings */
373extern double round (double);
374extern float roundf (float);
375
376/* round towards zero, regardless of fpu control word settings */
377extern double trunc (double);
378extern float truncf (float);
379
380
381/* fmax and fmin.
382 NaN arguments are treated as missing data: if one argument is a NaN and the other numeric, then the
383 these functions choose the numeric value.
384*/
385
386extern double fmax (double, double);
387extern double fmin (double, double);
388extern float fmaxf (float, float);
389float fminf (float, float);
390
391/* return x * y + z as a ternary op */
392extern double fma (double, double, double);
393extern float fmaf (float, float, float);
394
395/* one lonely transcendental */
396extern double log2 (double _x);
397extern float log2f (float _x);
398
399/* The underscored versions are in MSVCRT.dll.
400 The stubs for these are in libmingwex.a */
401
402double copysign (double, double);
403float copysignf (float, float);
404double logb (double);
405float logbf (float);
406double nextafter (double, double);
407float nextafterf (float, float);
408double scalb (double, long);
409float scalbf (float, long);
410
411#if !defined (__STRICT_ANSI__) /* inline using non-ANSI functions */
412extern __inline__ double copysign (double x, double y)
413 { return _copysign(x, y); }
414extern __inline__ float copysignf (float x, float y)
415 { return _copysign(x, y); }
416extern __inline__ double logb (double x)
417 { return _logb(x); }
418extern __inline__ float logbf (float x)
419 { return _logb(x); }
420extern __inline__ double nextafter(double x, double y)
421 { return _nextafter(x, y); }
422extern __inline__ float nextafterf(float x, float y)
423 { return _nextafter(x, y); }
424extern __inline__ double scalb (double x, long i)
425 { return _scalb (x, i); }
426extern __inline__ float scalbf (float x, long i)
427 { return _scalb(x, i); }
428#endif /* (__STRICT_ANSI__) */
429
430#ifdef __cplusplus
431}
432#endif
433#endif /* Not RC_INVOKED */
434
435#endif /* __NO_ISOCEXT */
436
437#endif /* Not _MATH_H_ */
438
win32/include/mem.h+8−0
@@ -0,0 +1,8 @@
1/*
2 * This file is part of the Mingw32 package.
3 *
4 * mem.h maps to string.h
5 */
6#ifndef __STRICT_ANSI__
7#include <string.h>
8#endif
win32/include/memory.h+9−0
@@ -0,0 +1,9 @@
1/*
2 * This file is part of the Mingw32 package.
3 *
4 * memory.h maps to the standard string.h header.
5 */
6#ifndef __STRICT_ANSI__
7#include <string.h>
8#endif
9
win32/include/process.h+158−0
@@ -0,0 +1,158 @@
1/*
2 * process.h
3 *
4 * Function calls for spawning child processes.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef __STRICT_ANSI__
28
29#ifndef _PROCESS_H_
30#define _PROCESS_H_
31
32/* All the headers include this file. */
33#include <_mingw.h>
34
35/* Includes a definition of _pid_t and pid_t */
36#include <sys/types.h>
37
38/*
39 * Constants for cwait actions.
40 * Obsolete for Win32.
41 */
42#define _WAIT_CHILD 0
43#define _WAIT_GRANDCHILD 1
44
45#ifndef _NO_OLDNAMES
46#define WAIT_CHILD _WAIT_CHILD
47#define WAIT_GRANDCHILD _WAIT_GRANDCHILD
48#endif /* Not _NO_OLDNAMES */
49
50/*
51 * Mode constants for spawn functions.
52 */
53#define _P_WAIT 0
54#define _P_NOWAIT 1
55#define _P_OVERLAY 2
56#define _OLD_P_OVERLAY _P_OVERLAY
57#define _P_NOWAITO 3
58#define _P_DETACH 4
59
60#ifndef _NO_OLDNAMES
61#define P_WAIT _P_WAIT
62#define P_NOWAIT _P_NOWAIT
63#define P_OVERLAY _P_OVERLAY
64#define OLD_P_OVERLAY _OLD_P_OVERLAY
65#define P_NOWAITO _P_NOWAITO
66#define P_DETACH _P_DETACH
67#endif /* Not _NO_OLDNAMES */
68
69
70#ifndef RC_INVOKED
71
72#ifdef __cplusplus
73extern "C" {
74#endif
75
76void _cexit(void);
77void _c_exit(void);
78
79int _cwait (int*, _pid_t, int);
80
81_pid_t _getpid(void);
82
83int _execl (const char*, const char*, ...);
84int _execle (const char*, const char*, ...);
85int _execlp (const char*, const char*, ...);
86int _execlpe (const char*, const char*, ...);
87int _execv (const char*, char* const*);
88int _execve (const char*, char* const*, char* const*);
89int _execvp (const char*, char* const*);
90int _execvpe (const char*, char* const*, char* const*);
91
92int _spawnl (int, const char*, const char*, ...);
93int _spawnle (int, const char*, const char*, ...);
94int _spawnlp (int, const char*, const char*, ...);
95int _spawnlpe (int, const char*, const char*, ...);
96int _spawnv (int, const char*, char* const*);
97int _spawnve (int, const char*, char* const*, char* const*);
98int _spawnvp (int, const char*, char* const*);
99int _spawnvpe (int, const char*, char* const*, char* const*);
100
101/*
102 * The functions _beginthreadex and _endthreadex are not provided by CRTDLL.
103 * They are provided by MSVCRT.
104 *
105 * NOTE: Apparently _endthread calls CloseHandle on the handle of the thread,
106 * making for race conditions if you are not careful. Basically you have to
107 * make sure that no-one is going to do *anything* with the thread handle
108 * after the thread calls _endthread or returns from the thread function.
109 *
110 * NOTE: No old names for these functions. Use the underscore.
111 */
112unsigned long
113 _beginthread (void (*)(void *), unsigned, void*);
114void _endthread (void);
115
116#ifdef __MSVCRT__
117unsigned long
118 _beginthreadex (void *, unsigned, unsigned (__stdcall *) (void *),
119 void*, unsigned, unsigned*);
120void _endthreadex (unsigned);
121#endif
122
123
124#ifndef _NO_OLDNAMES
125/*
126 * Functions without the leading underscore, for portability. These functions
127 * live in liboldnames.a.
128 */
129int cwait (int*, pid_t, int);
130pid_t getpid (void);
131int execl (const char*, const char*, ...);
132int execle (const char*, const char*, ...);
133int execlp (const char*, const char*, ...);
134int execlpe (const char*, const char*, ...);
135int execv (const char*, char* const*);
136int execve (const char*, char* const*, char* const*);
137int execvp (const char*, char* const*);
138int execvpe (const char*, char* const*, char* const*);
139int spawnl (int, const char*, const char*, ...);
140int spawnle (int, const char*, const char*, ...);
141int spawnlp (int, const char*, const char*, ...);
142int spawnlpe (int, const char*, const char*, ...);
143int spawnv (int, const char*, char* const*);
144int spawnve (int, const char*, char* const*, char* const*);
145int spawnvp (int, const char*, char* const*);
146int spawnvpe (int, const char*, char* const*, char* const*);
147#endif /* Not _NO_OLDNAMES */
148
149#ifdef __cplusplus
150}
151#endif
152
153#endif /* Not RC_INVOKED */
154
155#endif /* _PROCESS_H_ not defined */
156
157#endif /* Not __STRICT_ANSI__ */
158
win32/include/setjmp.h+72−0
@@ -0,0 +1,72 @@
1/*
2 * setjmp.h
3 *
4 * Declarations supporting setjmp and longjump, a method for avoiding
5 * the normal function call return sequence. (Bleah!)
6 *
7 * This file is part of the Mingw32 package.
8 *
9 * Contributors:
10 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
11 *
12 * THIS SOFTWARE IS NOT COPYRIGHTED
13 *
14 * This source code is offered for use in the public domain. You may
15 * use, modify or distribute it freely.
16 *
17 * This code is distributed in the hope that it will be useful but
18 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
19 * DISCLAIMED. This includes but is not limited to warranties of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 *
22 * $Revision: 1.1 $
23 * $Author: bellard $
24 * $Date: 2005/04/14 23:49:21 $
25 *
26 */
27
28#ifndef _SETJMP_H_
29#define _SETJMP_H_
30
31/* All the headers include this file. */
32#include <_mingw.h>
33
34#ifndef RC_INVOKED
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40/*
41 * The buffer used by setjmp to store the information used by longjmp
42 * to perform it's evil goto-like work. The size of this buffer was
43 * determined through experimentation; it's contents are a mystery.
44 * NOTE: This was determined on an i386 (actually a Pentium). The
45 * contents could be different on an Alpha or something else.
46 */
47#define _JBLEN 16
48#define _JBTYPE int
49typedef _JBTYPE jmp_buf[_JBLEN];
50
51/*
52 * The function provided by CRTDLL which appears to do the actual work
53 * of setjmp.
54 */
55int _setjmp (jmp_buf);
56
57#define setjmp(x) _setjmp(x)
58
59/*
60 * Return to the last setjmp call and act as if setjmp had returned
61 * nVal (which had better be non-zero!).
62 */
63void longjmp (jmp_buf, int);
64
65#ifdef __cplusplus
66}
67#endif
68
69#endif /* Not RC_INVOKED */
70
71#endif /* Not _SETJMP_H_ */
72
win32/include/share.h+44−0
@@ -0,0 +1,44 @@
1/*
2 * share.h
3 *
4 * Constants for file sharing functions.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef __STRICT_ANSI__
28
29#ifndef _SHARE_H_
30#define _SHARE_H_
31
32/* All the headers include this file. */
33#include <_mingw.h>
34
35#define SH_COMPAT 0x00 /* Compatibility */
36#define SH_DENYRW 0x10 /* Deny read/write */
37#define SH_DENYWR 0x20 /* Deny write */
38#define SH_DENYRD 0x30 /* Deny read */
39#define SH_DENYNO 0x40 /* Deny nothing */
40
41#endif /* Not _SHARE_H_ */
42
43#endif /* Not __STRICT_ANSI__ */
44
win32/include/signal.h+111−0
@@ -0,0 +1,111 @@
1/*
2 * signal.h
3 *
4 * A way to set handlers for exceptional conditions (also known as signals).
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _SIGNAL_H_
28#define _SIGNAL_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33/*
34 * The actual signal values. Using other values with signal
35 * produces a SIG_ERR return value.
36 *
37 * NOTE: SIGINT is produced when the user presses Ctrl-C.
38 * SIGILL has not been tested.
39 * SIGFPE doesn't seem to work?
40 * SIGSEGV does not catch writing to a NULL pointer (that shuts down
41 * your app; can you say "segmentation violation core dump"?).
42 * SIGTERM comes from what kind of termination request exactly?
43 * SIGBREAK is indeed produced by pressing Ctrl-Break.
44 * SIGABRT is produced by calling abort.
45 * TODO: The above results may be related to not installing an appropriate
46 * structured exception handling frame. Results may be better if I ever
47 * manage to get the SEH stuff down.
48 */
49#define SIGINT 2 /* Interactive attention */
50#define SIGILL 4 /* Illegal instruction */
51#define SIGFPE 8 /* Floating point error */
52#define SIGSEGV 11 /* Segmentation violation */
53#define SIGTERM 15 /* Termination request */
54#define SIGBREAK 21 /* Control-break */
55#define SIGABRT 22 /* Abnormal termination (abort) */
56
57#define NSIG 23 /* maximum signal number + 1 */
58
59#ifndef RC_INVOKED
60
61#ifndef _SIG_ATOMIC_T_DEFINED
62typedef int sig_atomic_t;
63#define _SIG_ATOMIC_T_DEFINED
64#endif
65
66/*
67 * The prototypes (below) are the easy part. The hard part is figuring
68 * out what signals are available and what numbers they are assigned
69 * along with appropriate values of SIG_DFL and SIG_IGN.
70 */
71
72/*
73 * A pointer to a signal handler function. A signal handler takes a
74 * single int, which is the signal it handles.
75 */
76typedef void (*__p_sig_fn_t)(int);
77
78/*
79 * These are special values of signal handler pointers which are
80 * used to send a signal to the default handler (SIG_DFL), ignore
81 * the signal (SIG_IGN), or indicate an error return (SIG_ERR).
82 */
83#define SIG_DFL ((__p_sig_fn_t) 0)
84#define SIG_IGN ((__p_sig_fn_t) 1)
85#define SIG_ERR ((__p_sig_fn_t) -1)
86
87#ifdef __cplusplus
88extern "C" {
89#endif
90
91/*
92 * Call signal to set the signal handler for signal sig to the
93 * function pointed to by handler. Returns a pointer to the
94 * previous handler, or SIG_ERR if an error occurs. Initially
95 * unhandled signals defined above will return SIG_DFL.
96 */
97__p_sig_fn_t signal(int, __p_sig_fn_t);
98
99/*
100 * Raise the signal indicated by sig. Returns non-zero on success.
101 */
102int raise (int);
103
104#ifdef __cplusplus
105}
106#endif
107
108#endif /* Not RC_INVOKED */
109
110#endif /* Not _SIGNAL_H_ */
111
win32/include/stdarg.h+15−0
@@ -0,0 +1,15 @@
1#ifndef _STDARG_H
2#define _STDARG_H
3
4typedef char *va_list;
5
6/* only correct for i386 */
7#define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+3)&~3)
8#define va_arg(ap,type) (ap += (sizeof(type)+3)&~3, *(type *)(ap - ((sizeof(type)+3)&~3)))
9#define va_end(ap)
10
11/* fix a buggy dependency on GCC in libio.h */
12typedef va_list __gnuc_va_list;
13#define _VA_LIST_DEFINED
14
15#endif
win32/include/stdbool.h+10−0
@@ -0,0 +1,10 @@
1#ifndef _STDBOOL_H
2#define _STDBOOL_H
3
4/* ISOC99 boolean */
5
6#define bool _Bool
7#define true 1
8#define false 0
9
10#endif /* _STDBOOL_H */
win32/include/stddef.h+21−0
@@ -0,0 +1,21 @@
1#ifndef _STDDEF_H
2#define _STDDEF_H
3
4#define NULL ((void *)0)
5typedef __SIZE_TYPE__ size_t;
6typedef __WCHAR_TYPE__ wchar_t;
7typedef __PTRDIFF_TYPE__ ptrdiff_t;
8#define offsetof(type, field) ((size_t) &((type *)0)->field)
9
10/* need to do that because of glibc 2.1 bug (should have a way to test
11 presence of 'long long' without __GNUC__, or TCC should define
12 __GNUC__ ? */
13#if !defined(__int8_t_defined) && !defined(__dietlibc__)
14#define __int8_t_defined
15typedef char int8_t;
16typedef short int int16_t;
17typedef int int32_t;
18typedef long long int int64_t;
19#endif
20
21#endif
win32/include/stdint.h+184−0
@@ -0,0 +1,184 @@
1/* ISO C9x 7.18 Integer types <stdint.h>
2 * Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794)
3 *
4 * THIS SOFTWARE IS NOT COPYRIGHTED
5 *
6 * Contributor: Danny Smith <danny_r_smith_2001@yahoo.co.nz>
7 *
8 * This source code is offered for use in the public domain. You may
9 * use, modify or distribute it freely.
10 *
11 * This code is distributed in the hope that it will be useful but
12 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13 * DISCLAIMED. This includes but is not limited to warranties of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 *
16 * Date: 2000-12-02
17 */
18
19
20#ifndef _STDINT_H
21#define _STDINT_H
22
23/* 7.18.1.1 Exact-width integer types */
24typedef signed char int8_t;
25typedef unsigned char uint8_t;
26typedef short int16_t;
27typedef unsigned short uint16_t;
28typedef int int32_t;
29typedef unsigned uint32_t;
30typedef long long int64_t;
31typedef unsigned long long uint64_t;
32
33/* 7.18.1.2 Minimum-width integer types */
34typedef signed char int_least8_t;
35typedef unsigned char uint_least8_t;
36typedef short int_least16_t;
37typedef unsigned short uint_least16_t;
38typedef int int_least32_t;
39typedef unsigned uint_least32_t;
40typedef long long int_least64_t;
41typedef unsigned long long uint_least64_t;
42
43/* 7.18.1.3 Fastest minimum-width integer types
44 * Not actually guaranteed to be fastest for all purposes
45 * Here we use the exact-width types for 8 and 16-bit ints.
46 */
47typedef char int_fast8_t;
48typedef unsigned char uint_fast8_t;
49typedef short int_fast16_t;
50typedef unsigned short uint_fast16_t;
51typedef int int_fast32_t;
52typedef unsigned int uint_fast32_t;
53typedef long long int_fast64_t;
54typedef unsigned long long uint_fast64_t;
55
56/* 7.18.1.4 Integer types capable of holding object pointers */
57typedef int intptr_t;
58typedef unsigned uintptr_t;
59
60/* 7.18.1.5 Greatest-width integer types */
61typedef long long intmax_t;
62typedef unsigned long long uintmax_t;
63
64/* 7.18.2 Limits of specified-width integer types */
65#if !defined ( __cplusplus) || defined (__STDC_LIMIT_MACROS)
66
67/* 7.18.2.1 Limits of exact-width integer types */
68#define INT8_MIN (-128)
69#define INT16_MIN (-32768)
70#define INT32_MIN (-2147483647 - 1)
71#define INT64_MIN (-9223372036854775807LL - 1)
72
73#define INT8_MAX 127
74#define INT16_MAX 32767
75#define INT32_MAX 2147483647
76#define INT64_MAX 9223372036854775807LL
77
78#define UINT8_MAX 0xff /* 255U */
79#define UINT16_MAX 0xffff /* 65535U */
80#define UINT32_MAX 0xffffffff /* 4294967295U */
81#define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */
82
83/* 7.18.2.2 Limits of minimum-width integer types */
84#define INT_LEAST8_MIN INT8_MIN
85#define INT_LEAST16_MIN INT16_MIN
86#define INT_LEAST32_MIN INT32_MIN
87#define INT_LEAST64_MIN INT64_MIN
88
89#define INT_LEAST8_MAX INT8_MAX
90#define INT_LEAST16_MAX INT16_MAX
91#define INT_LEAST32_MAX INT32_MAX
92#define INT_LEAST64_MAX INT64_MAX
93
94#define UINT_LEAST8_MAX UINT8_MAX
95#define UINT_LEAST16_MAX UINT16_MAX
96#define UINT_LEAST32_MAX UINT32_MAX
97#define UINT_LEAST64_MAX UINT64_MAX
98
99/* 7.18.2.3 Limits of fastest minimum-width integer types */
100#define INT_FAST8_MIN INT8_MIN
101#define INT_FAST16_MIN INT16_MIN
102#define INT_FAST32_MIN INT32_MIN
103#define INT_FAST64_MIN INT64_MIN
104
105#define INT_FAST8_MAX INT8_MAX
106#define INT_FAST16_MAX INT16_MAX
107#define INT_FAST32_MAX INT32_MAX
108#define INT_FAST64_MAX INT64_MAX
109
110#define UINT_FAST8_MAX UINT8_MAX
111#define UINT_FAST16_MAX UINT16_MAX
112#define UINT_FAST32_MAX UINT32_MAX
113#define UINT_FAST64_MAX UINT64_MAX
114
115/* 7.18.2.4 Limits of integer types capable of holding
116 object pointers */
117#define INTPTR_MIN INT32_MIN
118#define INTPTR_MAX INT32_MAX
119#define UINTPTR_MAX UINT32_MAX
120
121/* 7.18.2.5 Limits of greatest-width integer types */
122#define INTMAX_MIN INT64_MIN
123#define INTMAX_MAX INT64_MAX
124#define UINTMAX_MAX UINT64_MAX
125
126/* 7.18.3 Limits of other integer types */
127#define PTRDIFF_MIN INT32_MIN
128#define PTRDIFF_MAX INT32_MAX
129
130#define SIG_ATOMIC_MIN INT32_MIN
131#define SIG_ATOMIC_MAX INT32_MAX
132
133#define SIZE_MAX UINT32_MAX
134
135#ifndef WCHAR_MIN /* also in wchar.h */
136#define WCHAR_MIN 0
137#define WCHAR_MAX ((wchar_t)-1) /* UINT16_MAX */
138#endif
139
140/*
141 * wint_t is unsigned int in __MINGW32__,
142 * but unsigned short in MS runtime
143 */
144#define WINT_MIN 0
145#define WINT_MAX UINT32_MAX
146
147#endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */
148
149
150/* 7.18.4 Macros for integer constants */
151#if !defined ( __cplusplus) || defined (__STDC_CONSTANT_MACROS)
152
153/* 7.18.4.1 Macros for minimum-width integer constants
154
155 Accoding to Douglas Gwyn <gwyn@arl.mil>:
156 "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
157 9899:1999 as initially published, the expansion was required
158 to be an integer constant of precisely matching type, which
159 is impossible to accomplish for the shorter types on most
160 platforms, because C99 provides no standard way to designate
161 an integer constant with width less than that of type int.
162 TC1 changed this to require just an integer constant
163 *expression* with *promoted* type."
164
165 The trick used here is from Clive D W Feather.
166*/
167
168#define INT8_C(val) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val))
169#define INT16_C(val) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val))
170#define INT32_C(val) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val))
171#define INT64_C(val) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val))
172
173#define UINT8_C(val) (UINT_LEAST8_MAX-UINT_LEAST8_MAX+(val))
174#define UINT16_C(val) (UINT_LEAST16_MAX-UINT_LEAST16_MAX+(val))
175#define UINT32_C(val) (UINT_LEAST32_MAX-UINT_LEAST32_MAX+(val))
176#define UINT64_C(val) (UINT_LEAST64_MAX-UINT_LEAST64_MAX+(val))
177
178/* 7.18.4.2 Macros for greatest-width integer constants */
179#define INTMAX_C(val) (INTMAX_MAX-INTMAX_MAX+(val))
180#define UINTMAX_C(val) (UINTMAX_MAX-UINTMAX_MAX+(val))
181
182#endif /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */
183
184#endif
win32/include/stdio.h+413−0
@@ -0,0 +1,413 @@
1/*
2 * stdio.h
3 *
4 * Definitions of types and prototypes of functions for standard input and
5 * output.
6 *
7 * NOTE: The file manipulation functions provided by Microsoft seem to
8 * work with either slash (/) or backslash (\) as the path separator.
9 *
10 * This file is part of the Mingw32 package.
11 *
12 * Contributors:
13 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
14 *
15 * THIS SOFTWARE IS NOT COPYRIGHTED
16 *
17 * This source code is offered for use in the public domain. You may
18 * use, modify or distribute it freely.
19 *
20 * This code is distributed in the hope that it will be useful but
21 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
22 * DISCLAIMED. This includes but is not limited to warranties of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24 *
25 * $Revision: 1.1 $
26 * $Author: bellard $
27 * $Date: 2005/04/14 23:49:21 $
28 *
29 */
30
31#ifndef _STDIO_H_
32#define _STDIO_H_
33
34/* All the headers include this file. */
35#include <_mingw.h>
36
37#define __need_size_t
38#define __need_NULL
39#define __need_wchar_t
40#define __need_wint_t
41#ifndef RC_INVOKED
42#include <stddef.h>
43#endif /* Not RC_INVOKED */
44
45
46/* Flags for the iobuf structure */
47#define _IOREAD 1
48#define _IOWRT 2
49#define _IORW 0x0080 /* opened as "r+w" */
50
51
52/*
53 * The three standard file pointers provided by the run time library.
54 * NOTE: These will go to the bit-bucket silently in GUI applications!
55 */
56#define STDIN_FILENO 0
57#define STDOUT_FILENO 1
58#define STDERR_FILENO 2
59
60/* Returned by various functions on end of file condition or error. */
61#define EOF (-1)
62
63/*
64 * The maximum length of a file name. You should use GetVolumeInformation
65 * instead of this constant. But hey, this works.
66 *
67 * NOTE: This is used in the structure _finddata_t (see io.h) so changing it
68 * is probably not a good idea.
69 */
70#define FILENAME_MAX (260)
71
72/*
73 * The maximum number of files that may be open at once. I have set this to
74 * a conservative number. The actual value may be higher.
75 */
76#define FOPEN_MAX (20)
77
78/* After creating this many names, tmpnam and tmpfile return NULL */
79#define TMP_MAX 32767
80/*
81 * Tmpnam, tmpfile and, sometimes, _tempnam try to create
82 * temp files in the root directory of the current drive
83 * (not in pwd, as suggested by some older MS doc's).
84 * Redefining these macros does not effect the CRT functions.
85 */
86#define _P_tmpdir "\\"
87#define _wP_tmpdir L"\\"
88
89/*
90 * The maximum size of name (including NUL) that will be put in the user
91 * supplied buffer caName for tmpnam.
92 * Inferred from the size of the static buffer returned by tmpnam
93 * when passed a NULL argument. May actually be smaller.
94 */
95#define L_tmpnam (16)
96
97#define _IOFBF 0x0000
98#define _IOLBF 0x0040
99#define _IONBF 0x0004
100
101/*
102 * The buffer size as used by setbuf such that it is equivalent to
103 * (void) setvbuf(fileSetBuffer, caBuffer, _IOFBF, BUFSIZ).
104 */
105#define BUFSIZ 512
106
107/* Constants for nOrigin indicating the position relative to which fseek
108 * sets the file position. Enclosed in ifdefs because io.h could also
109 * define them. (Though not anymore since io.h includes this file now.) */
110#ifndef SEEK_SET
111#define SEEK_SET (0)
112#endif
113
114#ifndef SEEK_CUR
115#define SEEK_CUR (1)
116#endif
117
118#ifndef SEEK_END
119#define SEEK_END (2)
120#endif
121
122
123#ifndef RC_INVOKED
124
125/*
126 * I used to include stdarg.h at this point, in order to allow for the
127 * functions later on in the file which use va_list. That conflicts with
128 * using stdio.h and varargs.h in the same file, so I do the typedef myself.
129 */
130#ifndef _VA_LIST
131#define _VA_LIST
132#if defined __GNUC__ && __GNUC__ >= 3
133typedef __builtin_va_list va_list;
134#else
135typedef char* va_list;
136#endif
137#endif
138/*
139 * The structure underlying the FILE type.
140 *
141 * I still believe that nobody in their right mind should make use of the
142 * internals of this structure. Provided by Pedro A. Aranda Gutiirrez
143 * <paag@tid.es>.
144 */
145#ifndef _FILE_DEFINED
146#define _FILE_DEFINED
147typedef struct _iobuf
148{
149 char* _ptr;
150 int _cnt;
151 char* _base;
152 int _flag;
153 int _file;
154 int _charbuf;
155 int _bufsiz;
156 char* _tmpfname;
157} FILE;
158#endif /* Not _FILE_DEFINED */
159
160
161/*
162 * The standard file handles
163 */
164#ifndef __DECLSPEC_SUPPORTED
165
166extern FILE (*__imp__iob)[]; /* A pointer to an array of FILE */
167
168#define _iob (*__imp__iob) /* An array of FILE */
169
170#else /* __DECLSPEC_SUPPORTED */
171
172__MINGW_IMPORT FILE _iob[]; /* An array of FILE imported from DLL. */
173
174#endif /* __DECLSPEC_SUPPORTED */
175
176#define stdin (&_iob[STDIN_FILENO])
177#define stdout (&_iob[STDOUT_FILENO])
178#define stderr (&_iob[STDERR_FILENO])
179
180#ifdef __cplusplus
181extern "C" {
182#endif
183
184/*
185 * File Operations
186 */
187FILE* fopen (const char*, const char*);
188FILE* freopen (const char*, const char*, FILE*);
189int fflush (FILE*);
190int fclose (FILE*);
191/* MS puts remove & rename (but not wide versions) in io.h also */
192int remove (const char*);
193int rename (const char*, const char*);
194FILE* tmpfile (void);
195char* tmpnam (char*);
196char* _tempnam (const char*, const char*);
197
198#ifndef NO_OLDNAMES
199char* tempnam (const char*, const char*);
200#endif
201
202int setvbuf (FILE*, char*, int, size_t);
203
204void setbuf (FILE*, char*);
205
206/*
207 * Formatted Output
208 */
209
210int fprintf (FILE*, const char*, ...);
211int printf (const char*, ...);
212int sprintf (char*, const char*, ...);
213int _snprintf (char*, size_t, const char*, ...);
214int vfprintf (FILE*, const char*, va_list);
215int vprintf (const char*, va_list);
216int vsprintf (char*, const char*, va_list);
217int _vsnprintf (char*, size_t, const char*, va_list);
218
219#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
220int snprintf(char* s, size_t n, const char* format, ...);
221extern inline int vsnprintf (char* s, size_t n, const char* format,
222 va_list arg)
223 { return _vsnprintf ( s, n, format, arg); }
224#endif
225
226/*
227 * Formatted Input
228 */
229
230int fscanf (FILE*, const char*, ...);
231int scanf (const char*, ...);
232int sscanf (const char*, const char*, ...);
233/*
234 * Character Input and Output Functions
235 */
236
237int fgetc (FILE*);
238char* fgets (char*, int, FILE*);
239int fputc (int, FILE*);
240int fputs (const char*, FILE*);
241int getc (FILE*);
242int getchar (void);
243char* gets (char*);
244int putc (int, FILE*);
245int putchar (int);
246int puts (const char*);
247int ungetc (int, FILE*);
248
249/*
250 * Direct Input and Output Functions
251 */
252
253size_t fread (void*, size_t, size_t, FILE*);
254size_t fwrite (const void*, size_t, size_t, FILE*);
255
256/*
257 * File Positioning Functions
258 */
259
260int fseek (FILE*, long, int);
261long ftell (FILE*);
262void rewind (FILE*);
263
264#ifdef __USE_MINGW_FSEEK /* These are in libmingwex.a */
265/*
266 * Workaround for limitations on win9x where a file contents are
267 * not zero'd out if you seek past the end and then write.
268 */
269
270int __mingw_fseek (FILE *, long, int);
271int __mingw_fwrite (const void*, size_t, size_t, FILE*);
272#define fseek(fp, offset, whence) __mingw_fseek(fp, offset, whence)
273#define fwrite(buffer, size, count, fp) __mingw_fwrite(buffer, size, count, fp)
274#endif /* __USE_MINGW_FSEEK */
275
276
277/*
278 * An opaque data type used for storing file positions... The contents of
279 * this type are unknown, but we (the compiler) need to know the size
280 * because the programmer using fgetpos and fsetpos will be setting aside
281 * storage for fpos_t structres. Actually I tested using a byte array and
282 * it is fairly evident that the fpos_t type is a long (in CRTDLL.DLL).
283 * Perhaps an unsigned long? TODO? It's definitely a 64-bit number in
284 * MSVCRT however, and for now `long long' will do.
285 */
286#ifdef __MSVCRT__
287typedef long long fpos_t;
288#else
289typedef long fpos_t;
290#endif
291
292int fgetpos (FILE*, fpos_t*);
293int fsetpos (FILE*, const fpos_t*);
294
295/*
296 * Error Functions
297 */
298
299void clearerr (FILE*);
300int feof (FILE*);
301int ferror (FILE*);
302void perror (const char*);
303
304
305#ifndef __STRICT_ANSI__
306/*
307 * Pipes
308 */
309FILE* _popen (const char*, const char*);
310int _pclose (FILE*);
311
312#ifndef NO_OLDNAMES
313FILE* popen (const char*, const char*);
314int pclose (FILE*);
315#endif
316
317/*
318 * Other Non ANSI functions
319 */
320int _flushall (void);
321int _fgetchar (void);
322int _fputchar (int);
323FILE* _fdopen (int, const char*);
324int _fileno (FILE*);
325
326#ifndef _NO_OLDNAMES
327int fgetchar (void);
328int fputchar (int);
329FILE* fdopen (int, const char*);
330int fileno (FILE*);
331#endif /* Not _NO_OLDNAMES */
332
333#endif /* Not __STRICT_ANSI__ */
334
335/* Wide versions */
336
337#ifndef _WSTDIO_DEFINED
338/* also in wchar.h - keep in sync */
339int fwprintf (FILE*, const wchar_t*, ...);
340int wprintf (const wchar_t*, ...);
341int swprintf (wchar_t*, const wchar_t*, ...);
342int _snwprintf (wchar_t*, size_t, const wchar_t*, ...);
343int vfwprintf (FILE*, const wchar_t*, va_list);
344int vwprintf (const wchar_t*, va_list);
345int vswprintf (wchar_t*, const wchar_t*, va_list);
346int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list);
347int fwscanf (FILE*, const wchar_t*, ...);
348int wscanf (const wchar_t*, ...);
349int swscanf (const wchar_t*, const wchar_t*, ...);
350wint_t fgetwc (FILE*);
351wint_t fputwc (wchar_t, FILE*);
352wint_t ungetwc (wchar_t, FILE*);
353#ifdef __MSVCRT__
354wchar_t* fgetws (wchar_t*, int, FILE*);
355int fputws (const wchar_t*, FILE*);
356wint_t getwc (FILE*);
357wint_t getwchar (void);
358wchar_t* _getws (wchar_t*);
359wint_t putwc (wint_t, FILE*);
360int _putws (const wchar_t*);
361wint_t putwchar (wint_t);
362FILE* _wfopen (const wchar_t*, const wchar_t*);
363FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
364FILE* _wfsopen (const wchar_t*, const wchar_t*, int);
365wchar_t* _wtmpnam (wchar_t*);
366wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
367int _wrename (const wchar_t*, const wchar_t*);
368int _wremove (const wchar_t*);
369void _wperror (const wchar_t*);
370FILE* _wpopen (const wchar_t*, const wchar_t*);
371#endif /* __MSVCRT__ */
372
373#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
374int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...);
375extern inline int vsnwprintf (wchar_t* s, size_t n, const wchar_t* format,
376 va_list arg)
377 { return _vsnwprintf ( s, n, format, arg); }
378#endif
379
380#define _WSTDIO_DEFINED
381#endif /* _WSTDIO_DEFINED */
382
383#ifndef __STRICT_ANSI__
384#ifdef __MSVCRT__
385#ifndef NO_OLDNAMES
386FILE* wpopen (const wchar_t*, const wchar_t*);
387#endif /* not NO_OLDNAMES */
388#endif /* MSVCRT runtime */
389
390/*
391 * Other Non ANSI wide functions
392 */
393wint_t _fgetwchar (void);
394wint_t _fputwchar (wint_t);
395int _getw (FILE*);
396int _putw (int, FILE*);
397
398#ifndef _NO_OLDNAMES
399wint_t fgetwchar (void);
400wint_t fputwchar (wint_t);
401int getw (FILE*);
402int putw (int, FILE*);
403#endif /* Not _NO_OLDNAMES */
404
405#endif /* __STRICT_ANSI */
406
407#ifdef __cplusplus
408}
409#endif
410
411#endif /* Not RC_INVOKED */
412
413#endif /* _STDIO_H_ */
win32/include/stdlib.h+482−0
@@ -0,0 +1,482 @@
1/*
2 * stdlib.h
3 *
4 * Definitions for common types, variables, and functions.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _STDLIB_H_
28#define _STDLIB_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33
34#define __need_size_t
35#define __need_wchar_t
36#define __need_NULL
37#ifndef RC_INVOKED
38#include <stddef.h>
39#endif /* RC_INVOKED */
40
41/*
42 * RAND_MAX is the maximum value that may be returned by rand.
43 * The minimum is zero.
44 */
45#define RAND_MAX 0x7FFF
46
47/*
48 * These values may be used as exit status codes.
49 */
50#define EXIT_SUCCESS 0
51#define EXIT_FAILURE 1
52
53/*
54 * Definitions for path name functions.
55 * NOTE: All of these values have simply been chosen to be conservatively high.
56 * Remember that with long file names we can no longer depend on
57 * extensions being short.
58 */
59#ifndef __STRICT_ANSI__
60
61#ifndef MAX_PATH
62#define MAX_PATH (260)
63#endif
64
65#define _MAX_PATH MAX_PATH
66#define _MAX_DRIVE (3)
67#define _MAX_DIR 256
68#define _MAX_FNAME 256
69#define _MAX_EXT 256
70
71#endif /* Not __STRICT_ANSI__ */
72
73
74#ifndef RC_INVOKED
75
76#ifdef __cplusplus
77extern "C" {
78#endif
79
80/*
81 * This seems like a convenient place to declare these variables, which
82 * give programs using WinMain (or main for that matter) access to main-ish
83 * argc and argv. environ is a pointer to a table of environment variables.
84 * NOTE: Strings in _argv and environ are ANSI strings.
85 */
86extern int _argc;
87extern char** _argv;
88
89/* imports from runtime dll of the above variables */
90#ifdef __MSVCRT__
91
92extern int* __p___argc(void);
93extern char*** __p___argv(void);
94extern wchar_t*** __p___wargv(void);
95
96#define __argc (*__p___argc())
97#define __argv (*__p___argv())
98#define __wargv (*__p___wargv())
99
100#else /* !MSVCRT */
101
102#ifndef __DECLSPEC_SUPPORTED
103
104extern int* __imp___argc_dll;
105extern char*** __imp___argv_dll;
106#define __argc (*__imp___argc_dll)
107#define __argv (*__imp___argv_dll)
108
109#else /* __DECLSPEC_SUPPORTED */
110
111__MINGW_IMPORT int __argc_dll;
112__MINGW_IMPORT char** __argv_dll;
113#define __argc __argc_dll
114#define __argv __argv_dll
115
116#endif /* __DECLSPEC_SUPPORTED */
117
118#endif /* __MSVCRT */
119
120/*
121 * Also defined in ctype.h.
122 */
123
124#ifndef MB_CUR_MAX
125# ifdef __MSVCRT__
126# define MB_CUR_MAX __mb_cur_max
127 __MINGW_IMPORT int __mb_cur_max;
128# else /* not __MSVCRT */
129# define MB_CUR_MAX __mb_cur_max_dll
130 __MINGW_IMPORT int __mb_cur_max_dll;
131# endif /* not __MSVCRT */
132#endif /* MB_CUR_MAX */
133
134/*
135 * MS likes to declare errno in stdlib.h as well.
136 */
137
138#ifdef _UWIN
139#undef errno
140extern int errno;
141#else
142int* _errno(void);
143#define errno (*_errno())
144#endif
145int* __doserrno(void);
146#define _doserrno (*__doserrno())
147
148/*
149 * Use environ from the DLL, not as a global.
150 */
151
152#ifdef __MSVCRT__
153 extern char *** __p__environ(void);
154 extern wchar_t *** __p__wenviron(void);
155# define _environ (*__p__environ())
156# define _wenviron (*__p__wenviron())
157#else /* ! __MSVCRT__ */
158# ifndef __DECLSPEC_SUPPORTED
159 extern char *** __imp__environ_dll;
160# define _environ (*__imp__environ_dll)
161# else /* __DECLSPEC_SUPPORTED */
162 __MINGW_IMPORT char ** _environ_dll;
163# define _environ _environ_dll
164# endif /* __DECLSPEC_SUPPORTED */
165#endif /* ! __MSVCRT__ */
166
167#define environ _environ
168
169#ifdef __MSVCRT__
170/* One of the MSVCRTxx libraries */
171
172#ifndef __DECLSPEC_SUPPORTED
173 extern int* __imp__sys_nerr;
174# define sys_nerr (*__imp__sys_nerr)
175#else /* __DECLSPEC_SUPPORTED */
176 __MINGW_IMPORT int _sys_nerr;
177# ifndef _UWIN
178# define sys_nerr _sys_nerr
179# endif /* _UWIN */
180#endif /* __DECLSPEC_SUPPORTED */
181
182#else /* ! __MSVCRT__ */
183
184/* CRTDLL run time library */
185
186#ifndef __DECLSPEC_SUPPORTED
187 extern int* __imp__sys_nerr_dll;
188# define sys_nerr (*__imp__sys_nerr_dll)
189#else /* __DECLSPEC_SUPPORTED */
190 __MINGW_IMPORT int _sys_nerr_dll;
191# define sys_nerr _sys_nerr_dll
192#endif /* __DECLSPEC_SUPPORTED */
193
194#endif /* ! __MSVCRT__ */
195
196#ifndef __DECLSPEC_SUPPORTED
197extern char*** __imp__sys_errlist;
198#define sys_errlist (*__imp__sys_errlist)
199#else /* __DECLSPEC_SUPPORTED */
200__MINGW_IMPORT char* _sys_errlist[];
201#ifndef _UWIN
202#define sys_errlist _sys_errlist
203#endif /* _UWIN */
204#endif /* __DECLSPEC_SUPPORTED */
205
206/*
207 * OS version and such constants.
208 */
209#ifndef __STRICT_ANSI__
210
211#ifdef __MSVCRT__
212/* msvcrtxx.dll */
213
214extern unsigned int* __p__osver(void);
215extern unsigned int* __p__winver(void);
216extern unsigned int* __p__winmajor(void);
217extern unsigned int* __p__winminor(void);
218
219#define _osver (*__p__osver())
220#define _winver (*__p__winver())
221#define _winmajor (*__p__winmajor())
222#define _winminor (*__p__winminor())
223
224#else
225/* Not msvcrtxx.dll, thus crtdll.dll */
226
227#ifndef __DECLSPEC_SUPPORTED
228
229extern unsigned int* _imp___osver_dll;
230extern unsigned int* _imp___winver_dll;
231extern unsigned int* _imp___winmajor_dll;
232extern unsigned int* _imp___winminor_dll;
233
234#define _osver (*_imp___osver_dll)
235#define _winver (*_imp___winver_dll)
236#define _winmajor (*_imp___winmajor_dll)
237#define _winminor (*_imp___winminor_dll)
238
239#else /* __DECLSPEC_SUPPORTED */
240
241__MINGW_IMPORT unsigned int _osver_dll;
242__MINGW_IMPORT unsigned int _winver_dll;
243__MINGW_IMPORT unsigned int _winmajor_dll;
244__MINGW_IMPORT unsigned int _winminor_dll;
245
246#define _osver _osver_dll
247#define _winver _winver_dll
248#define _winmajor _winmajor_dll
249#define _winminor _winminor_dll
250
251#endif /* __DECLSPEC_SUPPORTED */
252
253#endif
254
255#if defined __MSVCRT__
256/* although the _pgmptr is exported as DATA,
257 * be safe and use the access function __p__pgmptr() to get it. */
258char** __p__pgmptr(void);
259#define _pgmptr (*__p__pgmptr())
260wchar_t** __p__wpgmptr(void);
261#define _wpgmptr (*__p__wpgmptr())
262#else /* ! __MSVCRT__ */
263# ifndef __DECLSPEC_SUPPORTED
264 extern char** __imp__pgmptr_dll;
265# define _pgmptr (*__imp__pgmptr_dll)
266# else /* __DECLSPEC_SUPPORTED */
267 __MINGW_IMPORT char* _pgmptr_dll;
268# define _pgmptr _pgmptr_dll
269# endif /* __DECLSPEC_SUPPORTED */
270/* no wide version in CRTDLL */
271#endif /* __MSVCRT__ */
272
273#endif /* Not __STRICT_ANSI__ */
274
275#ifdef __GNUC__
276#define _ATTRIB_NORETURN __attribute__ ((noreturn))
277#else /* Not __GNUC__ */
278#define _ATTRIB_NORETURN
279#endif /* __GNUC__ */
280
281double atof (const char*);
282int atoi (const char*);
283long atol (const char*);
284int _wtoi (const wchar_t *);
285long _wtol (const wchar_t *);
286
287double strtod (const char*, char**);
288#if !defined __NO_ISOCEXT /* extern stubs in static libmingwex.a */
289extern __inline__ float strtof (const char *nptr, char **endptr)
290 { return (strtod (nptr, endptr));}
291#endif /* __NO_ISOCEXT */
292
293long strtol (const char*, char**, int);
294unsigned long strtoul (const char*, char**, int);
295
296#ifndef _WSTDLIB_DEFINED
297/* also declared in wchar.h */
298double wcstod (const wchar_t*, wchar_t**);
299#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
300extern __inline__ float wcstof( const wchar_t *nptr, wchar_t **endptr)
301{ return (wcstod(nptr, endptr)); }
302#endif /* __NO_ISOCEXT */
303
304long wcstol (const wchar_t*, wchar_t**, int);
305unsigned long wcstoul (const wchar_t*, wchar_t**, int);
306#define _WSTDLIB_DEFINED
307#endif
308
309size_t wcstombs (char*, const wchar_t*, size_t);
310int wctomb (char*, wchar_t);
311
312int mblen (const char*, size_t);
313size_t mbstowcs (wchar_t*, const char*, size_t);
314int mbtowc (wchar_t*, const char*, size_t);
315
316int rand (void);
317void srand (unsigned int);
318
319void* calloc (size_t, size_t);
320void* malloc (size_t);
321void* realloc (void*, size_t);
322void free (void*);
323
324void abort (void) _ATTRIB_NORETURN;
325void exit (int) _ATTRIB_NORETURN;
326int atexit (void (*)(void));
327
328int system (const char*);
329char* getenv (const char*);
330
331void* bsearch (const void*, const void*, size_t, size_t,
332 int (*)(const void*, const void*));
333void qsort (const void*, size_t, size_t,
334 int (*)(const void*, const void*));
335
336int abs (int);
337long labs (long);
338
339/*
340 * div_t and ldiv_t are structures used to return the results of div and
341 * ldiv.
342 *
343 * NOTE: div and ldiv appear not to work correctly unless
344 * -fno-pcc-struct-return is specified. This is included in the
345 * mingw32 specs file.
346 */
347typedef struct { int quot, rem; } div_t;
348typedef struct { long quot, rem; } ldiv_t;
349
350div_t div (int, int);
351ldiv_t ldiv (long, long);
352
353#ifndef __STRICT_ANSI__
354
355/*
356 * NOTE: Officially the three following functions are obsolete. The Win32 API
357 * functions SetErrorMode, Beep and Sleep are their replacements.
358 */
359void _beep (unsigned int, unsigned int);
360void _seterrormode (int);
361void _sleep (unsigned long);
362
363void _exit (int) _ATTRIB_NORETURN;
364#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
365/* C99 function name */
366void _Exit(int) _ATTRIB_NORETURN; /* Declare to get noreturn attribute. */
367extern __inline__ void _Exit(int status)
368 { _exit(status); }
369#endif
370/* _onexit is MS extension. Use atexit for portability. */
371typedef int (* _onexit_t)(void);
372_onexit_t _onexit( _onexit_t );
373
374int _putenv (const char*);
375void _searchenv (const char*, const char*, char*);
376
377
378char* _ecvt (double, int, int*, int*);
379char* _fcvt (double, int, int*, int*);
380char* _gcvt (double, int, char*);
381
382void _makepath (char*, const char*, const char*, const char*, const char*);
383void _splitpath (const char*, char*, char*, char*, char*);
384char* _fullpath (char*, const char*, size_t);
385
386
387char* _itoa (int, char*, int);
388char* _ltoa (long, char*, int);
389char* _ultoa(unsigned long, char*, int);
390wchar_t* _itow (int, wchar_t*, int);
391wchar_t* _ltow (long, wchar_t*, int);
392wchar_t* _ultow (unsigned long, wchar_t*, int);
393
394#ifdef __MSVCRT__
395__int64 _atoi64(const char *);
396char* _i64toa(__int64, char *, int);
397char* _ui64toa(unsigned __int64, char *, int);
398__int64 _wtoi64(const wchar_t *);
399wchar_t* _i64tow(__int64, wchar_t *, int);
400wchar_t* _ui64tow(unsigned __int64, wchar_t *, int);
401
402wchar_t* _wgetenv(const wchar_t*);
403int _wputenv(const wchar_t*);
404void _wsearchenv(const wchar_t*, const wchar_t*, wchar_t*);
405void _wmakepath(wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*);
406void _wsplitpath (const wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*);
407wchar_t* _wfullpath (wchar_t*, const wchar_t*, size_t);
408#endif
409
410#ifndef _NO_OLDNAMES
411
412int putenv (const char*);
413void searchenv (const char*, const char*, char*);
414
415char* itoa (int, char*, int);
416char* ltoa (long, char*, int);
417
418#ifndef _UWIN
419char* ecvt (double, int, int*, int*);
420char* fcvt (double, int, int*, int*);
421char* gcvt (double, int, char*);
422#endif /* _UWIN */
423#endif /* Not _NO_OLDNAMES */
424
425#endif /* Not __STRICT_ANSI__ */
426
427/* C99 names */
428
429#if !defined __NO_ISOCEXT /* externs in static libmingwex.a */
430
431typedef struct { long long quot, rem; } lldiv_t;
432
433lldiv_t lldiv (long long, long long);
434
435extern __inline__ long long llabs(long long _j)
436 {return (_j >= 0 ? _j : -_j);}
437
438long long strtoll (const char* __restrict__, char** __restrict, int);
439unsigned long long strtoull (const char* __restrict__, char** __restrict__, int);
440
441#if defined (__MSVCRT__) /* these are stubs for MS _i64 versions */
442long long atoll (const char *);
443
444#if !defined (__STRICT_ANSI__)
445long long wtoll(const wchar_t *);
446char* lltoa(long long, char *, int);
447char* ulltoa(unsigned long long , char *, int);
448wchar_t* lltow(long long, wchar_t *, int);
449wchar_t* ulltow(unsigned long long, wchar_t *, int);
450
451 /* inline using non-ansi functions */
452extern __inline__ long long atoll (const char * _c)
453 { return _atoi64 (_c); }
454extern __inline__ char* lltoa(long long _n, char * _c, int _i)
455 { return _i64toa (_n, _c, _i); }
456extern __inline__ char* ulltoa(unsigned long long _n, char * _c, int _i)
457 { return _ui64toa (_n, _c, _i); }
458extern __inline__ long long wtoll(const wchar_t * _w)
459 { return _wtoi64 (_w); }
460extern __inline__ wchar_t* lltow(long long _n, wchar_t * _w, int _i)
461 { return _i64tow (_n, _w, _i); }
462extern __inline__ wchar_t* ulltow(unsigned long long _n, wchar_t * _w, int _i)
463 { return _ui64tow (_n, _w, _i); }
464#endif /* (__STRICT_ANSI__) */
465
466#endif /* __MSVCRT__ */
467
468#endif /* !__NO_ISOCEXT */
469
470/*
471 * Undefine the no return attribute used in some function definitions
472 */
473#undef _ATTRIB_NORETURN
474
475#ifdef __cplusplus
476}
477#endif
478
479#endif /* Not RC_INVOKED */
480
481#endif /* Not _STDLIB_H_ */
482
win32/include/string.h+206−0
@@ -0,0 +1,206 @@
1/*
2 * string.h
3 *
4 * Definitions for memory and string functions.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _STRING_H_
28#define _STRING_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33/*
34 * Define size_t, wchar_t and NULL
35 */
36#define __need_size_t
37#define __need_wchar_t
38#define __need_NULL
39#ifndef RC_INVOKED
40#include <stddef.h>
41#endif /* Not RC_INVOKED */
42
43#ifndef RC_INVOKED
44
45#ifdef __cplusplus
46extern "C" {
47#endif
48
49/*
50 * Prototypes of the ANSI Standard C library string functions.
51 */
52void* memchr (const void*, int, size_t);
53int memcmp (const void*, const void*, size_t);
54void* memcpy (void*, const void*, size_t);
55void* memmove (void*, const void*, size_t);
56void* memset (void*, int, size_t);
57char* strcat (char*, const char*);
58char* strchr (const char*, int);
59int strcmp (const char*, const char*);
60int strcoll (const char*, const char*); /* Compare using locale */
61char* strcpy (char*, const char*);
62size_t strcspn (const char*, const char*);
63char* strerror (int); /* NOTE: NOT an old name wrapper. */
64char* _strerror (const char *);
65size_t strlen (const char*);
66char* strncat (char*, const char*, size_t);
67int strncmp (const char*, const char*, size_t);
68char* strncpy (char*, const char*, size_t);
69char* strpbrk (const char*, const char*);
70char* strrchr (const char*, int);
71size_t strspn (const char*, const char*);
72char* strstr (const char*, const char*);
73char* strtok (char*, const char*);
74size_t strxfrm (char*, const char*, size_t);
75
76#ifndef __STRICT_ANSI__
77/*
78 * Extra non-ANSI functions provided by the CRTDLL library
79 */
80void* _memccpy (void*, const void*, int, size_t);
81int _memicmp (const void*, const void*, size_t);
82char* _strdup (const char*);
83int _strcmpi (const char*, const char*);
84int _stricmp (const char*, const char*);
85int _stricoll (const char*, const char*);
86char* _strlwr (char*);
87int _strnicmp (const char*, const char*, size_t);
88char* _strnset (char*, int, size_t);
89char* _strrev (char*);
90char* _strset (char*, int);
91char* _strupr (char*);
92void _swab (const char*, char*, size_t);
93
94/*
95 * Multi-byte character functions
96 */
97unsigned char* _mbschr (unsigned char*, unsigned char*);
98unsigned char* _mbsncat (unsigned char*, const unsigned char*, size_t);
99unsigned char* _mbstok (unsigned char*, unsigned char*);
100
101#ifdef __MSVCRT__
102int _strncoll(const char*, const char*, size_t);
103int _strnicoll(const char*, const char*, size_t);
104#endif
105
106#endif /* Not __STRICT_ANSI__ */
107
108/*
109 * Unicode versions of the standard calls.
110 */
111wchar_t* wcscat (wchar_t*, const wchar_t*);
112wchar_t* wcschr (const wchar_t*, wchar_t);
113int wcscmp (const wchar_t*, const wchar_t*);
114int wcscoll (const wchar_t*, const wchar_t*);
115wchar_t* wcscpy (wchar_t*, const wchar_t*);
116size_t wcscspn (const wchar_t*, const wchar_t*);
117/* Note: No wcserror in CRTDLL. */
118size_t wcslen (const wchar_t*);
119wchar_t* wcsncat (wchar_t*, const wchar_t*, size_t);
120int wcsncmp(const wchar_t*, const wchar_t*, size_t);
121wchar_t* wcsncpy(wchar_t*, const wchar_t*, size_t);
122wchar_t* wcspbrk(const wchar_t*, const wchar_t*);
123wchar_t* wcsrchr(const wchar_t*, wchar_t);
124size_t wcsspn(const wchar_t*, const wchar_t*);
125wchar_t* wcsstr(const wchar_t*, const wchar_t*);
126wchar_t* wcstok(wchar_t*, const wchar_t*);
127size_t wcsxfrm(wchar_t*, const wchar_t*, size_t);
128
129#ifndef __STRICT_ANSI__
130/*
131 * Unicode versions of non-ANSI functions provided by CRTDLL.
132 */
133
134/* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */
135#define _wcscmpi _wcsicmp
136
137wchar_t* _wcsdup (wchar_t*);
138int _wcsicmp (const wchar_t*, const wchar_t*);
139int _wcsicoll (const wchar_t*, const wchar_t*);
140wchar_t* _wcslwr (wchar_t*);
141int _wcsnicmp (const wchar_t*, const wchar_t*, size_t);
142wchar_t* _wcsnset (wchar_t*, wchar_t, size_t);
143wchar_t* _wcsrev (wchar_t*);
144wchar_t* _wcsset (wchar_t*, wchar_t);
145wchar_t* _wcsupr (wchar_t*);
146
147#ifdef __MSVCRT__
148int _wcsncoll(const wchar_t*, const wchar_t*, size_t);
149int _wcsnicoll(const wchar_t*, const wchar_t*, size_t);
150#endif
151
152
153#endif /* Not __STRICT_ANSI__ */
154
155
156#ifndef __STRICT_ANSI__
157#ifndef _NO_OLDNAMES
158
159/*
160 * Non-underscored versions of non-ANSI functions. They live in liboldnames.a
161 * and provide a little extra portability. Also a few extra UNIX-isms like
162 * strcasecmp.
163 */
164
165void* memccpy (void*, const void*, int, size_t);
166int memicmp (const void*, const void*, size_t);
167char* strdup (const char*);
168int strcmpi (const char*, const char*);
169int stricmp (const char*, const char*);
170int strcasecmp (const char*, const char*);
171int stricoll (const char*, const char*);
172char* strlwr (char*);
173int strnicmp (const char*, const char*, size_t);
174int strncasecmp (const char*, const char*, size_t);
175char* strnset (char*, int, size_t);
176char* strrev (char*);
177char* strset (char*, int);
178char* strupr (char*);
179#ifndef _UWIN
180void swab (const char*, char*, size_t);
181#endif /* _UWIN */
182
183/* NOTE: There is no _wcscmpi, but this is for compatibility. */
184int wcscmpi (const wchar_t*, const wchar_t*);
185wchar_t* wcsdup (wchar_t*);
186int wcsicmp (const wchar_t*, const wchar_t*);
187int wcsicoll (const wchar_t*, const wchar_t*);
188wchar_t* wcslwr (wchar_t*);
189int wcsnicmp (const wchar_t*, const wchar_t*, size_t);
190wchar_t* wcsnset (wchar_t*, wchar_t, size_t);
191wchar_t* wcsrev (wchar_t*);
192wchar_t* wcsset (wchar_t*, wchar_t);
193wchar_t* wcsupr (wchar_t*);
194
195#endif /* Not _NO_OLDNAMES */
196#endif /* Not strict ANSI */
197
198
199#ifdef __cplusplus
200}
201#endif
202
203#endif /* Not RC_INVOKED */
204
205#endif /* Not _STRING_H_ */
206
win32/include/sys/fcntl.h+8−0
@@ -0,0 +1,8 @@
1/*
2 * This file is part of the Mingw32 package.
3 *
4 * This fcntl.h maps to the root fcntl.h
5 */
6#ifndef __STRICT_ANSI__
7#include <fcntl.h>
8#endif
win32/include/sys/file.h+9−0
@@ -0,0 +1,9 @@
1/*
2 * This file is part of the Mingw32 package.
3 *
4 * This file.h maps to the root fcntl.h
5 * TODO?
6 */
7#ifndef __STRICT_ANSI__
8#include <fcntl.h>
9#endif
win32/include/sys/locking.h+52−0
@@ -0,0 +1,52 @@
1/*
2 * locking.h
3 *
4 * Constants for the mode parameter of the locking function.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef __STRICT_ANSI__
28
29#ifndef _LOCKING_H_
30#define _LOCKING_H_
31
32/* All the headers include this file. */
33#include <_mingw.h>
34
35#define _LK_UNLCK 0 /* Unlock */
36#define _LK_LOCK 1 /* Lock */
37#define _LK_NBLCK 2 /* Non-blocking lock */
38#define _LK_RLCK 3 /* Lock for read only */
39#define _LK_NBRLCK 4 /* Non-blocking lock for read only */
40
41#ifndef NO_OLDNAMES
42#define LK_UNLCK _LK_UNLCK
43#define LK_LOCK _LK_LOCK
44#define LK_NBLCK _LK_NBLCK
45#define LK_RLCK _LK_RLCK
46#define LK_NBRLCK _LK_NBRLCK
47#endif /* Not NO_OLDNAMES */
48
49#endif /* Not _LOCKING_H_ */
50
51#endif /* Not __STRICT_ANSI__ */
52
win32/include/sys/stat.h+190−0
@@ -0,0 +1,190 @@
1/*
2 * stat.h
3 *
4 * Symbolic constants for opening and creating files, also stat, fstat and
5 * chmod functions.
6 *
7 * This file is part of the Mingw32 package.
8 *
9 * Contributors:
10 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
11 *
12 * THIS SOFTWARE IS NOT COPYRIGHTED
13 *
14 * This source code is offered for use in the public domain. You may
15 * use, modify or distribute it freely.
16 *
17 * This code is distributed in the hope that it will be useful but
18 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
19 * DISCLAIMED. This includes but is not limited to warranties of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 *
22 * $Revision: 1.1 $
23 * $Author: bellard $
24 * $Date: 2005/04/14 23:49:21 $
25 *
26 */
27
28#ifndef __STRICT_ANSI__
29
30#ifndef _STAT_H_
31#define _STAT_H_
32
33/* All the headers include this file. */
34#include <_mingw.h>
35
36#define __need_size_t
37#define __need_wchar_t
38#ifndef RC_INVOKED
39#include <stddef.h>
40#endif /* Not RC_INVOKED */
41
42#include <sys/types.h>
43
44/*
45 * Constants for the stat st_mode member.
46 */
47#define _S_IFIFO 0x1000 /* FIFO */
48#define _S_IFCHR 0x2000 /* Character */
49#define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */
50#define _S_IFDIR 0x4000 /* Directory */
51#define _S_IFREG 0x8000 /* Regular */
52
53#define _S_IFMT 0xF000 /* File type mask */
54
55#define _S_IEXEC 0x0040
56#define _S_IWRITE 0x0080
57#define _S_IREAD 0x0100
58
59#define _S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
60#define _S_IXUSR _S_IEXEC
61#define _S_IWUSR _S_IWRITE
62#define _S_IRUSR _S_IREAD
63
64#define _S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
65#define _S_ISFIFO(m) (((m) & _S_IFMT) == _S_IFIFO)
66#define _S_ISCHR(m) (((m) & _S_IFMT) == _S_IFCHR)
67#define _S_ISBLK(m) (((m) & _S_IFMT) == _S_IFBLK)
68#define _S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
69
70#ifndef _NO_OLDNAMES
71
72#define S_IFIFO _S_IFIFO
73#define S_IFCHR _S_IFCHR
74#define S_IFBLK _S_IFBLK
75#define S_IFDIR _S_IFDIR
76#define S_IFREG _S_IFREG
77#define S_IFMT _S_IFMT
78#define S_IEXEC _S_IEXEC
79#define S_IWRITE _S_IWRITE
80#define S_IREAD _S_IREAD
81#define S_IRWXU _S_IRWXU
82#define S_IXUSR _S_IXUSR
83#define S_IWUSR _S_IWUSR
84#define S_IRUSR _S_IRUSR
85
86#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
87#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
88#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
89#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
90#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
91
92#endif /* Not _NO_OLDNAMES */
93
94#ifndef RC_INVOKED
95
96#ifndef _STAT_DEFINED
97/*
98 * The structure manipulated and returned by stat and fstat.
99 *
100 * NOTE: If called on a directory the values in the time fields are not only
101 * invalid, they will cause localtime et. al. to return NULL. And calling
102 * asctime with a NULL pointer causes an Invalid Page Fault. So watch it!
103 */
104struct _stat
105{
106 _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
107 _ino_t st_ino; /* Always zero ? */
108 _mode_t st_mode; /* See above constants */
109 short st_nlink; /* Number of links. */
110 short st_uid; /* User: Maybe significant on NT ? */
111 short st_gid; /* Group: Ditto */
112 _dev_t st_rdev; /* Seems useless (not even filled in) */
113 _off_t st_size; /* File size in bytes */
114 time_t st_atime; /* Accessed date (always 00:00 hrs local
115 * on FAT) */
116 time_t st_mtime; /* Modified time */
117 time_t st_ctime; /* Creation time */
118};
119
120struct stat
121{
122 _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
123 _ino_t st_ino; /* Always zero ? */
124 _mode_t st_mode; /* See above constants */
125 short st_nlink; /* Number of links. */
126 short st_uid; /* User: Maybe significant on NT ? */
127 short st_gid; /* Group: Ditto */
128 _dev_t st_rdev; /* Seems useless (not even filled in) */
129 _off_t st_size; /* File size in bytes */
130 time_t st_atime; /* Accessed date (always 00:00 hrs local
131 * on FAT) */
132 time_t st_mtime; /* Modified time */
133 time_t st_ctime; /* Creation time */
134};
135#if defined (__MSVCRT__)
136struct _stati64 {
137 _dev_t st_dev;
138 _ino_t st_ino;
139 unsigned short st_mode;
140 short st_nlink;
141 short st_uid;
142 short st_gid;
143 _dev_t st_rdev;
144 __int64 st_size;
145 time_t st_atime;
146 time_t st_mtime;
147 time_t st_ctime;
148};
149#endif /* __MSVCRT__ */
150#define _STAT_DEFINED
151#endif /* _STAT_DEFINED */
152
153#ifdef __cplusplus
154extern "C" {
155#endif
156
157int _fstat (int, struct _stat*);
158int _chmod (const char*, int);
159int _stat (const char*, struct _stat*);
160
161#if defined (__MSVCRT__)
162int _fstati64(int, struct _stati64 *);
163int _stati64(const char *, struct _stati64 *);
164#if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */
165int _wstat(const wchar_t*, struct _stat*);
166int _wstati64 (const wchar_t*, struct _stati64*);
167#define _WSTAT_DEFINED
168#endif /* _WSTAT_DEFIND */
169#endif /* __MSVCRT__ */
170
171#ifndef _NO_OLDNAMES
172
173/* These functions live in liboldnames.a. */
174int fstat (int, struct stat*);
175int chmod (const char*, int);
176int stat (const char*, struct stat*);
177
178#endif /* Not _NO_OLDNAMES */
179
180
181#ifdef __cplusplus
182}
183#endif
184
185#endif /* Not RC_INVOKED */
186
187#endif /* Not _STAT_H_ */
188
189#endif /* Not __STRICT_ANSI__ */
190
win32/include/sys/time.h+3−0
@@ -0,0 +1,3 @@
1
2#include <time.h>
3
win32/include/sys/timeb.h+82−0
@@ -0,0 +1,82 @@
1/*
2 * timeb.h
3 *
4 * Support for the UNIX System V ftime system call.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef __STRICT_ANSI__
28
29#ifndef _TIMEB_H_
30#define _TIMEB_H_
31
32/* All the headers include this file. */
33#include <_mingw.h>
34
35#ifndef RC_INVOKED
36
37/*
38 * TODO: Structure not tested.
39 */
40struct _timeb
41{
42 long time;
43 short millitm;
44 short timezone;
45 short dstflag;
46};
47
48#ifndef _NO_OLDNAMES
49/*
50 * TODO: Structure not tested.
51 */
52struct timeb
53{
54 long time;
55 short millitm;
56 short timezone;
57 short dstflag;
58};
59#endif
60
61
62#ifdef __cplusplus
63extern "C" {
64#endif
65
66/* TODO: Not tested. */
67void _ftime (struct _timeb*);
68
69#ifndef _NO_OLDNAMES
70void ftime (struct timeb*);
71#endif /* Not _NO_OLDNAMES */
72
73#ifdef __cplusplus
74}
75#endif
76
77#endif /* Not RC_INVOKED */
78
79#endif /* Not _TIMEB_H_ */
80
81#endif /* Not __STRICT_ANSI__ */
82
win32/include/sys/types.h+118−0
@@ -0,0 +1,118 @@
1/*
2 * types.h
3 *
4 * The definition of constants, data types and global variables.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 * Lots of types supplied by Pedro A. Aranda <paag@tid.es>
11 *
12 * THIS SOFTWARE IS NOT COPYRIGHTED
13 *
14 * This source code is offered for use in the public domain. You may
15 * use, modify or distribute it freely.
16 *
17 * This code is distributed in the hope that it will be useful but
18 * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY
19 * DISCLAIMED. This includes but is not limited to warrenties of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 *
22 * $Revision: 1.1 $
23 * $Author: bellard $
24 * $Date: 2005/04/14 23:49:21 $
25 *
26 */
27
28#ifndef _TYPES_H_
29#define _TYPES_H_
30
31/* All the headers include this file. */
32#include <_mingw.h>
33
34#define __need_wchar_t
35#define __need_size_t
36#define __need_ptrdiff_t
37#ifndef RC_INVOKED
38#include <stddef.h>
39#endif /* Not RC_INVOKED */
40
41#ifndef RC_INVOKED
42
43#ifndef _TIME_T_DEFINED
44typedef long time_t;
45#define _TIME_T_DEFINED
46#endif
47
48
49#ifndef __STRICT_ANSI__
50
51#ifndef _OFF_T_
52#define _OFF_T_
53typedef long _off_t;
54
55#ifndef _NO_OLDNAMES
56typedef _off_t off_t;
57#endif
58#endif /* Not _OFF_T_ */
59
60
61#ifndef _DEV_T_
62#define _DEV_T_
63#ifdef __MSVCRT__
64typedef unsigned int _dev_t;
65#else
66typedef short _dev_t;
67#endif
68
69#ifndef _NO_OLDNAMES
70typedef _dev_t dev_t;
71#endif
72#endif /* Not _DEV_T_ */
73
74
75#ifndef _INO_T_
76#define _INO_T_
77typedef short _ino_t;
78
79#ifndef _NO_OLDNAMES
80typedef _ino_t ino_t;
81#endif
82#endif /* Not _INO_T_ */
83
84
85#ifndef _PID_T_
86#define _PID_T_
87typedef int _pid_t;
88
89#ifndef _NO_OLDNAMES
90typedef _pid_t pid_t;
91#endif
92#endif /* Not _PID_T_ */
93
94
95#ifndef _MODE_T_
96#define _MODE_T_
97typedef unsigned short _mode_t;
98
99#ifndef _NO_OLDNAMES
100typedef _mode_t mode_t;
101#endif
102#endif /* Not _MODE_T_ */
103
104
105#ifndef _SIGSET_T_
106#define _SIGSET_T_
107typedef int _sigset_t;
108
109#ifndef _NO_OLDNAMES
110typedef _sigset_t sigset_t;
111#endif
112#endif /* Not _SIGSET_T_ */
113
114#endif /* Not __STRICT_ANSI__ */
115
116#endif /* Not RC_INVOKED */
117
118#endif /* Not _TYPES_H_ */
win32/include/sys/unistd.h+9−0
@@ -0,0 +1,9 @@
1/*
2 * This file is part of the Mingw32 package.
3 *
4 * unistd.h maps (roughly) to io.h
5 */
6#ifndef __STRICT_ANSI__
7#include <io.h>
8#endif
9
win32/include/sys/utime.h+89−0
@@ -0,0 +1,89 @@
1/*
2 * utime.h
3 *
4 * Support for the utime function.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef __STRICT_ANSI__
28
29#ifndef _UTIME_H_
30#define _UTIME_H_
31
32/* All the headers include this file. */
33#include <_mingw.h>
34
35#define __need_wchar_t
36#define __need_size_t
37#ifndef RC_INVOKED
38#include <stddef.h>
39#endif /* Not RC_INVOKED */
40#include <sys/types.h>
41
42#ifndef RC_INVOKED
43
44/*
45 * Structure used by _utime function.
46 */
47struct _utimbuf
48{
49 time_t actime; /* Access time */
50 time_t modtime; /* Modification time */
51};
52
53
54#ifndef _NO_OLDNAMES
55/* NOTE: Must be the same as _utimbuf above. */
56struct utimbuf
57{
58 time_t actime;
59 time_t modtime;
60};
61#endif /* Not _NO_OLDNAMES */
62
63
64#ifdef __cplusplus
65extern "C" {
66#endif
67
68int _utime (const char*, struct _utimbuf*);
69int _futime (int, struct _utimbuf*);
70
71/* The wide character version, only available for MSVCRT versions of the
72 * C runtime library. */
73#ifdef __MSVCRT__
74int _wutime (const wchar_t*, struct _utimbuf*);
75#endif /* MSVCRT runtime */
76#ifndef _NO_OLDNAMES
77int utime (const char*, struct utimbuf*);
78#endif /* Not _NO_OLDNAMES */
79
80#ifdef __cplusplus
81}
82#endif
83
84#endif /* Not RC_INVOKED */
85
86#endif /* Not _UTIME_H_ */
87
88#endif /* Not __STRICT_ANSI__ */
89
win32/include/tchar.h+367−0
@@ -0,0 +1,367 @@
1/*
2 * tchar.h
3 *
4 * Unicode mapping layer for the standard C library. By including this
5 * file and using the 't' names for string functions
6 * (eg. _tprintf) you can make code which can be easily adapted to both
7 * Unicode and non-unicode environments. In a unicode enabled compile define
8 * _UNICODE before including tchar.h, otherwise the standard non-unicode
9 * library functions will be used.
10 *
11 * Note that you still need to include string.h or stdlib.h etc. to define
12 * the appropriate functions. Also note that there are several defines
13 * included for non-ANSI functions which are commonly available (but using
14 * the convention of prepending an underscore to non-ANSI library function
15 * names).
16 *
17 * This file is part of the Mingw32 package.
18 *
19 * Contributors:
20 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
21 *
22 * THIS SOFTWARE IS NOT COPYRIGHTED
23 *
24 * This source code is offered for use in the public domain. You may
25 * use, modify or distribute it freely.
26 *
27 * This code is distributed in the hope that it will be useful but
28 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
29 * DISCLAIMED. This includes but is not limited to warranties of
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
31 *
32 * $Revision: 1.1 $
33 * $Author: bellard $
34 * $Date: 2005/04/14 23:49:21 $
35 *
36 */
37
38#ifndef _TCHAR_H_
39#define _TCHAR_H_
40
41/* All the headers include this file. */
42#include <_mingw.h>
43
44/*
45 * NOTE: This tests _UNICODE, which is different from the UNICODE define
46 * used to differentiate Win32 API calls.
47 */
48#ifdef _UNICODE
49
50
51/*
52 * Use TCHAR instead of char or wchar_t. It will be appropriately translated
53 * if _UNICODE is correctly defined (or not).
54 */
55#ifndef _TCHAR_DEFINED
56#ifndef RC_INVOKED
57typedef wchar_t TCHAR;
58typedef wchar_t _TCHAR;
59#endif /* Not RC_INVOKED */
60#define _TCHAR_DEFINED
61#endif
62
63
64/*
65 * __TEXT is a private macro whose specific use is to force the expansion of a
66 * macro passed as an argument to the macros _T or _TEXT. DO NOT use this
67 * macro within your programs. It's name and function could change without
68 * notice.
69 */
70#define __TEXT(x) L##x
71
72/* for porting from other Windows compilers */
73#if 0 // no wide startup module
74#define _tmain wmain
75#define _tWinMain wWinMain
76#define _tenviron _wenviron
77#define __targv __wargv
78#endif
79
80/*
81 * Unicode functions
82 */
83#define _tprintf wprintf
84#define _ftprintf fwprintf
85#define _stprintf swprintf
86#define _sntprintf _snwprintf
87#define _vtprintf vwprintf
88#define _vftprintf vfwprintf
89#define _vstprintf vswprintf
90#define _vsntprintf _vsnwprintf
91#define _tscanf wscanf
92#define _ftscanf fwscanf
93#define _stscanf swscanf
94#define _fgettc fgetwc
95#define _fgettchar _fgetwchar
96#define _fgetts fgetws
97#define _fputtc fputwc
98#define _fputtchar _fputwchar
99#define _fputts fputws
100#define _gettc getwc
101#define _getts getws
102#define _puttc putwc
103#define _putts putws
104#define _ungettc ungetwc
105#define _tcstod wcstod
106#define _tcstol wcstol
107#define _tcstoul wcstoul
108#define _itot _itow
109#define _ltot _ltow
110#define _ultot _ultow
111#define _ttoi _wtoi
112#define _ttol _wtol
113#define _tcscat wcscat
114#define _tcschr wcschr
115#define _tcscmp wcscmp
116#define _tcscpy wcscpy
117#define _tcscspn wcscspn
118#define _tcslen wcslen
119#define _tcsncat wcsncat
120#define _tcsncmp wcsncmp
121#define _tcsncpy wcsncpy
122#define _tcspbrk wcspbrk
123#define _tcsrchr wcsrchr
124#define _tcsspn wcsspn
125#define _tcsstr wcsstr
126#define _tcstok wcstok
127#define _tcsdup _wcsdup
128#define _tcsicmp _wcsicmp
129#define _tcsnicmp _wcsnicmp
130#define _tcsnset _wcsnset
131#define _tcsrev _wcsrev
132#define _tcsset _wcsset
133#define _tcslwr _wcslwr
134#define _tcsupr _wcsupr
135#define _tcsxfrm wcsxfrm
136#define _tcscoll wcscoll
137#define _tcsicoll _wcsicoll
138#define _istalpha iswalpha
139#define _istupper iswupper
140#define _istlower iswlower
141#define _istdigit iswdigit
142#define _istxdigit iswxdigit
143#define _istspace iswspace
144#define _istpunct iswpunct
145#define _istalnum iswalnum
146#define _istprint iswprint
147#define _istgraph iswgraph
148#define _istcntrl iswcntrl
149#define _istascii iswascii
150#define _totupper towupper
151#define _totlower towlower
152#define _tcsftime wcsftime
153/* Macro functions */
154#define _tcsdec _wcsdec
155#define _tcsinc _wcsinc
156#define _tcsnbcnt _wcsncnt
157#define _tcsnccnt _wcsncnt
158#define _tcsnextc _wcsnextc
159#define _tcsninc _wcsninc
160#define _tcsspnp _wcsspnp
161#define _wcsdec(_wcs1, _wcs2) ((_wcs1)>=(_wcs2) ? NULL : (_wcs2)-1)
162#define _wcsinc(_wcs) ((_wcs)+1)
163#define _wcsnextc(_wcs) ((unsigned int) *(_wcs))
164#define _wcsninc(_wcs, _inc) (((_wcs)+(_inc)))
165#define _wcsncnt(_wcs, _cnt) ((wcslen(_wcs)>_cnt) ? _count : wcslen(_wcs))
166#define _wcsspnp(_wcs1, _wcs2) ((*((_wcs1)+wcsspn(_wcs1,_wcs2))) ? ((_wcs1)+wcsspn(_wcs1,_wcs2)) : NULL)
167
168#if 1 // defined __MSVCRT__
169/*
170 * These wide functions not in crtdll.dll.
171 * Define macros anyway so that _wfoo rather than _tfoo is undefined
172 */
173#define _ttoi64 _wtoi64
174#define _i64tot _i64tow
175#define _ui64tot _ui64tow
176#define _tasctime _wasctime
177#define _tctime _wctime
178#define _tstrdate _wstrdate
179#define _tstrtime _wstrtime
180#define _tutime _wutime
181#define _tcsnccoll _wcsncoll
182#define _tcsncoll _wcsncoll
183#define _tcsncicoll _wcsnicoll
184#define _tcsnicoll _wcsnicoll
185#define _taccess _waccess
186#define _tchmod _wchmod
187#define _tcreat _wcreat
188#define _tfindfirst _wfindfirst
189#define _tfindnext _wfindnext
190#define _tfopen _wfopen
191#define _tgetenv _wgetenv
192#define _tmktemp _wmktemp
193#define _topen _wopen
194#define _tremove _wremove
195#define _trename _wrename
196#define _tsopen _wsopen
197#define _tsetlocale _wsetlocale
198#define _tunlink _wunlink
199#define _tfinddata_t _wfinddata_t
200#define _tfindfirsti64 _wfindfirsti64
201#define _tfindnexti64 _wfindnexti64
202#define _tfinddatai64_t _wfinddatai64_t
203#endif /* __MSVCRT__ */
204
205#else /* Not _UNICODE */
206
207/*
208 * TCHAR, the type you should use instead of char.
209 */
210#ifndef _TCHAR_DEFINED
211#ifndef RC_INVOKED
212typedef char TCHAR;
213typedef char _TCHAR;
214#endif
215#define _TCHAR_DEFINED
216#endif
217
218/*
219 * __TEXT is a private macro whose specific use is to force the expansion of a
220 * macro passed as an argument to the macros _T or _TEXT. DO NOT use this
221 * macro within your programs. It's name and function could change without
222 * notice.
223 */
224#define __TEXT(x) x
225
226/* for porting from other Windows compilers */
227#define _tmain main
228#define _tWinMain WinMain
229#define _tenviron _environ
230#define __targv __argv
231
232/*
233 * Non-unicode (standard) functions
234 */
235
236#define _tprintf printf
237#define _ftprintf fprintf
238#define _stprintf sprintf
239#define _sntprintf _snprintf
240#define _vtprintf vprintf
241#define _vftprintf vfprintf
242#define _vstprintf vsprintf
243#define _vsntprintf _vsnprintf
244#define _tscanf scanf
245#define _ftscanf fscanf
246#define _stscanf sscanf
247#define _fgettc fgetc
248#define _fgettchar _fgetchar
249#define _fgetts fgets
250#define _fputtc fputc
251#define _fputtchar _fputchar
252#define _fputts fputs
253#define _tfopen fopen
254#define _tgetenv getenv
255#define _gettc getc
256#define _getts gets
257#define _puttc putc
258#define _putts puts
259#define _ungettc ungetc
260#define _tcstod strtod
261#define _tcstol strtol
262#define _tcstoul strtoul
263#define _itot _itoa
264#define _ltot _ltoa
265#define _ultot _ultoa
266#define _ttoi atoi
267#define _ttol atol
268#define _tcscat strcat
269#define _tcschr strchr
270#define _tcscmp strcmp
271#define _tcscpy strcpy
272#define _tcscspn strcspn
273#define _tcslen strlen
274#define _tcsncat strncat
275#define _tcsncmp strncmp
276#define _tcsncpy strncpy
277#define _tcspbrk strpbrk
278#define _tcsrchr strrchr
279#define _tcsspn strspn
280#define _tcsstr strstr
281#define _tcstok strtok
282#define _tcsdup _strdup
283#define _tcsicmp _stricmp
284#define _tcsnicmp _strnicmp
285#define _tcsnset _strnset
286#define _tcsrev _strrev
287#define _tcsset _strset
288#define _tcslwr _strlwr
289#define _tcsupr _strupr
290#define _tcsxfrm strxfrm
291#define _tcscoll strcoll
292#define _tcsicoll _stricoll
293#define _istalpha isalpha
294#define _istupper isupper
295#define _istlower islower
296#define _istdigit isdigit
297#define _istxdigit isxdigit
298#define _istspace isspace
299#define _istpunct ispunct
300#define _istalnum isalnum
301#define _istprint isprint
302#define _istgraph isgraph
303#define _istcntrl iscntrl
304#define _istascii isascii
305#define _totupper toupper
306#define _totlower tolower
307#define _tasctime asctime
308#define _tctime ctime
309#define _tstrdate _strdate
310#define _tstrtime _strtime
311#define _tutime _utime
312#define _tcsftime strftime
313/* Macro functions */
314#define _tcsdec _strdec
315#define _tcsinc _strinc
316#define _tcsnbcnt _strncnt
317#define _tcsnccnt _strncnt
318#define _tcsnextc _strnextc
319#define _tcsninc _strninc
320#define _tcsspnp _strspnp
321#define _strdec(_str1, _str2) ((_str1)>=(_str2) ? NULL : (_str2)-1)
322#define _strinc(_str) ((_str)+1)
323#define _strnextc(_str) ((unsigned int) *(_str))
324#define _strninc(_str, _inc) (((_str)+(_inc)))
325#define _strncnt(_str, _cnt) ((strlen(_str)>_cnt) ? _count : strlen(_str))
326#define _strspnp(_str1, _str2) ((*((_str1)+strspn(_str1,_str2))) ? ((_str1)+strspn(_str1,_str2)) : NULL)
327
328#define _tchmod _chmod
329#define _tcreat _creat
330#define _tfindfirst _findfirst
331#define _tfindnext _findnext
332#define _tmktemp _mktemp
333#define _topen _open
334#define _taccess _access
335#define _tremove remove
336#define _trename rename
337#define _tsopen _sopen
338#define _tsetlocale setlocale
339#define _tunlink _unlink
340#define _tfinddata_t _finddata_t
341
342
343#if 1 // defined __MSVCRT__
344/* Not in crtdll.dll. Define macros anyway? */
345#define _ttoi64 _atoi64
346#define _i64tot _i64toa
347#define _ui64tot _ui64toa
348#define _tcsnccoll _strncoll
349#define _tcsncoll _strncoll
350#define _tcsncicoll _strnicoll
351#define _tcsnicoll _strnicoll
352#define _tfindfirsti64 _findfirsti64
353#define _tfindnexti64 _findnexti64
354#define _tfinddatai64_t _finddatai64_t
355#endif /* __MSVCRT__ */
356
357#endif /* Not _UNICODE */
358
359/*
360 * UNICODE a constant string when _UNICODE is defined else returns the string
361 * unmodified. Also defined in w32api/winnt.h.
362 */
363#define _TEXT(x) __TEXT(x)
364#define _T(x) __TEXT(x)
365
366#endif /* Not _TCHAR_H_ */
367
win32/include/time.h+219−0
@@ -0,0 +1,219 @@
1/*
2 * time.h
3 *
4 * Date and time functions and types.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _TIME_H_
28#define _TIME_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33#define __need_wchar_t
34#define __need_size_t
35#ifndef RC_INVOKED
36#include <stddef.h>
37#endif /* Not RC_INVOKED */
38
39/*
40 * Need a definition of time_t.
41 */
42#include <sys/types.h>
43
44/*
45 * Number of clock ticks per second. A clock tick is the unit by which
46 * processor time is measured and is returned by 'clock'.
47 */
48#define CLOCKS_PER_SEC ((clock_t)1000)
49#define CLK_TCK CLOCKS_PER_SEC
50
51
52#ifndef RC_INVOKED
53
54/*
55 * A type for storing the current time and date. This is the number of
56 * seconds since midnight Jan 1, 1970.
57 * NOTE: Normally this is defined by the above include of sys/types.h
58 */
59#ifndef _TIME_T_DEFINED
60typedef long time_t;
61#define _TIME_T_DEFINED
62#endif
63
64/*
65 * A type for measuring processor time (in clock ticks).
66 */
67#ifndef _CLOCK_T_DEFINED
68typedef long clock_t;
69#define _CLOCK_T_DEFINED
70#endif
71
72
73/*
74 * A structure for storing all kinds of useful information about the
75 * current (or another) time.
76 */
77struct tm
78{
79 int tm_sec; /* Seconds: 0-59 (K&R says 0-61?) */
80 int tm_min; /* Minutes: 0-59 */
81 int tm_hour; /* Hours since midnight: 0-23 */
82 int tm_mday; /* Day of the month: 1-31 */
83 int tm_mon; /* Months *since* january: 0-11 */
84 int tm_year; /* Years since 1900 */
85 int tm_wday; /* Days since Sunday (0-6) */
86 int tm_yday; /* Days since Jan. 1: 0-365 */
87 int tm_isdst; /* +1 Daylight Savings Time, 0 No DST,
88 * -1 don't know */
89};
90
91#ifdef __cplusplus
92extern "C" {
93#endif
94
95clock_t clock (void);
96time_t time (time_t*);
97double difftime (time_t, time_t);
98time_t mktime (struct tm*);
99
100/*
101 * These functions write to and return pointers to static buffers that may
102 * be overwritten by other function calls. Yikes!
103 *
104 * NOTE: localtime, and perhaps the others of the four functions grouped
105 * below may return NULL if their argument is not 'acceptable'. Also note
106 * that calling asctime with a NULL pointer will produce an Invalid Page
107 * Fault and crap out your program. Guess how I know. Hint: stat called on
108 * a directory gives 'invalid' times in st_atime etc...
109 */
110char* asctime (const struct tm*);
111char* ctime (const time_t*);
112struct tm* gmtime (const time_t*);
113struct tm* localtime (const time_t*);
114
115
116size_t strftime (char*, size_t, const char*, const struct tm*);
117
118size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
119
120#ifndef __STRICT_ANSI__
121extern void _tzset (void);
122
123#ifndef _NO_OLDNAMES
124extern void tzset (void);
125#endif
126
127size_t strftime(char*, size_t, const char*, const struct tm*);
128char* _strdate(char*);
129char* _strtime(char*);
130
131#endif /* Not __STRICT_ANSI__ */
132
133/*
134 * _daylight: non zero if daylight savings time is used.
135 * _timezone: difference in seconds between GMT and local time.
136 * _tzname: standard/daylight savings time zone names (an array with two
137 * elements).
138 */
139#ifdef __MSVCRT__
140
141/* These are for compatibility with pre-VC 5.0 suppied MSVCRT. */
142extern int* __p__daylight (void);
143extern long* __p__timezone (void);
144extern char** __p__tzname (void);
145
146__MINGW_IMPORT int _daylight;
147__MINGW_IMPORT long _timezone;
148__MINGW_IMPORT char *_tzname[2];
149
150#else /* not __MSVCRT (ie. crtdll) */
151
152#ifndef __DECLSPEC_SUPPORTED
153
154extern int* __imp__daylight_dll;
155extern long* __imp__timezone_dll;
156extern char** __imp__tzname;
157
158#define _daylight (*__imp__daylight_dll)
159#define _timezone (*__imp__timezone_dll)
160#define _tzname (__imp__tzname)
161
162#else /* __DECLSPEC_SUPPORTED */
163
164__MINGW_IMPORT int _daylight_dll;
165__MINGW_IMPORT long _timezone_dll;
166__MINGW_IMPORT char* _tzname[2];
167
168#define _daylight _daylight_dll
169#define _timezone _timezone_dll
170
171#endif /* __DECLSPEC_SUPPORTED */
172
173#endif /* not __MSVCRT__ */
174
175#ifndef _NO_OLDNAMES
176
177#ifdef __MSVCRT__
178
179/* These go in the oldnames import library for MSVCRT. */
180__MINGW_IMPORT int daylight;
181__MINGW_IMPORT long timezone;
182__MINGW_IMPORT char *tzname[2];
183
184#ifndef _WTIME_DEFINED
185
186/* wide function prototypes, also declared in wchar.h */
187
188wchar_t * _wasctime(const struct tm*);
189wchar_t * _wctime(const time_t*);
190wchar_t* _wstrdate(wchar_t*);
191wchar_t* _wstrtime(wchar_t*);
192
193#define _WTIME_DEFINED
194#endif /* _WTIME_DEFINED */
195
196
197#else /* not __MSVCRT__ */
198
199/* CRTDLL is royally messed up when it comes to these macros.
200 TODO: import and alias these via oldnames import library instead
201 of macros. */
202
203#define daylight _daylight
204/* NOTE: timezone not defined because it would conflict with sys/timeb.h.
205 Also, tzname used to a be macro, but now it's in moldname. */
206__MINGW_IMPORT char *tzname[2];
207
208#endif /* not __MSVCRT__ */
209
210#endif /* Not _NO_OLDNAMES */
211
212#ifdef __cplusplus
213}
214#endif
215
216#endif /* Not RC_INVOKED */
217
218#endif /* Not _TIME_H_ */
219
win32/include/unistd.h+10−0
@@ -0,0 +1,10 @@
1/*
2 * This file is part of the Mingw32 package.
3 *
4 * unistd.h maps (roughly) to io.h
5 */
6
7#ifndef __STRICT_ANSI__
8#include <io.h>
9#endif
10
win32/include/values.h+4−0
@@ -0,0 +1,4 @@
1/*
2 * TODO: Nothing here yet. Should provide UNIX compatibility constants
3 * comparible to those in limits.h and float.h.
4 */
win32/include/varargs.h+11−0
@@ -0,0 +1,11 @@
1#ifndef _VARARGS_H
2#define _VARARGS_H
3
4#include <stdarg.h>
5
6#define va_dcl
7#define va_alist __va_alist
8#undef va_start
9#define va_start(ap) ap = __builtin_varargs_start
10
11#endif
win32/include/wchar.h+318−0
@@ -0,0 +1,318 @@
1/*
2 * wchar.h
3 *
4 * Defines of all functions for supporting wide characters. Actually it
5 * just includes all those headers, which is not a good thing to do from a
6 * processing time point of view, but it does mean that everything will be
7 * in sync.
8 *
9 * This file is part of the Mingw32 package.
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.1 $
22 * $Author: bellard $
23 * $Date: 2005/04/14 23:49:21 $
24 *
25 */
26
27#ifndef _WCHAR_H_
28#define _WCHAR_H_
29
30/* All the headers include this file. */
31#include <_mingw.h>
32
33#include <ctype.h>
34#include <stdio.h>
35#include <stdlib.h>
36#include <string.h>
37#include <time.h>
38#include <sys/types.h>
39
40#define __need_size_t
41#define __need_wint_t
42#define __need_wchar_t
43#ifndef RC_INVOKED
44#include <stddef.h>
45#endif /* Not RC_INVOKED */
46
47#define WCHAR_MIN 0
48#define WCHAR_MAX ((wchar_t)-1)
49
50#ifndef RC_INVOKED
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56#ifndef __STRICT_ANSI__
57
58#ifndef _FSIZE_T_DEFINED
59typedef unsigned long _fsize_t;
60#define _FSIZE_T_DEFINED
61#endif
62
63#ifndef _WFINDDATA_T_DEFINED
64struct _wfinddata_t {
65 unsigned attrib;
66 time_t time_create; /* -1 for FAT file systems */
67 time_t time_access; /* -1 for FAT file systems */
68 time_t time_write;
69 _fsize_t size;
70 wchar_t name[FILENAME_MAX]; /* may include spaces. */
71};
72struct _wfinddatai64_t {
73 unsigned attrib;
74 time_t time_create;
75 time_t time_access;
76 time_t time_write;
77 __int64 size;
78 wchar_t name[FILENAME_MAX];
79};
80#define _WFINDDATA_T_DEFINED
81#endif
82
83/* Wide character versions. Also defined in io.h. */
84/* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also
85 applies to other wide character versions? */
86#if !defined (_WIO_DEFINED)
87#if defined (__MSVCRT__)
88int _waccess (const wchar_t*, int);
89int _wchmod (const wchar_t*, int);
90int _wcreat (const wchar_t*, int);
91long _wfindfirst (wchar_t*, struct _wfinddata_t *);
92int _wfindnext (long, struct _wfinddata_t *);
93int _wunlink (const wchar_t*);
94int _wopen (const wchar_t*, int, ...);
95int _wsopen (const wchar_t*, int, int, ...);
96wchar_t* _wmktemp (wchar_t*);
97long _wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*);
98int _wfindnexti64 (long, struct _wfinddatai64_t*);
99#endif /* defined (__MSVCRT__) */
100#define _WIO_DEFINED
101#endif /* _WIO_DEFINED */
102
103#ifndef _WSTDIO_DEFINED
104/* also in stdio.h - keep in sync */
105int fwprintf (FILE*, const wchar_t*, ...);
106int wprintf (const wchar_t*, ...);
107int swprintf (wchar_t*, const wchar_t*, ...);
108int _snwprintf (wchar_t*, size_t, const wchar_t*, ...);
109int vfwprintf (FILE*, const wchar_t*, va_list);
110int vwprintf (const wchar_t*, va_list);
111int vswprintf (wchar_t*, const wchar_t*, va_list);
112int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list);
113int fwscanf (FILE*, const wchar_t*, ...);
114int wscanf (const wchar_t*, ...);
115int swscanf (const wchar_t*, const wchar_t*, ...);
116wint_t fgetwc (FILE*);
117wint_t fputwc (wchar_t, FILE*);
118wint_t ungetwc (wchar_t, FILE*);
119
120#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
121int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...);
122extern inline int vsnwprintf (wchar_t* s, size_t n, const wchar_t* format,
123 va_list arg)
124 { return _vsnwprintf ( s, n, format, arg); }
125#endif
126
127#ifdef __MSVCRT__
128wchar_t* fgetws (wchar_t*, int, FILE*);
129int fputws (const wchar_t*, FILE*);
130wint_t getwc (FILE*);
131wint_t getwchar (void);
132wchar_t* _getws (wchar_t*);
133wint_t putwc (wint_t, FILE*);
134int _putws (const wchar_t*);
135wint_t putwchar (wint_t);
136
137FILE* _wfopen (const wchar_t*, const wchar_t*);
138FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
139FILE* _wfsopen (const wchar_t*, const wchar_t*, int);
140wchar_t* _wtmpnam (wchar_t*);
141wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
142int _wrename (const wchar_t*, const wchar_t*);
143int _wremove (const wchar_t*)
144
145FILE* _wpopen (const wchar_t*, const wchar_t*)
146void _wperror (const wchar_t*);
147#endif /* __MSVCRT__ */
148#define _WSTDIO_DEFINED
149#endif /* _WSTDIO_DEFINED */
150
151#ifndef _WDIRECT_DEFINED
152/* Also in direct.h */
153#ifdef __MSVCRT__
154int _wchdir (const wchar_t*);
155wchar_t* _wgetcwd (wchar_t*, int);
156wchar_t* _wgetdcwd (int, wchar_t*, int);
157int _wmkdir (const wchar_t*);
158int _wrmdir (const wchar_t*);
159#endif /* __MSVCRT__ */
160#define _WDIRECT_DEFINED
161#endif /* _WDIRECT_DEFINED */
162
163#ifndef _STAT_DEFINED
164/*
165 * The structure manipulated and returned by stat and fstat.
166 *
167 * NOTE: If called on a directory the values in the time fields are not only
168 * invalid, they will cause localtime et. al. to return NULL. And calling
169 * asctime with a NULL pointer causes an Invalid Page Fault. So watch it!
170 */
171struct _stat
172{
173 _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
174 _ino_t st_ino; /* Always zero ? */
175 _mode_t st_mode; /* See above constants */
176 short st_nlink; /* Number of links. */
177 short st_uid; /* User: Maybe significant on NT ? */
178 short st_gid; /* Group: Ditto */
179 _dev_t st_rdev; /* Seems useless (not even filled in) */
180 _off_t st_size; /* File size in bytes */
181 time_t st_atime; /* Accessed date (always 00:00 hrs local
182 * on FAT) */
183 time_t st_mtime; /* Modified time */
184 time_t st_ctime; /* Creation time */
185};
186
187struct stat
188{
189 _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
190 _ino_t st_ino; /* Always zero ? */
191 _mode_t st_mode; /* See above constants */
192 short st_nlink; /* Number of links. */
193 short st_uid; /* User: Maybe significant on NT ? */
194 short st_gid; /* Group: Ditto */
195 _dev_t st_rdev; /* Seems useless (not even filled in) */
196 _off_t st_size; /* File size in bytes */
197 time_t st_atime; /* Accessed date (always 00:00 hrs local
198 * on FAT) */
199 time_t st_mtime; /* Modified time */
200 time_t st_ctime; /* Creation time */
201};
202#if defined (__MSVCRT__)
203struct _stati64 {
204 _dev_t st_dev;
205 _ino_t st_ino;
206 unsigned short st_mode;
207 short st_nlink;
208 short st_uid;
209 short st_gid;
210 _dev_t st_rdev;
211 __int64 st_size;
212 time_t st_atime;
213 time_t st_mtime;
214 time_t st_ctime;
215 };
216#endif /* __MSVCRT__ */
217#define _STAT_DEFINED
218#endif /* _STAT_DEFINED */
219
220#if !defined ( _WSTAT_DEFINED)
221/* also declared in sys/stat.h */
222#if defined __MSVCRT__
223int _wstat (const wchar_t*, struct _stat*);
224int _wstati64 (const wchar_t*, struct _stati64*);
225#endif /* __MSVCRT__ */
226#define _WSTAT_DEFINED
227#endif /* ! _WSTAT_DEFIND */
228
229#ifndef _WTIME_DEFINED
230#ifdef __MSVCRT__
231/* wide function prototypes, also declared in time.h */
232wchar_t* _wasctime (const struct tm*);
233wchar_t* _wctime (const time_t*);
234wchar_t* _wstrdate (wchar_t*);
235wchar_t* _wstrtime (wchar_t*);
236#endif /* __MSVCRT__ */
237size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
238#define _WTIME_DEFINED
239#endif /* _WTIME_DEFINED */
240
241#ifndef _WLOCALE_DEFINED /* also declared in locale.h */
242wchar_t* _wsetlocale (int, const wchar_t*);
243#define _WLOCALE_DEFINED
244#endif
245
246#ifndef _WSTDLIB_DEFINED /* also declared in stdlib.h */
247long wcstol (const wchar_t*, wchar_t**, int);
248unsigned long wcstoul (const wchar_t*, wchar_t**, int);
249double wcstod (const wchar_t*, wchar_t**);
250#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
251extern __inline__ float wcstof( const wchar_t *nptr, wchar_t **endptr)
252{ return (wcstod(nptr, endptr)); }
253#endif /* __NO_ISOCEXT */
254#define _WSTDLIB_DEFINED
255#endif
256
257
258#ifndef _NO_OLDNAMES
259
260/* Wide character versions. Also declared in io.h. */
261/* CHECK: Are these in the oldnames??? NO! */
262#if (0)
263int waccess (const wchar_t *, int);
264int wchmod (const wchar_t *, int);
265int wcreat (const wchar_t *, int);
266long wfindfirst (wchar_t *, struct _wfinddata_t *);
267int wfindnext (long, struct _wfinddata_t *);
268int wunlink (const wchar_t *);
269int wrename (const wchar_t *, const wchar_t *);
270int wremove (const wchar_t *);
271int wopen (const wchar_t *, int, ...);
272int wsopen (const wchar_t *, int, int, ...);
273wchar_t* wmktemp (wchar_t *);
274#endif
275#endif /* _NO_OLDNAMES */
276
277#endif /* not __STRICT_ANSI__ */
278
279/* These are resolved by -lmsvcp60 */
280/* If you don't have msvcp60.dll in your windows system directory, you can
281 easily obtain it with a search from your favorite search engine. */
282typedef int mbstate_t;
283typedef wchar_t _Wint_t;
284
285wint_t btowc(int);
286size_t mbrlen(const char *, size_t, mbstate_t *);
287size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
288size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
289
290size_t wcrtomb(char *, wchar_t, mbstate_t *);
291size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
292int wctob(wint_t);
293
294#ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */
295extern inline int fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */
296extern inline int mbsinit(const mbstate_t* ps) {return 1;}
297wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);
298wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);
299int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n);
300wchar_t* wmemcpy(wchar_t* __restrict__ s1, const wchar_t* __restrict__ s2,
301 size_t n);
302wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);
303long long wcstoll(const wchar_t* __restrict__ nptr,
304 wchar_t** __restrict__ endptr, int base);
305unsigned long long wcstoull(const wchar_t* __restrict__ nptr,
306 wchar_t ** __restrict__ endptr, int base);
307
308#endif /* __NO_ISOCEXT */
309
310
311#ifdef __cplusplus
312} /* end of extern "C" */
313#endif
314
315#endif /* Not RC_INVOKED */
316
317#endif /* not _WCHAR_H_ */
318
win32/include/wctype.h+127−0
@@ -0,0 +1,127 @@
1/*
2 * wctype.h
3 *
4 * Functions for testing wide character types and converting characters.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Mumit Khan <khan@xraylith.wisc.edu>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23#ifndef _WCTYPE_H_
24#define _WCTYPE_H_
25
26/* All the headers include this file. */
27#include <_mingw.h>
28
29#define __need_wchar_t
30#define __need_wint_t
31#ifndef RC_INVOKED
32#include <stddef.h>
33#endif /* Not RC_INVOKED */
34
35/*
36 * The following flags are used to tell iswctype and _isctype what character
37 * types you are looking for.
38 */
39#define _UPPER 0x0001
40#define _LOWER 0x0002
41#define _DIGIT 0x0004
42#define _SPACE 0x0008
43#define _PUNCT 0x0010
44#define _CONTROL 0x0020
45#define _BLANK 0x0040
46#define _HEX 0x0080
47#define _LEADBYTE 0x8000
48
49#define _ALPHA 0x0103
50
51#ifndef RC_INVOKED
52
53#ifdef __cplusplus
54extern "C" {
55#endif
56
57#ifndef WEOF
58#define WEOF (wchar_t)(0xFFFF)
59#endif
60
61#ifndef _WCTYPE_T_DEFINED
62typedef wchar_t wctype_t;
63#define _WCTYPE_T_DEFINED
64#endif
65
66/* Wide character equivalents - also in ctype.h */
67int iswalnum(wint_t);
68int iswalpha(wint_t);
69int iswascii(wint_t);
70int iswcntrl(wint_t);
71int iswctype(wint_t, wctype_t);
72int is_wctype(wint_t, wctype_t); /* Obsolete! */
73int iswdigit(wint_t);
74int iswgraph(wint_t);
75int iswlower(wint_t);
76int iswprint(wint_t);
77int iswpunct(wint_t);
78int iswspace(wint_t);
79int iswupper(wint_t);
80int iswxdigit(wint_t);
81
82wchar_t towlower(wchar_t);
83wchar_t towupper(wchar_t);
84
85int isleadbyte (int);
86
87/* Also in ctype.h */
88
89__MINGW_IMPORT unsigned short _ctype[];
90#ifdef __MSVCRT__
91__MINGW_IMPORT unsigned short* _pctype;
92#else
93__MINGW_IMPORT unsigned short* _pctype_dll;
94#define _pctype _pctype_dll
95#endif
96
97#if !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED))
98#define __WCTYPE_INLINES_DEFINED
99extern inline int iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
100extern inline int iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
101extern inline int iswascii(wint_t wc) {return (((unsigned)wc & 0x7F) ==0);}
102extern inline int iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
103extern inline int iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
104extern inline int iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
105extern inline int iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
106extern inline int iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
107extern inline int iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
108extern inline int iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
109extern inline int iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
110extern inline int iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
111extern inline int isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
112#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */
113
114
115typedef wchar_t wctrans_t;
116wint_t towctrans(wint_t, wctrans_t);
117wctrans_t wctrans(const char*);
118wctype_t wctype(const char*);
119
120#ifdef __cplusplus
121}
122#endif
123
124#endif /* Not RC_INVOKED */
125
126#endif /* Not _WCTYPE_H_ */
127
win32/include/winapi/basetsd.h+119−0
@@ -0,0 +1,119 @@
1#ifndef _BASETSD_H
2#define _BASETSD_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __GNUC__
8#ifndef __int64
9#define __int64 long long
10#endif
11#endif
12
13#if defined(_WIN64)
14#define __int3264 __int64
15#define ADDRESS_TAG_BIT 0x40000000000UI64
16#else /* !_WIN64 */
17#define __int3264 __int32
18#define ADDRESS_TAG_BIT 0x80000000UL
19#define HandleToUlong( h ) ((ULONG)(ULONG_PTR)(h) )
20#define HandleToLong( h ) ((LONG)(LONG_PTR) (h) )
21#define LongToHandle( h) ((HANDLE)(LONG_PTR) (h))
22#define PtrToUlong( p ) ((ULONG)(ULONG_PTR) (p) )
23#define PtrToLong( p ) ((LONG)(LONG_PTR) (p) )
24#define PtrToUint( p ) ((UINT)(UINT_PTR) (p) )
25#define PtrToInt( p ) ((INT)(INT_PTR) (p) )
26#define PtrToUshort( p ) ((unsigned short)(ULONG_PTR)(p) )
27#define PtrToShort( p ) ((short)(LONG_PTR)(p) )
28#define IntToPtr( i ) ((VOID*)(INT_PTR)((int)i))
29#define UIntToPtr( ui ) ((VOID*)(UINT_PTR)((unsigned int)ui))
30#define LongToPtr( l ) ((VOID*)(LONG_PTR)((long)l))
31#define ULongToPtr( ul ) ((VOID*)(ULONG_PTR)((unsigned long)ul))
32#endif /* !_WIN64 */
33
34#define UlongToPtr(ul) ULongToPtr(ul)
35#define UintToPtr(ui) UIntToPtr(ui)
36#define MAXUINT_PTR (~((UINT_PTR)0))
37#define MAXINT_PTR ((INT_PTR)(MAXUINT_PTR >> 1))
38#define MININT_PTR (~MAXINT_PTR)
39#define MAXULONG_PTR (~((ULONG_PTR)0))
40#define MAXLONG_PTR ((LONG_PTR)(MAXULONG_PTR >> 1))
41#define MINLONG_PTR (~MAXLONG_PTR)
42#define MAXUHALF_PTR ((UHALF_PTR)~0)
43#define MAXHALF_PTR ((HALF_PTR)(MAXUHALF_PTR >> 1))
44#define MINHALF_PTR (~MAXHALF_PTR)
45
46#ifndef RC_INVOKED
47#ifdef __cplusplus
48extern "C" {
49#endif
50typedef int LONG32, *PLONG32;
51#ifndef XFree86Server
52typedef int INT32, *PINT32;
53#endif /* ndef XFree86Server */
54typedef unsigned int ULONG32, *PULONG32;
55typedef unsigned int DWORD32, *PDWORD32;
56typedef unsigned int UINT32, *PUINT32;
57
58#if defined(_WIN64)
59typedef __int64 INT_PTR, *PINT_PTR;
60typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
61typedef __int64 LONG_PTR, *PLONG_PTR;
62typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
63typedef unsigned __int64 HANDLE_PTR;
64typedef unsigned int UHALF_PTR, *PUHALF_PTR;
65typedef int HALF_PTR, *PHALF_PTR;
66
67#if 0 /* TODO when WIN64 is here */
68inline unsigned long HandleToUlong(const void* h )
69 { return((unsigned long) h ); }
70inline long HandleToLong( const void* h )
71 { return((long) h ); }
72inline void* LongToHandle( const long h )
73 { return((void*) (INT_PTR) h ); }
74inline unsigned long PtrToUlong( const void* p)
75 { return((unsigned long) p ); }
76inline unsigned int PtrToUint( const void* p )
77 { return((unsigned int) p ); }
78inline unsigned short PtrToUshort( const void* p )
79 { return((unsigned short) p ); }
80inline long PtrToLong( const void* p )
81 { return((long) p ); }
82inline int PtrToInt( const void* p )
83 { return((int) p ); }
84inline short PtrToShort( const void* p )
85 { return((short) p ); }
86inline void* IntToPtr( const int i )
87 { return( (void*)(INT_PTR)i ); }
88inline void* UIntToPtr(const unsigned int ui)
89 { return( (void*)(UINT_PTR)ui ); }
90inline void* LongToPtr( const long l )
91 { return( (void*)(LONG_PTR)l ); }
92inline void* ULongToPtr( const unsigned long ul )
93 { return( (void*)(ULONG_PTR)ul ); }
94#endif /* 0_ */
95
96#else /* !_WIN64 */
97typedef int INT_PTR, *PINT_PTR;
98typedef unsigned int UINT_PTR, *PUINT_PTR;
99typedef long LONG_PTR, *PLONG_PTR;
100typedef unsigned long ULONG_PTR, *PULONG_PTR;
101typedef unsigned short UHALF_PTR, *PUHALF_PTR;
102typedef short HALF_PTR, *PHALF_PTR;
103typedef unsigned long HANDLE_PTR;
104#endif /* !_WIN64 */
105
106typedef ULONG_PTR SIZE_T, *PSIZE_T;
107typedef LONG_PTR SSIZE_T, *PSSIZE_T;
108typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
109typedef __int64 LONG64, *PLONG64;
110typedef __int64 INT64, *PINT64;
111typedef unsigned __int64 ULONG64, *PULONG64;
112typedef unsigned __int64 DWORD64, *PDWORD64;
113typedef unsigned __int64 UINT64, *PUINT64;
114#ifdef __cplusplus
115}
116#endif
117#endif /* !RC_INVOKED */
118
119#endif /* _BASETSD_H */
win32/include/winapi/basetyps.h+144−0
@@ -0,0 +1,144 @@
1#ifndef _BASETYPS_H
2#define _BASETYPS_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifndef __OBJC__
8#ifdef __cplusplus
9#define EXTERN_C extern "C"
10#else
11#define EXTERN_C extern
12#endif /* __cplusplus */
13#define STDMETHODCALLTYPE __stdcall
14#define STDMETHODVCALLTYPE __cdecl
15#define STDAPICALLTYPE __stdcall
16#define STDAPIVCALLTYPE __cdecl
17#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE
18#define STDAPI_(t) EXTERN_C t STDAPICALLTYPE
19#define STDMETHODIMP HRESULT STDMETHODCALLTYPE
20#define STDMETHODIMP_(t) t STDMETHODCALLTYPE
21#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
22#define STDAPIV_(t) EXTERN_C t STDAPIVCALLTYPE
23#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
24#define STDMETHODIMPV_(t) t STDMETHODVCALLTYPE
25#define interface struct
26#if defined(__cplusplus) && !defined(CINTERFACE)
27#define STDMETHOD(m) virtual HRESULT STDMETHODCALLTYPE m
28#define STDMETHOD_(t,m) virtual t STDMETHODCALLTYPE m
29#define PURE =0
30#define THIS_
31#define THIS void
32/*
33 __attribute__((com_interface)) is obsolete in __GNUC__ >= 3
34 g++ vtables are now COM-compatible by default
35*/
36#if defined(__GNUC__) && __GNUC__ < 3 && !defined(NOCOMATTRIBUTE)
37#define DECLARE_INTERFACE(i) interface __attribute__((com_interface)) i
38#define DECLARE_INTERFACE_(i,b) interface __attribute__((com_interface)) i : public b
39#else
40#define DECLARE_INTERFACE(i) interface i
41#define DECLARE_INTERFACE_(i,b) interface i : public b
42#endif
43#else
44#define STDMETHOD(m) HRESULT(STDMETHODCALLTYPE *m)
45#define STDMETHOD_(t,m) t(STDMETHODCALLTYPE *m)
46#define PURE
47#define THIS_ INTERFACE *,
48#define THIS INTERFACE *
49#ifndef CONST_VTABLE
50#define CONST_VTABLE
51#endif
52#define DECLARE_INTERFACE(i) \
53typedef interface i { CONST_VTABLE struct i##Vtbl *lpVtbl; } i; \
54typedef CONST_VTABLE struct i##Vtbl i##Vtbl; \
55CONST_VTABLE struct i##Vtbl
56#define DECLARE_INTERFACE_(i,b) DECLARE_INTERFACE(i)
57#endif
58#define BEGIN_INTERFACE
59#define END_INTERFACE
60
61#define FWD_DECL(i) typedef interface i i
62#if defined(__cplusplus) && !defined(CINTERFACE)
63#define IENUM_THIS(T)
64#define IENUM_THIS_(T)
65#else
66#define IENUM_THIS(T) T*
67#define IENUM_THIS_(T) T*,
68#endif
69#define DECLARE_ENUMERATOR_(I,T) \
70DECLARE_INTERFACE_(I,IUnknown) \
71{ \
72 STDMETHOD(QueryInterface)(IENUM_THIS_(I) REFIID,PVOID*) PURE; \
73 STDMETHOD_(ULONG,AddRef)(IENUM_THIS(I)) PURE; \
74 STDMETHOD_(ULONG,Release)(IENUM_THIS(I)) PURE; \
75 STDMETHOD(Next)(IENUM_THIS_(I) ULONG,T*,ULONG*) PURE; \
76 STDMETHOD(Skip)(IENUM_THIS_(I) ULONG) PURE; \
77 STDMETHOD(Reset)(IENUM_THIS(I)) PURE; \
78 STDMETHOD(Clone)(IENUM_THIS_(I) I**) PURE; \
79}
80#define DECLARE_ENUMERATOR(T) DECLARE_ENUMERATOR_(IEnum##T,T)
81
82#endif /* __OBJC__ */
83
84#ifndef _GUID_DEFINED /* also defined in winnt.h */
85#define _GUID_DEFINED
86typedef struct _GUID
87{
88 unsigned long Data1;
89 unsigned short Data2;
90 unsigned short Data3;
91 unsigned char Data4[8];
92} GUID,*REFGUID,*LPGUID;
93#endif /* _GUID_DEFINED */
94#ifndef UUID_DEFINED
95#define UUID_DEFINED
96typedef GUID UUID;
97#endif /* UUID_DEFINED */
98typedef GUID IID;
99typedef GUID CLSID;
100typedef CLSID *LPCLSID;
101typedef IID *LPIID;
102typedef IID *REFIID;
103typedef CLSID *REFCLSID;
104typedef GUID FMTID;
105typedef FMTID *REFFMTID;
106typedef unsigned long error_status_t;
107#define uuid_t UUID
108typedef unsigned long PROPID;
109
110#ifndef _REFGUID_DEFINED
111#if defined (__cplusplus) && !defined (CINTERFACE)
112#define REFGUID const GUID&
113#define REFIID const IID&
114#define REFCLSID const CLSID&
115#else
116#define REFGUID const GUID* const
117#define REFIID const IID* const
118#define REFCLSID const CLSID* const
119#endif
120#define _REFGUID_DEFINED
121#define _REFGIID_DEFINED
122#define _REFCLSID_DEFINED
123#endif
124#ifndef GUID_SECTION
125#define GUID_SECTION ".text"
126#endif
127#ifdef __GNUC__
128#define GUID_SECT __attribute__ ((section (GUID_SECTION)))
129#else
130#define GUID_SECT
131#endif
132#if !defined(INITGUID) || (defined(INITGUID) && defined(__cplusplus))
133#define GUID_EXT EXTERN_C
134#else
135#define GUID_EXT
136#endif
137#ifdef INITGUID
138#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n GUID_SECT = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
139#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
140#else
141#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n
142#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
143#endif
144#endif
win32/include/winapi/winbase.h+1852−0
@@ -0,0 +1,1852 @@
1#ifndef _WINBASE_H
2#define _WINBASE_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#define WINBASEAPI DECLSPEC_IMPORT
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12#define SP_SERIALCOMM 1
13#define PST_UNSPECIFIED 0
14#define PST_RS232 1
15#define PST_PARALLELPORT 2
16#define PST_RS422 3
17#define PST_RS423 4
18#define PST_RS449 5
19#define PST_MODEM 6
20#define PST_FAX 0x21
21#define PST_SCANNER 0x22
22#define PST_NETWORK_BRIDGE 0x100
23#define PST_LAT 0x101
24#define PST_TCPIP_TELNET 0x102
25#define PST_X25 0x103
26#define BAUD_075 1
27#define BAUD_110 2
28#define BAUD_134_5 4
29#define BAUD_150 8
30#define BAUD_300 16
31#define BAUD_600 32
32#define BAUD_1200 64
33#define BAUD_1800 128
34#define BAUD_2400 256
35#define BAUD_4800 512
36#define BAUD_7200 1024
37#define BAUD_9600 2048
38#define BAUD_14400 4096
39#define BAUD_19200 8192
40#define BAUD_38400 16384
41#define BAUD_56K 32768
42#define BAUD_128K 65536
43#define BAUD_115200 131072
44#define BAUD_57600 262144
45#define BAUD_USER 0x10000000
46#define PCF_DTRDSR 1
47#define PCF_RTSCTS 2
48#define PCF_RLSD 4
49#define PCF_PARITY_CHECK 8
50#define PCF_XONXOFF 16
51#define PCF_SETXCHAR 32
52#define PCF_TOTALTIMEOUTS 64
53#define PCF_INTTIMEOUTS 128
54#define PCF_SPECIALCHARS 256
55#define PCF_16BITMODE 512
56#define SP_PARITY 1
57#define SP_BAUD 2
58#define SP_DATABITS 4
59#define SP_STOPBITS 8
60#define SP_HANDSHAKING 16
61#define SP_PARITY_CHECK 32
62#define SP_RLSD 64
63#define DATABITS_5 1
64#define DATABITS_6 2
65#define DATABITS_7 4
66#define DATABITS_8 8
67#define DATABITS_16 16
68#define DATABITS_16X 32
69#define STOPBITS_10 1
70#define STOPBITS_15 2
71#define STOPBITS_20 4
72#define PARITY_NONE 256
73#define PARITY_ODD 512
74#define PARITY_EVEN 1024
75#define PARITY_MARK 2048
76#define PARITY_SPACE 4096
77#define EXCEPTION_DEBUG_EVENT 1
78#define CREATE_THREAD_DEBUG_EVENT 2
79#define CREATE_PROCESS_DEBUG_EVENT 3
80#define EXIT_THREAD_DEBUG_EVENT 4
81#define EXIT_PROCESS_DEBUG_EVENT 5
82#define LOAD_DLL_DEBUG_EVENT 6
83#define UNLOAD_DLL_DEBUG_EVENT 7
84#define OUTPUT_DEBUG_STRING_EVENT 8
85#define RIP_EVENT 9
86#define HFILE_ERROR ((HFILE)-1)
87#define FILE_BEGIN 0
88#define FILE_CURRENT 1
89#define FILE_END 2
90#define INVALID_SET_FILE_POINTER ((DWORD)-1)
91#define OF_READ 0
92#define OF_READWRITE 2
93#define OF_WRITE 1
94#define OF_SHARE_COMPAT 0
95#define OF_SHARE_DENY_NONE 64
96#define OF_SHARE_DENY_READ 48
97#define OF_SHARE_DENY_WRITE 32
98#define OF_SHARE_EXCLUSIVE 16
99#define OF_CANCEL 2048
100#define OF_CREATE 4096
101#define OF_DELETE 512
102#define OF_EXIST 16384
103#define OF_PARSE 256
104#define OF_PROMPT 8192
105#define OF_REOPEN 32768
106#define OF_VERIFY 1024
107#define NMPWAIT_NOWAIT 1
108#define NMPWAIT_WAIT_FOREVER (-1)
109#define NMPWAIT_USE_DEFAULT_WAIT 0
110#define CE_BREAK 16
111#define CE_DNS 2048
112#define CE_FRAME 8
113#define CE_IOE 1024
114#define CE_MODE 32768
115#define CE_OOP 4096
116#define CE_OVERRUN 2
117#define CE_PTO 512
118#define CE_RXOVER 1
119#define CE_RXPARITY 4
120#define CE_TXFULL 256
121#define PROGRESS_CONTINUE 0
122#define PROGRESS_CANCEL 1
123#define PROGRESS_STOP 2
124#define PROGRESS_QUIET 3
125#define CALLBACK_CHUNK_FINISHED 0
126#define CALLBACK_STREAM_SWITCH 1
127#define COPY_FILE_FAIL_IF_EXISTS 1
128#define COPY_FILE_RESTARTABLE 2
129#define OFS_MAXPATHNAME 128
130#define DUPLICATE_CLOSE_SOURCE 1
131#define DUPLICATE_SAME_ACCESS 2
132#define FILE_MAP_ALL_ACCESS 0xf001f
133#define FILE_MAP_READ 4
134#define FILE_MAP_WRITE 2
135#define FILE_MAP_COPY 1
136#define MUTEX_ALL_ACCESS 0x1f0001
137#define MUTEX_MODIFY_STATE 1
138#define SEMAPHORE_ALL_ACCESS 0x1f0003
139#define SEMAPHORE_MODIFY_STATE 2
140#define EVENT_ALL_ACCESS 0x1f0003
141#define EVENT_MODIFY_STATE 2
142#define PIPE_ACCESS_DUPLEX 3
143#define PIPE_ACCESS_INBOUND 1
144#define PIPE_ACCESS_OUTBOUND 2
145#define PIPE_TYPE_BYTE 0
146#define PIPE_TYPE_MESSAGE 4
147#define PIPE_READMODE_BYTE 0
148#define PIPE_READMODE_MESSAGE 2
149#define PIPE_WAIT 0
150#define PIPE_NOWAIT 1
151#define PIPE_CLIENT_END 0
152#define PIPE_SERVER_END 1
153#define PIPE_UNLIMITED_INSTANCES 255
154#define CREATE_DEFAULT_ERROR_MODE 67108864
155#define DEBUG_PROCESS 1
156#define DEBUG_ONLY_THIS_PROCESS 2
157#define CREATE_SUSPENDED 4
158#define DETACHED_PROCESS 8
159#define CREATE_NEW_CONSOLE 16
160#define NORMAL_PRIORITY_CLASS 32
161#define IDLE_PRIORITY_CLASS 64
162#define HIGH_PRIORITY_CLASS 128
163#define REALTIME_PRIORITY_CLASS 256
164#define CREATE_NEW_PROCESS_GROUP 512
165#define CREATE_UNICODE_ENVIRONMENT 1024
166#define CREATE_SEPARATE_WOW_VDM 2048
167#define CREATE_SHARED_WOW_VDM 4096
168#define CREATE_FORCEDOS 8192
169#define CREATE_NO_WINDOW 0x8000000
170#define CONSOLE_TEXTMODE_BUFFER 1
171#define CREATE_NEW 1
172#define CREATE_ALWAYS 2
173#define OPEN_EXISTING 3
174#define OPEN_ALWAYS 4
175#define TRUNCATE_EXISTING 5
176#define FILE_FLAG_WRITE_THROUGH 0x80000000
177#define FILE_FLAG_OVERLAPPED 1073741824
178#define FILE_FLAG_NO_BUFFERING 536870912
179#define FILE_FLAG_RANDOM_ACCESS 268435456
180#define FILE_FLAG_SEQUENTIAL_SCAN 134217728
181#define FILE_FLAG_DELETE_ON_CLOSE 67108864
182#define FILE_FLAG_BACKUP_SEMANTICS 33554432
183#define FILE_FLAG_POSIX_SEMANTICS 16777216
184#define FILE_FLAG_OPEN_REPARSE_POINT 2097152
185#define FILE_FLAG_OPEN_NO_RECALL 1048576
186#define CLRDTR 6
187#define CLRRTS 4
188#define SETDTR 5
189#define SETRTS 3
190#define SETXOFF 1
191#define SETXON 2
192#define SETBREAK 8
193#define CLRBREAK 9
194#define STILL_ACTIVE 0x103
195#define FIND_FIRST_EX_CASE_SENSITIVE 1
196#define SCS_32BIT_BINARY 0
197#define SCS_DOS_BINARY 1
198#define SCS_OS216_BINARY 5
199#define SCS_PIF_BINARY 3
200#define SCS_POSIX_BINARY 4
201#define SCS_WOW_BINARY 2
202#define MAX_COMPUTERNAME_LENGTH 15
203#define HW_PROFILE_GUIDLEN 39
204#define MAX_PROFILE_LEN 80
205#define DOCKINFO_UNDOCKED 1
206#define DOCKINFO_DOCKED 2
207#define DOCKINFO_USER_SUPPLIED 4
208#define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED|DOCKINFO_UNDOCKED)
209#define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED|DOCKINFO_DOCKED)
210#define DRIVE_REMOVABLE 2
211#define DRIVE_FIXED 3
212#define DRIVE_REMOTE 4
213#define DRIVE_CDROM 5
214#define DRIVE_RAMDISK 6
215#define DRIVE_UNKNOWN 0
216#define DRIVE_NO_ROOT_DIR 1
217#define FILE_TYPE_UNKNOWN 0
218#define FILE_TYPE_DISK 1
219#define FILE_TYPE_CHAR 2
220#define FILE_TYPE_PIPE 3
221#define FILE_TYPE_REMOTE 0x8000
222#define HANDLE_FLAG_INHERIT 1
223#define HANDLE_FLAG_PROTECT_FROM_CLOSE 2
224#define STD_INPUT_HANDLE (DWORD)(0xfffffff6)
225#define STD_OUTPUT_HANDLE (DWORD)(0xfffffff5)
226#define STD_ERROR_HANDLE (DWORD)(0xfffffff4)
227#define INVALID_HANDLE_VALUE (HANDLE)(-1)
228#define GET_TAPE_MEDIA_INFORMATION 0
229#define GET_TAPE_DRIVE_INFORMATION 1
230#define SET_TAPE_MEDIA_INFORMATION 0
231#define SET_TAPE_DRIVE_INFORMATION 1
232#define THREAD_PRIORITY_ABOVE_NORMAL 1
233#define THREAD_PRIORITY_BELOW_NORMAL (-1)
234#define THREAD_PRIORITY_HIGHEST 2
235#define THREAD_PRIORITY_IDLE (-15)
236#define THREAD_PRIORITY_LOWEST (-2)
237#define THREAD_PRIORITY_NORMAL 0
238#define THREAD_PRIORITY_TIME_CRITICAL 15
239#define THREAD_PRIORITY_ERROR_RETURN 2147483647
240#define TIME_ZONE_ID_UNKNOWN 0
241#define TIME_ZONE_ID_STANDARD 1
242#define TIME_ZONE_ID_DAYLIGHT 2
243#define TIME_ZONE_ID_INVALID 0xFFFFFFFF
244#define FS_CASE_IS_PRESERVED 2
245#define FS_CASE_SENSITIVE 1
246#define FS_UNICODE_STORED_ON_DISK 4
247#define FS_PERSISTENT_ACLS 8
248#define FS_FILE_COMPRESSION 16
249#define FS_VOL_IS_COMPRESSED 32768
250#define GMEM_FIXED 0
251#define GMEM_MOVEABLE 2
252#define GMEM_MODIFY 128
253#define GPTR 64
254#define GHND 66
255#define GMEM_DDESHARE 8192
256#define GMEM_DISCARDABLE 256
257#define GMEM_LOWER 4096
258#define GMEM_NOCOMPACT 16
259#define GMEM_NODISCARD 32
260#define GMEM_NOT_BANKED 4096
261#define GMEM_NOTIFY 16384
262#define GMEM_SHARE 8192
263#define GMEM_ZEROINIT 64
264#define GMEM_DISCARDED 16384
265#define GMEM_INVALID_HANDLE 32768
266#define GMEM_LOCKCOUNT 255
267#define STATUS_WAIT_0 0
268#define STATUS_ABANDONED_WAIT_0 0x80
269#define STATUS_USER_APC 0xC0
270#define STATUS_TIMEOUT 0x102
271#define STATUS_PENDING 0x103
272#define STATUS_SEGMENT_NOTIFICATION 0x40000005
273#define STATUS_GUARD_PAGE_VIOLATION 0x80000001
274#define STATUS_DATATYPE_MISALIGNMENT 0x80000002
275#define STATUS_BREAKPOINT 0x80000003
276#define STATUS_SINGLE_STEP 0x80000004
277#define STATUS_ACCESS_VIOLATION 0xC0000005
278#define STATUS_IN_PAGE_ERROR 0xC0000006
279#define STATUS_INVALID_HANDLE 0xC0000008L
280#define STATUS_NO_MEMORY 0xC0000017
281#define STATUS_ILLEGAL_INSTRUCTION 0xC000001D
282#define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025
283#define STATUS_INVALID_DISPOSITION 0xC0000026
284#define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C
285#define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D
286#define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E
287#define STATUS_FLOAT_INEXACT_RESULT 0xC000008F
288#define STATUS_FLOAT_INVALID_OPERATION 0xC0000090
289#define STATUS_FLOAT_OVERFLOW 0xC0000091
290#define STATUS_FLOAT_STACK_CHECK 0xC0000092
291#define STATUS_FLOAT_UNDERFLOW 0xC0000093
292#define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094
293#define STATUS_INTEGER_OVERFLOW 0xC0000095
294#define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096
295#define STATUS_STACK_OVERFLOW 0xC00000FD
296#define STATUS_CONTROL_C_EXIT 0xC000013A
297#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
298#define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
299#define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
300#define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
301#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
302#define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
303#define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
304#define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
305#define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
306#define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
307#define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
308#define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
309#define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
310#define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
311#define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
312#define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
313#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
314#define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION
315#define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW
316#define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION
317#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
318#define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE
319#define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
320#define PROCESS_HEAP_REGION 1
321#define PROCESS_HEAP_UNCOMMITTED_RANGE 2
322#define PROCESS_HEAP_ENTRY_BUSY 4
323#define PROCESS_HEAP_ENTRY_MOVEABLE 16
324#define PROCESS_HEAP_ENTRY_DDESHARE 32
325#define DONT_RESOLVE_DLL_REFERENCES 1
326#define LOAD_LIBRARY_AS_DATAFILE 2
327#define LOAD_WITH_ALTERED_SEARCH_PATH 8
328#define LMEM_FIXED 0
329#define LMEM_MOVEABLE 2
330#define LMEM_NONZEROLHND 2
331#define LMEM_NONZEROLPTR 0
332#define LMEM_DISCARDABLE 3840
333#define LMEM_NOCOMPACT 16
334#define LMEM_NODISCARD 32
335#define LMEM_ZEROINIT 64
336#define LMEM_DISCARDED 16384
337#define LMEM_MODIFY 128
338#define LMEM_INVALID_HANDLE 32768
339#define LMEM_LOCKCOUNT 255
340#define LPTR 64
341#define LHND 66
342#define NONZEROLHND 2
343#define NONZEROLPTR 0
344#define LOCKFILE_FAIL_IMMEDIATELY 1
345#define LOCKFILE_EXCLUSIVE_LOCK 2
346#define LOGON32_PROVIDER_DEFAULT 0
347#define LOGON32_PROVIDER_WINNT35 1
348#define LOGON32_LOGON_INTERACTIVE 2
349#define LOGON32_LOGON_BATCH 4
350#define LOGON32_LOGON_SERVICE 5
351#define MOVEFILE_REPLACE_EXISTING 1
352#define MOVEFILE_COPY_ALLOWED 2
353#define MOVEFILE_DELAY_UNTIL_REBOOT 4
354#define MOVEFILE_WRITE_THROUGH 8
355#define MAXIMUM_WAIT_OBJECTS 64
356#define MAXIMUM_SUSPEND_COUNT 0x7F
357#define WAIT_OBJECT_0 0
358#define WAIT_ABANDONED_0 128
359#define WAIT_TIMEOUT 0x102
360#define WAIT_IO_COMPLETION 0xC0
361#define WAIT_ABANDONED 128
362#define WAIT_FAILED 0xFFFFFFFF
363#define PURGE_TXABORT 1
364#define PURGE_RXABORT 2
365#define PURGE_TXCLEAR 4
366#define PURGE_RXCLEAR 8
367#define EVENTLOG_FORWARDS_READ 4
368#define EVENTLOG_BACKWARDS_READ 8
369#define EVENTLOG_SEEK_READ 2
370#define EVENTLOG_SEQUENTIAL_READ 1
371#define EVENTLOG_ERROR_TYPE 1
372#define EVENTLOG_WARNING_TYPE 2
373#define EVENTLOG_INFORMATION_TYPE 4
374#define EVENTLOG_AUDIT_SUCCESS 8
375#define EVENTLOG_AUDIT_FAILURE 16
376#define FORMAT_MESSAGE_ALLOCATE_BUFFER 256
377#define FORMAT_MESSAGE_IGNORE_INSERTS 512
378#define FORMAT_MESSAGE_FROM_STRING 1024
379#define FORMAT_MESSAGE_FROM_HMODULE 2048
380#define FORMAT_MESSAGE_FROM_SYSTEM 4096
381#define FORMAT_MESSAGE_ARGUMENT_ARRAY 8192
382#define FORMAT_MESSAGE_MAX_WIDTH_MASK 255
383#define EV_BREAK 64
384#define EV_CTS 8
385#define EV_DSR 16
386#define EV_ERR 128
387#define EV_EVENT1 2048
388#define EV_EVENT2 4096
389#define EV_PERR 512
390#define EV_RING 256
391#define EV_RLSD 32
392#define EV_RX80FULL 1024
393#define EV_RXCHAR 1
394#define EV_RXFLAG 2
395#define EV_TXEMPTY 4
396#define SEM_FAILCRITICALERRORS 1
397#define SEM_NOALIGNMENTFAULTEXCEPT 4
398#define SEM_NOGPFAULTERRORBOX 2
399#define SEM_NOOPENFILEERRORBOX 32768
400#define SLE_ERROR 1
401#define SLE_MINORERROR 2
402#define SLE_WARNING 3
403#define SHUTDOWN_NORETRY 1
404#define EXCEPTION_EXECUTE_HANDLER 1
405#define EXCEPTION_CONTINUE_EXECUTION (-1)
406#define EXCEPTION_CONTINUE_SEARCH 0
407#define MAXINTATOM 0xC000
408#define INVALID_ATOM ((ATOM)0)
409#define IGNORE 0
410#define INFINITE 0xFFFFFFFF
411#define NOPARITY 0
412#define ODDPARITY 1
413#define EVENPARITY 2
414#define MARKPARITY 3
415#define SPACEPARITY 4
416#define ONESTOPBIT 0
417#define ONE5STOPBITS 1
418#define TWOSTOPBITS 2
419#define CBR_110 110
420#define CBR_300 300
421#define CBR_600 600
422#define CBR_1200 1200
423#define CBR_2400 2400
424#define CBR_4800 4800
425#define CBR_9600 9600
426#define CBR_14400 14400
427#define CBR_19200 19200
428#define CBR_38400 38400
429#define CBR_56000 56000
430#define CBR_57600 57600
431#define CBR_115200 115200
432#define CBR_128000 128000
433#define CBR_256000 256000
434#define BACKUP_INVALID 0
435#define BACKUP_DATA 1
436#define BACKUP_EA_DATA 2
437#define BACKUP_SECURITY_DATA 3
438#define BACKUP_ALTERNATE_DATA 4
439#define BACKUP_LINK 5
440#define BACKUP_PROPERTY_DATA 6
441#define BACKUP_OBJECT_ID 7
442#define BACKUP_REPARSE_DATA 8
443#define BACKUP_SPARSE_BLOCK 9
444#define STREAM_NORMAL_ATTRIBUTE 0
445#define STREAM_MODIFIED_WHEN_READ 1
446#define STREAM_CONTAINS_SECURITY 2
447#define STREAM_CONTAINS_PROPERTIES 4
448#define STARTF_USESHOWWINDOW 1
449#define STARTF_USESIZE 2
450#define STARTF_USEPOSITION 4
451#define STARTF_USECOUNTCHARS 8
452#define STARTF_USEFILLATTRIBUTE 16
453#define STARTF_RUNFULLSCREEN 32
454#define STARTF_FORCEONFEEDBACK 64
455#define STARTF_FORCEOFFFEEDBACK 128
456#define STARTF_USESTDHANDLES 256
457#define STARTF_USEHOTKEY 512
458#define TC_NORMAL 0
459#define TC_HARDERR 1
460#define TC_GP_TRAP 2
461#define TC_SIGNAL 3
462#define AC_LINE_OFFLINE 0
463#define AC_LINE_ONLINE 1
464#define AC_LINE_BACKUP_POWER 2
465#define AC_LINE_UNKNOWN 255
466#define BATTERY_FLAG_HIGH 1
467#define BATTERY_FLAG_LOW 2
468#define BATTERY_FLAG_CRITICAL 4
469#define BATTERY_FLAG_CHARGING 8
470#define BATTERY_FLAG_NO_BATTERY 128
471#define BATTERY_FLAG_UNKNOWN 255
472#define BATTERY_PERCENTAGE_UNKNOWN 255
473#define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF
474#define DDD_RAW_TARGET_PATH 1
475#define DDD_REMOVE_DEFINITION 2
476#define DDD_EXACT_MATCH_ON_REMOVE 4
477#define HINSTANCE_ERROR 32
478#define MS_CTS_ON 16
479#define MS_DSR_ON 32
480#define MS_RING_ON 64
481#define MS_RLSD_ON 128
482#define PROFILE_USER 0x10000000
483#define PROFILE_KERNEL 0x20000000
484#define PROFILE_SERVER 0x40000000
485#define DTR_CONTROL_DISABLE 0
486#define DTR_CONTROL_ENABLE 1
487#define DTR_CONTROL_HANDSHAKE 2
488#define RTS_CONTROL_DISABLE 0
489#define RTS_CONTROL_ENABLE 1
490#define RTS_CONTROL_HANDSHAKE 2
491#define RTS_CONTROL_TOGGLE 3
492#define SECURITY_ANONYMOUS (SecurityAnonymous<<16)
493#define SECURITY_IDENTIFICATION (SecurityIdentification<<16)
494#define SECURITY_IMPERSONATION (SecurityImpersonation<<16)
495#define SECURITY_DELEGATION (SecurityDelegation<<16)
496#define SECURITY_CONTEXT_TRACKING 0x40000
497#define SECURITY_EFFECTIVE_ONLY 0x80000
498#define SECURITY_SQOS_PRESENT 0x100000
499#define SECURITY_VALID_SQOS_FLAGS 0x1F0000
500#define INVALID_FILE_SIZE 0xFFFFFFFF
501#define TLS_OUT_OF_INDEXES (DWORD)0xFFFFFFFF
502
503#ifndef RC_INVOKED
504typedef struct _FILETIME {
505 DWORD dwLowDateTime;
506 DWORD dwHighDateTime;
507} FILETIME,*PFILETIME,*LPFILETIME;
508typedef struct _BY_HANDLE_FILE_INFORMATION {
509 DWORD dwFileAttributes;
510 FILETIME ftCreationTime;
511 FILETIME ftLastAccessTime;
512 FILETIME ftLastWriteTime;
513 DWORD dwVolumeSerialNumber;
514 DWORD nFileSizeHigh;
515 DWORD nFileSizeLow;
516 DWORD nNumberOfLinks;
517 DWORD nFileIndexHigh;
518 DWORD nFileIndexLow;
519} BY_HANDLE_FILE_INFORMATION,*LPBY_HANDLE_FILE_INFORMATION;
520typedef struct _DCB {
521 DWORD DCBlength;
522 DWORD BaudRate;
523 DWORD fBinary:1;
524 DWORD fParity:1;
525 DWORD fOutxCtsFlow:1;
526 DWORD fOutxDsrFlow:1;
527 DWORD fDtrControl:2;
528 DWORD fDsrSensitivity:1;
529 DWORD fTXContinueOnXoff:1;
530 DWORD fOutX:1;
531 DWORD fInX:1;
532 DWORD fErrorChar:1;
533 DWORD fNull:1;
534 DWORD fRtsControl:2;
535 DWORD fAbortOnError:1;
536 DWORD fDummy2:17;
537 WORD wReserved;
538 WORD XonLim;
539 WORD XoffLim;
540 BYTE ByteSize;
541 BYTE Parity;
542 BYTE StopBits;
543 char XonChar;
544 char XoffChar;
545 char ErrorChar;
546 char EofChar;
547 char EvtChar;
548 WORD wReserved1;
549} DCB,*LPDCB;
550typedef struct _COMM_CONFIG {
551 DWORD dwSize;
552 WORD wVersion;
553 WORD wReserved;
554 DCB dcb;
555 DWORD dwProviderSubType;
556 DWORD dwProviderOffset;
557 DWORD dwProviderSize;
558 WCHAR wcProviderData[1];
559} COMMCONFIG,*LPCOMMCONFIG;
560typedef struct _COMMPROP {
561 WORD wPacketLength;
562 WORD wPacketVersion;
563 DWORD dwServiceMask;
564 DWORD dwReserved1;
565 DWORD dwMaxTxQueue;
566 DWORD dwMaxRxQueue;
567 DWORD dwMaxBaud;
568 DWORD dwProvSubType;
569 DWORD dwProvCapabilities;
570 DWORD dwSettableParams;
571 DWORD dwSettableBaud;
572 WORD wSettableData;
573 WORD wSettableStopParity;
574 DWORD dwCurrentTxQueue;
575 DWORD dwCurrentRxQueue;
576 DWORD dwProvSpec1;
577 DWORD dwProvSpec2;
578 WCHAR wcProvChar[1];
579} COMMPROP,*LPCOMMPROP;
580typedef struct _COMMTIMEOUTS {
581 DWORD ReadIntervalTimeout;
582 DWORD ReadTotalTimeoutMultiplier;
583 DWORD ReadTotalTimeoutConstant;
584 DWORD WriteTotalTimeoutMultiplier;
585 DWORD WriteTotalTimeoutConstant;
586} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
587typedef struct _COMSTAT {
588 DWORD fCtsHold:1;
589 DWORD fDsrHold:1;
590 DWORD fRlsdHold:1;
591 DWORD fXoffHold:1;
592 DWORD fXoffSent:1;
593 DWORD fEof:1;
594 DWORD fTxim:1;
595 DWORD fReserved:25;
596 DWORD cbInQue;
597 DWORD cbOutQue;
598} COMSTAT,*LPCOMSTAT;
599typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID);
600typedef struct _CREATE_PROCESS_DEBUG_INFO {
601 HANDLE hFile;
602 HANDLE hProcess;
603 HANDLE hThread;
604 LPVOID lpBaseOfImage;
605 DWORD dwDebugInfoFileOffset;
606 DWORD nDebugInfoSize;
607 LPVOID lpThreadLocalBase;
608 LPTHREAD_START_ROUTINE lpStartAddress;
609 LPVOID lpImageName;
610 WORD fUnicode;
611} CREATE_PROCESS_DEBUG_INFO,*LPCREATE_PROCESS_DEBUG_INFO;
612typedef struct _CREATE_THREAD_DEBUG_INFO {
613 HANDLE hThread;
614 LPVOID lpThreadLocalBase;
615 LPTHREAD_START_ROUTINE lpStartAddress;
616} CREATE_THREAD_DEBUG_INFO,*LPCREATE_THREAD_DEBUG_INFO;
617typedef struct _EXCEPTION_DEBUG_INFO {
618 EXCEPTION_RECORD ExceptionRecord;
619 DWORD dwFirstChance;
620} EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO;
621typedef struct _EXIT_THREAD_DEBUG_INFO {
622 DWORD dwExitCode;
623} EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO;
624typedef struct _EXIT_PROCESS_DEBUG_INFO {
625 DWORD dwExitCode;
626} EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO;
627typedef struct _LOAD_DLL_DEBUG_INFO {
628 HANDLE hFile;
629 LPVOID lpBaseOfDll;
630 DWORD dwDebugInfoFileOffset;
631 DWORD nDebugInfoSize;
632 LPVOID lpImageName;
633 WORD fUnicode;
634} LOAD_DLL_DEBUG_INFO,*LPLOAD_DLL_DEBUG_INFO;
635typedef struct _UNLOAD_DLL_DEBUG_INFO {
636 LPVOID lpBaseOfDll;
637} UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO;
638typedef struct _OUTPUT_DEBUG_STRING_INFO {
639 LPSTR lpDebugStringData;
640 WORD fUnicode;
641 WORD nDebugStringLength;
642} OUTPUT_DEBUG_STRING_INFO,*LPOUTPUT_DEBUG_STRING_INFO;
643typedef struct _RIP_INFO {
644 DWORD dwError;
645 DWORD dwType;
646} RIP_INFO,*LPRIP_INFO;
647typedef struct _DEBUG_EVENT {
648 DWORD dwDebugEventCode;
649 DWORD dwProcessId;
650 DWORD dwThreadId;
651 union {
652 EXCEPTION_DEBUG_INFO Exception;
653 CREATE_THREAD_DEBUG_INFO CreateThread;
654 CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
655 EXIT_THREAD_DEBUG_INFO ExitThread;
656 EXIT_PROCESS_DEBUG_INFO ExitProcess;
657 LOAD_DLL_DEBUG_INFO LoadDll;
658 UNLOAD_DLL_DEBUG_INFO UnloadDll;
659 OUTPUT_DEBUG_STRING_INFO DebugString;
660 RIP_INFO RipInfo;
661 } u;
662} DEBUG_EVENT,*LPDEBUG_EVENT;
663typedef struct _OVERLAPPED {
664 DWORD Internal;
665 DWORD InternalHigh;
666 DWORD Offset;
667 DWORD OffsetHigh;
668 HANDLE hEvent;
669} OVERLAPPED,*POVERLAPPED,*LPOVERLAPPED;
670typedef struct _STARTUPINFOA {
671 DWORD cb;
672 LPSTR lpReserved;
673 LPSTR lpDesktop;
674 LPSTR lpTitle;
675 DWORD dwX;
676 DWORD dwY;
677 DWORD dwXSize;
678 DWORD dwYSize;
679 DWORD dwXCountChars;
680 DWORD dwYCountChars;
681 DWORD dwFillAttribute;
682 DWORD dwFlags;
683 WORD wShowWindow;
684 WORD cbReserved2;
685 PBYTE lpReserved2;
686 HANDLE hStdInput;
687 HANDLE hStdOutput;
688 HANDLE hStdError;
689} STARTUPINFOA,*LPSTARTUPINFOA;
690typedef struct _STARTUPINFOW {
691 DWORD cb;
692 LPWSTR lpReserved;
693 LPWSTR lpDesktop;
694 LPWSTR lpTitle;
695 DWORD dwX;
696 DWORD dwY;
697 DWORD dwXSize;
698 DWORD dwYSize;
699 DWORD dwXCountChars;
700 DWORD dwYCountChars;
701 DWORD dwFillAttribute;
702 DWORD dwFlags;
703 WORD wShowWindow;
704 WORD cbReserved2;
705 PBYTE lpReserved2;
706 HANDLE hStdInput;
707 HANDLE hStdOutput;
708 HANDLE hStdError;
709} STARTUPINFOW,*LPSTARTUPINFOW;
710typedef struct _PROCESS_INFORMATION {
711 HANDLE hProcess;
712 HANDLE hThread;
713 DWORD dwProcessId;
714 DWORD dwThreadId;
715} PROCESS_INFORMATION,*LPPROCESS_INFORMATION;
716typedef struct _CRITICAL_SECTION_DEBUG {
717 WORD Type;
718 WORD CreatorBackTraceIndex;
719 struct _CRITICAL_SECTION *CriticalSection;
720 LIST_ENTRY ProcessLocksList;
721 DWORD EntryCount;
722 DWORD ContentionCount;
723 DWORD Spare [2];
724} CRITICAL_SECTION_DEBUG,*PCRITICAL_SECTION_DEBUG;
725typedef struct _CRITICAL_SECTION {
726 PCRITICAL_SECTION_DEBUG DebugInfo;
727 LONG LockCount;
728 LONG RecursionCount;
729 HANDLE OwningThread;
730 HANDLE LockSemaphore;
731 DWORD SpinCount;
732} CRITICAL_SECTION,*PCRITICAL_SECTION,*LPCRITICAL_SECTION;
733typedef struct _SYSTEMTIME {
734 WORD wYear;
735 WORD wMonth;
736 WORD wDayOfWeek;
737 WORD wDay;
738 WORD wHour;
739 WORD wMinute;
740 WORD wSecond;
741 WORD wMilliseconds;
742} SYSTEMTIME,*LPSYSTEMTIME;
743typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
744 DWORD dwFileAttributes;
745 FILETIME ftCreationTime;
746 FILETIME ftLastAccessTime;
747 FILETIME ftLastWriteTime;
748 DWORD nFileSizeHigh;
749 DWORD nFileSizeLow;
750} WIN32_FILE_ATTRIBUTE_DATA,*LPWIN32_FILE_ATTRIBUTE_DATA;
751typedef struct _WIN32_FIND_DATAA {
752 DWORD dwFileAttributes;
753 FILETIME ftCreationTime;
754 FILETIME ftLastAccessTime;
755 FILETIME ftLastWriteTime;
756 DWORD nFileSizeHigh;
757 DWORD nFileSizeLow;
758 DWORD dwReserved0;
759 DWORD dwReserved1;
760 CHAR cFileName[MAX_PATH];
761 CHAR cAlternateFileName[14];
762} WIN32_FIND_DATAA,*LPWIN32_FIND_DATAA;
763typedef struct _WIN32_FIND_DATAW {
764 DWORD dwFileAttributes;
765 FILETIME ftCreationTime;
766 FILETIME ftLastAccessTime;
767 FILETIME ftLastWriteTime;
768 DWORD nFileSizeHigh;
769 DWORD nFileSizeLow;
770 DWORD dwReserved0;
771 DWORD dwReserved1;
772 WCHAR cFileName[MAX_PATH];
773 WCHAR cAlternateFileName[14];
774} WIN32_FIND_DATAW,*LPWIN32_FIND_DATAW;
775typedef struct _WIN32_STREAM_ID {
776 DWORD dwStreamId;
777 DWORD dwStreamAttributes;
778 LARGE_INTEGER Size;
779 DWORD dwStreamNameSize;
780 WCHAR cStreamName[ANYSIZE_ARRAY];
781} WIN32_STREAM_ID;
782typedef enum _FINDEX_INFO_LEVELS {
783 FindExInfoStandard,
784 FindExInfoMaxInfoLevel
785} FINDEX_INFO_LEVELS;
786typedef enum _FINDEX_SEARCH_OPS {
787 FindExSearchNameMatch,
788 FindExSearchLimitToDirectories,
789 FindExSearchLimitToDevices,
790 FindExSearchMaxSearchOp
791} FINDEX_SEARCH_OPS;
792typedef enum _ACL_INFORMATION_CLASS {
793 AclRevisionInformation=1,
794 AclSizeInformation
795} ACL_INFORMATION_CLASS;
796typedef struct tagHW_PROFILE_INFOA {
797 DWORD dwDockInfo;
798 CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
799 CHAR szHwProfileName[MAX_PROFILE_LEN];
800} HW_PROFILE_INFOA,*LPHW_PROFILE_INFOA;
801typedef struct tagHW_PROFILE_INFOW {
802 DWORD dwDockInfo;
803 WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
804 WCHAR szHwProfileName[MAX_PROFILE_LEN];
805} HW_PROFILE_INFOW,*LPHW_PROFILE_INFOW;
806typedef enum _GET_FILEEX_INFO_LEVELS {
807 GetFileExInfoStandard,
808 GetFileExMaxInfoLevel
809} GET_FILEEX_INFO_LEVELS;
810typedef struct _SYSTEM_INFO {
811 _ANONYMOUS_UNION union {
812 DWORD dwOemId;
813 _ANONYMOUS_STRUCT struct {
814 WORD wProcessorArchitecture;
815 WORD wReserved;
816 } DUMMYSTRUCTNAME;
817 } DUMMYUNIONNAME;
818 DWORD dwPageSize;
819 PVOID lpMinimumApplicationAddress;
820 PVOID lpMaximumApplicationAddress;
821 DWORD dwActiveProcessorMask;
822 DWORD dwNumberOfProcessors;
823 DWORD dwProcessorType;
824 DWORD dwAllocationGranularity;
825 WORD wProcessorLevel;
826 WORD wProcessorRevision;
827} SYSTEM_INFO,*LPSYSTEM_INFO;
828typedef struct _SYSTEM_POWER_STATUS {
829 BYTE ACLineStatus;
830 BYTE BatteryFlag;
831 BYTE BatteryLifePercent;
832 BYTE Reserved1;
833 DWORD BatteryLifeTime;
834 DWORD BatteryFullLifeTime;
835} SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;
836typedef struct _TIME_ZONE_INFORMATION {
837 LONG Bias;
838 WCHAR StandardName[32];
839 SYSTEMTIME StandardDate;
840 LONG StandardBias;
841 WCHAR DaylightName[32];
842 SYSTEMTIME DaylightDate;
843 LONG DaylightBias;
844} TIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION;
845typedef struct _MEMORYSTATUS {
846 DWORD dwLength;
847 DWORD dwMemoryLoad;
848 DWORD dwTotalPhys;
849 DWORD dwAvailPhys;
850 DWORD dwTotalPageFile;
851 DWORD dwAvailPageFile;
852 DWORD dwTotalVirtual;
853 DWORD dwAvailVirtual;
854} MEMORYSTATUS,*LPMEMORYSTATUS;
855typedef struct _LDT_ENTRY {
856 WORD LimitLow;
857 WORD BaseLow;
858 union {
859 struct {
860 BYTE BaseMid;
861 BYTE Flags1;
862 BYTE Flags2;
863 BYTE BaseHi;
864 } Bytes;
865 struct {
866 DWORD BaseMid:8;
867 DWORD Type:5;
868 DWORD Dpl:2;
869 DWORD Pres:1;
870 DWORD LimitHi:4;
871 DWORD Sys:1;
872 DWORD Reserved_0:1;
873 DWORD Default_Big:1;
874 DWORD Granularity:1;
875 DWORD BaseHi:8;
876 } Bits;
877 } HighWord;
878} LDT_ENTRY,*PLDT_ENTRY,*LPLDT_ENTRY;
879typedef struct _PROCESS_HEAP_ENTRY {
880 PVOID lpData;
881 DWORD cbData;
882 BYTE cbOverhead;
883 BYTE iRegionIndex;
884 WORD wFlags;
885 _ANONYMOUS_UNION union {
886 struct {
887 HANDLE hMem;
888 DWORD dwReserved[3];
889 } Block;
890 struct {
891 DWORD dwCommittedSize;
892 DWORD dwUnCommittedSize;
893 LPVOID lpFirstBlock;
894 LPVOID lpLastBlock;
895 } Region;
896 } DUMMYUNIONNAME;
897} PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY;
898typedef struct _OFSTRUCT {
899 BYTE cBytes;
900 BYTE fFixedDisk;
901 WORD nErrCode;
902 WORD Reserved1;
903 WORD Reserved2;
904 CHAR szPathName[OFS_MAXPATHNAME];
905} OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT;
906typedef struct _WIN_CERTIFICATE {
907 DWORD dwLength;
908 WORD wRevision;
909 WORD wCertificateType;
910 BYTE bCertificate[1];
911} WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
912
913typedef DWORD(WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER,LARGE_INTEGER,LARGE_INTEGER,LARGE_INTEGER,DWORD,DWORD,HANDLE,HANDLE,LPVOID);
914typedef void(WINAPI *LPFIBER_START_ROUTINE)(PVOID);
915typedef BOOL(CALLBACK *ENUMRESLANGPROC)(HMODULE,LPCTSTR,LPCTSTR,WORD,LONG);
916typedef BOOL(CALLBACK *ENUMRESNAMEPROC)(HMODULE,LPCTSTR,LPTSTR,LONG);
917typedef BOOL(CALLBACK *ENUMRESTYPEPROC)(HMODULE,LPTSTR,LONG);
918typedef void(CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
919typedef LONG(CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(LPEXCEPTION_POINTERS);
920typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
921typedef void(APIENTRY *PAPCFUNC)(DWORD);
922typedef void(CALLBACK *PTIMERAPCROUTINE)(PVOID,DWORD,DWORD);
923#define MAKEINTATOM(i) (LPTSTR)((DWORD)((WORD)(i)))
924/* Functions */
925#ifndef UNDER_CE
926int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
927#else
928int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPWSTR,int);
929#endif
930int APIENTRY wWinMain(HINSTANCE,HINSTANCE,LPWSTR,int);
931long WINAPI _hread(HFILE,LPVOID,long);
932long WINAPI _hwrite(HFILE,LPCSTR,long);
933HFILE WINAPI _lclose(HFILE);
934HFILE WINAPI _lcreat(LPCSTR,int);
935LONG WINAPI _llseek(HFILE,LONG,int);
936HFILE WINAPI _lopen(LPCSTR,int);
937UINT WINAPI _lread(HFILE,LPVOID,UINT);
938UINT WINAPI _lwrite(HFILE,LPCSTR,UINT);
939#define AbnormalTermination() FALSE
940BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,PDWORD,PDWORD,PBOOL);
941BOOL WINAPI AccessCheckAndAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL);
942BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL);
943BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
944BOOL WINAPI AddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
945BOOL WINAPI AddAce(PACL,DWORD,DWORD,PVOID,DWORD);
946ATOM WINAPI AddAtomA(LPCSTR);
947ATOM WINAPI AddAtomW(LPCWSTR);
948BOOL WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
949BOOL WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD);
950BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
951BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID*);
952BOOL WINAPI AllocateLocallyUniqueId(PLUID);
953BOOL WINAPI AreAllAccessesGranted(DWORD,DWORD);
954BOOL WINAPI AreAnyAccessesGranted(DWORD,DWORD);
955BOOL WINAPI AreFileApisANSI(void);
956BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR);
957BOOL WINAPI BackupEventLogW(HANDLE,LPCWSTR);
958BOOL WINAPI BackupRead(HANDLE,PBYTE,DWORD,PDWORD,BOOL,BOOL,PVOID);
959BOOL WINAPI BackupSeek(HANDLE,DWORD,DWORD,PDWORD,PDWORD,PVOID);
960BOOL WINAPI BackupWrite(HANDLE,PBYTE,DWORD,PDWORD,BOOL,BOOL,PVOID);
961BOOL WINAPI Beep(DWORD,DWORD);
962HANDLE WINAPI BeginUpdateResourceA(LPCSTR,BOOL);
963HANDLE WINAPI BeginUpdateResourceW(LPCWSTR,BOOL);
964BOOL WINAPI BuildCommDCBA(LPCSTR,LPDCB);
965BOOL WINAPI BuildCommDCBW(LPCWSTR,LPDCB);
966BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS);
967BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS);
968BOOL WINAPI CallNamedPipeA(LPCSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWORD);
969BOOL WINAPI CallNamedPipeW(LPCWSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWORD);
970BOOL WINAPI CancelIo(HANDLE);
971BOOL WINAPI CancelWaitableTimer(HANDLE);
972BOOL WINAPI ClearCommBreak(HANDLE);
973BOOL WINAPI ClearCommError(HANDLE,PDWORD,LPCOMSTAT);
974BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR);
975BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR);
976BOOL WINAPI CloseEventLog(HANDLE);
977BOOL WINAPI CloseHandle(HANDLE);
978BOOL WINAPI CommConfigDialogA(LPCSTR,HWND,LPCOMMCONFIG);
979BOOL WINAPI CommConfigDialogW(LPCWSTR,HWND,LPCOMMCONFIG);
980LONG WINAPI CompareFileTime(CONST FILETIME*,CONST FILETIME*);
981BOOL WINAPI ConnectNamedPipe(HANDLE,LPOVERLAPPED);
982BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD);
983PVOID WINAPI ConvertThreadToFiber(PVOID);
984BOOL WINAPI CopyFileA(LPCSTR,LPCSTR,BOOL);
985BOOL WINAPI CopyFileW(LPCWSTR,LPCWSTR,BOOL);
986BOOL WINAPI CopyFileExA(LPCSTR,LPCSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD);
987BOOL WINAPI CopyFileExW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD);
988#define RtlMoveMemory memmove
989#define RtlCopyMemory memcpy
990#define RtlFillMemory(d,l,f) memset((d), (f), (l))
991#define RtlZeroMemory(d,l) RtlFillMemory((d),(l),0)
992#define MoveMemory RtlMoveMemory
993#define CopyMemory RtlCopyMemory
994#define FillMemory RtlFillMemory
995#define ZeroMemory RtlZeroMemory
996BOOL WINAPI CopySid(DWORD,PSID,PSID);
997BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
998BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);
999BOOL WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1000BOOL WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1001HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR);
1002HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR);
1003LPVOID WINAPI CreateFiber(DWORD,LPFIBER_START_ROUTINE,LPVOID);
1004HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1005HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1006HANDLE WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR);
1007HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR);
1008HANDLE WINAPI CreateHardLinkA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1009HANDLE WINAPI CreateHardLinkW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1010HANDLE WINAPI CreateIoCompletionPort(HANDLE,HANDLE,DWORD,DWORD);
1011HANDLE WINAPI CreateMailslotA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1012HANDLE WINAPI CreateMailslotW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1013HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1014HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1015HANDLE WINAPI CreateNamedPipeA(LPCSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1016HANDLE WINAPI CreateNamedPipeW(LPCWSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1017BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
1018BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
1019BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1020BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1021BOOL WINAPI CreateProcessAsUserA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1022BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1023HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1024HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
1025HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
1026DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
1027HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,PVOID,DWORD,PDWORD);
1028HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1029HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1030BOOL WINAPI DebugActiveProcess(DWORD);
1031void WINAPI DebugBreak(void);
1032BOOL WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR);
1033BOOL WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR);
1034#define DefineHandleTable(w) ((w),TRUE)
1035BOOL WINAPI DeleteAce(PACL,DWORD);
1036ATOM WINAPI DeleteAtom(ATOM);
1037void WINAPI DeleteCriticalSection(PCRITICAL_SECTION);
1038void WINAPI DeleteFiber(PVOID);
1039BOOL WINAPI DeleteFileA(LPCSTR);
1040BOOL WINAPI DeleteFileW(LPCWSTR);
1041BOOL WINAPI DeregisterEventSource(HANDLE);
1042BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
1043BOOL WINAPI DeviceIoControl(HANDLE,DWORD,PVOID,DWORD,PVOID,DWORD,PDWORD,POVERLAPPED);
1044BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
1045BOOL WINAPI DisconnectNamedPipe(HANDLE);
1046BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
1047BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,PHANDLE,DWORD,BOOL,DWORD);
1048BOOL WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
1049BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
1050BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
1051BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL);
1052void WINAPI EnterCriticalSection(LPCRITICAL_SECTION);
1053BOOL WINAPI EnumResourceLanguagesA(HINSTANCE,LPCSTR,LPCSTR,ENUMRESLANGPROC,LONG);
1054BOOL WINAPI EnumResourceLanguagesW(HINSTANCE,LPCWSTR,LPCWSTR,ENUMRESLANGPROC,LONG);
1055BOOL WINAPI EnumResourceNamesA(HINSTANCE,LPCSTR,ENUMRESNAMEPROC,LONG);
1056BOOL WINAPI EnumResourceNamesW(HINSTANCE,LPCWSTR,ENUMRESNAMEPROC,LONG);
1057BOOL WINAPI EnumResourceTypesA(HINSTANCE,ENUMRESTYPEPROC,LONG);
1058BOOL WINAPI EnumResourceTypesW(HINSTANCE,ENUMRESTYPEPROC,LONG);
1059BOOL WINAPI EqualPrefixSid(PSID,PSID);
1060BOOL WINAPI EqualSid(PSID,PSID);
1061DWORD WINAPI EraseTape(HANDLE,DWORD,BOOL);
1062BOOL WINAPI EscapeCommFunction(HANDLE,DWORD);
1063DECLSPEC_NORETURN void WINAPI ExitProcess(UINT);
1064DECLSPEC_NORETURN void WINAPI ExitThread(DWORD);
1065DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
1066DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
1067void WINAPI FatalAppExitA(UINT,LPCSTR);
1068void WINAPI FatalAppExitW(UINT,LPCWSTR);
1069void WINAPI FatalExit(int);
1070BOOL WINAPI FileTimeToDosDateTime(CONST FILETIME *,LPWORD,LPWORD);
1071BOOL WINAPI FileTimeToLocalFileTime(FILETIME *,LPFILETIME);
1072BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *,LPSYSTEMTIME);
1073ATOM WINAPI FindAtomA(LPCSTR);
1074ATOM WINAPI FindAtomW(LPCWSTR);
1075BOOL WINAPI FindClose(HANDLE);
1076BOOL WINAPI FindCloseChangeNotification(HANDLE);
1077HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD);
1078HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD);
1079HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
1080HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
1081HANDLE WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1082HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1083BOOL WINAPI FindFirstFreeAce(PACL,PVOID*);
1084BOOL WINAPI FindNextChangeNotification(HANDLE);
1085BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
1086BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
1087HRSRC WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR);
1088HRSRC WINAPI FindResourceW(HINSTANCE,LPCWSTR,LPCWSTR);
1089HRSRC WINAPI FindResourceExA(HINSTANCE,LPCSTR,LPCSTR,WORD);
1090HRSRC WINAPI FindResourceExW(HINSTANCE,LPCWSTR,LPCWSTR,WORD);
1091BOOL WINAPI FlushFileBuffers(HANDLE);
1092BOOL WINAPI FlushInstructionCache(HANDLE,PCVOID,DWORD);
1093BOOL WINAPI FlushViewOfFile(PCVOID,DWORD);
1094DWORD WINAPI FormatMessageA(DWORD,PCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
1095DWORD WINAPI FormatMessageW(DWORD,PCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*);
1096BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
1097BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
1098BOOL WINAPI FreeLibrary(HMODULE);
1099DECLSPEC_NORETURN void WINAPI FreeLibraryAndExitThread(HMODULE,DWORD);
1100#define FreeModule(m) FreeLibrary(m)
1101#define FreeProcInstance(p) (void)(p)
1102#ifndef XFree86Server
1103BOOL WINAPI FreeResource(HGLOBAL);
1104#endif /* ndef XFree86Server */
1105PVOID WINAPI FreeSid(PSID);
1106BOOL WINAPI GetAce(PACL,DWORD,PVOID);
1107BOOL WINAPI GetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
1108UINT WINAPI GetAtomNameA(ATOM,LPSTR,int);
1109UINT WINAPI GetAtomNameW(ATOM,LPWSTR,int);
1110BOOL WINAPI GetBinaryTypeA(LPCSTR,PDWORD);
1111BOOL WINAPI GetBinaryTypeW(LPCWSTR,PDWORD);
1112LPSTR WINAPI GetCommandLineA(VOID);
1113LPWSTR WINAPI GetCommandLineW(VOID);
1114BOOL WINAPI GetCommConfig(HANDLE,LPCOMMCONFIG,PDWORD);
1115BOOL WINAPI GetCommMask(HANDLE,PDWORD);
1116BOOL WINAPI GetCommModemStatus(HANDLE,PDWORD);
1117BOOL WINAPI GetCommProperties(HANDLE,LPCOMMPROP);
1118BOOL WINAPI GetCommState(HANDLE,LPDCB);
1119BOOL WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1120DWORD WINAPI GetCompressedFileSizeA(LPCSTR,PDWORD);
1121DWORD WINAPI GetCompressedFileSizeW(LPCWSTR,PDWORD);
1122BOOL WINAPI GetComputerNameA(LPSTR,PDWORD);
1123BOOL WINAPI GetComputerNameW(LPWSTR,PDWORD);
1124DWORD WINAPI GetCurrentDirectoryA(DWORD,LPSTR);
1125DWORD WINAPI GetCurrentDirectoryW(DWORD,LPWSTR);
1126BOOL WINAPI GetCurrentHwProfileA(LPHW_PROFILE_INFOA);
1127BOOL WINAPI GetCurrentHwProfileW(LPHW_PROFILE_INFOW);
1128HANDLE WINAPI GetCurrentProcess(void);
1129DWORD WINAPI GetCurrentProcessId(void);
1130HANDLE WINAPI GetCurrentThread(void);
1131DWORD WINAPI GetCurrentThreadId(void);
1132#define GetCurrentTime GetTickCount
1133BOOL WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,PDWORD);
1134BOOL WINAPI GetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,PDWORD);
1135BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,PDWORD,PDWORD,PDWORD,PDWORD);
1136BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,PDWORD,PDWORD,PDWORD,PDWORD);
1137BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1138BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1139UINT WINAPI GetDriveTypeA(LPCSTR);
1140UINT WINAPI GetDriveTypeW(LPCWSTR);
1141LPSTR WINAPI GetEnvironmentStrings(void);
1142LPSTR WINAPI GetEnvironmentStringsA(void);
1143LPWSTR WINAPI GetEnvironmentStringsW(void);
1144DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
1145DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);
1146BOOL WINAPI GetExitCodeProcess(HANDLE,PDWORD);
1147BOOL WINAPI GetExitCodeThread(HANDLE,PDWORD);
1148DWORD WINAPI GetFileAttributesA(LPCSTR);
1149DWORD WINAPI GetFileAttributesW(LPCWSTR);
1150BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,PVOID);
1151BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,PVOID);
1152BOOL WINAPI GetFileInformationByHandle(HANDLE,LPBY_HANDLE_FILE_INFORMATION);
1153BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1154BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1155DWORD WINAPI GetFileSize(HANDLE,PDWORD);
1156BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
1157DWORD WINAPI GetFileType(HANDLE);
1158#define GetFreeSpace(w) (0x100000L)
1159DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
1160DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1161BOOL WINAPI GetHandleInformation(HANDLE,PDWORD);
1162BOOL WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1163DWORD WINAPI GetLengthSid(PSID);
1164void WINAPI GetLocalTime(LPSYSTEMTIME);
1165DWORD WINAPI GetLogicalDrives(void);
1166DWORD WINAPI GetLogicalDriveStringsA(DWORD,LPSTR);
1167DWORD WINAPI GetLogicalDriveStringsW(DWORD,LPWSTR);
1168DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
1169DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
1170BOOL WINAPI GetMailslotInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD);
1171DWORD WINAPI GetModuleFileNameA(HINSTANCE,LPSTR,DWORD);
1172DWORD WINAPI GetModuleFileNameW(HINSTANCE,LPWSTR,DWORD);
1173HMODULE WINAPI GetModuleHandleA(LPCSTR);
1174HMODULE WINAPI GetModuleHandleW(LPCWSTR);
1175BOOL WINAPI GetNamedPipeHandleStateA(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD,LPSTR,DWORD);
1176BOOL WINAPI GetNamedPipeHandleStateW(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD);
1177BOOL WINAPI GetNamedPipeInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD);
1178BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
1179BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
1180BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,PDWORD,BOOL);
1181DWORD WINAPI GetPriorityClass(HANDLE);
1182BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1183UINT WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR);
1184UINT WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR);
1185DWORD WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR);
1186DWORD WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
1187DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR);
1188DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR);
1189DWORD WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,DWORD,LPCSTR);
1190DWORD WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD,LPCWSTR);
1191BOOL WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,PVOID,UINT,LPCSTR);
1192BOOL WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,PVOID,UINT,LPCWSTR);
1193FARPROC WINAPI GetProcAddress(HINSTANCE,LPCSTR);
1194BOOL WINAPI GetProcessAffinityMask(HANDLE,PDWORD,PDWORD);
1195HANDLE WINAPI GetProcessHeap(VOID);
1196DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
1197BOOL WINAPI GetProcessPriorityBoost(HANDLE,PBOOL);
1198BOOL WINAPI GetProcessShutdownParameters(PDWORD,PDWORD);
1199BOOL WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1200DWORD WINAPI GetProcessVersion(DWORD);
1201HWINSTA WINAPI GetProcessWindowStation(void);
1202BOOL WINAPI GetProcessWorkingSetSize(HANDLE,PDWORD,PDWORD);
1203UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT);
1204UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT);
1205DWORD WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD);
1206DWORD WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD);
1207DWORD WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,DWORD);
1208DWORD WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD);
1209BOOL WINAPI GetQueuedCompletionStatus(HANDLE,PDWORD,PDWORD,LPOVERLAPPED*,DWORD);
1210BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,PDWORD);
1211BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
1212BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
1213DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
1214BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
1215BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
1216DWORD WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD);
1217DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);
1218PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
1219DWORD WINAPI GetSidLengthRequired(UCHAR);
1220PDWORD WINAPI GetSidSubAuthority(PSID,DWORD);
1221PUCHAR WINAPI GetSidSubAuthorityCount(PSID);
1222VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA);
1223VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW);
1224HANDLE WINAPI GetStdHandle(DWORD);
1225UINT WINAPI GetSystemDirectoryA(LPSTR,UINT);
1226UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT);
1227VOID WINAPI GetSystemInfo(LPSYSTEM_INFO);
1228BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
1229VOID WINAPI GetSystemTime(LPSYSTEMTIME);
1230BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
1231void WINAPI GetSystemTimeAsFileTime(LPFILETIME);
1232DWORD WINAPI GetTapeParameters(HANDLE,DWORD,PDWORD,PVOID);
1233DWORD WINAPI GetTapePosition(HANDLE,DWORD,PDWORD,PDWORD,PDWORD);
1234DWORD WINAPI GetTapeStatus(HANDLE);
1235UINT WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR);
1236UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);
1237DWORD WINAPI GetTempPathA(DWORD,LPSTR);
1238DWORD WINAPI GetTempPathW(DWORD,LPWSTR);
1239BOOL WINAPI GetThreadContext(HANDLE,LPCONTEXT);
1240int WINAPI GetThreadPriority(HANDLE);
1241BOOL WINAPI GetThreadPriorityBoost(HANDLE,PBOOL);
1242BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY);
1243BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1244DWORD WINAPI GetTickCount(void);
1245DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
1246BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD,PDWORD);
1247BOOL WINAPI GetUserNameA (LPSTR,PDWORD);
1248BOOL WINAPI GetUserNameW(LPWSTR,PDWORD);
1249DWORD WINAPI GetVersion(void);
1250BOOL WINAPI GetVersionExA(LPOSVERSIONINFOA);
1251BOOL WINAPI GetVersionExW(LPOSVERSIONINFOW);
1252BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,PDWORD,PDWORD,PDWORD,LPSTR,DWORD);
1253BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD);
1254UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT);
1255UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
1256DWORD WINAPI GetWindowThreadProcessId(HWND,PDWORD);
1257ATOM WINAPI GlobalAddAtomA(LPCSTR);
1258ATOM WINAPI GlobalAddAtomW( LPCWSTR);
1259HGLOBAL WINAPI GlobalAlloc(UINT,DWORD);
1260UINT WINAPI GlobalCompact(DWORD);
1261ATOM WINAPI GlobalDeleteAtom(ATOM);
1262HGLOBAL GlobalDiscard(HGLOBAL);
1263ATOM WINAPI GlobalFindAtomA(LPCSTR);
1264ATOM WINAPI GlobalFindAtomW(LPCWSTR);
1265VOID WINAPI GlobalFix(HGLOBAL);
1266UINT WINAPI GlobalFlags(HGLOBAL);
1267HGLOBAL WINAPI GlobalFree(HGLOBAL);
1268UINT WINAPI GlobalGetAtomNameA(ATOM,LPSTR,int);
1269UINT WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,int);
1270HGLOBAL WINAPI GlobalHandle(PCVOID);
1271LPVOID WINAPI GlobalLock(HGLOBAL);
1272VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
1273HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,DWORD,UINT);
1274DWORD WINAPI GlobalSize(HGLOBAL);
1275VOID WINAPI GlobalUnfix(HGLOBAL);
1276BOOL WINAPI GlobalUnlock(HGLOBAL);
1277BOOL WINAPI GlobalUnWire(HGLOBAL);
1278PVOID WINAPI GlobalWire(HGLOBAL);
1279#define HasOverlappedIoCompleted(lpOverlapped) ((lpOverlapped)->Internal != STATUS_PENDING)
1280PVOID WINAPI HeapAlloc(HANDLE,DWORD,DWORD);
1281UINT WINAPI HeapCompact(HANDLE,DWORD);
1282HANDLE WINAPI HeapCreate(DWORD,DWORD,DWORD);
1283BOOL WINAPI HeapDestroy(HANDLE);
1284BOOL WINAPI HeapFree(HANDLE,DWORD,PVOID);
1285BOOL WINAPI HeapLock(HANDLE);
1286PVOID WINAPI HeapReAlloc(HANDLE,DWORD,PVOID,DWORD);
1287DWORD WINAPI HeapSize(HANDLE,DWORD,PCVOID);
1288BOOL WINAPI HeapUnlock(HANDLE);
1289BOOL WINAPI HeapValidate(HANDLE,DWORD,PCVOID);
1290BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
1291BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
1292BOOL WINAPI ImpersonateNamedPipeClient(HANDLE);
1293BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
1294BOOL WINAPI InitAtomTable(DWORD);
1295BOOL WINAPI InitializeAcl(PACL,DWORD,DWORD);
1296VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION);
1297#if (_WIN32_WINNT >= 0x0403) /* Needs NT4, SP3 or later. */
1298BOOL WINAPI InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION,DWORD);
1299DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD);
1300#endif
1301BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
1302BOOL WINAPI InitializeSid (PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
1303LONG WINAPI InterlockedCompareExchange(LPLONG,LONG,LONG);
1304/* PVOID WINAPI InterlockedCompareExchangePointer(PVOID*,PVOID,PVOID); */
1305#define InterlockedCompareExchangePointer(d,e,c) \
1306 (PVOID)InterlockedCompareExchange((LPLONG)(d),(LONG)(e),(LONG)(c))
1307LONG WINAPI InterlockedDecrement(LPLONG);
1308LONG WINAPI InterlockedExchange(LPLONG,LONG);
1309/* PVOID WINAPI InterlockedExchangePointer(PVOID*,PVOID); */
1310#define InterlockedExchangePointer(t,v) \
1311 (PVOID)InterlockedExchange((LPLONG)(t),(LONG)(v))
1312LONG WINAPI InterlockedExchangeAdd(PLONG,LONG);
1313LONG WINAPI InterlockedIncrement(LPLONG);
1314BOOL WINAPI IsBadCodePtr(FARPROC);
1315BOOL WINAPI IsBadHugeReadPtr(PCVOID,UINT);
1316BOOL WINAPI IsBadHugeWritePtr(PVOID,UINT);
1317BOOL WINAPI IsBadReadPtr(PCVOID,UINT);
1318BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT);
1319BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT);
1320BOOL WINAPI IsBadWritePtr(PVOID,UINT);
1321BOOL WINAPI IsDebuggerPresent(void);
1322BOOL WINAPI IsProcessorFeaturePresent(DWORD);
1323BOOL WINAPI IsTextUnicode(PCVOID,int,LPINT);
1324BOOL WINAPI IsValidAcl(PACL);
1325BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
1326BOOL WINAPI IsValidSid(PSID);
1327void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION);
1328#define LimitEmsPages(n)
1329HINSTANCE WINAPI LoadLibraryA(LPCSTR);
1330HINSTANCE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD);
1331HINSTANCE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD);
1332HINSTANCE WINAPI LoadLibraryW(LPCWSTR);
1333DWORD WINAPI LoadModule(LPCSTR,PVOID);
1334HGLOBAL WINAPI LoadResource(HINSTANCE,HRSRC);
1335HLOCAL WINAPI LocalAlloc(UINT,UINT);
1336UINT WINAPI LocalCompact(UINT);
1337HLOCAL LocalDiscard(HLOCAL);
1338BOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *,LPFILETIME);
1339UINT WINAPI LocalFlags(HLOCAL);
1340HLOCAL WINAPI LocalFree(HLOCAL);
1341HLOCAL WINAPI LocalHandle(LPCVOID);
1342PVOID WINAPI LocalLock(HLOCAL);
1343HLOCAL WINAPI LocalReAlloc(HLOCAL,UINT,UINT);
1344UINT WINAPI LocalShrink(HLOCAL,UINT);
1345UINT WINAPI LocalSize(HLOCAL);
1346BOOL WINAPI LocalUnlock(HLOCAL);
1347BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1348BOOL WINAPI LockFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPOVERLAPPED);
1349PVOID WINAPI LockResource(HGLOBAL);
1350#define LockSegment(w) GlobalFix((HANDLE)(w))
1351BOOL WINAPI LogonUserA(LPSTR,LPSTR,LPSTR,DWORD,DWORD,PHANDLE);
1352BOOL WINAPI LogonUserW(LPWSTR,LPWSTR,LPWSTR,DWORD,DWORD,PHANDLE);
1353BOOL WINAPI LookupAccountNameA(LPCSTR,LPCSTR,PSID,PDWORD,LPSTR,PDWORD,PSID_NAME_USE);
1354BOOL WINAPI LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE);
1355BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,PDWORD,LPSTR,PDWORD,PSID_NAME_USE);
1356BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE);
1357BOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR,LPCSTR,LPSTR,PDWORD,PDWORD);
1358BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR,LPCWSTR,LPWSTR,PDWORD,PDWORD);
1359BOOL WINAPI LookupPrivilegeNameA(LPCSTR,PLUID,LPSTR,PDWORD);
1360BOOL WINAPI LookupPrivilegeNameW(LPCWSTR,PLUID,LPWSTR,PDWORD);
1361BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,PLUID);
1362BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,PLUID);
1363LPSTR WINAPI lstrcatA(LPSTR,LPCSTR);
1364LPWSTR WINAPI lstrcatW(LPWSTR,LPCWSTR);
1365int WINAPI lstrcmpA(LPCSTR,LPCSTR);
1366int WINAPI lstrcmpiA(LPCSTR,LPCSTR);
1367int WINAPI lstrcmpiW( LPCWSTR,LPCWSTR);
1368int WINAPI lstrcmpW(LPCWSTR,LPCWSTR);
1369LPSTR WINAPI lstrcpyA(LPSTR,LPCSTR);
1370LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,int);
1371LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,int);
1372LPWSTR WINAPI lstrcpyW(LPWSTR,LPCWSTR);
1373int WINAPI lstrlenA(LPCSTR);
1374int WINAPI lstrlenW(LPCWSTR);
1375BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD);
1376#define MakeProcInstance(p,i) (p)
1377BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD);
1378VOID WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING);
1379PVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1380PVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,PVOID);
1381BOOL WINAPI MoveFileA(LPCSTR,LPCSTR);
1382BOOL WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD);
1383BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD);
1384BOOL WINAPI MoveFileW(LPCWSTR,LPCWSTR);
1385int WINAPI MulDiv(int,int,int);
1386BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE);
1387BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR,PVOID,BOOL);
1388BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,PVOID,BOOL);
1389BOOL WINAPI ObjectDeleteAuditAlarmA(LPCSTR,PVOID,BOOL);
1390BOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR,PVOID,BOOL);
1391BOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR,PVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL);
1392BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR,PVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL);
1393BOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
1394BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
1395HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR);
1396HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR);
1397HANDLE WINAPI OpenEventA(DWORD,BOOL,LPCSTR);
1398HANDLE WINAPI OpenEventLogA (LPCSTR,LPCSTR);
1399HANDLE WINAPI OpenEventLogW(LPCWSTR,LPCWSTR);
1400HANDLE WINAPI OpenEventW(DWORD,BOOL,LPCWSTR);
1401HFILE WINAPI OpenFile(LPCSTR,LPOFSTRUCT,UINT);
1402HANDLE WINAPI OpenFileMappingA(DWORD,BOOL,LPCSTR);
1403HANDLE WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR);
1404HANDLE WINAPI OpenMutexA(DWORD,BOOL,LPCSTR);
1405HANDLE WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR);
1406HANDLE WINAPI OpenProcess(DWORD,BOOL,DWORD);
1407BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
1408HANDLE WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR);
1409HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
1410BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
1411HANDLE WINAPI OpenWaitableTimerA(DWORD,BOOL,LPCSTR);
1412HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
1413void WINAPI OutputDebugStringA(LPCSTR);
1414void WINAPI OutputDebugStringW(LPCWSTR);
1415BOOL WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD);
1416BOOL WINAPI PostQueuedCompletionStatus(HANDLE,DWORD,DWORD,LPOVERLAPPED);
1417DWORD WINAPI PrepareTape(HANDLE,DWORD,BOOL);
1418BOOL WINAPI PrivilegeCheck (HANDLE,PPRIVILEGE_SET,PBOOL);
1419BOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR,LPCSTR,HANDLE,PPRIVILEGE_SET,BOOL);
1420BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL);
1421BOOL WINAPI PulseEvent(HANDLE);
1422BOOL WINAPI PurgeComm(HANDLE,DWORD);
1423DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD);
1424DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
1425BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER);
1426BOOL WINAPI QueryPerformanceFrequency(PLARGE_INTEGER);
1427DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,DWORD);
1428void WINAPI RaiseException(DWORD,DWORD,DWORD,const DWORD*);
1429BOOL WINAPI ReadDirectoryChangesW(HANDLE,PVOID,DWORD,BOOL,DWORD,PDWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1430BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *);
1431BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *);
1432BOOL WINAPI ReadFile(HANDLE,PVOID,DWORD,PDWORD,LPOVERLAPPED);
1433BOOL WINAPI ReadFileEx(HANDLE,PVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1434BOOL WINAPI ReadProcessMemory(HANDLE,PCVOID,PVOID,DWORD,PDWORD);
1435HANDLE WINAPI RegisterEventSourceA (LPCSTR,LPCSTR);
1436HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR);
1437BOOL WINAPI ReleaseMutex(HANDLE);
1438BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
1439BOOL WINAPI RemoveDirectoryA(LPCSTR);
1440BOOL WINAPI RemoveDirectoryW(LPCWSTR);
1441BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR*,PVOID);
1442BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR*,PVOID);
1443BOOL WINAPI ResetEvent(HANDLE);
1444DWORD WINAPI ResumeThread(HANDLE);
1445BOOL WINAPI RevertToSelf(void);
1446DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
1447DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1448BOOL WINAPI SetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
1449BOOL WINAPI SetCommBreak(HANDLE);
1450BOOL WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD);
1451BOOL WINAPI SetCommMask(HANDLE,DWORD);
1452BOOL WINAPI SetCommState(HANDLE,LPDCB);
1453BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1454BOOL WINAPI SetComputerNameA(LPCSTR);
1455BOOL WINAPI SetComputerNameW(LPCWSTR);
1456BOOL WINAPI SetCurrentDirectoryA(LPCSTR);
1457BOOL WINAPI SetCurrentDirectoryW(LPCWSTR);
1458BOOL WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD);
1459BOOL WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD);
1460BOOL WINAPI SetEndOfFile(HANDLE);
1461BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR);
1462BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
1463UINT WINAPI SetErrorMode(UINT);
1464BOOL WINAPI SetEvent(HANDLE);
1465VOID WINAPI SetFileApisToANSI(void);
1466VOID WINAPI SetFileApisToOEM(void);
1467BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
1468BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
1469DWORD WINAPI SetFilePointer(HANDLE,LONG,PLONG,DWORD);
1470BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1471BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1472BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
1473UINT WINAPI SetHandleCount(UINT);
1474BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD);
1475BOOL WINAPI SetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1476void WINAPI SetLastError(DWORD);
1477void WINAPI SetLastErrorEx(DWORD,DWORD);
1478BOOL WINAPI SetLocalTime(const SYSTEMTIME*);
1479BOOL WINAPI SetMailslotInfo(HANDLE,DWORD);
1480BOOL WINAPI SetNamedPipeHandleState(HANDLE,PDWORD,PDWORD,PDWORD);
1481BOOL WINAPI SetPriorityClass(HANDLE,DWORD);
1482BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR *,PGENERIC_MAPPING,HANDLE);
1483BOOL WINAPI SetProcessAffinityMask(HANDLE,DWORD);
1484BOOL WINAPI SetProcessPriorityBoost(HANDLE,BOOL);
1485BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD);
1486BOOL WINAPI SetProcessWorkingSetSize(HANDLE,DWORD,DWORD);
1487BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
1488BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
1489BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL);
1490BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL);
1491BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
1492BOOL WINAPI SetStdHandle(DWORD,HANDLE);
1493#define SetSwapAreaSize(w) (w)
1494BOOL WINAPI SetSystemPowerState(BOOL,BOOL);
1495BOOL WINAPI SetSystemTime(const SYSTEMTIME*);
1496BOOL WINAPI SetSystemTimeAdjustment(DWORD,BOOL);
1497DWORD WINAPI SetTapeParameters(HANDLE,DWORD,PVOID);
1498DWORD WINAPI SetTapePosition(HANDLE,DWORD,DWORD,DWORD,DWORD,BOOL);
1499DWORD WINAPI SetThreadAffinityMask(HANDLE,DWORD);
1500BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT*);
1501DWORD WINAPI SetThreadIdealProcessor(HANDLE,DWORD);
1502BOOL WINAPI SetThreadPriority(HANDLE,int);
1503BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
1504BOOL WINAPI SetThreadToken (PHANDLE,HANDLE);
1505BOOL WINAPI SetTimeZoneInformation(const TIME_ZONE_INFORMATION *);
1506BOOL WINAPI SetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD);
1507LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
1508BOOL WINAPI SetupComm(HANDLE,DWORD,DWORD);
1509BOOL WINAPI SetVolumeLabelA(LPCSTR,LPCSTR);
1510BOOL WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR);
1511BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,PVOID,BOOL);
1512BOOL WINAPI SignalObjectAndWait(HANDLE,HANDLE,DWORD,BOOL);
1513DWORD WINAPI SizeofResource(HINSTANCE,HRSRC);
1514void WINAPI Sleep(DWORD);
1515DWORD WINAPI SleepEx(DWORD,BOOL);
1516DWORD WINAPI SuspendThread(HANDLE);
1517void WINAPI SwitchToFiber(PVOID);
1518BOOL WINAPI SwitchToThread(void);
1519BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
1520BOOL WINAPI SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME);
1521BOOL WINAPI TerminateProcess(HANDLE,UINT);
1522BOOL WINAPI TerminateThread(HANDLE,DWORD);
1523DWORD WINAPI TlsAlloc(VOID);
1524BOOL WINAPI TlsFree(DWORD);
1525PVOID WINAPI TlsGetValue(DWORD);
1526BOOL WINAPI TlsSetValue(DWORD,PVOID);
1527BOOL WINAPI TransactNamedPipe(HANDLE,PVOID,DWORD,PVOID,DWORD,PDWORD,LPOVERLAPPED);
1528BOOL WINAPI TransmitCommChar(HANDLE,char);
1529BOOL WINAPI TryEnterCriticalSection(LPCRITICAL_SECTION);
1530LONG WINAPI UnhandledExceptionFilter(LPEXCEPTION_POINTERS);
1531BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1532BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
1533#define UnlockResource(h) (h)
1534#define UnlockSegment(w) GlobalUnfix((HANDLE)(w))
1535BOOL WINAPI UnmapViewOfFile(PVOID);
1536BOOL WINAPI UpdateResourceA(HANDLE,LPCSTR,LPCSTR,WORD,PVOID,DWORD);
1537BOOL WINAPI UpdateResourceW(HANDLE,LPCWSTR,LPCWSTR,WORD,PVOID,DWORD);
1538BOOL WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA,DWORD,DWORDLONG);
1539BOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW,DWORD,DWORDLONG);
1540PVOID WINAPI VirtualAlloc(PVOID,DWORD,DWORD,DWORD);
1541PVOID WINAPI VirtualAllocEx(HANDLE,PVOID,DWORD,DWORD,DWORD);
1542BOOL WINAPI VirtualFree(PVOID,DWORD,DWORD);
1543BOOL WINAPI VirtualFreeEx(HANDLE,PVOID,DWORD,DWORD);
1544BOOL WINAPI VirtualLock(PVOID,DWORD);
1545BOOL WINAPI VirtualProtect(PVOID,DWORD,DWORD,PDWORD);
1546BOOL WINAPI VirtualProtectEx(HANDLE,PVOID,DWORD,DWORD,PDWORD);
1547DWORD WINAPI VirtualQuery(LPCVOID,PMEMORY_BASIC_INFORMATION,DWORD);
1548DWORD WINAPI VirtualQueryEx(HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,DWORD);
1549BOOL WINAPI VirtualUnlock(PVOID,DWORD);
1550BOOL WINAPI WaitCommEvent(HANDLE,PDWORD,LPOVERLAPPED);
1551BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
1552DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,BOOL,DWORD);
1553DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL);
1554DWORD WINAPI WaitForSingleObject(HANDLE,DWORD);
1555DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
1556BOOL WINAPI WaitNamedPipeA(LPCSTR,DWORD);
1557BOOL WINAPI WaitNamedPipeW(LPCWSTR,DWORD);
1558BOOL WINAPI WinLoadTrustProvider(GUID*);
1559BOOL WINAPI WriteFile(HANDLE,PCVOID,DWORD,PDWORD,LPOVERLAPPED);
1560BOOL WINAPI WriteFileEx(HANDLE,PCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1561BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
1562BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);
1563BOOL WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
1564BOOL WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
1565BOOL WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,PVOID,UINT,LPCSTR);
1566BOOL WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,PVOID,UINT,LPCWSTR);
1567BOOL WINAPI WriteProcessMemory(HANDLE,PVOID,PVOID,DWORD,PDWORD);
1568BOOL WINAPI WriteProfileSectionA(LPCSTR,LPCSTR);
1569BOOL WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR);
1570BOOL WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR);
1571BOOL WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR);
1572DWORD WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL);
1573#define Yield()
1574
1575#ifdef UNICODE
1576typedef STARTUPINFOW STARTUPINFO,*LPSTARTUPINFO;
1577typedef WIN32_FIND_DATAW WIN32_FIND_DATA,*LPWIN32_FIND_DATA;
1578typedef HW_PROFILE_INFOW HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
1579#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
1580#define AddAtom AddAtomW
1581#define BackupEventLog BackupEventLogW
1582#define BeginUpdateResource BeginUpdateResourceW
1583#define BuildCommDCB BuildCommDCBW
1584#define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW
1585#define CallNamedPipe CallNamedPipeW
1586#define ClearEventLog ClearEventLogW
1587#define CommConfigDialog CommConfigDialogW
1588#define CopyFile CopyFileW
1589#define CopyFileEx CopyFileExW
1590#define CreateDirectory CreateDirectoryW
1591#define CreateDirectoryEx CreateDirectoryExW
1592#define CreateEvent CreateEventW
1593#define CreateFile CreateFileW
1594#define CreateFileMapping CreateFileMappingW
1595#define CreateHardLink CreateHardLinkW
1596#define CreateMailslot CreateMailslotW
1597#define CreateMutex CreateMutexW
1598#define CreateNamedPipe CreateNamedPipeW
1599#define CreateProcess CreateProcessW
1600#define CreateProcessAsUser CreateProcessAsUserW
1601#define CreateSemaphore CreateSemaphoreW
1602#define CreateWaitableTimer CreateWaitableTimerW
1603#define DefineDosDevice DefineDosDeviceW
1604#define DeleteFile DeleteFileW
1605#define EndUpdateResource EndUpdateResourceW
1606#define EnumResourceLanguages EnumResourceLanguagesW
1607#define EnumResourceNames EnumResourceNamesW
1608#define EnumResourceTypes EnumResourceTypesW
1609#define ExpandEnvironmentStrings ExpandEnvironmentStringsW
1610#define FatalAppExit FatalAppExitW
1611#define FindAtom FindAtomW
1612#define FindFirstChangeNotification FindFirstChangeNotificationW
1613#define FindFirstFile FindFirstFileW
1614#define FindFirstFileEx FindFirstFileExW
1615#define FindNextFile FindNextFileW
1616#define FindResource FindResourceW
1617#define FindResourceEx FindResourceExW
1618#define FormatMessage FormatMessageW
1619#define FreeEnvironmentStrings FreeEnvironmentStringsW
1620#define GetAtomName GetAtomNameW
1621#define GetBinaryType GetBinaryTypeW
1622#define GetCommandLine GetCommandLineW
1623#define GetCompressedFileSize GetCompressedFileSizeW
1624#define GetComputerName GetComputerNameW
1625#define GetCurrentDirectory GetCurrentDirectoryW
1626#define GetDefaultCommConfig GetDefaultCommConfigW
1627#define GetDiskFreeSpace GetDiskFreeSpaceW
1628#define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
1629#define GetDriveType GetDriveTypeW
1630#define GetEnvironmentStrings GetEnvironmentStringsW
1631#define GetEnvironmentVariable GetEnvironmentVariableW
1632#define GetFileAttributes GetFileAttributesW
1633#define GetFileSecurity GetFileSecurityW
1634#define GetFileAttributesEx GetFileAttributesExW
1635#define GetFullPathName GetFullPathNameW
1636#define GetLogicalDriveStrings GetLogicalDriveStringsW
1637#define GetLongPathName GetLongPathNameW
1638#define GetModuleFileName GetModuleFileNameW
1639#define GetModuleHandle GetModuleHandleW
1640#define GetNamedPipeHandleState GetNamedPipeHandleStateW
1641#define GetPrivateProfileInt GetPrivateProfileIntW
1642#define GetPrivateProfileSection GetPrivateProfileSectionW
1643#define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW
1644#define GetPrivateProfileString GetPrivateProfileStringW
1645#define GetPrivateProfileStruct GetPrivateProfileStructW
1646#define GetProfileInt GetProfileIntW
1647#define GetProfileSection GetProfileSectionW
1648#define GetProfileString GetProfileStringW
1649#define GetShortPathName GetShortPathNameW
1650#define GetStartupInfo GetStartupInfoW
1651#define GetSystemDirectory GetSystemDirectoryW
1652#define GetTempFileName GetTempFileNameW
1653#define GetTempPath GetTempPathW
1654#define GetUserName GetUserNameW
1655#define GetVersionEx GetVersionExW
1656#define GetVolumeInformation GetVolumeInformationW
1657#define GetWindowsDirectory GetWindowsDirectoryW
1658#define GlobalAddAtom GlobalAddAtomW
1659#define GlobalFindAtom GlobalFindAtomW
1660#define GlobalGetAtomName GlobalGetAtomNameW
1661#define IsBadStringPtr IsBadStringPtrW
1662#define LoadLibrary LoadLibraryW
1663#define LoadLibraryEx LoadLibraryExW
1664#define LogonUser LogonUserW
1665#define LookupAccountName LookupAccountNameW
1666#define LookupAccountSid LookupAccountSidW
1667#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
1668#define LookupPrivilegeName LookupPrivilegeNameW
1669#define LookupPrivilegeValue LookupPrivilegeValueW
1670#define lstrcat lstrcatW
1671#define lstrcmp lstrcmpW
1672#define lstrcmpi lstrcmpiW
1673#define lstrcpy lstrcpyW
1674#define lstrcpyn lstrcpynW
1675#define lstrlen lstrlenW
1676#define MoveFile MoveFileW
1677#define MoveFileEx MoveFileExW
1678#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
1679#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
1680#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
1681#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
1682#define OpenBackupEventLog OpenBackupEventLogW
1683#define OpenEvent OpenEventW
1684#define OpenEventLog OpenEventLogW
1685#define OpenFileMapping OpenFileMappingW
1686#define OpenMutex OpenMutexW
1687#define OpenSemaphore OpenSemaphoreW
1688#define OutputDebugString OutputDebugStringW
1689#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
1690#define QueryDosDevice QueryDosDeviceW
1691#define ReadEventLog ReadEventLogW
1692#define RegisterEventSource RegisterEventSourceW
1693#define RemoveDirectory RemoveDirectoryW
1694#define ReportEvent ReportEventW
1695#define SearchPath SearchPathW
1696#define SetComputerName SetComputerNameW
1697#define SetCurrentDirectory SetCurrentDirectoryW
1698#define SetDefaultCommConfig SetDefaultCommConfigW
1699#define SetEnvironmentVariable SetEnvironmentVariableW
1700#define SetFileAttributes SetFileAttributesW
1701#define SetFileSecurity SetFileSecurityW
1702#define SetVolumeLabel SetVolumeLabelW
1703#define UpdateResource UpdateResourceW
1704#define VerifyVersionInfo VerifyVersionInfoW
1705#define WaitNamedPipe WaitNamedPipeW
1706#define WritePrivateProfileSection WritePrivateProfileSectionW
1707#define WritePrivateProfileString WritePrivateProfileStringW
1708#define WritePrivateProfileStruct WritePrivateProfileStructW
1709#define WriteProfileSection WriteProfileSectionW
1710#define WriteProfileString WriteProfileStringW
1711#else
1712typedef STARTUPINFOA STARTUPINFO,*LPSTARTUPINFO;
1713typedef WIN32_FIND_DATAA WIN32_FIND_DATA,*LPWIN32_FIND_DATA;
1714typedef HW_PROFILE_INFOA HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
1715#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
1716#define AddAtom AddAtomA
1717#define BackupEventLog BackupEventLogA
1718#define BeginUpdateResource BeginUpdateResourceA
1719#define BuildCommDCB BuildCommDCBA
1720#define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA
1721#define CallNamedPipe CallNamedPipeA
1722#define ClearEventLog ClearEventLogA
1723#define CommConfigDialog CommConfigDialogA
1724#define CopyFile CopyFileA
1725#define CopyFileEx CopyFileExA
1726#define CreateDirectory CreateDirectoryA
1727#define CreateDirectoryEx CreateDirectoryExA
1728#define CreateEvent CreateEventA
1729#define CreateFile CreateFileA
1730#define CreateFileMapping CreateFileMappingA
1731#define CreateHardLink CreateHardLinkA
1732#define CreateMailslot CreateMailslotA
1733#define CreateMutex CreateMutexA
1734#define CreateNamedPipe CreateNamedPipeA
1735#define CreateProcess CreateProcessA
1736#define CreateProcessAsUser CreateProcessAsUserA
1737#define CreateSemaphore CreateSemaphoreA
1738#define CreateWaitableTimer CreateWaitableTimerA
1739#define DefineDosDevice DefineDosDeviceA
1740#define DeleteFile DeleteFileA
1741#define EndUpdateResource EndUpdateResourceA
1742#define EnumResourceLanguages EnumResourceLanguagesA
1743#define EnumResourceNames EnumResourceNamesA
1744#define EnumResourceTypes EnumResourceTypesA
1745#define ExpandEnvironmentStrings ExpandEnvironmentStringsA
1746#define FatalAppExit FatalAppExitA
1747#define FindAtom FindAtomA
1748#define FindFirstChangeNotification FindFirstChangeNotificationA
1749#define FindFirstFile FindFirstFileA
1750#define FindFirstFileEx FindFirstFileExW
1751#define FindNextFile FindNextFileA
1752#define FindResource FindResourceA
1753#define FindResourceEx FindResourceExA
1754#define FormatMessage FormatMessageA
1755#define FreeEnvironmentStrings FreeEnvironmentStringsA
1756#define GetAtomName GetAtomNameA
1757#define GetBinaryType GetBinaryTypeA
1758#define GetCommandLine GetCommandLineA
1759#define GetComputerName GetComputerNameA
1760#define GetCompressedFileSize GetCompressedFileSizeA
1761#define GetCurrentDirectory GetCurrentDirectoryA
1762#define GetDefaultCommConfig GetDefaultCommConfigA
1763#define GetDiskFreeSpace GetDiskFreeSpaceA
1764#define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
1765#define GetDriveType GetDriveTypeA
1766#define GetEnvironmentStringsA GetEnvironmentStrings
1767#define GetEnvironmentVariable GetEnvironmentVariableA
1768#define GetFileAttributes GetFileAttributesA
1769#define GetFileSecurity GetFileSecurityA
1770#define GetFileAttributesEx GetFileAttributesExA
1771#define GetFullPathName GetFullPathNameA
1772#define GetLogicalDriveStrings GetLogicalDriveStringsA
1773#define GetLongPathName GetLongPathNameA
1774#define GetNamedPipeHandleState GetNamedPipeHandleStateA
1775#define GetModuleHandle GetModuleHandleA
1776#define GetModuleFileName GetModuleFileNameA
1777#define GetPrivateProfileInt GetPrivateProfileIntA
1778#define GetPrivateProfileSection GetPrivateProfileSectionA
1779#define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA
1780#define GetPrivateProfileString GetPrivateProfileStringA
1781#define GetPrivateProfileStruct GetPrivateProfileStructA
1782#define GetProfileInt GetProfileIntA
1783#define GetProfileSection GetProfileSectionA
1784#define GetProfileString GetProfileStringA
1785#define GetShortPathName GetShortPathNameA
1786#define GetStartupInfo GetStartupInfoA
1787#define GetSystemDirectory GetSystemDirectoryA
1788#define GetTempFileName GetTempFileNameA
1789#define GetTempPath GetTempPathA
1790#define GetUserName GetUserNameA
1791#define GetVersionEx GetVersionExA
1792#define GetVolumeInformation GetVolumeInformationA
1793#define GetWindowsDirectory GetWindowsDirectoryA
1794#define GlobalAddAtom GlobalAddAtomA
1795#define GlobalFindAtom GlobalFindAtomA
1796#define GlobalGetAtomName GlobalGetAtomNameA
1797#define IsBadStringPtr IsBadStringPtrA
1798#define LoadLibrary LoadLibraryA
1799#define LoadLibraryEx LoadLibraryExA
1800#define LogonUser LogonUserA
1801#define LookupAccountName LookupAccountNameA
1802#define LookupAccountSid LookupAccountSidA
1803#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
1804#define LookupPrivilegeName LookupPrivilegeNameA
1805#define LookupPrivilegeValue LookupPrivilegeValueA
1806#define lstrcat lstrcatA
1807#define lstrcmp lstrcmpA
1808#define lstrcmpi lstrcmpiA
1809#define lstrcpy lstrcpyA
1810#define lstrcpyn lstrcpynA
1811#define lstrlen lstrlenA
1812#define MoveFile MoveFileA
1813#define MoveFileEx MoveFileExA
1814#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
1815#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
1816#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
1817#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
1818#define OpenBackupEventLog OpenBackupEventLogA
1819#define OpenEvent OpenEventA
1820#define OpenEventLog OpenEventLogA
1821#define OpenFileMapping OpenFileMappingA
1822#define OpenMutex OpenMutexA
1823#define OpenSemaphore OpenSemaphoreA
1824#define OutputDebugString OutputDebugStringA
1825#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
1826#define QueryDosDevice QueryDosDeviceA
1827#define ReadEventLog ReadEventLogA
1828#define RegisterEventSource RegisterEventSourceA
1829#define RemoveDirectory RemoveDirectoryA
1830#define ReportEvent ReportEventA
1831#define SearchPath SearchPathA
1832#define SetComputerName SetComputerNameA
1833#define SetCurrentDirectory SetCurrentDirectoryA
1834#define SetDefaultCommConfig SetDefaultCommConfigA
1835#define SetEnvironmentVariable SetEnvironmentVariableA
1836#define SetFileAttributes SetFileAttributesA
1837#define SetFileSecurity SetFileSecurityA
1838#define SetVolumeLabel SetVolumeLabelA
1839#define UpdateResource UpdateResourceA
1840#define VerifyVersionInfo VerifyVersionInfoA
1841#define WaitNamedPipe WaitNamedPipeA
1842#define WritePrivateProfileSection WritePrivateProfileSectionA
1843#define WritePrivateProfileString WritePrivateProfileStringA
1844#define WritePrivateProfileStruct WritePrivateProfileStructA
1845#define WriteProfileSection WriteProfileSectionA
1846#define WriteProfileString WriteProfileStringA
1847#endif
1848#endif
1849#ifdef __cplusplus
1850}
1851#endif
1852#endif /* _WINBASE_H */
win32/include/winapi/wincon.h+207−0
@@ -0,0 +1,207 @@
1#ifndef _WINCON_H
2#define _WINCON_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12#define FOREGROUND_BLUE 1
13#define FOREGROUND_GREEN 2
14#define FOREGROUND_RED 4
15#define FOREGROUND_INTENSITY 8
16#define BACKGROUND_BLUE 16
17#define BACKGROUND_GREEN 32
18#define BACKGROUND_RED 64
19#define BACKGROUND_INTENSITY 128
20#define CTRL_C_EVENT 0
21#define CTRL_BREAK_EVENT 1
22#define CTRL_CLOSE_EVENT 2
23#define CTRL_LOGOFF_EVENT 5
24#define CTRL_SHUTDOWN_EVENT 6
25#define ENABLE_LINE_INPUT 2
26#define ENABLE_ECHO_INPUT 4
27#define ENABLE_PROCESSED_INPUT 1
28#define ENABLE_WINDOW_INPUT 8
29#define ENABLE_MOUSE_INPUT 16
30#define ENABLE_PROCESSED_OUTPUT 1
31#define ENABLE_WRAP_AT_EOL_OUTPUT 2
32#define KEY_EVENT 1
33#define MOUSE_EVENT 2
34#define WINDOW_BUFFER_SIZE_EVENT 4
35#define MENU_EVENT 8
36#define FOCUS_EVENT 16
37#define CAPSLOCK_ON 128
38#define ENHANCED_KEY 256
39#define RIGHT_ALT_PRESSED 1
40#define LEFT_ALT_PRESSED 2
41#define RIGHT_CTRL_PRESSED 4
42#define LEFT_CTRL_PRESSED 8
43#define SHIFT_PRESSED 16
44#define NUMLOCK_ON 32
45#define SCROLLLOCK_ON 64
46#define FROM_LEFT_1ST_BUTTON_PRESSED 1
47#define RIGHTMOST_BUTTON_PRESSED 2
48#define FROM_LEFT_2ND_BUTTON_PRESSED 4
49#define FROM_LEFT_3RD_BUTTON_PRESSED 8
50#define FROM_LEFT_4TH_BUTTON_PRESSED 16
51#define MOUSE_MOVED 1
52#define DOUBLE_CLICK 2
53#define MOUSE_WHEELED 4
54
55typedef struct _CHAR_INFO {
56 union {
57 WCHAR UnicodeChar;
58 CHAR AsciiChar;
59 } Char;
60 WORD Attributes;
61} CHAR_INFO,*PCHAR_INFO;
62typedef struct _SMALL_RECT {
63 SHORT Left;
64 SHORT Top;
65 SHORT Right;
66 SHORT Bottom;
67} SMALL_RECT,*PSMALL_RECT;
68typedef struct _CONSOLE_CURSOR_INFO {
69 DWORD dwSize;
70 BOOL bVisible;
71} CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
72typedef struct _COORD {
73 SHORT X;
74 SHORT Y;
75} COORD;
76typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
77 COORD dwSize;
78 COORD dwCursorPosition;
79 WORD wAttributes;
80 SMALL_RECT srWindow;
81 COORD dwMaximumWindowSize;
82} CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
83typedef BOOL(CALLBACK *PHANDLER_ROUTINE)(DWORD);
84typedef struct _KEY_EVENT_RECORD {
85 BOOL bKeyDown;
86 WORD wRepeatCount;
87 WORD wVirtualKeyCode;
88 WORD wVirtualScanCode;
89 union {
90 WCHAR UnicodeChar;
91 CHAR AsciiChar;
92 } uChar;
93 DWORD dwControlKeyState;
94}
95#ifdef __GNUC__
96/* gcc's alignment is not what win32 expects */
97 PACKED
98#endif
99KEY_EVENT_RECORD;
100
101typedef struct _MOUSE_EVENT_RECORD {
102 COORD dwMousePosition;
103 DWORD dwButtonState;
104 DWORD dwControlKeyState;
105 DWORD dwEventFlags;
106} MOUSE_EVENT_RECORD;
107typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD;
108typedef struct _MENU_EVENT_RECORD { UINT dwCommandId; } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
109typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD;
110typedef struct _INPUT_RECORD {
111 WORD EventType;
112 union {
113 KEY_EVENT_RECORD KeyEvent;
114 MOUSE_EVENT_RECORD MouseEvent;
115 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
116 MENU_EVENT_RECORD MenuEvent;
117 FOCUS_EVENT_RECORD FocusEvent;
118 } Event;
119} INPUT_RECORD,*PINPUT_RECORD;
120
121BOOL WINAPI AllocConsole(void);
122HANDLE WINAPI CreateConsoleScreenBuffer(DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,PVOID);
123BOOL WINAPI FillConsoleOutputAttribute(HANDLE,WORD,DWORD,COORD,PDWORD);
124BOOL WINAPI FillConsoleOutputCharacterA(HANDLE,CHAR,DWORD,COORD,PDWORD);
125BOOL WINAPI FillConsoleOutputCharacterW(HANDLE,WCHAR,DWORD,COORD,PDWORD);
126BOOL WINAPI FlushConsoleInputBuffer(HANDLE);
127BOOL WINAPI FreeConsole(void);
128BOOL WINAPI GenerateConsoleCtrlEvent(DWORD,DWORD);
129UINT WINAPI GetConsoleCP(void);
130BOOL WINAPI GetConsoleCursorInfo(HANDLE,PCONSOLE_CURSOR_INFO);
131BOOL WINAPI GetConsoleMode(HANDLE,PDWORD);
132UINT WINAPI GetConsoleOutputCP(void);
133BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE,PCONSOLE_SCREEN_BUFFER_INFO);
134DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD);
135DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD);
136COORD WINAPI GetLargestConsoleWindowSize(HANDLE);
137BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,PDWORD);
138BOOL WINAPI GetNumberOfConsoleMouseButtons(PDWORD);
139BOOL WINAPI PeekConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
140BOOL WINAPI PeekConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
141BOOL WINAPI ReadConsoleA(HANDLE,PVOID,DWORD,PDWORD,PVOID);
142BOOL WINAPI ReadConsoleW(HANDLE,PVOID,DWORD,PDWORD,PVOID);
143BOOL WINAPI ReadConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
144BOOL WINAPI ReadConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
145BOOL WINAPI ReadConsoleOutputAttribute(HANDLE,LPWORD,DWORD,COORD,LPDWORD);
146BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,COORD,PDWORD);
147BOOL WINAPI ReadConsoleOutputCharacterW(HANDLE,LPWSTR,DWORD,COORD,PDWORD);
148BOOL WINAPI ReadConsoleOutputA(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT);
149BOOL WINAPI ReadConsoleOutputW(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT);
150BOOL WINAPI ScrollConsoleScreenBufferA(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*);
151BOOL WINAPI ScrollConsoleScreenBufferW(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*);
152BOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE);
153BOOL WINAPI SetConsoleCP(UINT);
154BOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE,BOOL);
155BOOL WINAPI SetConsoleCursorInfo(HANDLE,const CONSOLE_CURSOR_INFO*);
156BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD);
157BOOL WINAPI SetConsoleMode(HANDLE,DWORD);
158BOOL WINAPI SetConsoleOutputCP(UINT);
159BOOL WINAPI SetConsoleScreenBufferSize(HANDLE,COORD);
160BOOL WINAPI SetConsoleTextAttribute(HANDLE,WORD);
161BOOL WINAPI SetConsoleTitleA(LPCSTR);
162BOOL WINAPI SetConsoleTitleW(LPCWSTR);
163BOOL WINAPI SetConsoleWindowInfo(HANDLE,BOOL,const SMALL_RECT*);
164BOOL WINAPI WriteConsoleA(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
165BOOL WINAPI WriteConsoleW(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
166BOOL WINAPI WriteConsoleInputA(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
167BOOL WINAPI WriteConsoleInputW(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
168BOOL WINAPI WriteConsoleOutputA(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
169BOOL WINAPI WriteConsoleOutputW(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
170BOOL WINAPI WriteConsoleOutputAttribute(HANDLE,const WORD*,DWORD,COORD,PDWORD);
171BOOL WINAPI WriteConsoleOutputCharacterA(HANDLE,LPCSTR,DWORD,COORD,PDWORD);
172BOOL WINAPI WriteConsoleOutputCharacterW(HANDLE,LPCWSTR,DWORD,COORD,PDWORD);
173
174#ifdef UNICODE
175#define FillConsoleOutputCharacter FillConsoleOutputCharacterW
176#define GetConsoleTitle GetConsoleTitleW
177#define PeekConsoleInput PeekConsoleInputW
178#define ReadConsole ReadConsoleW
179#define ReadConsoleInput ReadConsoleInputW
180#define ReadConsoleOutput ReadConsoleOutputW
181#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW
182#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW
183#define SetConsoleTitle SetConsoleTitleW
184#define WriteConsole WriteConsoleW
185#define WriteConsoleInput WriteConsoleInputW
186#define WriteConsoleOutput WriteConsoleOutputW
187#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW
188#else
189#define FillConsoleOutputCharacter FillConsoleOutputCharacterA
190#define GetConsoleTitle GetConsoleTitleA
191#define PeekConsoleInput PeekConsoleInputA
192#define ReadConsole ReadConsoleA
193#define ReadConsoleInput ReadConsoleInputA
194#define ReadConsoleOutput ReadConsoleOutputA
195#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA
196#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA
197#define SetConsoleTitle SetConsoleTitleA
198#define WriteConsole WriteConsoleA
199#define WriteConsoleInput WriteConsoleInputA
200#define WriteConsoleOutput WriteConsoleOutputA
201#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA
202#endif
203
204#ifdef __cplusplus
205}
206#endif
207#endif
win32/include/winapi/windef.h+240−0
@@ -0,0 +1,240 @@
1#ifndef _WINDEF_H
2#define _WINDEF_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#ifndef WINVER
12#define WINVER 0x0400
13#endif
14#ifndef _WIN32_WINNT
15#define _WIN32_WINNT WINVER
16#endif
17#ifndef WIN32
18#define WIN32
19#endif
20#ifndef _WIN32
21#define _WIN32
22#endif
23#define FAR
24#define far
25#define NEAR
26#define near
27#ifndef CONST
28#define CONST const
29#endif
30#undef MAX_PATH
31#define MAX_PATH 260
32
33#ifndef NULL
34#ifdef __cplusplus
35#define NULL 0
36#else
37#define NULL ((void*)0)
38#endif
39#endif
40#ifndef FALSE
41#define FALSE 0
42#endif
43#ifndef TRUE
44#define TRUE 1
45#endif
46#define IN
47#define OUT
48#ifndef OPTIONAL
49#define OPTIONAL
50#endif
51
52#ifdef __GNUC__
53#define PACKED __attribute__((packed))
54#ifndef _stdcall
55#define _stdcall __attribute__((stdcall))
56#endif
57#ifndef __stdcall
58#define __stdcall __attribute__((stdcall))
59#endif
60#ifndef _cdecl
61#define _cdecl __attribute__((cdecl))
62#endif
63#ifndef __cdecl
64#define __cdecl __attribute__((cdecl))
65#endif
66#ifndef __declspec
67#define __declspec(e) __attribute__((e))
68#endif
69#ifndef _declspec
70#define _declspec(e) __attribute__((e))
71#endif
72#else
73#define PACKED
74#define _cdecl
75#define __cdecl
76#endif
77
78#undef pascal
79#undef _pascal
80#undef __pascal
81#define pascal __stdcall
82#define _pascal __stdcall
83#define __pascal __stdcall
84#define PASCAL _pascal
85#define CDECL _cdecl
86#define STDCALL __stdcall
87#define WINAPI __stdcall
88#define WINAPIV __cdecl
89#define APIENTRY __stdcall
90#define CALLBACK __stdcall
91#define APIPRIVATE __stdcall
92
93#define DECLSPEC_IMPORT __declspec(dllimport)
94#define DECLSPEC_EXPORT __declspec(dllexport)
95#ifdef __GNUC__
96#define DECLSPEC_NORETURN __declspec(noreturn)
97#define DECLARE_STDCALL_P( type ) __stdcall type
98#elif defined(__WATCOMC__)
99#define DECLSPEC_NORETURN
100#define DECLARE_STDCALL_P( type ) type __stdcall
101#endif /* __GNUC__/__WATCOMC__ */
102#define MAKEWORD(a,b) ((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))
103#define MAKELONG(a,b) ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
104#define LOWORD(l) ((WORD)((DWORD)(l)))
105#define HIWORD(l) ((WORD)(((DWORD)(l)>>16)&0xFFFF))
106#define LOBYTE(w) ((BYTE)(w))
107#define HIBYTE(w) ((BYTE)(((WORD)(w)>>8)&0xFF))
108
109#ifndef _export
110#define _export
111#endif
112#ifndef __export
113#define __export
114#endif
115
116#ifndef NOMINMAX
117#ifndef max
118#define max(a,b) ((a)>(b)?(a):(b))
119#endif
120#ifndef min
121#define min(a,b) ((a)<(b)?(a):(b))
122#endif
123#endif
124
125#define UNREFERENCED_PARAMETER(P) {(P)=(P);}
126#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
127#define DBG_UNREFERENCED_PARAMETER(P)
128#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
129
130typedef unsigned long DWORD;
131typedef int WINBOOL,*PWINBOOL,*LPWINBOOL;
132/* FIXME: Is there a good solution to this? */
133#ifndef XFree86Server
134#ifndef __OBJC__
135typedef WINBOOL BOOL;
136#else
137#define BOOL WINBOOL
138#endif
139typedef unsigned char BYTE;
140#endif /* ndef XFree86Server */
141typedef BOOL *PBOOL,*LPBOOL;
142typedef unsigned short WORD;
143typedef float FLOAT;
144typedef FLOAT *PFLOAT;
145typedef BYTE *PBYTE,*LPBYTE;
146typedef int *PINT,*LPINT;
147typedef WORD *PWORD,*LPWORD;
148typedef long *LPLONG;
149typedef DWORD *PDWORD,*LPDWORD;
150typedef void *PVOID,*LPVOID;
151typedef CONST void *PCVOID,*LPCVOID;
152typedef int INT;
153typedef unsigned int UINT,*PUINT,*LPUINT;
154
155#include <winnt.h>
156
157typedef UINT WPARAM;
158typedef LONG LPARAM;
159typedef LONG LRESULT;
160#ifndef _HRESULT_DEFINED
161typedef LONG HRESULT;
162#define _HRESULT_DEFINED
163#endif
164#ifndef XFree86Server
165typedef WORD ATOM;
166#endif /* XFree86Server */
167typedef HANDLE HGLOBAL;
168typedef HANDLE HLOCAL;
169typedef HANDLE GLOBALHANDLE;
170typedef HANDLE LOCALHANDLE;
171typedef void *HGDIOBJ;
172DECLARE_HANDLE(HACCEL);
173DECLARE_HANDLE(HBITMAP);
174DECLARE_HANDLE(HBRUSH);
175DECLARE_HANDLE(HCOLORSPACE);
176DECLARE_HANDLE(HDC);
177DECLARE_HANDLE(HGLRC);
178DECLARE_HANDLE(HDESK);
179DECLARE_HANDLE(HENHMETAFILE);
180DECLARE_HANDLE(HFONT);
181DECLARE_HANDLE(HICON);
182DECLARE_HANDLE(HKEY);
183/* FIXME: How to handle these. SM_CMONITORS etc in winuser.h also. */
184/* #if (WINVER >= 0x0500) */
185DECLARE_HANDLE(HMONITOR);
186#define HMONITOR_DECLARED 1
187DECLARE_HANDLE(HTERMINAL);
188DECLARE_HANDLE(HWINEVENTHOOK);
189/* #endif */
190typedef HKEY *PHKEY;
191DECLARE_HANDLE(HMENU);
192DECLARE_HANDLE(HMETAFILE);
193DECLARE_HANDLE(HINSTANCE);
194typedef HINSTANCE HMODULE;
195DECLARE_HANDLE(HPALETTE);
196DECLARE_HANDLE(HPEN);
197DECLARE_HANDLE(HRGN);
198DECLARE_HANDLE(HRSRC);
199DECLARE_HANDLE(HSTR);
200DECLARE_HANDLE(HTASK);
201DECLARE_HANDLE(HWND);
202DECLARE_HANDLE(HWINSTA);
203DECLARE_HANDLE(HKL);
204typedef int HFILE;
205typedef HICON HCURSOR;
206typedef DWORD COLORREF;
207typedef int (WINAPI *FARPROC)();
208typedef int (WINAPI *NEARPROC)();
209typedef int (WINAPI *PROC)();
210typedef struct tagRECT {
211 LONG left;
212 LONG top;
213 LONG right;
214 LONG bottom;
215} RECT,*PRECT,*LPRECT;
216typedef const RECT *LPCRECT;
217typedef struct tagRECTL {
218 LONG left;
219 LONG top;
220 LONG right;
221 LONG bottom;
222} RECTL,*PRECTL,*LPRECTL;
223typedef const RECTL *LPCRECTL;
224typedef struct tagPOINT {
225 LONG x;
226 LONG y;
227} POINT,POINTL,*PPOINT,*LPPOINT,*PPOINTL,*LPPOINTL;
228typedef struct tagSIZE {
229 LONG cx;
230 LONG cy;
231} SIZE,SIZEL,*PSIZE,*LPSIZE,*PSIZEL,*LPSIZEL;
232typedef struct tagPOINTS {
233 SHORT x;
234 SHORT y;
235} POINTS,*PPOINTS,*LPPOINTS;
236
237#ifdef __cplusplus
238}
239#endif
240#endif
win32/include/winapi/windows.h+176−0
@@ -0,0 +1,176 @@
1/*
2 windows.h - main header file for the Win32 API
3
4 Written by Anders Norlander <anorland@hem2.passagen.se>
5
6 This file is part of a free library for the Win32 API.
7
8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
12*/
13#ifndef _WINDOWS_H
14#define _WINDOWS_H
15#if __GNUC__ >=3
16#pragma GCC system_header
17#endif
18
19/* translate GCC target defines to MS equivalents. Keep this synchronized
20 with winnt.h. */
21#if defined(__i686__) && !defined(_M_IX86)
22#define _M_IX86 600
23#elif defined(__i586__) && !defined(_M_IX86)
24#define _M_IX86 500
25#elif defined(__i486__) && !defined(_M_IX86)
26#define _M_IX86 400
27#elif defined(__i386__) && !defined(_M_IX86)
28#define _M_IX86 300
29#endif
30#if defined(_M_IX86) && !defined(_X86_)
31#define _X86_
32#elif defined(_M_ALPHA) && !defined(_ALPHA_)
33#define _ALPHA_
34#elif defined(_M_PPC) && !defined(_PPC_)
35#define _PPC_
36#elif defined(_M_MRX000) && !defined(_MIPS_)
37#define _MIPS_
38#elif defined(_M_M68K) && !defined(_68K_)
39#define _68K_
40#endif
41
42#ifdef RC_INVOKED
43/* winresrc.h includes the necessary headers */
44#include <winresrc.h>
45#else
46
47#ifdef __GNUC__
48#ifndef NONAMELESSUNION
49#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
50#define _ANONYMOUS_UNION __extension__
51#define _ANONYMOUS_STRUCT __extension__
52#else
53#if defined(__cplusplus)
54#define _ANONYMOUS_UNION __extension__
55#endif /* __cplusplus */
56#endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */
57#endif /* NONAMELESSUNION */
58#elif defined(__WATCOMC__)
59#define _ANONYMOUS_UNION
60#define _ANONYMOUS_STRUCT
61#endif /* __GNUC__/__WATCOMC__ */
62
63#ifndef _ANONYMOUS_UNION
64#define _ANONYMOUS_UNION
65#define _UNION_NAME(x) x
66#define DUMMYUNIONNAME u
67#define DUMMYUNIONNAME2 u2
68#define DUMMYUNIONNAME3 u3
69#define DUMMYUNIONNAME4 u4
70#define DUMMYUNIONNAME5 u5
71#define DUMMYUNIONNAME6 u6
72#define DUMMYUNIONNAME7 u7
73#define DUMMYUNIONNAME8 u8
74#else
75#define _UNION_NAME(x)
76#define DUMMYUNIONNAME
77#define DUMMYUNIONNAME2
78#define DUMMYUNIONNAME3
79#define DUMMYUNIONNAME4
80#define DUMMYUNIONNAME5
81#define DUMMYUNIONNAME6
82#define DUMMYUNIONNAME7
83#define DUMMYUNIONNAME8
84#endif
85#ifndef _ANONYMOUS_STRUCT
86#define _ANONYMOUS_STRUCT
87#define _STRUCT_NAME(x) x
88#define DUMMYSTRUCTNAME s
89#define DUMMYSTRUCTNAME2 s2
90#define DUMMYSTRUCTNAME3 s3
91#else
92#define _STRUCT_NAME(x)
93#define DUMMYSTRUCTNAME
94#define DUMMYSTRUCTNAME2
95#define DUMMYSTRUCTNAME3
96#endif
97
98#ifndef NO_STRICT
99#ifndef STRICT
100#define STRICT 1
101#endif
102#endif
103
104#include <stdarg.h>
105#include <windef.h>
106#include <wincon.h>
107#include <basetyps.h>
108#include <excpt.h>
109#include <winbase.h>
110#ifndef _WINGDI_H
111#include <wingdi.h>
112#endif
113#ifndef _WINUSER_H
114#include <winuser.h>
115#endif
116#ifndef _WINNLS_H
117#include <winnls.h>
118#endif
119#ifndef _WINVER_H
120#include <winver.h>
121#endif
122#ifndef _WINNETWK_H
123#include <winnetwk.h>
124#endif
125#ifndef _WINREG_H
126#include <winreg.h>
127#endif
128#ifndef _WINSVC_H
129#include <winsvc.h>
130#endif
131
132#ifndef WIN32_LEAN_AND_MEAN
133#include <commdlg.h>
134#include <cderr.h>
135#include <dde.h>
136#include <ddeml.h>
137#include <dlgs.h>
138#include <lzexpand.h>
139#include <mmsystem.h>
140#include <nb30.h>
141#include <rpc.h>
142#include <shellapi.h>
143#include <winperf.h>
144#include <winspool.h>
145#if defined(Win32_Winsock)
146#warning "The Win32_Winsock macro name is deprecated.\
147 Please use __USE_W32_SOCKETS instead"
148#ifndef __USE_W32_SOCKETS
149#define __USE_W32_SOCKETS
150#endif
151#endif
152#if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__) || defined(_UWIN))
153#if (_WIN32_WINNT >= 0x0400)
154#include <winsock2.h>
155/*
156 * MS likes to include mswsock.h here as well,
157 * but that can cause undefined symbols if
158 * winsock2.h is included before windows.h
159 */
160#else
161#include <winsock.h>
162#endif /* (_WIN32_WINNT >= 0x0400) */
163#endif
164#endif /* WIN32_LEAN_AND_MEAN */
165
166#endif /* RC_INVOKED */
167
168#ifdef __OBJC__
169/* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int),
170 but undefining it causes trouble as well if a file is included after
171 windows.h
172*/
173#undef BOOL
174#endif
175
176#endif
win32/include/winapi/winerror.h+1054−0
@@ -0,0 +1,1054 @@
1#ifndef _WINERROR_H
2#define _WINERROR_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#define ERROR_SUCCESS 0L
8#define NO_ERROR 0L
9#define ERROR_INVALID_FUNCTION 1L
10#define ERROR_FILE_NOT_FOUND 2L
11#define ERROR_PATH_NOT_FOUND 3L
12#define ERROR_TOO_MANY_OPEN_FILES 4L
13#define ERROR_ACCESS_DENIED 5L
14#define ERROR_INVALID_HANDLE 6L
15#define ERROR_ARENA_TRASHED 7L
16#define ERROR_NOT_ENOUGH_MEMORY 8L
17#define ERROR_INVALID_BLOCK 9L
18#define ERROR_BAD_ENVIRONMENT 10L
19#define ERROR_BAD_FORMAT 11L
20#define ERROR_INVALID_ACCESS 12L
21#define ERROR_INVALID_DATA 13L
22#define ERROR_OUTOFMEMORY 14L
23#define ERROR_INVALID_DRIVE 15L
24#define ERROR_CURRENT_DIRECTORY 16L
25#define ERROR_NOT_SAME_DEVICE 17L
26#define ERROR_NO_MORE_FILES 18L
27#define ERROR_WRITE_PROTECT 19L
28#define ERROR_BAD_UNIT 20L
29#define ERROR_NOT_READY 21L
30#define ERROR_BAD_COMMAND 22L
31#define ERROR_CRC 23L
32#define ERROR_BAD_LENGTH 24L
33#define ERROR_SEEK 25L
34#define ERROR_NOT_DOS_DISK 26L
35#define ERROR_SECTOR_NOT_FOUND 27L
36#define ERROR_OUT_OF_PAPER 28L
37#define ERROR_WRITE_FAULT 29L
38#define ERROR_READ_FAULT 30L
39#define ERROR_GEN_FAILURE 31L
40#define ERROR_SHARING_VIOLATION 32L
41#define ERROR_LOCK_VIOLATION 33L
42#define ERROR_WRONG_DISK 34L
43#define ERROR_SHARING_BUFFER_EXCEEDED 36L
44#define ERROR_HANDLE_EOF 38L
45#define ERROR_HANDLE_DISK_FULL 39L
46#define ERROR_NOT_SUPPORTED 50L
47#define ERROR_REM_NOT_LIST 51L
48#define ERROR_DUP_NAME 52L
49#define ERROR_BAD_NETPATH 53L
50#define ERROR_NETWORK_BUSY 54L
51#define ERROR_DEV_NOT_EXIST 55L
52#define ERROR_TOO_MANY_CMDS 56L
53#define ERROR_ADAP_HDW_ERR 57L
54#define ERROR_BAD_NET_RESP 58L
55#define ERROR_UNEXP_NET_ERR 59L
56#define ERROR_BAD_REM_ADAP 60L
57#define ERROR_PRINTQ_FULL 61L
58#define ERROR_NO_SPOOL_SPACE 62L
59#define ERROR_PRINT_CANCELLED 63L
60#define ERROR_NETNAME_DELETED 64L
61#define ERROR_NETWORK_ACCESS_DENIED 65L
62#define ERROR_BAD_DEV_TYPE 66L
63#define ERROR_BAD_NET_NAME 67L
64#define ERROR_TOO_MANY_NAMES 68L
65#define ERROR_TOO_MANY_SESS 69L
66#define ERROR_SHARING_PAUSED 70L
67#define ERROR_REQ_NOT_ACCEP 71L
68#define ERROR_REDIR_PAUSED 72L
69#define ERROR_FILE_EXISTS 80L
70#define ERROR_CANNOT_MAKE 82L
71#define ERROR_FAIL_I24 83L
72#define ERROR_OUT_OF_STRUCTURES 84L
73#define ERROR_ALREADY_ASSIGNED 85L
74#define ERROR_INVALID_PASSWORD 86L
75#define ERROR_INVALID_PARAMETER 87L
76#define ERROR_NET_WRITE_FAULT 88L
77#define ERROR_NO_PROC_SLOTS 89L
78#define ERROR_TOO_MANY_SEMAPHORES 100L
79#define ERROR_EXCL_SEM_ALREADY_OWNED 101L
80#define ERROR_SEM_IS_SET 102L
81#define ERROR_TOO_MANY_SEM_REQUESTS 103L
82#define ERROR_INVALID_AT_INTERRUPT_TIME 104L
83#define ERROR_SEM_OWNER_DIED 105L
84#define ERROR_SEM_USER_LIMIT 106L
85#define ERROR_DISK_CHANGE 107L
86#define ERROR_DRIVE_LOCKED 108L
87#define ERROR_BROKEN_PIPE 109L
88#define ERROR_OPEN_FAILED 110L
89#define ERROR_BUFFER_OVERFLOW 111L
90#define ERROR_DISK_FULL 112L
91#define ERROR_NO_MORE_SEARCH_HANDLES 113L
92#define ERROR_INVALID_TARGET_HANDLE 114L
93#define ERROR_INVALID_CATEGORY 117L
94#define ERROR_INVALID_VERIFY_SWITCH 118L
95#define ERROR_BAD_DRIVER_LEVEL 119L
96#define ERROR_CALL_NOT_IMPLEMENTED 120L
97#define ERROR_SEM_TIMEOUT 121L
98#define ERROR_INSUFFICIENT_BUFFER 122L
99#define ERROR_INVALID_NAME 123L
100#define ERROR_INVALID_LEVEL 124L
101#define ERROR_NO_VOLUME_LABEL 125L
102#define ERROR_MOD_NOT_FOUND 126L
103#define ERROR_PROC_NOT_FOUND 127L
104#define ERROR_WAIT_NO_CHILDREN 128L
105#define ERROR_CHILD_NOT_COMPLETE 129L
106#define ERROR_DIRECT_ACCESS_HANDLE 130L
107#define ERROR_NEGATIVE_SEEK 131L
108#define ERROR_SEEK_ON_DEVICE 132L
109#define ERROR_IS_JOIN_TARGET 133L
110#define ERROR_IS_JOINED 134L
111#define ERROR_IS_SUBSTED 135L
112#define ERROR_NOT_JOINED 136L
113#define ERROR_NOT_SUBSTED 137L
114#define ERROR_JOIN_TO_JOIN 138L
115#define ERROR_SUBST_TO_SUBST 139L
116#define ERROR_JOIN_TO_SUBST 140L
117#define ERROR_SUBST_TO_JOIN 141L
118#define ERROR_BUSY_DRIVE 142L
119#define ERROR_SAME_DRIVE 143L
120#define ERROR_DIR_NOT_ROOT 144L
121#define ERROR_DIR_NOT_EMPTY 145L
122#define ERROR_IS_SUBST_PATH 146L
123#define ERROR_IS_JOIN_PATH 147L
124#define ERROR_PATH_BUSY 148L
125#define ERROR_IS_SUBST_TARGET 149L
126#define ERROR_SYSTEM_TRACE 150L
127#define ERROR_INVALID_EVENT_COUNT 151L
128#define ERROR_TOO_MANY_MUXWAITERS 152L
129#define ERROR_INVALID_LIST_FORMAT 153L
130#define ERROR_LABEL_TOO_LONG 154L
131#define ERROR_TOO_MANY_TCBS 155L
132#define ERROR_SIGNAL_REFUSED 156L
133#define ERROR_DISCARDED 157L
134#define ERROR_NOT_LOCKED 158L
135#define ERROR_BAD_THREADID_ADDR 159L
136#define ERROR_BAD_ARGUMENTS 160L
137#define ERROR_BAD_PATHNAME 161L
138#define ERROR_SIGNAL_PENDING 162L
139#define ERROR_MAX_THRDS_REACHED 164L
140#define ERROR_LOCK_FAILED 167L
141#define ERROR_BUSY 170L
142#define ERROR_CANCEL_VIOLATION 173L
143#define ERROR_ATOMIC_LOCKS_NOT_SUPPORTED 174L
144#define ERROR_INVALID_SEGMENT_NUMBER 180L
145#define ERROR_INVALID_ORDINAL 182L
146#define ERROR_ALREADY_EXISTS 183L
147#define ERROR_INVALID_FLAG_NUMBER 186L
148#define ERROR_SEM_NOT_FOUND 187L
149#define ERROR_INVALID_STARTING_CODESEG 188L
150#define ERROR_INVALID_STACKSEG 189L
151#define ERROR_INVALID_MODULETYPE 190L
152#define ERROR_INVALID_EXE_SIGNATURE 191L
153#define ERROR_EXE_MARKED_INVALID 192L
154#define ERROR_BAD_EXE_FORMAT 193L
155#define ERROR_ITERATED_DATA_EXCEEDS_64k 194L
156#define ERROR_INVALID_MINALLOCSIZE 195L
157#define ERROR_DYNLINK_FROM_INVALID_RING 196L
158#define ERROR_IOPL_NOT_ENABLED 197L
159#define ERROR_INVALID_SEGDPL 198L
160#define ERROR_AUTODATASEG_EXCEEDS_64k 199L
161#define ERROR_RING2SEG_MUST_BE_MOVABLE 200L
162#define ERROR_RELOC_CHAIN_XEEDS_SEGLIM 201L
163#define ERROR_INFLOOP_IN_RELOC_CHAIN 202L
164#define ERROR_ENVVAR_NOT_FOUND 203L
165#define ERROR_NO_SIGNAL_SENT 205L
166#define ERROR_FILENAME_EXCED_RANGE 206L
167#define ERROR_RING2_STACK_IN_USE 207L
168#define ERROR_META_EXPANSION_TOO_LONG 208L
169#define ERROR_INVALID_SIGNAL_NUMBER 209L
170#define ERROR_THREAD_1_INACTIVE 210L
171#define ERROR_LOCKED 212L
172#define ERROR_TOO_MANY_MODULES 214L
173#define ERROR_NESTING_NOT_ALLOWED 215L
174#define ERROR_BAD_PIPE 230L
175#define ERROR_PIPE_BUSY 231L
176#define ERROR_NO_DATA 232L
177#define ERROR_PIPE_NOT_CONNECTED 233L
178#define ERROR_MORE_DATA 234L
179#define ERROR_VC_DISCONNECTED 240L
180#define ERROR_INVALID_EA_NAME 254L
181#define ERROR_EA_LIST_INCONSISTENT 255L
182#define ERROR_NO_MORE_ITEMS 259L
183#define ERROR_CANNOT_COPY 266L
184#define ERROR_DIRECTORY 267L
185#define ERROR_EAS_DIDNT_FIT 275L
186#define ERROR_EA_FILE_CORRUPT 276L
187#define ERROR_EA_TABLE_FULL 277L
188#define ERROR_INVALID_EA_HANDLE 278L
189#define ERROR_EAS_NOT_SUPPORTED 282L
190#define ERROR_NOT_OWNER 288L
191#define ERROR_TOO_MANY_POSTS 298L
192#define ERROR_PARTIAL_COPY 299L
193#define ERROR_MR_MID_NOT_FOUND 317L
194#define ERROR_INVALID_ADDRESS 487L
195#define ERROR_ARITHMETIC_OVERFLOW 534L
196#define ERROR_PIPE_CONNECTED 535L
197#define ERROR_PIPE_LISTENING 536L
198#define ERROR_EA_ACCESS_DENIED 994L
199#define ERROR_OPERATION_ABORTED 995L
200#define ERROR_IO_INCOMPLETE 996L
201#define ERROR_IO_PENDING 997L
202#define ERROR_NOACCESS 998L
203#define ERROR_SWAPERROR 999L
204#define ERROR_STACK_OVERFLOW 1001L
205#define ERROR_INVALID_MESSAGE 1002L
206#define ERROR_CAN_NOT_COMPLETE 1003L
207#define ERROR_INVALID_FLAGS 1004L
208#define ERROR_UNRECOGNIZED_VOLUME 1005L
209#define ERROR_FILE_INVALID 1006L
210#define ERROR_FULLSCREEN_MODE 1007L
211#define ERROR_NO_TOKEN 1008L
212#define ERROR_BADDB 1009L
213#define ERROR_BADKEY 1010L
214#define ERROR_CANTOPEN 1011L
215#define ERROR_CANTREAD 1012L
216#define ERROR_CANTWRITE 1013L
217#define ERROR_REGISTRY_RECOVERED 1014L
218#define ERROR_REGISTRY_CORRUPT 1015L
219#define ERROR_REGISTRY_IO_FAILED 1016L
220#define ERROR_NOT_REGISTRY_FILE 1017L
221#define ERROR_KEY_DELETED 1018L
222#define ERROR_NO_LOG_SPACE 1019L
223#define ERROR_KEY_HAS_CHILDREN 1020L
224#define ERROR_CHILD_MUST_BE_VOLATILE 1021L
225#define ERROR_NOTIFY_ENUM_DIR 1022L
226#define ERROR_DEPENDENT_SERVICES_RUNNING 1051L
227#define ERROR_INVALID_SERVICE_CONTROL 1052L
228#define ERROR_SERVICE_REQUEST_TIMEOUT 1053L
229#define ERROR_SERVICE_NO_THREAD 1054L
230#define ERROR_SERVICE_DATABASE_LOCKED 1055L
231#define ERROR_SERVICE_ALREADY_RUNNING 1056L
232#define ERROR_INVALID_SERVICE_ACCOUNT 1057L
233#define ERROR_SERVICE_DISABLED 1058L
234#define ERROR_CIRCULAR_DEPENDENCY 1059L
235#define ERROR_SERVICE_DOES_NOT_EXIST 1060L
236#define ERROR_SERVICE_CANNOT_ACCEPT_CTRL 1061L
237#define ERROR_SERVICE_NOT_ACTIVE 1062L
238#define ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 1063L
239#define ERROR_EXCEPTION_IN_SERVICE 1064L
240#define ERROR_DATABASE_DOES_NOT_EXIST 1065L
241#define ERROR_SERVICE_SPECIFIC_ERROR 1066L
242#define ERROR_PROCESS_ABORTED 1067L
243#define ERROR_SERVICE_DEPENDENCY_FAIL 1068L
244#define ERROR_SERVICE_LOGON_FAILED 1069L
245#define ERROR_SERVICE_START_HANG 1070L
246#define ERROR_INVALID_SERVICE_LOCK 1071L
247#define ERROR_SERVICE_MARKED_FOR_DELETE 1072L
248#define ERROR_SERVICE_EXISTS 1073L
249#define ERROR_ALREADY_RUNNING_LKG 1074L
250#define ERROR_SERVICE_DEPENDENCY_DELETED 1075L
251#define ERROR_BOOT_ALREADY_ACCEPTED 1076L
252#define ERROR_SERVICE_NEVER_STARTED 1077L
253#define ERROR_DUPLICATE_SERVICE_NAME 1078L
254#define ERROR_END_OF_MEDIA 1100L
255#define ERROR_FILEMARK_DETECTED 1101L
256#define ERROR_BEGINNING_OF_MEDIA 1102L
257#define ERROR_SETMARK_DETECTED 1103L
258#define ERROR_NO_DATA_DETECTED 1104L
259#define ERROR_PARTITION_FAILURE 1105L
260#define ERROR_INVALID_BLOCK_LENGTH 1106L
261#define ERROR_DEVICE_NOT_PARTITIONED 1107L
262#define ERROR_UNABLE_TO_LOCK_MEDIA 1108L
263#define ERROR_UNABLE_TO_UNLOAD_MEDIA 1109L
264#define ERROR_MEDIA_CHANGED 1110L
265#define ERROR_BUS_RESET 1111L
266#define ERROR_NO_MEDIA_IN_DRIVE 1112L
267#define ERROR_NO_UNICODE_TRANSLATION 1113L
268#define ERROR_DLL_INIT_FAILED 1114L
269#define ERROR_SHUTDOWN_IN_PROGRESS 1115L
270#define ERROR_NO_SHUTDOWN_IN_PROGRESS 1116L
271#define ERROR_IO_DEVICE 1117L
272#define ERROR_SERIAL_NO_DEVICE 1118L
273#define ERROR_IRQ_BUSY 1119L
274#define ERROR_MORE_WRITES 1120L
275#define ERROR_COUNTER_TIMEOUT 1121L
276#define ERROR_FLOPPY_ID_MARK_NOT_FOUND 1122L
277#define ERROR_FLOPPY_WRONG_CYLINDER 1123L
278#define ERROR_FLOPPY_UNKNOWN_ERROR 1124L
279#define ERROR_FLOPPY_BAD_REGISTERS 1125L
280#define ERROR_DISK_RECALIBRATE_FAILED 1126L
281#define ERROR_DISK_OPERATION_FAILED 1127L
282#define ERROR_DISK_RESET_FAILED 1128L
283#define ERROR_EOM_OVERFLOW 1129L
284#define ERROR_NOT_ENOUGH_SERVER_MEMORY 1130L
285#define ERROR_POSSIBLE_DEADLOCK 1131L
286#define ERROR_MAPPED_ALIGNMENT 1132L
287#define ERROR_SET_POWER_STATE_VETOED 1140L
288#define ERROR_SET_POWER_STATE_FAILED 1141L
289#define ERROR_TOO_MANY_LINKS 1142L
290#define ERROR_OLD_WIN_VERSION 1150L
291#define ERROR_APP_WRONG_OS 1151L
292#define ERROR_SINGLE_INSTANCE_APP 1152L
293#define ERROR_RMODE_APP 1153L
294#define ERROR_INVALID_DLL 1154L
295#define ERROR_NO_ASSOCIATION 1155L
296#define ERROR_DDE_FAIL 1156L
297#define ERROR_DLL_NOT_FOUND 1157L
298#define ERROR_BAD_USERNAME 2202L
299#define ERROR_NOT_CONNECTED 2250L
300#define ERROR_OPEN_FILES 2401L
301#define ERROR_ACTIVE_CONNECTIONS 2402L
302#define ERROR_DEVICE_IN_USE 2404L
303#define ERROR_BAD_DEVICE 1200L
304#define ERROR_CONNECTION_UNAVAIL 1201L
305#define ERROR_DEVICE_ALREADY_REMEMBERED 1202L
306#define ERROR_NO_NET_OR_BAD_PATH 1203L
307#define ERROR_BAD_PROVIDER 1204L
308#define ERROR_CANNOT_OPEN_PROFILE 1205L
309#define ERROR_BAD_PROFILE 1206L
310#define ERROR_NOT_CONTAINER 1207L
311#define ERROR_EXTENDED_ERROR 1208L
312#define ERROR_INVALID_GROUPNAME 1209L
313#define ERROR_INVALID_COMPUTERNAME 1210L
314#define ERROR_INVALID_EVENTNAME 1211L
315#define ERROR_INVALID_DOMAINNAME 1212L
316#define ERROR_INVALID_SERVICENAME 1213L
317#define ERROR_INVALID_NETNAME 1214L
318#define ERROR_INVALID_SHARENAME 1215L
319#define ERROR_INVALID_PASSWORDNAME 1216L
320#define ERROR_INVALID_MESSAGENAME 1217L
321#define ERROR_INVALID_MESSAGEDEST 1218L
322#define ERROR_SESSION_CREDENTIAL_CONFLICT 1219L
323#define ERROR_REMOTE_SESSION_LIMIT_EXCEEDED 1220L
324#define ERROR_DUP_DOMAINNAME 1221L
325#define ERROR_NO_NETWORK 1222L
326#define ERROR_CANCELLED 1223L
327#define ERROR_USER_MAPPED_FILE 1224L
328#define ERROR_CONNECTION_REFUSED 1225L
329#define ERROR_GRACEFUL_DISCONNECT 1226L
330#define ERROR_ADDRESS_ALREADY_ASSOCIATED 1227L
331#define ERROR_ADDRESS_NOT_ASSOCIATED 1228L
332#define ERROR_CONNECTION_INVALID 1229L
333#define ERROR_CONNECTION_ACTIVE 1230L
334#define ERROR_NETWORK_UNREACHABLE 1231L
335#define ERROR_HOST_UNREACHABLE 1232L
336#define ERROR_PROTOCOL_UNREACHABLE 1233L
337#define ERROR_PORT_UNREACHABLE 1234L
338#define ERROR_REQUEST_ABORTED 1235L
339#define ERROR_CONNECTION_ABORTED 1236L
340#define ERROR_RETRY 1237L
341#define ERROR_CONNECTION_COUNT_LIMIT 1238L
342#define ERROR_LOGIN_TIME_RESTRICTION 1239L
343#define ERROR_LOGIN_WKSTA_RESTRICTION 1240L
344#define ERROR_INCORRECT_ADDRESS 1241L
345#define ERROR_ALREADY_REGISTERED 1242L
346#define ERROR_SERVICE_NOT_FOUND 1243L
347#define ERROR_NOT_AUTHENTICATED 1244L
348#define ERROR_NOT_LOGGED_ON 1245L
349#define ERROR_CONTINUE 1246L
350#define ERROR_ALREADY_INITIALIZED 1247L
351#define ERROR_NO_MORE_DEVICES 1248L
352#define ERROR_NOT_ALL_ASSIGNED 1300L
353#define ERROR_SOME_NOT_MAPPED 1301L
354#define ERROR_NO_QUOTAS_FOR_ACCOUNT 1302L
355#define ERROR_LOCAL_USER_SESSION_KEY 1303L
356#define ERROR_NULL_LM_PASSWORD 1304L
357#define ERROR_UNKNOWN_REVISION 1305L
358#define ERROR_REVISION_MISMATCH 1306L
359#define ERROR_INVALID_OWNER 1307L
360#define ERROR_INVALID_PRIMARY_GROUP 1308L
361#define ERROR_NO_IMPERSONATION_TOKEN 1309L
362#define ERROR_CANT_DISABLE_MANDATORY 1310L
363#define ERROR_NO_LOGON_SERVERS 1311L
364#define ERROR_NO_SUCH_LOGON_SESSION 1312L
365#define ERROR_NO_SUCH_PRIVILEGE 1313L
366#define ERROR_PRIVILEGE_NOT_HELD 1314L
367#define ERROR_INVALID_ACCOUNT_NAME 1315L
368#define ERROR_USER_EXISTS 1316L
369#define ERROR_NO_SUCH_USER 1317L
370#define ERROR_GROUP_EXISTS 1318L
371#define ERROR_NO_SUCH_GROUP 1319L
372#define ERROR_MEMBER_IN_GROUP 1320L
373#define ERROR_MEMBER_NOT_IN_GROUP 1321L
374#define ERROR_LAST_ADMIN 1322L
375#define ERROR_WRONG_PASSWORD 1323L
376#define ERROR_ILL_FORMED_PASSWORD 1324L
377#define ERROR_PASSWORD_RESTRICTION 1325L
378#define ERROR_LOGON_FAILURE 1326L
379#define ERROR_ACCOUNT_RESTRICTION 1327L
380#define ERROR_INVALID_LOGON_HOURS 1328L
381#define ERROR_INVALID_WORKSTATION 1329L
382#define ERROR_PASSWORD_EXPIRED 1330L
383#define ERROR_ACCOUNT_DISABLED 1331L
384#define ERROR_NONE_MAPPED 1332L
385#define ERROR_TOO_MANY_LUIDS_REQUESTED 1333L
386#define ERROR_LUIDS_EXHAUSTED 1334L
387#define ERROR_INVALID_SUB_AUTHORITY 1335L
388#define ERROR_INVALID_ACL 1336L
389#define ERROR_INVALID_SID 1337L
390#define ERROR_INVALID_SECURITY_DESCR 1338L
391#define ERROR_BAD_INHERITANCE_ACL 1340L
392#define ERROR_SERVER_DISABLED 1341L
393#define ERROR_SERVER_NOT_DISABLED 1342L
394#define ERROR_INVALID_ID_AUTHORITY 1343L
395#define ERROR_ALLOTTED_SPACE_EXCEEDED 1344L
396#define ERROR_INVALID_GROUP_ATTRIBUTES 1345L
397#define ERROR_BAD_IMPERSONATION_LEVEL 1346L
398#define ERROR_CANT_OPEN_ANONYMOUS 1347L
399#define ERROR_BAD_VALIDATION_CLASS 1348L
400#define ERROR_BAD_TOKEN_TYPE 1349L
401#define ERROR_NO_SECURITY_ON_OBJECT 1350L
402#define ERROR_CANT_ACCESS_DOMAIN_INFO 1351L
403#define ERROR_INVALID_SERVER_STATE 1352L
404#define ERROR_INVALID_DOMAIN_STATE 1353L
405#define ERROR_INVALID_DOMAIN_ROLE 1354L
406#define ERROR_NO_SUCH_DOMAIN 1355L
407#define ERROR_DOMAIN_EXISTS 1356L
408#define ERROR_DOMAIN_LIMIT_EXCEEDED 1357L
409#define ERROR_INTERNAL_DB_CORRUPTION 1358L
410#define ERROR_INTERNAL_ERROR 1359L
411#define ERROR_GENERIC_NOT_MAPPED 1360L
412#define ERROR_BAD_DESCRIPTOR_FORMAT 1361L
413#define ERROR_NOT_LOGON_PROCESS 1362L
414#define ERROR_LOGON_SESSION_EXISTS 1363L
415#define ERROR_NO_SUCH_PACKAGE 1364L
416#define ERROR_BAD_LOGON_SESSION_STATE 1365L
417#define ERROR_LOGON_SESSION_COLLISION 1366L
418#define ERROR_INVALID_LOGON_TYPE 1367L
419#define ERROR_CANNOT_IMPERSONATE 1368L
420#define ERROR_RXACT_INVALID_STATE 1369L
421#define ERROR_RXACT_COMMIT_FAILURE 1370L
422#define ERROR_SPECIAL_ACCOUNT 1371L
423#define ERROR_SPECIAL_GROUP 1372L
424#define ERROR_SPECIAL_USER 1373L
425#define ERROR_MEMBERS_PRIMARY_GROUP 1374L
426#define ERROR_TOKEN_ALREADY_IN_USE 1375L
427#define ERROR_NO_SUCH_ALIAS 1376L
428#define ERROR_MEMBER_NOT_IN_ALIAS 1377L
429#define ERROR_MEMBER_IN_ALIAS 1378L
430#define ERROR_ALIAS_EXISTS 1379L
431#define ERROR_LOGON_NOT_GRANTED 1380L
432#define ERROR_TOO_MANY_SECRETS 1381L
433#define ERROR_SECRET_TOO_LONG 1382L
434#define ERROR_INTERNAL_DB_ERROR 1383L
435#define ERROR_TOO_MANY_CONTEXT_IDS 1384L
436#define ERROR_LOGON_TYPE_NOT_GRANTED 1385L
437#define ERROR_NT_CROSS_ENCRYPTION_REQUIRED 1386L
438#define ERROR_NO_SUCH_MEMBER 1387L
439#define ERROR_INVALID_MEMBER 1388L
440#define ERROR_TOO_MANY_SIDS 1389L
441#define ERROR_LM_CROSS_ENCRYPTION_REQUIRED 1390L
442#define ERROR_NO_INHERITANCE 1391L
443#define ERROR_FILE_CORRUPT 1392L
444#define ERROR_DISK_CORRUPT 1393L
445#define ERROR_NO_USER_SESSION_KEY 1394L
446#define ERROR_LICENSE_QUOTA_EXCEEDED 1395L
447#define ERROR_INVALID_WINDOW_HANDLE 1400L
448#define ERROR_INVALID_MENU_HANDLE 1401L
449#define ERROR_INVALID_CURSOR_HANDLE 1402L
450#define ERROR_INVALID_ACCEL_HANDLE 1403L
451#define ERROR_INVALID_HOOK_HANDLE 1404L
452#define ERROR_INVALID_DWP_HANDLE 1405L
453#define ERROR_TLW_WITH_WSCHILD 1406L
454#define ERROR_CANNOT_FIND_WND_CLASS 1407L
455#define ERROR_WINDOW_OF_OTHER_THREAD 1408L
456#define ERROR_HOTKEY_ALREADY_REGISTERED 1409L
457#define ERROR_CLASS_ALREADY_EXISTS 1410L
458#define ERROR_CLASS_DOES_NOT_EXIST 1411L
459#define ERROR_CLASS_HAS_WINDOWS 1412L
460#define ERROR_INVALID_INDEX 1413L
461#define ERROR_INVALID_ICON_HANDLE 1414L
462#define ERROR_PRIVATE_DIALOG_INDEX 1415L
463#define ERROR_LISTBOX_ID_NOT_FOUND 1416L
464#define ERROR_NO_WILDCARD_CHARACTERS 1417L
465#define ERROR_CLIPBOARD_NOT_OPEN 1418L
466#define ERROR_HOTKEY_NOT_REGISTERED 1419L
467#define ERROR_WINDOW_NOT_DIALOG 1420L
468#define ERROR_CONTROL_ID_NOT_FOUND 1421L
469#define ERROR_INVALID_COMBOBOX_MESSAGE 1422L
470#define ERROR_WINDOW_NOT_COMBOBOX 1423L
471#define ERROR_INVALID_EDIT_HEIGHT 1424L
472#define ERROR_DC_NOT_FOUND 1425L
473#define ERROR_INVALID_HOOK_FILTER 1426L
474#define ERROR_INVALID_FILTER_PROC 1427L
475#define ERROR_HOOK_NEEDS_HMOD 1428L
476#define ERROR_GLOBAL_ONLY_HOOK 1429L
477#define ERROR_JOURNAL_HOOK_SET 1430L
478#define ERROR_HOOK_NOT_INSTALLED 1431L
479#define ERROR_INVALID_LB_MESSAGE 1432L
480#define ERROR_SETCOUNT_ON_BAD_LB 1433L
481#define ERROR_LB_WITHOUT_TABSTOPS 1434L
482#define ERROR_DESTROY_OBJECT_OF_OTHER_THREAD 1435L
483#define ERROR_CHILD_WINDOW_MENU 1436L
484#define ERROR_NO_SYSTEM_MENU 1437L
485#define ERROR_INVALID_MSGBOX_STYLE 1438L
486#define ERROR_INVALID_SPI_VALUE 1439L
487#define ERROR_SCREEN_ALREADY_LOCKED 1440L
488#define ERROR_HWNDS_HAVE_DIFF_PARENT 1441L
489#define ERROR_NOT_CHILD_WINDOW 1442L
490#define ERROR_INVALID_GW_COMMAND 1443L
491#define ERROR_INVALID_THREAD_ID 1444L
492#define ERROR_NON_MDICHILD_WINDOW 1445L
493#define ERROR_POPUP_ALREADY_ACTIVE 1446L
494#define ERROR_NO_SCROLLBARS 1447L
495#define ERROR_INVALID_SCROLLBAR_RANGE 1448L
496#define ERROR_INVALID_SHOWWIN_COMMAND 1449L
497#define ERROR_NO_SYSTEM_RESOURCES 1450L
498#define ERROR_NONPAGED_SYSTEM_RESOURCES 1451L
499#define ERROR_PAGED_SYSTEM_RESOURCES 1452L
500#define ERROR_WORKING_SET_QUOTA 1453L
501#define ERROR_PAGEFILE_QUOTA 1454L
502#define ERROR_COMMITMENT_LIMIT 1455L
503#define ERROR_MENU_ITEM_NOT_FOUND 1456L
504#define ERROR_EVENTLOG_FILE_CORRUPT 1500L
505#define ERROR_EVENTLOG_CANT_START 1501L
506#define ERROR_LOG_FILE_FULL 1502L
507#define ERROR_EVENTLOG_FILE_CHANGED 1503L
508#define RPC_S_INVALID_STRING_BINDING 1700L
509#define RPC_S_WRONG_KIND_OF_BINDING 1701L
510#define RPC_S_INVALID_BINDING 1702L
511#define RPC_S_PROTSEQ_NOT_SUPPORTED 1703L
512#define RPC_S_INVALID_RPC_PROTSEQ 1704L
513#define RPC_S_INVALID_STRING_UUID 1705L
514#define RPC_S_INVALID_ENDPOINT_FORMAT 1706L
515#define RPC_S_INVALID_NET_ADDR 1707L
516#define RPC_S_NO_ENDPOINT_FOUND 1708L
517#define RPC_S_INVALID_TIMEOUT 1709L
518#define RPC_S_OBJECT_NOT_FOUND 1710L
519#define RPC_S_ALREADY_REGISTERED 1711L
520#define RPC_S_TYPE_ALREADY_REGISTERED 1712L
521#define RPC_S_ALREADY_LISTENING 1713L
522#define RPC_S_NO_PROTSEQS_REGISTERED 1714L
523#define RPC_S_NOT_LISTENING 1715L
524#define RPC_S_UNKNOWN_MGR_TYPE 1716L
525#define RPC_S_UNKNOWN_IF 1717L
526#define RPC_S_NO_BINDINGS 1718L
527#define RPC_S_NO_PROTSEQS 1719L
528#define RPC_S_CANT_CREATE_ENDPOINT 1720L
529#define RPC_S_OUT_OF_RESOURCES 1721L
530#define RPC_S_SERVER_UNAVAILABLE 1722L
531#define RPC_S_SERVER_TOO_BUSY 1723L
532#define RPC_S_INVALID_NETWORK_OPTIONS 1724L
533#define RPC_S_NO_CALL_ACTIVE 1725L
534#define RPC_S_CALL_FAILED 1726L
535#define RPC_S_CALL_FAILED_DNE 1727L
536#define RPC_S_PROTOCOL_ERROR 1728L
537#define RPC_S_UNSUPPORTED_TRANS_SYN 1730L
538#define RPC_S_UNSUPPORTED_TYPE 1732L
539#define RPC_S_INVALID_TAG 1733L
540#define RPC_S_INVALID_BOUND 1734L
541#define RPC_S_NO_ENTRY_NAME 1735L
542#define RPC_S_INVALID_NAME_SYNTAX 1736L
543#define RPC_S_UNSUPPORTED_NAME_SYNTAX 1737L
544#define RPC_S_UUID_NO_ADDRESS 1739L
545#define RPC_S_DUPLICATE_ENDPOINT 1740L
546#define RPC_S_UNKNOWN_AUTHN_TYPE 1741L
547#define RPC_S_MAX_CALLS_TOO_SMALL 1742L
548#define RPC_S_STRING_TOO_LONG 1743L
549#define RPC_S_PROTSEQ_NOT_FOUND 1744L
550#define RPC_S_PROCNUM_OUT_OF_RANGE 1745L
551#define RPC_S_BINDING_HAS_NO_AUTH 1746L
552#define RPC_S_UNKNOWN_AUTHN_SERVICE 1747L
553#define RPC_S_UNKNOWN_AUTHN_LEVEL 1748L
554#define RPC_S_INVALID_AUTH_IDENTITY 1749L
555#define RPC_S_UNKNOWN_AUTHZ_SERVICE 1750L
556#define EPT_S_INVALID_ENTRY 1751L
557#define EPT_S_CANT_PERFORM_OP 1752L
558#define EPT_S_NOT_REGISTERED 1753L
559#define RPC_S_NOTHING_TO_EXPORT 1754L
560#define RPC_S_INCOMPLETE_NAME 1755L
561#define RPC_S_INVALID_VERS_OPTION 1756L
562#define RPC_S_NO_MORE_MEMBERS 1757L
563#define RPC_S_NOT_ALL_OBJS_UNEXPORTED 1758L
564#define RPC_S_INTERFACE_NOT_FOUND 1759L
565#define RPC_S_ENTRY_ALREADY_EXISTS 1760L
566#define RPC_S_ENTRY_NOT_FOUND 1761L
567#define RPC_S_NAME_SERVICE_UNAVAILABLE 1762L
568#define RPC_S_INVALID_NAF_ID 1763L
569#define RPC_S_CANNOT_SUPPORT 1764L
570#define RPC_S_NO_CONTEXT_AVAILABLE 1765L
571#define RPC_S_INTERNAL_ERROR 1766L
572#define RPC_S_ZERO_DIVIDE 1767L
573#define RPC_S_ADDRESS_ERROR 1768L
574#define RPC_S_FP_DIV_ZERO 1769L
575#define RPC_S_FP_UNDERFLOW 1770L
576#define RPC_S_FP_OVERFLOW 1771L
577#define RPC_X_NO_MORE_ENTRIES 1772L
578#define RPC_X_SS_CHAR_TRANS_OPEN_FAIL 1773L
579#define RPC_X_SS_CHAR_TRANS_SHORT_FILE 1774L
580#define RPC_X_SS_IN_NULL_CONTEXT 1775L
581#define RPC_X_SS_CONTEXT_DAMAGED 1777L
582#define RPC_X_SS_HANDLES_MISMATCH 1778L
583#define RPC_X_SS_CANNOT_GET_CALL_HANDLE 1779L
584#define RPC_X_NULL_REF_POINTER 1780L
585#define RPC_X_ENUM_VALUE_OUT_OF_RANGE 1781L
586#define RPC_X_BYTE_COUNT_TOO_SMALL 1782L
587#define RPC_X_BAD_STUB_DATA 1783L
588#define ERROR_INVALID_USER_BUFFER 1784L
589#define ERROR_UNRECOGNIZED_MEDIA 1785L
590#define ERROR_NO_TRUST_LSA_SECRET 1786L
591#define ERROR_NO_TRUST_SAM_ACCOUNT 1787L
592#define ERROR_TRUSTED_DOMAIN_FAILURE 1788L
593#define ERROR_TRUSTED_RELATIONSHIP_FAILURE 1789L
594#define ERROR_TRUST_FAILURE 1790L
595#define RPC_S_CALL_IN_PROGRESS 1791L
596#define ERROR_NETLOGON_NOT_STARTED 1792L
597#define ERROR_ACCOUNT_EXPIRED 1793L
598#define ERROR_REDIRECTOR_HAS_OPEN_HANDLES 1794L
599#define ERROR_PRINTER_DRIVER_ALREADY_INSTALLED 1795L
600#define ERROR_UNKNOWN_PORT 1796L
601#define ERROR_UNKNOWN_PRINTER_DRIVER 1797L
602#define ERROR_UNKNOWN_PRINTPROCESSOR 1798L
603#define ERROR_INVALID_SEPARATOR_FILE 1799L
604#define ERROR_INVALID_PRIORITY 1800L
605#define ERROR_INVALID_PRINTER_NAME 1801L
606#define ERROR_PRINTER_ALREADY_EXISTS 1802L
607#define ERROR_INVALID_PRINTER_COMMAND 1803L
608#define ERROR_INVALID_DATATYPE 1804L
609#define ERROR_INVALID_ENVIRONMENT 1805L
610#define RPC_S_NO_MORE_BINDINGS 1806L
611#define ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 1807L
612#define ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT 1808L
613#define ERROR_NOLOGON_SERVER_TRUST_ACCOUNT 1809L
614#define ERROR_DOMAIN_TRUST_INCONSISTENT 1810L
615#define ERROR_SERVER_HAS_OPEN_HANDLES 1811L
616#define ERROR_RESOURCE_DATA_NOT_FOUND 1812L
617#define ERROR_RESOURCE_TYPE_NOT_FOUND 1813L
618#define ERROR_RESOURCE_NAME_NOT_FOUND 1814L
619#define ERROR_RESOURCE_LANG_NOT_FOUND 1815L
620#define ERROR_NOT_ENOUGH_QUOTA 1816L
621#define RPC_S_NO_INTERFACES 1817L
622#define RPC_S_CALL_CANCELLED 1818L
623#define RPC_S_BINDING_INCOMPLETE 1819L
624#define RPC_S_COMM_FAILURE 1820L
625#define RPC_S_UNSUPPORTED_AUTHN_LEVEL 1821L
626#define RPC_S_NO_PRINC_NAME 1822L
627#define RPC_S_NOT_RPC_ERROR 1823L
628#define RPC_S_UUID_LOCAL_ONLY 1824L
629#define RPC_S_SEC_PKG_ERROR 1825L
630#define RPC_S_NOT_CANCELLED 1826L
631#define RPC_X_INVALID_ES_ACTION 1827L
632#define RPC_X_WRONG_ES_VERSION 1828L
633#define RPC_X_WRONG_STUB_VERSION 1829L
634#define RPC_S_GROUP_MEMBER_NOT_FOUND 1898L
635#define EPT_S_CANT_CREATE 1899L
636#define RPC_S_INVALID_OBJECT 1900L
637#define ERROR_INVALID_TIME 1901L
638#define ERROR_INVALID_FORM_NAME 1902L
639#define ERROR_INVALID_FORM_SIZE 1903L
640#define ERROR_ALREADY_WAITING 1904L
641#define ERROR_PRINTER_DELETED 1905L
642#define ERROR_INVALID_PRINTER_STATE 1906L
643#define ERROR_PASSWORD_MUST_CHANGE 1907L
644#define ERROR_DOMAIN_CONTROLLER_NOT_FOUND 1908L
645#define ERROR_ACCOUNT_LOCKED_OUT 1909L
646#define ERROR_NO_BROWSER_SERVERS_FOUND 6118L
647#define ERROR_INVALID_PIXEL_FORMAT 2000L
648#define ERROR_BAD_DRIVER 2001L
649#define ERROR_INVALID_WINDOW_STYLE 2002L
650#define ERROR_METAFILE_NOT_SUPPORTED 2003L
651#define ERROR_TRANSFORM_NOT_SUPPORTED 2004L
652#define ERROR_CLIPPING_NOT_SUPPORTED 2005L
653#define ERROR_UNKNOWN_PRINT_MONITOR 3000L
654#define ERROR_PRINTER_DRIVER_IN_USE 3001L
655#define ERROR_SPOOL_FILE_NOT_FOUND 3002L
656#define ERROR_SPL_NO_STARTDOC 3003L
657#define ERROR_SPL_NO_ADDJOB 3004L
658#define ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED 3005L
659#define ERROR_PRINT_MONITOR_ALREADY_INSTALLED 3006L
660#define ERROR_WINS_INTERNAL 4000L
661#define ERROR_CAN_NOT_DEL_LOCAL_WINS 4001L
662#define ERROR_STATIC_INIT 4002L
663#define ERROR_INC_BACKUP 4003L
664#define ERROR_FULL_BACKUP 4004L
665#define ERROR_REC_NON_EXISTENT 4005L
666#define ERROR_RPL_NOT_ALLOWED 4006L
667#define SEVERITY_SUCCESS 0
668#define SEVERITY_ERROR 1
669#define FACILITY_WINDOWS 8
670#define FACILITY_STORAGE 3
671#define FACILITY_RPC 1
672#define FACILITY_WIN32 7
673#define FACILITY_CONTROL 10
674#define FACILITY_NULL 0
675#define FACILITY_ITF 4
676#define FACILITY_DISPATCH 2
677#define SUCCEEDED(Status) ((HRESULT)(Status) >= 0)
678#define FAILED(Status) ((HRESULT)(Status)<0)
679#define IS_ERROR(Status) ((unsigned long)(Status) >> 31 == SEVERITY_ERROR)
680#define HRESULT_CODE(r) ((r)&0xFFFF)
681#define SCODE_CODE(c) ((c)&0xFFFF)
682#define HRESULT_FACILITY(r) (((r)>>16)&0x1fff)
683#define SCODE_FACILITY(c) (((c)>>16)&0x1fff)
684#define HRESULT_SEVERITY(r) (((r)>>31)&0x1)
685#define SCODE_SEVERITY(c) (((c)>>31)&0x1)
686#define MAKE_HRESULT(s,f,c) ((HRESULT)(((unsigned long)(s)<<31)|((unsigned long)(f)<<16)|((unsigned long)(c))))
687#define MAKE_SCODE(s,f,c) ((SCODE)(((unsigned long)(s)<<31)|((unsigned long)(f)<<16)|((unsigned long)(c))) )
688#define FACILITY_NT_BIT 0x10000000
689#define HRESULT_FROM_WIN32(x) (x?((HRESULT)(((x)&0x0000FFFF)|(FACILITY_WIN32<<16)|0x80000000)):0)
690#define HRESULT_FROM_NT(x) ((HRESULT)((x)|FACILITY_NT_BIT))
691#define GetScode(hr) ((SCODE) (hr))
692#define ResultFromScode(sc) ((HRESULT) (sc))
693#define PropagateResult(hrPrevious, scBase) ((HRESULT) scBase)
694
695#define NOERROR S_OK
696#define E_UNEXPECTED 0x8000FFFFL
697#define E_NOTIMPL 0x80004001L
698#define E_OUTOFMEMORY 0x8007000EL
699#define E_INVALIDARG 0x80070057L
700#define E_NOINTERFACE 0x80004002L
701#define E_POINTER 0x80004003L
702#define E_HANDLE 0x80070006L
703#define E_ABORT 0x80004004L
704#define E_FAIL 0x80004005L
705#define E_ACCESSDENIED 0x80070005L
706#define E_PENDING 0x8000000AL
707#define CO_E_INIT_TLS 0x80004006L
708#define CO_E_INIT_SHARED_ALLOCATOR 0x80004007L
709#define CO_E_INIT_MEMORY_ALLOCATOR 0x80004008L
710#define CO_E_INIT_CLASS_CACHE 0x80004009L
711#define CO_E_INIT_RPC_CHANNEL 0x8000400AL
712#define CO_E_INIT_TLS_SET_CHANNEL_CONTROL 0x8000400BL
713#define CO_E_INIT_TLS_CHANNEL_CONTROL 0x8000400CL
714#define CO_E_INIT_UNACCEPTED_USER_ALLOCATOR 0x8000400DL
715#define CO_E_INIT_SCM_MUTEX_EXISTS 0x8000400EL
716#define CO_E_INIT_SCM_FILE_MAPPING_EXISTS 0x8000400FL
717#define CO_E_INIT_SCM_MAP_VIEW_OF_FILE 0x80004010L
718#define CO_E_INIT_SCM_EXEC_FAILURE 0x80004011L
719#define CO_E_INIT_ONLY_SINGLE_THREADED 0x80004012L
720#define S_OK (0x00000000L)
721#define S_FALSE (0x00000001L)
722#define OLE_E_FIRST 0x80040000L
723#define OLE_E_LAST 0x800400FFL
724#define OLE_S_FIRST 0x00040000L
725#define OLE_S_LAST 0x000400FFL
726#define OLE_E_OLEVERB 0x80040000L
727#define OLE_E_ADVF 0x80040001L
728#define OLE_E_ENUM_NOMORE 0x80040002L
729#define OLE_E_ADVISENOTSUPPORTED 0x80040003L
730#define OLE_E_NOCONNECTION 0x80040004L
731#define OLE_E_NOTRUNNING 0x80040005L
732#define OLE_E_NOCACHE 0x80040006L
733#define OLE_E_BLANK 0x80040007L
734#define OLE_E_CLASSDIFF 0x80040008L
735#define OLE_E_CANT_GETMONIKER 0x80040009L
736#define OLE_E_CANT_BINDTOSOURCE 0x8004000AL
737#define OLE_E_STATIC 0x8004000BL
738#define OLE_E_PROMPTSAVECANCELLED 0x8004000CL
739#define OLE_E_INVALIDRECT 0x8004000DL
740#define OLE_E_WRONGCOMPOBJ 0x8004000EL
741#define OLE_E_INVALIDHWND 0x8004000FL
742#define OLE_E_NOT_INPLACEACTIVE 0x80040010L
743#define OLE_E_CANTCONVERT 0x80040011L
744#define OLE_E_NOSTORAGE 0x80040012L
745#define DV_E_FORMATETC 0x80040064L
746#define DV_E_DVTARGETDEVICE 0x80040065L
747#define DV_E_STGMEDIUM 0x80040066L
748#define DV_E_STATDATA 0x80040067L
749#define DV_E_LINDEX 0x80040068L
750#define DV_E_TYMED 0x80040069L
751#define DV_E_CLIPFORMAT 0x8004006AL
752#define DV_E_DVASPECT 0x8004006BL
753#define DV_E_DVTARGETDEVICE_SIZE 0x8004006CL
754#define DV_E_NOIVIEWOBJECT 0x8004006DL
755#define DRAGDROP_E_FIRST 0x80040100L
756#define DRAGDROP_E_LAST 0x8004010FL
757#define DRAGDROP_S_FIRST 0x00040100L
758#define DRAGDROP_S_LAST 0x0004010FL
759#define DRAGDROP_E_NOTREGISTERED 0x80040100L
760#define DRAGDROP_E_ALREADYREGISTERED 0x80040101L
761#define DRAGDROP_E_INVALIDHWND 0x80040102L
762#define CLASSFACTORY_E_FIRST 0x80040110L
763#define CLASSFACTORY_E_LAST 0x8004011FL
764#define CLASSFACTORY_S_FIRST 0x00040110L
765#define CLASSFACTORY_S_LAST 0x0004011FL
766#define CLASS_E_NOAGGREGATION 0x80040110L
767#define CLASS_E_CLASSNOTAVAILABLE 0x80040111L
768#define MARSHAL_E_FIRST 0x80040120L
769#define MARSHAL_E_LAST 0x8004012FL
770#define MARSHAL_S_FIRST 0x00040120L
771#define MARSHAL_S_LAST 0x0004012FL
772#define DATA_E_FIRST 0x80040130L
773#define DATA_E_LAST 0x8004013FL
774#define DATA_S_FIRST 0x00040130L
775#define DATA_S_LAST 0x0004013FL
776#define VIEW_E_FIRST 0x80040140L
777#define VIEW_E_LAST 0x8004014FL
778#define VIEW_S_FIRST 0x00040140L
779#define VIEW_S_LAST 0x0004014FL
780#define VIEW_E_DRAW 0x80040140L
781#define REGDB_E_FIRST 0x80040150L
782#define REGDB_E_LAST 0x8004015FL
783#define REGDB_S_FIRST 0x00040150L
784#define REGDB_S_LAST 0x0004015FL
785#define REGDB_E_READREGDB 0x80040150L
786#define REGDB_E_WRITEREGDB 0x80040151L
787#define REGDB_E_KEYMISSING 0x80040152L
788#define REGDB_E_INVALIDVALUE 0x80040153L
789#define REGDB_E_CLASSNOTREG 0x80040154L
790#define REGDB_E_IIDNOTREG 0x80040155L
791#define CACHE_E_FIRST 0x80040170L
792#define CACHE_E_LAST 0x8004017FL
793#define CACHE_S_FIRST 0x00040170L
794#define CACHE_S_LAST 0x0004017FL
795#define CACHE_E_NOCACHE_UPDATED 0x80040170L
796#define OLEOBJ_E_FIRST 0x80040180L
797#define OLEOBJ_E_LAST 0x8004018FL
798#define OLEOBJ_S_FIRST 0x00040180L
799#define OLEOBJ_S_LAST 0x0004018FL
800#define OLEOBJ_E_NOVERBS 0x80040180L
801#define OLEOBJ_E_INVALIDVERB 0x80040181L
802#define CLIENTSITE_E_FIRST 0x80040190L
803#define CLIENTSITE_E_LAST 0x8004019FL
804#define CLIENTSITE_S_FIRST 0x00040190L
805#define CLIENTSITE_S_LAST 0x0004019FL
806#define INPLACE_E_NOTUNDOABLE 0x800401A0L
807#define INPLACE_E_NOTOOLSPACE 0x800401A1L
808#define INPLACE_E_FIRST 0x800401A0L
809#define INPLACE_E_LAST 0x800401AFL
810#define INPLACE_S_FIRST 0x000401A0L
811#define INPLACE_S_LAST 0x000401AFL
812#define ENUM_E_FIRST 0x800401B0L
813#define ENUM_E_LAST 0x800401BFL
814#define ENUM_S_FIRST 0x000401B0L
815#define ENUM_S_LAST 0x000401BFL
816#define CONVERT10_E_FIRST 0x800401C0L
817#define CONVERT10_E_LAST 0x800401CFL
818#define CONVERT10_S_FIRST 0x000401C0L
819#define CONVERT10_S_LAST 0x000401CFL
820#define CONVERT10_E_OLESTREAM_GET 0x800401C0L
821#define CONVERT10_E_OLESTREAM_PUT 0x800401C1L
822#define CONVERT10_E_OLESTREAM_FMT 0x800401C2L
823#define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB 0x800401C3L
824#define CONVERT10_E_STG_FMT 0x800401C4L
825#define CONVERT10_E_STG_NO_STD_STREAM 0x800401C5L
826#define CONVERT10_E_STG_DIB_TO_BITMAP 0x800401C6L
827#define CLIPBRD_E_FIRST 0x800401D0L
828#define CLIPBRD_E_LAST 0x800401DFL
829#define CLIPBRD_S_FIRST 0x000401D0L
830#define CLIPBRD_S_LAST 0x000401DFL
831#define CLIPBRD_E_CANT_OPEN 0x800401D0L
832#define CLIPBRD_E_CANT_EMPTY 0x800401D1L
833#define CLIPBRD_E_CANT_SET 0x800401D2L
834#define CLIPBRD_E_BAD_DATA 0x800401D3L
835#define CLIPBRD_E_CANT_CLOSE 0x800401D4L
836#define MK_E_FIRST 0x800401E0L
837#define MK_E_LAST 0x800401EFL
838#define MK_S_FIRST 0x000401E0L
839#define MK_S_LAST 0x000401EFL
840#define MK_E_CONNECTMANUALLY 0x800401E0L
841#define MK_E_EXCEEDEDDEADLINE 0x800401E1L
842#define MK_E_NEEDGENERIC 0x800401E2L
843#define MK_E_UNAVAILABLE 0x800401E3L
844#define MK_E_SYNTAX 0x800401E4L
845#define MK_E_NOOBJECT 0x800401E5L
846#define MK_E_INVALIDEXTENSION 0x800401E6L
847#define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED 0x800401E7L
848#define MK_E_NOTBINDABLE 0x800401E8L
849#define MK_E_NOTBOUND 0x800401E9L
850#define MK_E_CANTOPENFILE 0x800401EAL
851#define MK_E_MUSTBOTHERUSER 0x800401EBL
852#define MK_E_NOINVERSE 0x800401ECL
853#define MK_E_NOSTORAGE 0x800401EDL
854#define MK_E_NOPREFIX 0x800401EEL
855#define MK_E_ENUMERATION_FAILED 0x800401EFL
856#define CO_E_FIRST 0x800401F0L
857#define CO_E_LAST 0x800401FFL
858#define CO_S_FIRST 0x000401F0L
859#define CO_S_LAST 0x000401FFL
860#define CO_E_NOTINITIALIZED 0x800401F0L
861#define CO_E_ALREADYINITIALIZED 0x800401F1L
862#define CO_E_CANTDETERMINECLASS 0x800401F2L
863#define CO_E_CLASSSTRING 0x800401F3L
864#define CO_E_IIDSTRING 0x800401F4L
865#define CO_E_APPNOTFOUND 0x800401F5L
866#define CO_E_APPSINGLEUSE 0x800401F6L
867#define CO_E_ERRORINAPP 0x800401F7L
868#define CO_E_DLLNOTFOUND 0x800401F8L
869#define CO_E_ERRORINDLL 0x800401F9L
870#define CO_E_WRONGOSFORAPP 0x800401FAL
871#define CO_E_OBJNOTREG 0x800401FBL
872#define CO_E_OBJISREG 0x800401FCL
873#define CO_E_OBJNOTCONNECTED 0x800401FDL
874#define CO_E_APPDIDNTREG 0x800401FEL
875#define CO_E_RELEASED 0x800401FFL
876#define OLE_S_USEREG 0x00040000L
877#define OLE_S_STATIC 0x00040001L
878#define OLE_S_MAC_CLIPFORMAT 0x00040002L
879#define DRAGDROP_S_DROP 0x00040100L
880#define DRAGDROP_S_CANCEL 0x00040101L
881#define DRAGDROP_S_USEDEFAULTCURSORS 0x00040102L
882#define DATA_S_SAMEFORMATETC 0x00040130L
883#define VIEW_S_ALREADY_FROZEN 0x00040140L
884#define CACHE_S_FORMATETC_NOTSUPPORTED 0x00040170L
885#define CACHE_S_SAMECACHE 0x00040171L
886#define CACHE_S_SOMECACHES_NOTUPDATED 0x00040172L
887#define OLEOBJ_S_INVALIDVERB 0x00040180L
888#define OLEOBJ_S_CANNOT_DOVERB_NOW 0x00040181L
889#define OLEOBJ_S_INVALIDHWND 0x00040182L
890#define INPLACE_S_TRUNCATED 0x000401A0L
891#define CONVERT10_S_NO_PRESENTATION 0x000401C0L
892#define MK_S_REDUCED_TO_SELF 0x000401E2L
893#define MK_S_ME 0x000401E4L
894#define MK_S_HIM 0x000401E5L
895#define MK_S_US 0x000401E6L
896#define MK_S_MONIKERALREADYREGISTERED 0x000401E7L
897#define CO_E_CLASS_CREATE_FAILED 0x80080001L
898#define CO_E_SCM_ERROR 0x80080002L
899#define CO_E_SCM_RPC_FAILURE 0x80080003L
900#define CO_E_BAD_PATH 0x80080004L
901#define CO_E_SERVER_EXEC_FAILURE 0x80080005L
902#define CO_E_OBJSRV_RPC_FAILURE 0x80080006L
903#define MK_E_NO_NORMALIZED 0x80080007L
904#define CO_E_SERVER_STOPPING 0x80080008L
905#define MEM_E_INVALID_ROOT 0x80080009L
906#define MEM_E_INVALID_LINK 0x80080010L
907#define MEM_E_INVALID_SIZE 0x80080011L
908#define DISP_E_UNKNOWNINTERFACE 0x80020001L
909#define DISP_E_MEMBERNOTFOUND 0x80020003L
910#define DISP_E_PARAMNOTFOUND 0x80020004L
911#define DISP_E_TYPEMISMATCH 0x80020005L
912#define DISP_E_UNKNOWNNAME 0x80020006L
913#define DISP_E_NONAMEDARGS 0x80020007L
914#define DISP_E_BADVARTYPE 0x80020008L
915#define DISP_E_EXCEPTION 0x80020009L
916#define DISP_E_OVERFLOW 0x8002000AL
917#define DISP_E_BADINDEX 0x8002000BL
918#define DISP_E_UNKNOWNLCID 0x8002000CL
919#define DISP_E_ARRAYISLOCKED 0x8002000DL
920#define DISP_E_BADPARAMCOUNT 0x8002000EL
921#define DISP_E_PARAMNOTOPTIONAL 0x8002000FL
922#define DISP_E_BADCALLEE 0x80020010L
923#define DISP_E_NOTACOLLECTION 0x80020011L
924#define TYPE_E_BUFFERTOOSMALL 0x80028016L
925#define TYPE_E_INVDATAREAD 0x80028018L
926#define TYPE_E_UNSUPFORMAT 0x80028019L
927#define TYPE_E_REGISTRYACCESS 0x8002801CL
928#define TYPE_E_LIBNOTREGISTERED 0x8002801DL
929#define TYPE_E_UNDEFINEDTYPE 0x80028027L
930#define TYPE_E_QUALIFIEDNAMEDISALLOWED 0x80028028L
931#define TYPE_E_INVALIDSTATE 0x80028029L
932#define TYPE_E_WRONGTYPEKIND 0x8002802AL
933#define TYPE_E_ELEMENTNOTFOUND 0x8002802BL
934#define TYPE_E_AMBIGUOUSNAME 0x8002802CL
935#define TYPE_E_NAMECONFLICT 0x8002802DL
936#define TYPE_E_UNKNOWNLCID 0x8002802EL
937#define TYPE_E_DLLFUNCTIONNOTFOUND 0x8002802FL
938#define TYPE_E_BADMODULEKIND 0x800288BDL
939#define TYPE_E_SIZETOOBIG 0x800288C5L
940#define TYPE_E_DUPLICATEID 0x800288C6L
941#define TYPE_E_INVALIDID 0x800288CFL
942#define TYPE_E_TYPEMISMATCH 0x80028CA0L
943#define TYPE_E_OUTOFBOUNDS 0x80028CA1L
944#define TYPE_E_IOERROR 0x80028CA2L
945#define TYPE_E_CANTCREATETMPFILE 0x80028CA3L
946#define TYPE_E_CANTLOADLIBRARY 0x80029C4AL
947#define TYPE_E_INCONSISTENTPROPFUNCS 0x80029C83L
948#define TYPE_E_CIRCULARTYPE 0x80029C84L
949#define STG_E_INVALIDFUNCTION 0x80030001L
950#define STG_E_FILENOTFOUND 0x80030002L
951#define STG_E_PATHNOTFOUND 0x80030003L
952#define STG_E_TOOMANYOPENFILES 0x80030004L
953#define STG_E_ACCESSDENIED 0x80030005L
954#define STG_E_INVALIDHANDLE 0x80030006L
955#define STG_E_INSUFFICIENTMEMORY 0x80030008L
956#define STG_E_INVALIDPOINTER 0x80030009L
957#define STG_E_NOMOREFILES 0x80030012L
958#define STG_E_DISKISWRITEPROTECTED 0x80030013L
959#define STG_E_SEEKERROR 0x80030019L
960#define STG_E_WRITEFAULT 0x8003001DL
961#define STG_E_READFAULT 0x8003001EL
962#define STG_E_SHAREVIOLATION 0x80030020L
963#define STG_E_LOCKVIOLATION 0x80030021L
964#define STG_E_FILEALREADYEXISTS 0x80030050L
965#define STG_E_INVALIDPARAMETER 0x80030057L
966#define STG_E_MEDIUMFULL 0x80030070L
967#define STG_E_ABNORMALAPIEXIT 0x800300FAL
968#define STG_E_INVALIDHEADER 0x800300FBL
969#define STG_E_INVALIDNAME 0x800300FCL
970#define STG_E_UNKNOWN 0x800300FDL
971#define STG_E_UNIMPLEMENTEDFUNCTION 0x800300FEL
972#define STG_E_INVALIDFLAG 0x800300FFL
973#define STG_E_INUSE 0x80030100L
974#define STG_E_NOTCURRENT 0x80030101L
975#define STG_E_REVERTED 0x80030102L
976#define STG_E_CANTSAVE 0x80030103L
977#define STG_E_OLDFORMAT 0x80030104L
978#define STG_E_OLDDLL 0x80030105L
979#define STG_E_SHAREREQUIRED 0x80030106L
980#define STG_E_NOTFILEBASEDSTORAGE 0x80030107L
981#define STG_E_EXTANTMARSHALLINGS 0x80030108L
982#define STG_S_CONVERTED 0x00030200L
983#define RPC_E_CALL_REJECTED 0x80010001L
984#define RPC_E_CALL_CANCELED 0x80010002L
985#define RPC_E_CANTPOST_INSENDCALL 0x80010003L
986#define RPC_E_CANTCALLOUT_INASYNCCALL 0x80010004L
987#define RPC_E_CANTCALLOUT_INEXTERNALCALL 0x80010005L
988#define RPC_E_CONNECTION_TERMINATED 0x80010006L
989#define RPC_E_SERVER_DIED 0x80010007L
990#define RPC_E_CLIENT_DIED 0x80010008L
991#define RPC_E_INVALID_DATAPACKET 0x80010009L
992#define RPC_E_CANTTRANSMIT_CALL 0x8001000AL
993#define RPC_E_CLIENT_CANTMARSHAL_DATA 0x8001000BL
994#define RPC_E_CLIENT_CANTUNMARSHAL_DATA 0x8001000CL
995#define RPC_E_SERVER_CANTMARSHAL_DATA 0x8001000DL
996#define RPC_E_SERVER_CANTUNMARSHAL_DATA 0x8001000EL
997#define RPC_E_INVALID_DATA 0x8001000FL
998#define RPC_E_INVALID_PARAMETER 0x80010010L
999#define RPC_E_CANTCALLOUT_AGAIN 0x80010011L
1000#define RPC_E_SERVER_DIED_DNE 0x80010012L
1001#define RPC_E_SYS_CALL_FAILED 0x80010100L
1002#define RPC_E_OUT_OF_RESOURCES 0x80010101L
1003#define RPC_E_ATTEMPTED_MULTITHREAD 0x80010102L
1004#define RPC_E_NOT_REGISTERED 0x80010103L
1005#define RPC_E_FAULT 0x80010104L
1006#define RPC_E_SERVERFAULT 0x80010105L
1007#define RPC_E_CHANGED_MODE 0x80010106L
1008#define RPC_E_INVALIDMETHOD 0x80010107L
1009#define RPC_E_DISCONNECTED 0x80010108L
1010#define RPC_E_RETRY 0x80010109L
1011#define RPC_E_SERVERCALL_RETRYLATER 0x8001010AL
1012#define RPC_E_SERVERCALL_REJECTED 0x8001010BL
1013#define RPC_E_INVALID_CALLDATA 0x8001010CL
1014#define RPC_E_CANTCALLOUT_ININPUTSYNCCALL 0x8001010DL
1015#define RPC_E_WRONG_THREAD 0x8001010EL
1016#define RPC_E_THREAD_NOT_INIT 0x8001010FL
1017#define RPC_E_UNEXPECTED 0x8001FFFFL
1018
1019#define NTE_BAD_UID 0x80090001L
1020#define NTE_BAD_HASH 0x80090002L
1021#define NTE_BAD_KEY 0x80090003L
1022#define NTE_BAD_LEN 0x80090004L
1023#define NTE_BAD_DATA 0x80090005L
1024#define NTE_BAD_SIGNATURE 0x80090006L
1025#define NTE_BAD_VER 0x80090007L
1026#define NTE_BAD_ALGID 0x80090008L
1027#define NTE_BAD_FLAGS 0x80090009L
1028#define NTE_BAD_TYPE 0x8009000AL
1029#define NTE_BAD_KEY_STATE 0x8009000BL
1030#define NTE_BAD_HASH_STATE 0x8009000CL
1031#define NTE_NO_KEY 0x8009000DL
1032#define NTE_NO_MEMORY 0x8009000EL
1033#define NTE_EXISTS 0x8009000FL
1034#define NTE_PERM 0x80090010L
1035#define NTE_NOT_FOUND 0x80090011L
1036#define NTE_DOUBLE_ENCRYPT 0x80090012L
1037#define NTE_BAD_PROVIDER 0x80090013L
1038#define NTE_BAD_PROV_TYPE 0x80090014L
1039#define NTE_BAD_PUBLIC_KEY 0x80090015L
1040#define NTE_BAD_KEYSET 0x80090016L
1041#define NTE_PROV_TYPE_NOT_DEF 0x80090017L
1042#define NTE_PROV_TYPE_ENTRY_BAD 0x80090018L
1043#define NTE_KEYSET_NOT_DEF 0x80090019L
1044#define NTE_KEYSET_ENTRY_BAD 0x8009001AL
1045#define NTE_PROV_TYPE_NO_MATCH 0x8009001BL
1046#define NTE_SIGNATURE_FILE_BAD 0x8009001CL
1047#define NTE_PROVIDER_DLL_FAIL 0x8009001DL
1048#define NTE_PROV_DLL_NOT_FOUND 0x8009001EL
1049#define NTE_BAD_KEYSET_PARAM 0x8009001FL
1050#define NTE_FAIL 0x80090020L
1051#define NTE_SYS_ERR 0x80090021L
1052/* #define NTE_TOKEN_KEYSET_STORAGE ??? */
1053
1054#endif
win32/include/winapi/wingdi.h+2843−0
@@ -0,0 +1,2843 @@
1#ifndef _WINGDI_H
2#define _WINGDI_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#define WINGDIAPI
12#define BI_RGB 0
13#define BI_RLE8 1
14#define BI_RLE4 2
15#define BI_BITFIELDS 3
16#define BI_JPEG 4
17#define BI_PNG 5
18#define LF_FACESIZE 32
19#define LF_FULLFACESIZE 64
20#define CA_NEGATIVE 1
21#define CA_LOG_FILTER 2
22#define ILLUMINANT_DEVICE_DEFAULT 0
23#define ILLUMINANT_A 1
24#define ILLUMINANT_B 2
25#define ILLUMINANT_C 3
26#define ILLUMINANT_D50 4
27#define ILLUMINANT_D55 5
28#define ILLUMINANT_D65 6
29#define ILLUMINANT_D75 7
30#define ILLUMINANT_F2 8
31#define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
32#define ILLUMINANT_TUNGSTEN ILLUMINANT_A
33#define ILLUMINANT_DAYLIGHT ILLUMINANT_C
34#define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
35#define ILLUMINANT_NTSC ILLUMINANT_C
36#define RGB_GAMMA_MIN 2500
37#define RGB_GAMMA_MAX 65000
38#define REFERENCE_WHITE_MIN 6000
39#define REFERENCE_WHITE_MAX 10000
40#define REFERENCE_BLACK_MIN 0
41#define REFERENCE_BLACK_MAX 4000
42#define COLOR_ADJ_MIN (-100)
43#define COLOR_ADJ_MAX 100
44#define CCHDEVICENAME 32
45#define CCHFORMNAME 32
46#define DI_COMPAT 4
47#define DI_DEFAULTSIZE 8
48#define DI_IMAGE 2
49#define DI_MASK 1
50#define DI_NORMAL 3
51#define DI_APPBANDING 1
52#define EMR_HEADER 1
53#define EMR_POLYBEZIER 2
54#define EMR_POLYGON 3
55#define EMR_POLYLINE 4
56#define EMR_POLYBEZIERTO 5
57#define EMR_POLYLINETO 6
58#define EMR_POLYPOLYLINE 7
59#define EMR_POLYPOLYGON 8
60#define EMR_SETWINDOWEXTEX 9
61#define EMR_SETWINDOWORGEX 10
62#define EMR_SETVIEWPORTEXTEX 11
63#define EMR_SETVIEWPORTORGEX 12
64#define EMR_SETBRUSHORGEX 13
65#define EMR_EOF 14
66#define EMR_SETPIXELV 15
67#define EMR_SETMAPPERFLAGS 16
68#define EMR_SETMAPMODE 17
69#define EMR_SETBKMODE 18
70#define EMR_SETPOLYFILLMODE 19
71#define EMR_SETROP2 20
72#define EMR_SETSTRETCHBLTMODE 21
73#define EMR_SETTEXTALIGN 22
74#define EMR_SETCOLORADJUSTMENT 23
75#define EMR_SETTEXTCOLOR 24
76#define EMR_SETBKCOLOR 25
77#define EMR_OFFSETCLIPRGN 26
78#define EMR_MOVETOEX 27
79#define EMR_SETMETARGN 28
80#define EMR_EXCLUDECLIPRECT 29
81#define EMR_INTERSECTCLIPRECT 30
82#define EMR_SCALEVIEWPORTEXTEX 31
83#define EMR_SCALEWINDOWEXTEX 32
84#define EMR_SAVEDC 33
85#define EMR_RESTOREDC 34
86#define EMR_SETWORLDTRANSFORM 35
87#define EMR_MODIFYWORLDTRANSFORM 36
88#define EMR_SELECTOBJECT 37
89#define EMR_CREATEPEN 38
90#define EMR_CREATEBRUSHINDIRECT 39
91#define EMR_DELETEOBJECT 40
92#define EMR_ANGLEARC 41
93#define EMR_ELLIPSE 42
94#define EMR_RECTANGLE 43
95#define EMR_ROUNDRECT 44
96#define EMR_ARC 45
97#define EMR_CHORD 46
98#define EMR_PIE 47
99#define EMR_SELECTPALETTE 48
100#define EMR_CREATEPALETTE 49
101#define EMR_SETPALETTEENTRIES 50
102#define EMR_RESIZEPALETTE 51
103#define EMR_REALIZEPALETTE 52
104#define EMR_EXTFLOODFILL 53
105#define EMR_LINETO 54
106#define EMR_ARCTO 55
107#define EMR_POLYDRAW 56
108#define EMR_SETARCDIRECTION 57
109#define EMR_SETMITERLIMIT 58
110#define EMR_BEGINPATH 59
111#define EMR_ENDPATH 60
112#define EMR_CLOSEFIGURE 61
113#define EMR_FILLPATH 62
114#define EMR_STROKEANDFILLPATH 63
115#define EMR_STROKEPATH 64
116#define EMR_FLATTENPATH 65
117#define EMR_WIDENPATH 66
118#define EMR_SELECTCLIPPATH 67
119#define EMR_ABORTPATH 68
120#define EMR_GDICOMMENT 70
121#define EMR_FILLRGN 71
122#define EMR_FRAMERGN 72
123#define EMR_INVERTRGN 73
124#define EMR_PAINTRGN 74
125#define EMR_EXTSELECTCLIPRGN 75
126#define EMR_BITBLT 76
127#define EMR_STRETCHBLT 77
128#define EMR_MASKBLT 78
129#define EMR_PLGBLT 79
130#define EMR_SETDIBITSTODEVICE 80
131#define EMR_STRETCHDIBITS 81
132#define EMR_EXTCREATEFONTINDIRECTW 82
133#define EMR_EXTTEXTOUTA 83
134#define EMR_EXTTEXTOUTW 84
135#define EMR_POLYBEZIER16 85
136#define EMR_POLYGON16 86
137#define EMR_POLYLINE16 87
138#define EMR_POLYBEZIERTO16 88
139#define EMR_POLYLINETO16 89
140#define EMR_POLYPOLYLINE16 90
141#define EMR_POLYPOLYGON16 91
142#define EMR_POLYDRAW16 92
143#define EMR_CREATEMONOBRUSH 93
144#define EMR_CREATEDIBPATTERNBRUSHPT 94
145#define EMR_EXTCREATEPEN 95
146#define EMR_POLYTEXTOUTA 96
147#define EMR_POLYTEXTOUTW 97
148#define EMR_SETICMMODE 98
149#define EMR_CREATECOLORSPACE 99
150#define EMR_SETCOLORSPACE 100
151#define EMR_DELETECOLORSPACE 101
152#define EMR_GLSRECORD 102
153#define EMR_GLSBOUNDEDRECORD 103
154#define EMR_PIXELFORMAT 104
155#define ENHMETA_SIGNATURE 1179469088
156#define EPS_SIGNATURE 0x46535045
157#define META_SETBKCOLOR 0x201
158#define META_SETBKMODE 0x102
159#define META_SETMAPMODE 0x103
160#define META_SETROP2 0x104
161#define META_SETRELABS 0x105
162#define META_SETPOLYFILLMODE 0x106
163#define META_SETSTRETCHBLTMODE 0x107
164#define META_SETTEXTCHAREXTRA 0x108
165#define META_SETTEXTCOLOR 0x209
166#define META_SETTEXTJUSTIFICATION 0x20A
167#define META_SETWINDOWORG 0x20B
168#define META_SETWINDOWEXT 0x20C
169#define META_SETVIEWPORTORG 0x20D
170#define META_SETVIEWPORTEXT 0x20E
171#define META_OFFSETWINDOWORG 0x20F
172#define META_SCALEWINDOWEXT 0x410
173#define META_OFFSETVIEWPORTORG 0x211
174#define META_SCALEVIEWPORTEXT 0x412
175#define META_LINETO 0x213
176#define META_MOVETO 0x214
177#define META_EXCLUDECLIPRECT 0x415
178#define META_INTERSECTCLIPRECT 0x416
179#define META_ARC 0x817
180#define META_ELLIPSE 0x418
181#define META_FLOODFILL 0x419
182#define META_PIE 0x81A
183#define META_RECTANGLE 0x41B
184#define META_ROUNDRECT 0x61C
185#define META_PATBLT 0x61D
186#define META_SAVEDC 0x1E
187#define META_SETPIXEL 0x41F
188#define META_OFFSETCLIPRGN 0x220
189#define META_TEXTOUT 0x521
190#define META_BITBLT 0x922
191#define META_STRETCHBLT 0xB23
192#define META_POLYGON 0x324
193#define META_POLYLINE 0x325
194#define META_ESCAPE 0x626
195#define META_RESTOREDC 0x127
196#define META_FILLREGION 0x228
197#define META_FRAMEREGION 0x429
198#define META_INVERTREGION 0x12A
199#define META_PAINTREGION 0x12B
200#define META_SELECTCLIPREGION 0x12C
201#define META_SELECTOBJECT 0x12D
202#define META_SETTEXTALIGN 0x12E
203#define META_CHORD 0x830
204#define META_SETMAPPERFLAGS 0x231
205#define META_EXTTEXTOUT 0xa32
206#define META_SETDIBTODEV 0xd33
207#define META_SELECTPALETTE 0x234
208#define META_REALIZEPALETTE 0x35
209#define META_ANIMATEPALETTE 0x436
210#define META_SETPALENTRIES 0x37
211#define META_POLYPOLYGON 0x538
212#define META_RESIZEPALETTE 0x139
213#define META_DIBBITBLT 0x940
214#define META_DIBSTRETCHBLT 0xb41
215#define META_DIBCREATEPATTERNBRUSH 0x142
216#define META_STRETCHDIB 0xf43
217#define META_EXTFLOODFILL 0x548
218#define META_DELETEOBJECT 0x1f0
219#define META_CREATEPALETTE 0xf7
220#define META_CREATEPATTERNBRUSH 0x1F9
221#define META_CREATEPENINDIRECT 0x2FA
222#define META_CREATEFONTINDIRECT 0x2FB
223#define META_CREATEBRUSHINDIRECT 0x2FC
224#define META_CREATEREGION 0x6FF
225#define PT_MOVETO 6
226#define PT_LINETO 2
227#define PT_BEZIERTO 4
228#define PT_CLOSEFIGURE 1
229#define ELF_VENDOR_SIZE 4
230#define ELF_VERSION 0
231#define ELF_CULTURE_LATIN 0
232#define PFD_TYPE_RGBA 0
233#define PFD_TYPE_COLORINDEX 1
234#define PFD_MAIN_PLANE 0
235#define PFD_OVERLAY_PLANE 1
236#define PFD_UNDERLAY_PLANE (-1)
237#define PFD_DOUBLEBUFFER 1
238#define PFD_STEREO 2
239#define PFD_DRAW_TO_WINDOW 4
240#define PFD_DRAW_TO_BITMAP 8
241#define PFD_SUPPORT_GDI 16
242#define PFD_SUPPORT_OPENGL 32
243#define PFD_GENERIC_FORMAT 64
244#define PFD_NEED_PALETTE 128
245#define PFD_NEED_SYSTEM_PALETTE 0x00000100
246#define PFD_SWAP_EXCHANGE 0x00000200
247#define PFD_SWAP_COPY 0x00000400
248#define PFD_GENERIC_ACCELERATED 0x00001000
249#define PFD_DEPTH_DONTCARE 0x20000000
250#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
251#define PFD_STEREO_DONTCARE 0x80000000
252#define SP_ERROR (-1)
253#define SP_OUTOFDISK (-4)
254#define SP_OUTOFMEMORY (-5)
255#define SP_USERABORT (-3)
256#define SP_APPABORT (-2)
257#define BLACKNESS 0x42
258#define NOTSRCERASE 0x1100A6
259#define NOTSRCCOPY 0x330008
260#define SRCERASE 0x440328
261#define DSTINVERT 0x550009
262#define PATINVERT 0x5A0049
263#define SRCINVERT 0x660046
264#define SRCAND 0x8800C6
265#define MERGEPAINT 0xBB0226
266#define MERGECOPY 0xC000CA
267#define SRCCOPY 0xCC0020
268#define SRCPAINT 0xEE0086
269#define PATCOPY 0xF00021
270#define PATPAINT 0xFB0A09
271#define WHITENESS 0xFF0062
272#define R2_BLACK 1
273#define R2_COPYPEN 13
274#define R2_MASKNOTPEN 3
275#define R2_MASKPEN 9
276#define R2_MASKPENNOT 5
277#define R2_MERGENOTPEN 12
278#define R2_MERGEPEN 15
279#define R2_MERGEPENNOT 14
280#define R2_NOP 11
281#define R2_NOT 6
282#define R2_NOTCOPYPEN 4
283#define R2_NOTMASKPEN 8
284#define R2_NOTMERGEPEN 2
285#define R2_NOTXORPEN 10
286#define R2_WHITE 16
287#define R2_XORPEN 7
288#define CM_OUT_OF_GAMUT 255
289#define CM_IN_GAMUT 0
290#define RGN_AND 1
291#define RGN_COPY 5
292#define RGN_DIFF 4
293#define RGN_OR 2
294#define RGN_XOR 3
295#define NULLREGION 1
296#define SIMPLEREGION 2
297#define COMPLEXREGION 3
298#define ERROR 0
299#define CBM_INIT 4
300#define DIB_PAL_COLORS 1
301#define DIB_RGB_COLORS 0
302#define FW_DONTCARE 0
303#define FW_THIN 100
304#define FW_EXTRALIGHT 200
305#define FW_ULTRALIGHT FW_EXTRALIGHT
306#define FW_LIGHT 300
307#define FW_NORMAL 400
308#define FW_REGULAR 400
309#define FW_MEDIUM 500
310#define FW_SEMIBOLD 600
311#define FW_DEMIBOLD FW_SEMIBOLD
312#define FW_BOLD 700
313#define FW_EXTRABOLD 800
314#define FW_ULTRABOLD FW_EXTRABOLD
315#define FW_HEAVY 900
316#define FW_BLACK FW_HEAVY
317#define ANSI_CHARSET 0
318#define DEFAULT_CHARSET 1
319#define SYMBOL_CHARSET 2
320#define SHIFTJIS_CHARSET 128
321#define HANGEUL_CHARSET 129
322#define HANGUL_CHARSET 129
323#define GB2312_CHARSET 134
324#define CHINESEBIG5_CHARSET 136
325#define GREEK_CHARSET 161
326#define TURKISH_CHARSET 162
327#define HEBREW_CHARSET 177
328#define ARABIC_CHARSET 178
329#define BALTIC_CHARSET 186
330#define RUSSIAN_CHARSET 204
331#define THAI_CHARSET 222
332#define EASTEUROPE_CHARSET 238
333#define OEM_CHARSET 255
334#define JOHAB_CHARSET 130
335#define VIETNAMESE_CHARSET 163
336#define MAC_CHARSET 77
337#define BALTIC_CHARSET 186
338#define JOHAB_CHARSET 130
339#define VIETNAMESE_CHARSET 163
340#define OUT_DEFAULT_PRECIS 0
341#define OUT_STRING_PRECIS 1
342#define OUT_CHARACTER_PRECIS 2
343#define OUT_STROKE_PRECIS 3
344#define OUT_TT_PRECIS 4
345#define OUT_DEVICE_PRECIS 5
346#define OUT_RASTER_PRECIS 6
347#define OUT_TT_ONLY_PRECIS 7
348#define OUT_OUTLINE_PRECIS 8
349#define CLIP_DEFAULT_PRECIS 0
350#define CLIP_CHARACTER_PRECIS 1
351#define CLIP_STROKE_PRECIS 2
352#define CLIP_MASK 15
353#define CLIP_LH_ANGLES 16
354#define CLIP_TT_ALWAYS 32
355#define CLIP_EMBEDDED 128
356#define DEFAULT_QUALITY 0
357#define DRAFT_QUALITY 1
358#define PROOF_QUALITY 2
359#define NONANTIALIASED_QUALITY 3
360#define ANTIALIASED_QUALITY 4
361#define DEFAULT_PITCH 0
362#define FIXED_PITCH 1
363#define VARIABLE_PITCH 2
364#define MONO_FONT 8
365#define FF_DECORATIVE 80
366#define FF_DONTCARE 0
367#define FF_MODERN 48
368#define FF_ROMAN 16
369#define FF_SCRIPT 64
370#define FF_SWISS 32
371#define PANOSE_COUNT 10
372#define PAN_FAMILYTYPE_INDEX 0
373#define PAN_SERIFSTYLE_INDEX 1
374#define PAN_WEIGHT_INDEX 2
375#define PAN_PROPORTION_INDEX 3
376#define PAN_CONTRAST_INDEX 4
377#define PAN_STROKEVARIATION_INDEX 5
378#define PAN_ARMSTYLE_INDEX 6
379#define PAN_LETTERFORM_INDEX 7
380#define PAN_MIDLINE_INDEX 8
381#define PAN_XHEIGHT_INDEX 9
382#define PAN_CULTURE_LATIN 0
383#define PAN_ANY 0
384#define PAN_NO_FIT 1
385#define PAN_FAMILY_TEXT_DISPLAY 2
386#define PAN_FAMILY_SCRIPT 3
387#define PAN_FAMILY_DECORATIVE 4
388#define PAN_FAMILY_PICTORIAL 5
389#define PAN_SERIF_COVE 2
390#define PAN_SERIF_OBTUSE_COVE 3
391#define PAN_SERIF_SQUARE_COVE 4
392#define PAN_SERIF_OBTUSE_SQUARE_COVE 5
393#define PAN_SERIF_SQUARE 6
394#define PAN_SERIF_THIN 7
395#define PAN_SERIF_BONE 8
396#define PAN_SERIF_EXAGGERATED 9
397#define PAN_SERIF_TRIANGLE 10
398#define PAN_SERIF_NORMAL_SANS 11
399#define PAN_SERIF_OBTUSE_SANS 12
400#define PAN_SERIF_PERP_SANS 13
401#define PAN_SERIF_FLARED 14
402#define PAN_SERIF_ROUNDED 15
403#define PAN_WEIGHT_VERY_LIGHT 2
404#define PAN_WEIGHT_LIGHT 3
405#define PAN_WEIGHT_THIN 4
406#define PAN_WEIGHT_BOOK 5
407#define PAN_WEIGHT_MEDIUM 6
408#define PAN_WEIGHT_DEMI 7
409#define PAN_WEIGHT_BOLD 8
410#define PAN_WEIGHT_HEAVY 9
411#define PAN_WEIGHT_BLACK 10
412#define PAN_WEIGHT_NORD 11
413#define PAN_PROP_OLD_STYLE 2
414#define PAN_PROP_MODERN 3
415#define PAN_PROP_EVEN_WIDTH 4
416#define PAN_PROP_EXPANDED 5
417#define PAN_PROP_CONDENSED 6
418#define PAN_PROP_VERY_EXPANDED 7
419#define PAN_PROP_VERY_CONDENSED 8
420#define PAN_PROP_MONOSPACED 9
421#define PAN_CONTRAST_NONE 2
422#define PAN_CONTRAST_VERY_LOW 3
423#define PAN_CONTRAST_LOW 4
424#define PAN_CONTRAST_MEDIUM_LOW 5
425#define PAN_CONTRAST_MEDIUM 6
426#define PAN_CONTRAST_MEDIUM_HIGH 7
427#define PAN_CONTRAST_HIGH 8
428#define PAN_CONTRAST_VERY_HIGH 9
429#define PAN_STROKE_GRADUAL_DIAG 2
430#define PAN_STROKE_GRADUAL_TRAN 3
431#define PAN_STROKE_GRADUAL_VERT 4
432#define PAN_STROKE_GRADUAL_HORZ 5
433#define PAN_STROKE_RAPID_VERT 6
434#define PAN_STROKE_RAPID_HORZ 7
435#define PAN_STROKE_INSTANT_VERT 8
436#define PAN_STRAIGHT_ARMS_HORZ 2
437#define PAN_STRAIGHT_ARMS_WEDGE 3
438#define PAN_STRAIGHT_ARMS_VERT 4
439#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
440#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
441#define PAN_BENT_ARMS_HORZ 7
442#define PAN_BENT_ARMS_WEDGE 8
443#define PAN_BENT_ARMS_VERT 9
444#define PAN_BENT_ARMS_SINGLE_SERIF 10
445#define PAN_BENT_ARMS_DOUBLE_SERIF 11
446#define PAN_LETT_NORMAL_CONTACT 2
447#define PAN_LETT_NORMAL_WEIGHTED 3
448#define PAN_LETT_NORMAL_BOXED 4
449#define PAN_LETT_NORMAL_FLATTENED 5
450#define PAN_LETT_NORMAL_ROUNDED 6
451#define PAN_LETT_NORMAL_OFF_CENTER 7
452#define PAN_LETT_NORMAL_SQUARE 8
453#define PAN_LETT_OBLIQUE_CONTACT 9
454#define PAN_LETT_OBLIQUE_WEIGHTED 10
455#define PAN_LETT_OBLIQUE_BOXED 11
456#define PAN_LETT_OBLIQUE_FLATTENED 12
457#define PAN_LETT_OBLIQUE_ROUNDED 13
458#define PAN_LETT_OBLIQUE_OFF_CENTER 14
459#define PAN_LETT_OBLIQUE_SQUARE 15
460#define PAN_MIDLINE_STANDARD_TRIMMED 2
461#define PAN_MIDLINE_STANDARD_POINTED 3
462#define PAN_MIDLINE_STANDARD_SERIFED 4
463#define PAN_MIDLINE_HIGH_TRIMMED 5
464#define PAN_MIDLINE_HIGH_POINTED 6
465#define PAN_MIDLINE_HIGH_SERIFED 7
466#define PAN_MIDLINE_CONSTANT_TRIMMED 8
467#define PAN_MIDLINE_CONSTANT_POINTED 9
468#define PAN_MIDLINE_CONSTANT_SERIFED 10
469#define PAN_MIDLINE_LOW_TRIMMED 11
470#define PAN_MIDLINE_LOW_POINTED 12
471#define PAN_MIDLINE_LOW_SERIFED 13
472#define PAN_XHEIGHT_CONSTANT_SMALL 2
473#define PAN_XHEIGHT_CONSTANT_STD 3
474#define PAN_XHEIGHT_CONSTANT_LARGE 4
475#define PAN_XHEIGHT_DUCKING_SMALL 5
476#define PAN_XHEIGHT_DUCKING_STD 6
477#define PAN_XHEIGHT_DUCKING_LARGE 7
478#define FS_LATIN1 1
479#define FS_LATIN2 2
480#define FS_CYRILLIC 4
481#define FS_GREEK 8
482#define FS_TURKISH 16
483#define FS_HEBREW 32
484#define FS_ARABIC 64
485#define FS_BALTIC 128
486#define FS_THAI 0x10000
487#define FS_JISJAPAN 0x20000
488#define FS_CHINESESIMP 0x40000
489#define FS_WANSUNG 0x80000
490#define FS_CHINESETRAD 0x100000
491#define FS_JOHAB 0x200000
492#define FS_SYMBOL 0x80000000
493#define HS_BDIAGONAL 3
494#define HS_CROSS 4
495#define HS_DIAGCROSS 5
496#define HS_FDIAGONAL 2
497#define HS_HORIZONTAL 0
498#define HS_VERTICAL 1
499#define PS_GEOMETRIC 65536
500#define PS_COSMETIC 0
501#define PS_ALTERNATE 8
502#define PS_SOLID 0
503#define PS_DASH 1
504#define PS_DOT 2
505#define PS_DASHDOT 3
506#define PS_DASHDOTDOT 4
507#define PS_NULL 5
508#define PS_USERSTYLE 7
509#define PS_INSIDEFRAME 6
510#define PS_ENDCAP_ROUND 0
511#define PS_ENDCAP_SQUARE 256
512#define PS_ENDCAP_FLAT 512
513#define PS_JOIN_BEVEL 4096
514#define PS_JOIN_MITER 8192
515#define PS_JOIN_ROUND 0
516#define PS_STYLE_MASK 15
517#define PS_ENDCAP_MASK 3840
518#define PS_TYPE_MASK 983040
519#define ALTERNATE 1
520#define WINDING 2
521#define DC_BINNAMES 12
522#define DC_BINS 6
523#define DC_COPIES 18
524#define DC_DRIVER 11
525#define DC_DATATYPE_PRODUCED 21
526#define DC_DUPLEX 7
527#define DC_EMF_COMPLIANT 20
528#define DC_ENUMRESOLUTIONS 13
529#define DC_EXTRA 9
530#define DC_FIELDS 1
531#define DC_FILEDEPENDENCIES 14
532#define DC_MAXEXTENT 5
533#define DC_MINEXTENT 4
534#define DC_ORIENTATION 17
535#define DC_PAPERNAMES 16
536#define DC_PAPERS 2
537#define DC_PAPERSIZE 3
538#define DC_SIZE 8
539#define DC_TRUETYPE 15
540#define DCTT_BITMAP 1
541#define DCTT_DOWNLOAD 2
542#define DCTT_SUBDEV 4
543#define DCTT_DOWNLOAD_OUTLINE 8
544#define DC_VERSION 10
545#define DC_BINADJUST 19
546#define DC_EMF_COMPLIANT 20
547#define DC_DATATYPE_PRODUCED 21
548#define DC_MANUFACTURER 23
549#define DC_MODEL 24
550#define DCBA_FACEUPNONE 0
551#define DCBA_FACEUPCENTER 1
552#define DCBA_FACEUPLEFT 2
553#define DCBA_FACEUPRIGHT 3
554#define DCBA_FACEDOWNNONE 256
555#define DCBA_FACEDOWNCENTER 257
556#define DCBA_FACEDOWNLEFT 258
557#define DCBA_FACEDOWNRIGHT 259
558#define FLOODFILLBORDER 0
559#define FLOODFILLSURFACE 1
560#define ETO_CLIPPED 4
561#define ETO_GLYPH_INDEX 16
562#define ETO_OPAQUE 2
563#define ETO_RTLREADING 128
564#define GDICOMMENT_WINDOWS_METAFILE (-2147483647)
565#define GDICOMMENT_BEGINGROUP 2
566#define GDICOMMENT_ENDGROUP 3
567#define GDICOMMENT_MULTIFORMATS 1073741828
568#define GDICOMMENT_IDENTIFIER 1128875079
569#define AD_COUNTERCLOCKWISE 1
570#define AD_CLOCKWISE 2
571#define RDH_RECTANGLES 1
572#define GCPCLASS_LATIN 1
573#define GCPCLASS_HEBREW 2
574#define GCPCLASS_ARABIC 2
575#define GCPCLASS_NEUTRAL 3
576#define GCPCLASS_LOCALNUMBER 4
577#define GCPCLASS_LATINNUMBER 5
578#define GCPCLASS_LATINNUMERICTERMINATOR 6
579#define GCPCLASS_LATINNUMERICSEPARATOR 7
580#define GCPCLASS_NUMERICSEPARATOR 8
581#define GCPCLASS_PREBOUNDLTR 128
582#define GCPCLASS_PREBOUNDRTL 64
583#define GCPCLASS_POSTBOUNDLTR 32
584#define GCPCLASS_POSTBOUNDRTL 16
585#define GCPGLYPH_LINKBEFORE 0x8000
586#define GCPGLYPH_LINKAFTER 0x4000
587#define DCB_DISABLE 8
588#define DCB_ENABLE 4
589#define DCB_RESET 1
590#define DCB_SET 3
591#define DCB_ACCUMULATE 2
592#define DCB_DIRTY 2
593#define OBJ_BRUSH 2
594#define OBJ_PEN 1
595#define OBJ_PAL 5
596#define OBJ_FONT 6
597#define OBJ_BITMAP 7
598#define OBJ_EXTPEN 11
599#define OBJ_REGION 8
600#define OBJ_DC 3
601#define OBJ_MEMDC 10
602#define OBJ_METAFILE 9
603#define OBJ_METADC 4
604#define OBJ_ENHMETAFILE 13
605#define OBJ_ENHMETADC 12
606#define DRIVERVERSION 0
607#define TECHNOLOGY 2
608#define DT_PLOTTER 0
609#define DT_RASDISPLAY 1
610#define DT_RASPRINTER 2
611#define DT_RASCAMERA 3
612#define DT_CHARSTREAM 4
613#define DT_METAFILE 5
614#define DT_DISPFILE 6
615#define HORZSIZE 4
616#define VERTSIZE 6
617#define HORZRES 8
618#define VERTRES 10
619#define LOGPIXELSX 88
620#define LOGPIXELSY 90
621#define BITSPIXEL 12
622#define PLANES 14
623#define NUMBRUSHES 16
624#define NUMPENS 18
625#define NUMFONTS 22
626#define NUMCOLORS 24
627#define NUMMARKERS 20
628#define ASPECTX 40
629#define ASPECTY 42
630#define ASPECTXY 44
631#define PDEVICESIZE 26
632#define CLIPCAPS 36
633#define SIZEPALETTE 104
634#define NUMRESERVED 106
635#define COLORRES 108
636#define PHYSICALWIDTH 110
637#define PHYSICALHEIGHT 111
638#define PHYSICALOFFSETX 112
639#define PHYSICALOFFSETY 113
640#define SCALINGFACTORX 114
641#define SCALINGFACTORY 115
642#define VREFRESH 116
643#define DESKTOPHORZRES 118
644#define DESKTOPVERTRES 117
645#define BLTALIGNMENT 119
646#define RASTERCAPS 38
647#define RC_BANDING 2
648#define RC_BITBLT 1
649#define RC_BITMAP64 8
650#define RC_DI_BITMAP 128
651#define RC_DIBTODEV 512
652#define RC_FLOODFILL 4096
653#define RC_GDI20_OUTPUT 16
654#define RC_PALETTE 256
655#define RC_SCALING 4
656#define RC_STRETCHBLT 2048
657#define RC_STRETCHDIB 8192
658#define RC_DEVBITS 0x8000
659#define RC_OP_DX_OUTPUT 0x4000
660#define CURVECAPS 28
661#define CC_NONE 0
662#define CC_CIRCLES 1
663#define CC_PIE 2
664#define CC_CHORD 4
665#define CC_ELLIPSES 8
666#define CC_WIDE 16
667#define CC_STYLED 32
668#define CC_WIDESTYLED 64
669#define CC_INTERIORS 128
670#define CC_ROUNDRECT 256
671#define LINECAPS 30
672#define LC_NONE 0
673#define LC_POLYLINE 2
674#define LC_MARKER 4
675#define LC_POLYMARKER 8
676#define LC_WIDE 16
677#define LC_STYLED 32
678#define LC_WIDESTYLED 64
679#define LC_INTERIORS 128
680#define POLYGONALCAPS 32
681#define RC_BANDING 2
682#define RC_BIGFONT 1024
683#define RC_BITBLT 1
684#define RC_BITMAP64 8
685#define RC_DEVBITS 0x8000
686#define RC_DI_BITMAP 128
687#define RC_GDI20_OUTPUT 16
688#define RC_GDI20_STATE 32
689#define RC_NONE 0
690#define RC_OP_DX_OUTPUT 0x4000
691#define RC_PALETTE 256
692#define RC_SAVEBITMAP 64
693#define RC_SCALING 4
694#define PC_NONE 0
695#define PC_POLYGON 1
696#define PC_POLYPOLYGON 256
697#define PC_PATHS 512
698#define PC_RECTANGLE 2
699#define PC_WINDPOLYGON 4
700#define PC_SCANLINE 8
701#define PC_TRAPEZOID 4
702#define PC_WIDE 16
703#define PC_STYLED 32
704#define PC_WIDESTYLED 64
705#define PC_INTERIORS 128
706#define PC_PATHS 512
707#define TEXTCAPS 34
708#define TC_OP_CHARACTER 1
709#define TC_OP_STROKE 2
710#define TC_CP_STROKE 4
711#define TC_CR_90 8
712#define TC_CR_ANY 16
713#define TC_SF_X_YINDEP 32
714#define TC_SA_DOUBLE 64
715#define TC_SA_INTEGER 128
716#define TC_SA_CONTIN 256
717#define TC_EA_DOUBLE 512
718#define TC_IA_ABLE 1024
719#define TC_UA_ABLE 2048
720#define TC_SO_ABLE 4096
721#define TC_RA_ABLE 8192
722#define TC_VA_ABLE 16384
723#define TC_RESERVED 32768
724#define TC_SCROLLBLT 65536
725#define GCP_DBCS 1
726#define GCP_ERROR 0x8000
727#define GCP_CLASSIN 0x80000
728#define GCP_DIACRITIC 256
729#define GCP_DISPLAYZWG 0x400000
730#define GCP_GLYPHSHAPE 16
731#define GCP_JUSTIFY 0x10000
732#define GCP_JUSTIFYIN 0x200000
733#define GCP_KASHIDA 1024
734#define GCP_LIGATE 32
735#define GCP_MAXEXTENT 0x100000
736#define GCP_NEUTRALOVERRIDE 0x2000000
737#define GCP_NUMERICOVERRIDE 0x1000000
738#define GCP_NUMERICSLATIN 0x4000000
739#define GCP_NUMERICSLOCAL 0x8000000
740#define GCP_REORDER 2
741#define GCP_SYMSWAPOFF 0x800000
742#define GCP_USEKERNING 8
743#define FLI_GLYPHS 0x40000
744#define FLI_MASK 0x103b
745#define GGO_METRICS 0
746#define GGO_BITMAP 1
747#define GGO_NATIVE 2
748#define GGO_BEZIER 3
749#define GGO_GRAY2_BITMAP 4
750#define GGO_GRAY4_BITMAP 5
751#define GGO_GRAY8_BITMAP 6
752#define GGO_GLYPH_INDEX 128
753#define GGO_UNHINTED 256
754#define GM_COMPATIBLE 1
755#define GM_ADVANCED 2
756#define MM_ANISOTROPIC 8
757#define MM_HIENGLISH 5
758#define MM_HIMETRIC 3
759#define MM_ISOTROPIC 7
760#define MM_LOENGLISH 4
761#define MM_LOMETRIC 2
762#define MM_TEXT 1
763#define MM_TWIPS 6
764#define MM_MAX_FIXEDSCALE MM_TWIPS
765#define ABSOLUTE 1
766#define RELATIVE 2
767#define PC_EXPLICIT 2
768#define PC_NOCOLLAPSE 4
769#define PC_RESERVED 1
770#define CLR_NONE 0xffffffff
771#define CLR_INVALID CLR_NONE
772#define CLR_DEFAULT 0xff000000
773#define PT_MOVETO 6
774#define PT_LINETO 2
775#define PT_BEZIERTO 4
776#define PT_CLOSEFIGURE 1
777#define TT_AVAILABLE 1
778#define TT_ENABLED 2
779#define BLACK_BRUSH 4
780#define DKGRAY_BRUSH 3
781#define GRAY_BRUSH 2
782#define HOLLOW_BRUSH 5
783#define LTGRAY_BRUSH 1
784#define NULL_BRUSH 5
785#define WHITE_BRUSH 0
786#define BLACK_PEN 7
787#define NULL_PEN 8
788#define WHITE_PEN 6
789#define ANSI_FIXED_FONT 11
790#define ANSI_VAR_FONT 12
791#define DEVICE_DEFAULT_FONT 14
792#define DEFAULT_GUI_FONT 17
793#define OEM_FIXED_FONT 10
794#define SYSTEM_FONT 13
795#define SYSTEM_FIXED_FONT 16
796#define DEFAULT_PALETTE 15
797#define SYSPAL_NOSTATIC 2
798#define SYSPAL_STATIC 1
799#define SYSPAL_ERROR 0
800#define TA_BASELINE 24
801#define TA_BOTTOM 8
802#define TA_TOP 0
803#define TA_CENTER 6
804#define TA_LEFT 0
805#define TA_RIGHT 2
806#define TA_RTLREADING 256
807#define TA_NOUPDATECP 0
808#define TA_UPDATECP 1
809#define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
810#define VTA_BASELINE 24
811#define VTA_CENTER 6
812#define VTA_LEFT TA_BOTTOM
813#define VTA_RIGHT TA_TOP
814#define VTA_BOTTOM TA_RIGHT
815#define VTA_TOP TA_LEFT
816#define MWT_IDENTITY 1
817#define MWT_LEFTMULTIPLY 2
818#define MWT_RIGHTMULTIPLY 3
819#define OPAQUE 2
820#define TRANSPARENT 1
821#define BLACKONWHITE 1
822#define WHITEONBLACK 2
823#define COLORONCOLOR 3
824#define HALFTONE 4
825#define MAXSTRETCHBLTMODE 4
826#define STRETCH_ANDSCANS 1
827#define STRETCH_DELETESCANS 3
828#define STRETCH_HALFTONE 4
829#define STRETCH_ORSCANS 2
830#define TCI_SRCCHARSET 1
831#define TCI_SRCCODEPAGE 2
832#define TCI_SRCFONTSIG 3
833#define ICM_ON 2
834#define ICM_OFF 1
835#define ICM_QUERY 3
836#define NEWFRAME 1
837#define ABORTDOC 2
838#define NEXTBAND 3
839#define SETCOLORTABLE 4
840#define GETCOLORTABLE 5
841#define FLUSHOUTPUT 6
842#define DRAFTMODE 7
843#define QUERYESCSUPPORT 8
844#define SETABORTPROC 9
845#define STARTDOC 10
846#define ENDDOC 11
847#define GETPHYSPAGESIZE 12
848#define GETPRINTINGOFFSET 13
849#define GETSCALINGFACTOR 14
850#define MFCOMMENT 15
851#define GETPENWIDTH 16
852#define SETCOPYCOUNT 17
853#define SELECTPAPERSOURCE 18
854#define DEVICEDATA 19
855#define PASSTHROUGH 19
856#define GETTECHNOLGY 20
857#define GETTECHNOLOGY 20
858#define SETLINECAP 21
859#define SETLINEJOIN 22
860#define SETMITERLIMIT 23
861#define BANDINFO 24
862#define DRAWPATTERNRECT 25
863#define GETVECTORPENSIZE 26
864#define GETVECTORBRUSHSIZE 27
865#define ENABLEDUPLEX 28
866#define GETSETPAPERBINS 29
867#define GETSETPRINTORIENT 30
868#define ENUMPAPERBINS 31
869#define SETDIBSCALING 32
870#define EPSPRINTING 33
871#define ENUMPAPERMETRICS 34
872#define GETSETPAPERMETRICS 35
873#define POSTSCRIPT_DATA 37
874#define POSTSCRIPT_IGNORE 38
875#define MOUSETRAILS 39
876#define GETDEVICEUNITS 42
877#define GETEXTENDEDTEXTMETRICS 256
878#define GETEXTENTTABLE 257
879#define GETPAIRKERNTABLE 258
880#define GETTRACKKERNTABLE 259
881#define EXTTEXTOUT 512
882#define GETFACENAME 513
883#define DOWNLOADFACE 514
884#define ENABLERELATIVEWIDTHS 768
885#define ENABLEPAIRKERNING 769
886#define SETKERNTRACK 770
887#define SETALLJUSTVALUES 771
888#define SETCHARSET 772
889#define STRETCHBLT 2048
890#define GETSETSCREENPARAMS 3072
891#define QUERYDIBSUPPORT 3073
892#define BEGIN_PATH 4096
893#define CLIP_TO_PATH 4097
894#define END_PATH 4098
895#define EXT_DEVICE_CAPS 4099
896#define RESTORE_CTM 4100
897#define SAVE_CTM 4101
898#define SET_ARC_DIRECTION 4102
899#define SET_BACKGROUND_COLOR 4103
900#define SET_POLY_MODE 4104
901#define SET_SCREEN_ANGLE 4105
902#define SET_SPREAD 4106
903#define TRANSFORM_CTM 4107
904#define SET_CLIP_BOX 4108
905#define SET_BOUNDS 4109
906#define SET_MIRROR_MODE 4110
907#define OPENCHANNEL 4110
908#define DOWNLOADHEADER 4111
909#define CLOSECHANNEL 4112
910#define POSTSCRIPT_PASSTHROUGH 4115
911#define ENCAPSULATED_POSTSCRIPT 4116
912#define QDI_SETDIBITS 1
913#define QDI_GETDIBITS 2
914#define QDI_DIBTOSCREEN 4
915#define QDI_STRETCHDIB 8
916#define SP_NOTREPORTED 0x4000
917#define PR_JOBSTATUS 0
918#define ASPECT_FILTERING 1
919#define BS_SOLID 0
920#define BS_NULL 1
921#define BS_HOLLOW 1
922#define BS_HATCHED 2
923#define BS_PATTERN 3
924#define BS_INDEXED 4
925#define BS_DIBPATTERN 5
926#define BS_DIBPATTERNPT 6
927#define BS_PATTERN8X8 7
928#define BS_DIBPATTERN8X8 8
929#define LCS_CALIBRATED_RGB 0
930#define LCS_DEVICE_RGB 1
931#define LCS_DEVICE_CMYK 2
932#define LCS_GM_BUSINESS 1
933#define LCS_GM_GRAPHICS 2
934#define LCS_GM_IMAGES 4
935#define RASTER_FONTTYPE 1
936#define DEVICE_FONTTYPE 2
937#define TRUETYPE_FONTTYPE 4
938#define DMORIENT_PORTRAIT 1
939#define DMORIENT_LANDSCAPE 2
940#define DMPAPER_FIRST 1
941#define DMPAPER_LETTER 1
942#define DMPAPER_LETTERSMALL 2
943#define DMPAPER_TABLOID 3
944#define DMPAPER_LEDGER 4
945#define DMPAPER_LEGAL 5
946#define DMPAPER_STATEMENT 6
947#define DMPAPER_EXECUTIVE 7
948#define DMPAPER_A3 8
949#define DMPAPER_A4 9
950#define DMPAPER_A4SMALL 10
951#define DMPAPER_A5 11
952#define DMPAPER_B4 12
953#define DMPAPER_B5 13
954#define DMPAPER_FOLIO 14
955#define DMPAPER_QUARTO 15
956#define DMPAPER_10X14 16
957#define DMPAPER_11X17 17
958#define DMPAPER_NOTE 18
959#define DMPAPER_ENV_9 19
960#define DMPAPER_ENV_10 20
961#define DMPAPER_ENV_11 21
962#define DMPAPER_ENV_12 22
963#define DMPAPER_ENV_14 23
964#define DMPAPER_CSHEET 24
965#define DMPAPER_DSHEET 25
966#define DMPAPER_ESHEET 26
967#define DMPAPER_ENV_DL 27
968#define DMPAPER_ENV_C5 28
969#define DMPAPER_ENV_C3 29
970#define DMPAPER_ENV_C4 30
971#define DMPAPER_ENV_C6 31
972#define DMPAPER_ENV_C65 32
973#define DMPAPER_ENV_B4 33
974#define DMPAPER_ENV_B5 34
975#define DMPAPER_ENV_B6 35
976#define DMPAPER_ENV_ITALY 36
977#define DMPAPER_ENV_MONARCH 37
978#define DMPAPER_ENV_PERSONAL 38
979#define DMPAPER_FANFOLD_US 39
980#define DMPAPER_FANFOLD_STD_GERMAN 40
981#define DMPAPER_FANFOLD_LGL_GERMAN 41
982#define DMPAPER_ISO_B4 42
983#define DMPAPER_JAPANESE_POSTCARD 43
984#define DMPAPER_9X11 44
985#define DMPAPER_10X11 45
986#define DMPAPER_15X11 46
987#define DMPAPER_ENV_INVITE 47
988#define DMPAPER_RESERVED_48 48
989#define DMPAPER_RESERVED_49 49
990#define DMPAPER_LETTER_EXTRA 50
991#define DMPAPER_LEGAL_EXTRA 51
992#define DMPAPER_TABLOID_EXTRA 52
993#define DMPAPER_A4_EXTRA 53
994#define DMPAPER_LETTER_TRANSVERSE 54
995#define DMPAPER_A4_TRANSVERSE 55
996#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
997#define DMPAPER_A_PLUS 57
998#define DMPAPER_B_PLUS 58
999#define DMPAPER_LETTER_PLUS 59
1000#define DMPAPER_A4_PLUS 60
1001#define DMPAPER_A5_TRANSVERSE 61
1002#define DMPAPER_B5_TRANSVERSE 62
1003#define DMPAPER_A3_EXTRA 63
1004#define DMPAPER_A5_EXTRA 64
1005#define DMPAPER_B5_EXTRA 65
1006#define DMPAPER_A2 66
1007#define DMPAPER_A3_TRANSVERSE 67
1008#define DMPAPER_A3_EXTRA_TRANSVERSE 68
1009#define DMPAPER_LAST 68
1010#define DMPAPER_USER 256
1011#define DMBIN_FIRST 1
1012#define DMBIN_UPPER 1
1013#define DMBIN_ONLYONE 1
1014#define DMBIN_LOWER 2
1015#define DMBIN_MIDDLE 3
1016#define DMBIN_MANUAL 4
1017#define DMBIN_ENVELOPE 5
1018#define DMBIN_ENVMANUAL 6
1019#define DMBIN_AUTO 7
1020#define DMBIN_TRACTOR 8
1021#define DMBIN_SMALLFMT 9
1022#define DMBIN_LARGEFMT 10
1023#define DMBIN_LARGECAPACITY 11
1024#define DMBIN_CASSETTE 14
1025#define DMBIN_FORMSOURCE 15
1026#define DMBIN_LAST 15
1027#define DMBIN_USER 256
1028#define DMRES_DRAFT (-1)
1029#define DMRES_LOW (-2)
1030#define DMRES_MEDIUM (-3)
1031#define DMRES_HIGH (-4)
1032#define DMCOLOR_MONOCHROME 1
1033#define DMCOLOR_COLOR 2
1034#define DMDUP_SIMPLEX 1
1035#define DMDUP_VERTICAL 2
1036#define DMDUP_HORIZONTAL 3
1037#define DMTT_BITMAP 1
1038#define DMTT_DOWNLOAD 2
1039#define DMTT_SUBDEV 3
1040#define DMTT_DOWNLOAD_OUTLINE 4
1041#define DMCOLLATE_FALSE 0
1042#define DMCOLLATE_TRUE 1
1043#define DM_GRAYSCALE 1
1044#define DM_INTERLACED 2
1045#define DM_UPDATE 1
1046#define DM_COPY 2
1047#define DM_PROMPT 4
1048#define DM_MODIFY 8
1049#define DM_IN_BUFFER DM_MODIFY
1050#define DM_IN_PROMPT DM_PROMPT
1051#define DM_OUT_BUFFER DM_COPY
1052#define DM_OUT_DEFAULT DM_UPDATE
1053#define DM_ORIENTATION 1
1054#define DM_PAPERSIZE 2
1055#define DM_PAPERLENGTH 4
1056#define DM_PAPERWIDTH 8
1057#define DM_SCALE 16
1058#define DM_COPIES 256
1059#define DM_DEFAULTSOURCE 512
1060#define DM_PRINTQUALITY 1024
1061#define DM_COLOR 2048
1062#define DM_DUPLEX 4096
1063#define DM_YRESOLUTION 8192
1064#define DM_TTOPTION 16384
1065#define DM_COLLATE 32768
1066#define DM_FORMNAME 65536
1067#define DM_LOGPIXELS 0x20000
1068#define DM_BITSPERPEL 0x40000
1069#define DM_PELSWIDTH 0x80000
1070#define DM_PELSHEIGHT 0x100000
1071#define DM_DISPLAYFLAGS 0x200000
1072#define DM_DISPLAYFREQUENCY 0x400000
1073#define DM_ICMMETHOD 0x800000
1074#define DM_ICMINTENT 0x1000000
1075#define DM_MEDIATYPE 0x2000000
1076#define DM_DITHERTYPE 0x4000000
1077#define DMICMMETHOD_NONE 1
1078#define DMICMMETHOD_SYSTEM 2
1079#define DMICMMETHOD_DRIVER 3
1080#define DMICMMETHOD_DEVICE 4
1081#define DMICMMETHOD_USER 256
1082#define DMICM_SATURATE 1
1083#define DMICM_CONTRAST 2
1084#define DMICM_COLORMETRIC 3
1085#define DMICM_USER 256
1086#define DMMEDIA_STANDARD 1
1087#define DMMEDIA_TRANSPARENCY 2
1088#define DMMEDIA_GLOSSY 3
1089#define DMMEDIA_USER 256
1090#define DMDITHER_NONE 1
1091#define DMDITHER_COARSE 2
1092#define DMDITHER_FINE 3
1093#define DMDITHER_LINEART 4
1094#define DMDITHER_ERRORDIFFUSION 5
1095#define DMDITHER_RESERVED6 6
1096#define DMDITHER_RESERVED7 7
1097#define DMDITHER_RESERVED8 8
1098#define DMDITHER_RESERVED9 9
1099#define DMDITHER_GRAYSCALE 10
1100#define DMDITHER_USER 256
1101#define GDI_ERROR 0xFFFFFFFF
1102#define HGDI_ERROR ((HANDLE)GDI_ERROR)
1103#define TMPF_FIXED_PITCH 1
1104#define TMPF_VECTOR 2
1105#define TMPF_TRUETYPE 4
1106#define TMPF_DEVICE 8
1107#define NTM_ITALIC 1
1108#define NTM_BOLD 32
1109#define NTM_REGULAR 64
1110#define TT_POLYGON_TYPE 24
1111#define TT_PRIM_LINE 1
1112#define TT_PRIM_QSPLINE 2
1113#define FONTMAPPER_MAX 10
1114#define ENHMETA_STOCK_OBJECT 0x80000000
1115#define WGL_FONT_LINES 0
1116#define WGL_FONT_POLYGONS 1
1117#define LPD_DOUBLEBUFFER 1
1118#define LPD_STEREO 2
1119#define LPD_SUPPORT_GDI 16
1120#define LPD_SUPPORT_OPENGL 32
1121#define LPD_SHARE_DEPTH 64
1122#define LPD_SHARE_STENCIL 128
1123#define LPD_SHARE_ACCUM 256
1124#define LPD_SWAP_EXCHANGE 512
1125#define LPD_SWAP_COPY 1024
1126#define LPD_TRANSPARENT 4096
1127#define LPD_TYPE_RGBA 0
1128#define LPD_TYPE_COLORINDEX 1
1129#define WGL_SWAP_MAIN_PLANE 1
1130#define WGL_SWAP_OVERLAY1 2
1131#define WGL_SWAP_OVERLAY2 4
1132#define WGL_SWAP_OVERLAY3 8
1133#define WGL_SWAP_OVERLAY4 16
1134#define WGL_SWAP_OVERLAY5 32
1135#define WGL_SWAP_OVERLAY6 64
1136#define WGL_SWAP_OVERLAY7 128
1137#define WGL_SWAP_OVERLAY8 256
1138#define WGL_SWAP_OVERLAY9 512
1139#define WGL_SWAP_OVERLAY10 1024
1140#define WGL_SWAP_OVERLAY11 2048
1141#define WGL_SWAP_OVERLAY12 4096
1142#define WGL_SWAP_OVERLAY13 8192
1143#define WGL_SWAP_OVERLAY14 16384
1144#define WGL_SWAP_OVERLAY15 32768
1145#define WGL_SWAP_UNDERLAY1 65536
1146#define WGL_SWAP_UNDERLAY2 0x20000
1147#define WGL_SWAP_UNDERLAY3 0x40000
1148#define WGL_SWAP_UNDERLAY4 0x80000
1149#define WGL_SWAP_UNDERLAY5 0x100000
1150#define WGL_SWAP_UNDERLAY6 0x200000
1151#define WGL_SWAP_UNDERLAY7 0x400000
1152#define WGL_SWAP_UNDERLAY8 0x800000
1153#define WGL_SWAP_UNDERLAY9 0x1000000
1154#define WGL_SWAP_UNDERLAY10 0x2000000
1155#define WGL_SWAP_UNDERLAY11 0x4000000
1156#define WGL_SWAP_UNDERLAY12 0x8000000
1157#define WGL_SWAP_UNDERLAY13 0x10000000
1158#define WGL_SWAP_UNDERLAY14 0x20000000
1159#define WGL_SWAP_UNDERLAY15 0x40000000
1160#define AC_SRC_OVER 0
1161#define LAYOUT_RTL 1
1162#define LAYOUT_BITMAPORIENTATIONPRESERVED 8
1163
1164#ifndef RC_INVOKED
1165typedef struct _ABC {
1166 int abcA;
1167 UINT abcB;
1168 int abcC;
1169} ABC,*LPABC;
1170typedef struct _ABCFLOAT {
1171 FLOAT abcfA;
1172 FLOAT abcfB;
1173 FLOAT abcfC;
1174} ABCFLOAT,*LPABCFLOAT;
1175typedef struct tagBITMAP {
1176 LONG bmType;
1177 LONG bmWidth;
1178 LONG bmHeight;
1179 LONG bmWidthBytes;
1180 WORD bmPlanes;
1181 WORD bmBitsPixel;
1182 LPVOID bmBits;
1183} BITMAP,*PBITMAP,*LPBITMAP;
1184typedef struct tagBITMAPCOREHEADER {
1185 DWORD bcSize;
1186 WORD bcWidth;
1187 WORD bcHeight;
1188 WORD bcPlanes;
1189 WORD bcBitCount;
1190} BITMAPCOREHEADER,*LPBITMAPCOREHEADER,*PBITMAPCOREHEADER;
1191#pragma pack(push,1)
1192typedef struct tagRGBTRIPLE {
1193 BYTE rgbtBlue;
1194 BYTE rgbtGreen;
1195 BYTE rgbtRed;
1196} RGBTRIPLE;
1197#pragma pack(pop)
1198#pragma pack(push,2)
1199typedef struct tagBITMAPFILEHEADER {
1200 WORD bfType;
1201 DWORD bfSize;
1202 WORD bfReserved1;
1203 WORD bfReserved2;
1204 DWORD bfOffBits;
1205} BITMAPFILEHEADER,*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;
1206#pragma pack(pop)
1207typedef struct _BITMAPCOREINFO {
1208 BITMAPCOREHEADER bmciHeader;
1209 RGBTRIPLE bmciColors[1];
1210} BITMAPCOREINFO,*LPBITMAPCOREINFO,*PBITMAPCOREINFO;
1211typedef struct tagBITMAPINFOHEADER{
1212 DWORD biSize;
1213 LONG biWidth;
1214 LONG biHeight;
1215 WORD biPlanes;
1216 WORD biBitCount;
1217 DWORD biCompression;
1218 DWORD biSizeImage;
1219 LONG biXPelsPerMeter;
1220 LONG biYPelsPerMeter;
1221 DWORD biClrUsed;
1222 DWORD biClrImportant;
1223} BITMAPINFOHEADER,*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER;
1224typedef struct tagRGBQUAD {
1225 BYTE rgbBlue;
1226 BYTE rgbGreen;
1227 BYTE rgbRed;
1228 BYTE rgbReserved;
1229} RGBQUAD;
1230typedef struct tagBITMAPINFO {
1231 BITMAPINFOHEADER bmiHeader;
1232 RGBQUAD bmiColors[1];
1233} BITMAPINFO,*LPBITMAPINFO,*PBITMAPINFO;
1234typedef long FXPT16DOT16,*LPFXPT16DOT16;
1235typedef long FXPT2DOT30,*LPFXPT2DOT30;
1236typedef struct tagCIEXYZ {
1237 FXPT2DOT30 ciexyzX;
1238 FXPT2DOT30 ciexyzY;
1239 FXPT2DOT30 ciexyzZ;
1240} CIEXYZ,*LPCIEXYZ;
1241typedef struct tagCIEXYZTRIPLE {
1242 CIEXYZ ciexyzRed;
1243 CIEXYZ ciexyzGreen;
1244 CIEXYZ ciexyzBlue;
1245} CIEXYZTRIPLE,*LPCIEXYZTRIPLE;
1246typedef struct {
1247 DWORD bV4Size;
1248 LONG bV4Width;
1249 LONG bV4Height;
1250 WORD bV4Planes;
1251 WORD bV4BitCount;
1252 DWORD bV4V4Compression;
1253 DWORD bV4SizeImage;
1254 LONG bV4XPelsPerMeter;
1255 LONG bV4YPelsPerMeter;
1256 DWORD bV4ClrUsed;
1257 DWORD bV4ClrImportant;
1258 DWORD bV4RedMask;
1259 DWORD bV4GreenMask;
1260 DWORD bV4BlueMask;
1261 DWORD bV4AlphaMask;
1262 DWORD bV4CSType;
1263 CIEXYZTRIPLE bV4Endpoints;
1264 DWORD bV4GammaRed;
1265 DWORD bV4GammaGreen;
1266 DWORD bV4GammaBlue;
1267} BITMAPV4HEADER,*LPBITMAPV4HEADER,*PBITMAPV4HEADER;
1268typedef struct tagFONTSIGNATURE {
1269 DWORD fsUsb[4];
1270 DWORD fsCsb[2];
1271} FONTSIGNATURE,*LPFONTSIGNATURE;
1272typedef struct {
1273 UINT ciCharset;
1274 UINT ciACP;
1275 FONTSIGNATURE fs;
1276} CHARSETINFO,*LPCHARSETINFO;
1277typedef struct tagCOLORADJUSTMENT {
1278 WORD caSize;
1279 WORD caFlags;
1280 WORD caIlluminantIndex;
1281 WORD caRedGamma;
1282 WORD caGreenGamma;
1283 WORD caBlueGamma;
1284 WORD caReferenceBlack;
1285 WORD caReferenceWhite;
1286 SHORT caContrast;
1287 SHORT caBrightness;
1288 SHORT caColorfulness;
1289 SHORT caRedGreenTint;
1290} COLORADJUSTMENT,*LPCOLORADJUSTMENT;
1291typedef struct _devicemodeA {
1292 BYTE dmDeviceName[CCHDEVICENAME];
1293 WORD dmSpecVersion;
1294 WORD dmDriverVersion;
1295 WORD dmSize;
1296 WORD dmDriverExtra;
1297 DWORD dmFields;
1298 short dmOrientation;
1299 short dmPaperSize;
1300 short dmPaperLength;
1301 short dmPaperWidth;
1302 short dmScale;
1303 short dmCopies;
1304 short dmDefaultSource;
1305 short dmPrintQuality;
1306 short dmColor;
1307 short dmDuplex;
1308 short dmYResolution;
1309 short dmTTOption;
1310 short dmCollate;
1311 BYTE dmFormName[CCHFORMNAME];
1312 WORD dmLogPixels;
1313 DWORD dmBitsPerPel;
1314 DWORD dmPelsWidth;
1315 DWORD dmPelsHeight;
1316 DWORD dmDisplayFlags;
1317 DWORD dmDisplayFrequency;
1318 DWORD dmICMMethod;
1319 DWORD dmICMIntent;
1320 DWORD dmMediaType;
1321 DWORD dmDitherType;
1322 DWORD dmICCManufacturer;
1323 DWORD dmICCModel;
1324} DEVMODEA,*LPDEVMODEA,*PDEVMODEA;
1325typedef struct _devicemodeW {
1326 WCHAR dmDeviceName[CCHDEVICENAME];
1327 WORD dmSpecVersion;
1328 WORD dmDriverVersion;
1329 WORD dmSize;
1330 WORD dmDriverExtra;
1331 DWORD dmFields;
1332 short dmOrientation;
1333 short dmPaperSize;
1334 short dmPaperLength;
1335 short dmPaperWidth;
1336 short dmScale;
1337 short dmCopies;
1338 short dmDefaultSource;
1339 short dmPrintQuality;
1340 short dmColor;
1341 short dmDuplex;
1342 short dmYResolution;
1343 short dmTTOption;
1344 short dmCollate;
1345 WCHAR dmFormName[CCHFORMNAME];
1346 WORD dmLogPixels;
1347 DWORD dmBitsPerPel;
1348 DWORD dmPelsWidth;
1349 DWORD dmPelsHeight;
1350 DWORD dmDisplayFlags;
1351 DWORD dmDisplayFrequency;
1352 DWORD dmICMMethod;
1353 DWORD dmICMIntent;
1354 DWORD dmMediaType;
1355 DWORD dmDitherType;
1356 DWORD dmICCManufacturer;
1357 DWORD dmICCModel;
1358} DEVMODEW,*LPDEVMODEW,*PDEVMODEW;
1359typedef struct tagDIBSECTION {
1360 BITMAP dsBm;
1361 BITMAPINFOHEADER dsBmih;
1362 DWORD dsBitfields[3];
1363 HANDLE dshSection;
1364 DWORD dsOffset;
1365} DIBSECTION;
1366typedef struct _DOCINFOA {
1367 int cbSize;
1368 LPCTSTR lpszDocName;
1369 LPCTSTR lpszOutput;
1370 LPCTSTR lpszDatatype;
1371 DWORD fwType;
1372} DOCINFOA,*LPDOCINFOA;
1373typedef struct _DOCINFOW {
1374 int cbSize;
1375 LPCWSTR lpszDocName;
1376 LPCWSTR lpszOutput;
1377 LPCWSTR lpszDatatype;
1378 DWORD fwType;
1379} DOCINFOW,*LPDOCINFOW;
1380typedef struct tagEMR {
1381 DWORD iType;
1382 DWORD nSize;
1383} EMR,*PEMR;
1384typedef struct tagEMRANGLEARC {
1385 EMR emr;
1386 POINTL ptlCenter;
1387 DWORD nRadius;
1388 FLOAT eStartAngle;
1389 FLOAT eSweepAngle;
1390} EMRANGLEARC,*PEMRANGLEARC;
1391typedef struct tagEMRARC {
1392 EMR emr;
1393 RECTL rclBox;
1394 POINTL ptlStart;
1395 POINTL ptlEnd;
1396} EMRARC,*PEMRARC,EMRARCTO,*PEMRARCTO,EMRCHORD,*PEMRCHORD,EMRPIE,*PEMRPIE;
1397typedef struct _XFORM {
1398 FLOAT eM11;
1399 FLOAT eM12;
1400 FLOAT eM21;
1401 FLOAT eM22;
1402 FLOAT eDx;
1403 FLOAT eDy;
1404} XFORM,*LPXFORM;
1405typedef struct tagEMRBITBLT {
1406 EMR emr;
1407 RECTL rclBounds;
1408 LONG xDest;
1409 LONG yDest;
1410 LONG cxDest;
1411 LONG cyDest;
1412 DWORD dwRop;
1413 LONG xSrc;
1414 LONG ySrc;
1415 XFORM xformSrc;
1416 COLORREF crBkColorSrc;
1417 DWORD iUsageSrc;
1418 DWORD offBmiSrc;
1419 DWORD offBitsSrc;
1420 DWORD cbBitsSrc;
1421} EMRBITBLT,*PEMRBITBLT;
1422typedef struct tagLOGBRUSH {
1423 UINT lbStyle;
1424 COLORREF lbColor;
1425 LONG lbHatch;
1426} LOGBRUSH,*LPLOGBRUSH;
1427typedef LOGBRUSH PATTERN,*PPATTERN,*LPPATTERN;
1428typedef struct tagEMRCREATEBRUSHINDIRECT {
1429 EMR emr;
1430 DWORD ihBrush;
1431 LOGBRUSH lb;
1432} EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT;
1433typedef LONG LCSCSTYPE;
1434typedef LONG LCSGAMUTMATCH;
1435typedef struct tagLOGCOLORSPACEA {
1436 DWORD lcsSignature;
1437 DWORD lcsVersion;
1438 DWORD lcsSize;
1439 LCSCSTYPE lcsCSType;
1440 LCSGAMUTMATCH lcsIntent;
1441 CIEXYZTRIPLE lcsEndpoints;
1442 DWORD lcsGammaRed;
1443 DWORD lcsGammaGreen;
1444 DWORD lcsGammaBlue;
1445 CHAR lcsFilename[MAX_PATH];
1446} LOGCOLORSPACEA,*LPLOGCOLORSPACEA;
1447typedef struct tagLOGCOLORSPACEW {
1448 DWORD lcsSignature;
1449 DWORD lcsVersion;
1450 DWORD lcsSize;
1451 LCSCSTYPE lcsCSType;
1452 LCSGAMUTMATCH lcsIntent;
1453 CIEXYZTRIPLE lcsEndpoints;
1454 DWORD lcsGammaRed;
1455 DWORD lcsGammaGreen;
1456 DWORD lcsGammaBlue;
1457 WCHAR lcsFilename[MAX_PATH];
1458} LOGCOLORSPACEW,*LPLOGCOLORSPACEW;
1459typedef struct tagEMRCREATECOLORSPACE {
1460 EMR emr;
1461 DWORD ihCS;
1462 LOGCOLORSPACEW lcs;
1463} EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;
1464typedef struct tagEMRCREATEDIBPATTERNBRUSHPT {
1465 EMR emr;
1466 DWORD ihBrush;
1467 DWORD iUsage;
1468 DWORD offBmi;
1469 DWORD cbBmi;
1470 DWORD offBits;
1471 DWORD cbBits;
1472} EMRCREATEDIBPATTERNBRUSHPT,*PEMRCREATEDIBPATTERNBRUSHPT;
1473typedef struct tagEMRCREATEMONOBRUSH {
1474 EMR emr;
1475 DWORD ihBrush;
1476 DWORD iUsage;
1477 DWORD offBmi;
1478 DWORD cbBmi;
1479 DWORD offBits;
1480 DWORD cbBits;
1481} EMRCREATEMONOBRUSH,*PEMRCREATEMONOBRUSH;
1482typedef struct tagPALETTEENTRY {
1483 BYTE peRed;
1484 BYTE peGreen;
1485 BYTE peBlue;
1486 BYTE peFlags;
1487} PALETTEENTRY,*LPPALETTEENTRY,*PPALETTEENTRY;
1488typedef struct tagLOGPALETTE {
1489 WORD palVersion;
1490 WORD palNumEntries;
1491 PALETTEENTRY palPalEntry[1];
1492} LOGPALETTE,*NPLOGPALETTE,*PLOGPALETTE,*LPLOGPALETTE;
1493typedef struct tagEMRCREATEPALETTE {
1494 EMR emr;
1495 DWORD ihPal;
1496 LOGPALETTE lgpl;
1497} EMRCREATEPALETTE,*PEMRCREATEPALETTE;
1498typedef struct tagLOGPEN {
1499 UINT lopnStyle;
1500 POINT lopnWidth;
1501 COLORREF lopnColor;
1502} LOGPEN,*LPLOGPEN;
1503typedef struct tagEMRCREATEPEN {
1504 EMR emr;
1505 DWORD ihPen;
1506 LOGPEN lopn;
1507} EMRCREATEPEN,*PEMRCREATEPEN;
1508typedef struct tagEMRELLIPSE {
1509 EMR emr;
1510 RECTL rclBox;
1511} EMRELLIPSE,*PEMRELLIPSE,EMRRECTANGLE,*PEMRRECTANGLE;
1512typedef struct tagEMREOF {
1513 EMR emr;
1514 DWORD nPalEntries;
1515 DWORD offPalEntries;
1516 DWORD nSizeLast;
1517} EMREOF,*PEMREOF;
1518typedef struct tagEMREXCLUDECLIPRECT {
1519 EMR emr;
1520 RECTL rclClip;
1521} EMREXCLUDECLIPRECT,*PEMREXCLUDECLIPRECT,EMRINTERSECTCLIPRECT,*PEMRINTERSECTCLIPRECT;
1522typedef struct tagPANOSE {
1523 BYTE bFamilyType;
1524 BYTE bSerifStyle;
1525 BYTE bWeight;
1526 BYTE bProportion;
1527 BYTE bContrast;
1528 BYTE bStrokeVariation;
1529 BYTE bArmStyle;
1530 BYTE bLetterform;
1531 BYTE bMidline;
1532 BYTE bXHeight;
1533} PANOSE;
1534typedef struct tagLOGFONTA {
1535 LONG lfHeight;
1536 LONG lfWidth;
1537 LONG lfEscapement;
1538 LONG lfOrientation;
1539 LONG lfWeight;
1540 BYTE lfItalic;
1541 BYTE lfUnderline;
1542 BYTE lfStrikeOut;
1543 BYTE lfCharSet;
1544 BYTE lfOutPrecision;
1545 BYTE lfClipPrecision;
1546 BYTE lfQuality;
1547 BYTE lfPitchAndFamily;
1548 CHAR lfFaceName[LF_FACESIZE];
1549} LOGFONTA,*PLOGFONTA,*LPLOGFONTA;
1550typedef struct tagLOGFONTW {
1551 LONG lfHeight;
1552 LONG lfWidth;
1553 LONG lfEscapement;
1554 LONG lfOrientation;
1555 LONG lfWeight;
1556 BYTE lfItalic;
1557 BYTE lfUnderline;
1558 BYTE lfStrikeOut;
1559 BYTE lfCharSet;
1560 BYTE lfOutPrecision;
1561 BYTE lfClipPrecision;
1562 BYTE lfQuality;
1563 BYTE lfPitchAndFamily;
1564 WCHAR lfFaceName[LF_FACESIZE];
1565} LOGFONTW,*PLOGFONTW,*LPLOGFONTW;
1566typedef struct tagEXTLOGFONTA {
1567 LOGFONTA elfLogFont;
1568 BYTE elfFullName[LF_FULLFACESIZE];
1569 BYTE elfStyle[LF_FACESIZE];
1570 DWORD elfVersion;
1571 DWORD elfStyleSize;
1572 DWORD elfMatch;
1573 DWORD elfReserved;
1574 BYTE elfVendorId[ELF_VENDOR_SIZE];
1575 DWORD elfCulture;
1576 PANOSE elfPanose;
1577} EXTLOGFONTA,*PEXTLOGFONTA,*LPEXTLOGFONTA;
1578typedef struct tagEXTLOGFONTW {
1579 LOGFONTW elfLogFont;
1580 WCHAR elfFullName[LF_FULLFACESIZE];
1581 WCHAR elfStyle[LF_FACESIZE];
1582 DWORD elfVersion;
1583 DWORD elfStyleSize;
1584 DWORD elfMatch;
1585 DWORD elfReserved;
1586 BYTE elfVendorId[ELF_VENDOR_SIZE];
1587 DWORD elfCulture;
1588 PANOSE elfPanose;
1589} EXTLOGFONTW,*PEXTLOGFONTW,*LPEXTLOGFONTW;
1590typedef struct tagEMREXTCREATEFONTINDIRECTW {
1591 EMR emr;
1592 DWORD ihFont;
1593 EXTLOGFONTW elfw;
1594} EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW;
1595typedef struct tagEXTLOGPEN {
1596 UINT elpPenStyle;
1597 UINT elpWidth;
1598 UINT elpBrushStyle;
1599 COLORREF elpColor;
1600 LONG elpHatch;
1601 DWORD elpNumEntries;
1602 DWORD elpStyleEntry[1];
1603} EXTLOGPEN,*PEXTLOGPEN,*LPEXTLOGPEN;
1604typedef struct tagEMREXTCREATEPEN {
1605 EMR emr;
1606 DWORD ihPen;
1607 DWORD offBmi;
1608 DWORD cbBmi;
1609 DWORD offBits;
1610 DWORD cbBits;
1611 EXTLOGPEN elp;
1612} EMREXTCREATEPEN,*PEMREXTCREATEPEN;
1613typedef struct tagEMREXTFLOODFILL {
1614 EMR emr;
1615 POINTL ptlStart;
1616 COLORREF crColor;
1617 DWORD iMode;
1618} EMREXTFLOODFILL,*PEMREXTFLOODFILL;
1619typedef struct tagEMREXTSELECTCLIPRGN {
1620 EMR emr;
1621 DWORD cbRgnData;
1622 DWORD iMode;
1623 BYTE RgnData[1];
1624} EMREXTSELECTCLIPRGN,*PEMREXTSELECTCLIPRGN;
1625typedef struct tagEMRTEXT {
1626 POINTL ptlReference;
1627 DWORD nChars;
1628 DWORD offString;
1629 DWORD fOptions;
1630 RECTL rcl;
1631 DWORD offDx;
1632} EMRTEXT,*PEMRTEXT;
1633typedef struct tagEMREXTTEXTOUTA {
1634 EMR emr;
1635 RECTL rclBounds;
1636 DWORD iGraphicsMode;
1637 FLOAT exScale;
1638 FLOAT eyScale;
1639 EMRTEXT emrtext;
1640} EMREXTTEXTOUTA,*PEMREXTTEXTOUTA,EMREXTTEXTOUTW,*PEMREXTTEXTOUTW;
1641typedef struct tagEMRFILLPATH {
1642 EMR emr;
1643 RECTL rclBounds;
1644} EMRFILLPATH,*PEMRFILLPATH,EMRSTROKEANDFILLPATH,*PEMRSTROKEANDFILLPATH,EMRSTROKEPATH,*PEMRSTROKEPATH;
1645typedef struct tagEMRFILLRGN {
1646 EMR emr;
1647 RECTL rclBounds;
1648 DWORD cbRgnData;
1649 DWORD ihBrush;
1650 BYTE RgnData[1];
1651} EMRFILLRGN,*PEMRFILLRGN;
1652typedef struct tagEMRFORMAT {
1653 DWORD dSignature;
1654 DWORD nVersion;
1655 DWORD cbData;
1656 DWORD offData;
1657} EMRFORMAT;
1658typedef struct tagEMRFRAMERGN {
1659 EMR emr;
1660 RECTL rclBounds;
1661 DWORD cbRgnData;
1662 DWORD ihBrush;
1663 SIZEL szlStroke;
1664 BYTE RgnData[1];
1665} EMRFRAMERGN,*PEMRFRAMERGN;
1666typedef struct tagEMRGDICOMMENT {
1667 EMR emr;
1668 DWORD cbData;
1669 BYTE Data[1];
1670} EMRGDICOMMENT,*PEMRGDICOMMENT;
1671typedef struct tagEMRINVERTRGN {
1672 EMR emr;
1673 RECTL rclBounds;
1674 DWORD cbRgnData;
1675 BYTE RgnData[1];
1676} EMRINVERTRGN,*PEMRINVERTRGN,EMRPAINTRGN,*PEMRPAINTRGN;
1677typedef struct tagEMRLINETO {
1678 EMR emr;
1679 POINTL ptl;
1680} EMRLINETO,*PEMRLINETO,EMRMOVETOEX,*PEMRMOVETOEX;
1681typedef struct tagEMRMASKBLT {
1682 EMR emr;
1683 RECTL rclBounds;
1684 LONG xDest;
1685 LONG yDest;
1686 LONG cxDest;
1687 LONG cyDest;
1688 DWORD dwRop;
1689 LONG xSrc;
1690 LONG ySrc;
1691 XFORM xformSrc;
1692 COLORREF crBkColorSrc;
1693 DWORD iUsageSrc;
1694 DWORD offBmiSrc;
1695 DWORD cbBmiSrc;
1696 DWORD offBitsSrc;
1697 DWORD cbBitsSrc;
1698 LONG xMask;
1699 LONG yMask;
1700 DWORD iUsageMask;
1701 DWORD offBmiMask;
1702 DWORD cbBmiMask;
1703 DWORD offBitsMask;
1704 DWORD cbBitsMask;
1705} EMRMASKBLT,*PEMRMASKBLT;
1706typedef struct tagEMRMODIFYWORLDTRANSFORM {
1707 EMR emr;
1708 XFORM xform;
1709 DWORD iMode;
1710} EMRMODIFYWORLDTRANSFORM,*PEMRMODIFYWORLDTRANSFORM;
1711typedef struct tagEMROFFSETCLIPRGN {
1712 EMR emr;
1713 POINTL ptlOffset;
1714} EMROFFSETCLIPRGN,*PEMROFFSETCLIPRGN;
1715typedef struct tagEMRPLGBLT {
1716 EMR emr;
1717 RECTL rclBounds;
1718 POINTL aptlDest[3];
1719 LONG xSrc;
1720 LONG ySrc;
1721 LONG cxSrc;
1722 LONG cySrc;
1723 XFORM xformSrc;
1724 COLORREF crBkColorSrc;
1725 DWORD iUsageSrc;
1726 DWORD offBmiSrc;
1727 DWORD cbBmiSrc;
1728 DWORD offBitsSrc;
1729 DWORD cbBitsSrc;
1730 LONG xMask;
1731 LONG yMask;
1732 DWORD iUsageMask;
1733 DWORD offBmiMask;
1734 DWORD cbBmiMask;
1735 DWORD offBitsMask;
1736 DWORD cbBitsMask;
1737} EMRPLGBLT,*PEMRPLGBLT;
1738typedef struct tagEMRPOLYDRAW {
1739 EMR emr;
1740 RECTL rclBounds;
1741 DWORD cptl;
1742 POINTL aptl[1];
1743 BYTE abTypes[1];
1744} EMRPOLYDRAW,*PEMRPOLYDRAW;
1745typedef struct tagEMRPOLYDRAW16 {
1746 EMR emr;
1747 RECTL rclBounds;
1748 DWORD cpts;
1749 POINTS apts[1];
1750 BYTE abTypes[1];
1751} EMRPOLYDRAW16,*PEMRPOLYDRAW16;
1752typedef struct tagEMRPOLYLINE {
1753 EMR emr;
1754 RECTL rclBounds;
1755 DWORD cptl;
1756 POINTL aptl[1];
1757} EMRPOLYLINE,*PEMRPOLYLINE,EMRPOLYBEZIER,*PEMRPOLYBEZIER,EMRPOLYGON,*PEMRPOLYGON,EMRPOLYBEZIERTO,*PEMRPOLYBEZIERTO,EMRPOLYLINETO,*PEMRPOLYLINETO;
1758typedef struct tagEMRPOLYLINE16 {
1759 EMR emr;
1760 RECTL rclBounds;
1761 DWORD cpts;
1762 POINTL apts[1];
1763} EMRPOLYLINE16,*PEMRPOLYLINE16,EMRPOLYBEZIER16,*PEMRPOLYBEZIER16,EMRPOLYGON16,*PEMRPOLYGON16,EMRPOLYBEZIERTO16,*PEMRPOLYBEZIERTO16,EMRPOLYLINETO16,*PEMRPOLYLINETO16;
1764typedef struct tagEMRPOLYPOLYLINE {
1765 EMR emr;
1766 RECTL rclBounds;
1767 DWORD nPolys;
1768 DWORD cptl;
1769 DWORD aPolyCounts[1];
1770 POINTL aptl[1];
1771} EMRPOLYPOLYLINE,*PEMRPOLYPOLYLINE,EMRPOLYPOLYGON,*PEMRPOLYPOLYGON;
1772typedef struct tagEMRPOLYPOLYLINE16 {
1773 EMR emr;
1774 RECTL rclBounds;
1775 DWORD nPolys;
1776 DWORD cpts;
1777 DWORD aPolyCounts[1];
1778 POINTS apts[1];
1779} EMRPOLYPOLYLINE16,*PEMRPOLYPOLYLINE16,EMRPOLYPOLYGON16,*PEMRPOLYPOLYGON16;
1780typedef struct tagEMRPOLYTEXTOUTA {
1781 EMR emr;
1782 RECTL rclBounds;
1783 DWORD iGraphicsMode;
1784 FLOAT exScale;
1785 FLOAT eyScale;
1786 LONG cStrings;
1787 EMRTEXT aemrtext[1];
1788} EMRPOLYTEXTOUTA,*PEMRPOLYTEXTOUTA,EMRPOLYTEXTOUTW,*PEMRPOLYTEXTOUTW;
1789typedef struct tagEMRRESIZEPALETTE {
1790 EMR emr;
1791 DWORD ihPal;
1792 DWORD cEntries;
1793} EMRRESIZEPALETTE,*PEMRRESIZEPALETTE;
1794typedef struct tagEMRRESTOREDC {
1795 EMR emr;
1796 LONG iRelative;
1797} EMRRESTOREDC,*PEMRRESTOREDC;
1798typedef struct tagEMRROUNDRECT {
1799 EMR emr;
1800 RECTL rclBox;
1801 SIZEL szlCorner;
1802} EMRROUNDRECT,*PEMRROUNDRECT;
1803typedef struct tagEMRSCALEVIEWPORTEXTEX {
1804 EMR emr;
1805 LONG xNum;
1806 LONG xDenom;
1807 LONG yNum;
1808 LONG yDenom;
1809} EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX;
1810typedef struct tagEMRSELECTCOLORSPACE {
1811 EMR emr;
1812 DWORD ihCS;
1813} EMRSELECTCOLORSPACE,*PEMRSELECTCOLORSPACE,EMRDELETECOLORSPACE,*PEMRDELETECOLORSPACE;
1814typedef struct tagEMRSELECTOBJECT {
1815 EMR emr;
1816 DWORD ihObject;
1817} EMRSELECTOBJECT,*PEMRSELECTOBJECT,EMRDELETEOBJECT,*PEMRDELETEOBJECT;
1818typedef struct tagEMRSELECTPALETTE {
1819 EMR emr;
1820 DWORD ihPal;
1821} EMRSELECTPALETTE,*PEMRSELECTPALETTE;
1822typedef struct tagEMRSETARCDIRECTION {
1823 EMR emr;
1824 DWORD iArcDirection;
1825} EMRSETARCDIRECTION,*PEMRSETARCDIRECTION;
1826typedef struct tagEMRSETTEXTCOLOR {
1827 EMR emr;
1828 COLORREF crColor;
1829} EMRSETBKCOLOR,*PEMRSETBKCOLOR,EMRSETTEXTCOLOR,*PEMRSETTEXTCOLOR;
1830typedef struct tagEMRSETCOLORADJUSTMENT {
1831 EMR emr;
1832 COLORADJUSTMENT ColorAdjustment;
1833} EMRSETCOLORADJUSTMENT,*PEMRSETCOLORADJUSTMENT;
1834typedef struct tagEMRSETDIBITSTODEVICE {
1835 EMR emr;
1836 RECTL rclBounds;
1837 LONG xDest;
1838 LONG yDest;
1839 LONG xSrc;
1840 LONG ySrc;
1841 LONG cxSrc;
1842 LONG cySrc;
1843 DWORD offBmiSrc;
1844 DWORD cbBmiSrc;
1845 DWORD offBitsSrc;
1846 DWORD cbBitsSrc;
1847 DWORD iUsageSrc;
1848 DWORD iStartScan;
1849 DWORD cScans;
1850} EMRSETDIBITSTODEVICE,*PEMRSETDIBITSTODEVICE;
1851typedef struct tagEMRSETMAPPERFLAGS {
1852 EMR emr;
1853 DWORD dwFlags;
1854} EMRSETMAPPERFLAGS,*PEMRSETMAPPERFLAGS;
1855typedef struct tagEMRSETMITERLIMIT {
1856 EMR emr;
1857 FLOAT eMiterLimit;
1858} EMRSETMITERLIMIT,*PEMRSETMITERLIMIT;
1859typedef struct tagEMRSETPALETTEENTRIES {
1860 EMR emr;
1861 DWORD ihPal;
1862 DWORD iStart;
1863 DWORD cEntries;
1864 PALETTEENTRY aPalEntries[1];
1865} EMRSETPALETTEENTRIES,*PEMRSETPALETTEENTRIES;
1866typedef struct tagEMRSETPIXELV {
1867 EMR emr;
1868 POINTL ptlPixel;
1869 COLORREF crColor;
1870} EMRSETPIXELV,*PEMRSETPIXELV;
1871typedef struct tagEMRSETVIEWPORTEXTEX {
1872 EMR emr;
1873 SIZEL szlExtent;
1874} EMRSETVIEWPORTEXTEX,*PEMRSETVIEWPORTEXTEX,EMRSETWINDOWEXTEX,*PEMRSETWINDOWEXTEX;
1875typedef struct tagEMRSETVIEWPORTORGEX {
1876 EMR emr;
1877 POINTL ptlOrigin;
1878} EMRSETVIEWPORTORGEX,*PEMRSETVIEWPORTORGEX,EMRSETWINDOWORGEX,*PEMRSETWINDOWORGEX,EMRSETBRUSHORGEX,*PEMRSETBRUSHORGEX;
1879typedef struct tagEMRSETWORLDTRANSFORM {
1880 EMR emr;
1881 XFORM xform;
1882} EMRSETWORLDTRANSFORM,*PEMRSETWORLDTRANSFORM;
1883typedef struct tagEMRSTRETCHBLT {
1884 EMR emr;
1885 RECTL rclBounds;
1886 LONG xDest;
1887 LONG yDest;
1888 LONG cxDest;
1889 LONG cyDest;
1890 DWORD dwRop;
1891 LONG xSrc;
1892 LONG ySrc;
1893 XFORM xformSrc;
1894 COLORREF crBkColorSrc;
1895 DWORD iUsageSrc;
1896 DWORD offBmiSrc;
1897 DWORD cbBmiSrc;
1898 DWORD offBitsSrc;
1899 DWORD cbBitsSrc;
1900 LONG cxSrc;
1901 LONG cySrc;
1902} EMRSTRETCHBLT,*PEMRSTRETCHBLT;
1903typedef struct tagEMRSTRETCHDIBITS {
1904 EMR emr;
1905 RECTL rclBounds;
1906 LONG xDest;
1907 LONG yDest;
1908 LONG xSrc;
1909 LONG ySrc;
1910 LONG cxSrc;
1911 LONG cySrc;
1912 DWORD offBmiSrc;
1913 DWORD cbBmiSrc;
1914 DWORD offBitsSrc;
1915 DWORD cbBitsSrc;
1916 DWORD iUsageSrc;
1917 DWORD dwRop;
1918 LONG cxDest;
1919 LONG cyDest;
1920} EMRSTRETCHDIBITS,*PEMRSTRETCHDIBITS;
1921typedef struct tagABORTPATH {
1922 EMR emr;
1923} EMRABORTPATH,*PEMRABORTPATH,EMRBEGINPATH,*PEMRBEGINPATH,EMRENDPATH,*PEMRENDPATH,EMRCLOSEFIGURE,*PEMRCLOSEFIGURE,EMRFLATTENPATH,*PEMRFLATTENPATH,EMRWIDENPATH,*PEMRWIDENPATH,EMRSETMETARGN,*PEMRSETMETARGN,EMRSAVEDC,*PEMRSAVEDC,EMRREALIZEPALETTE,*PEMRREALIZEPALETTE;
1924typedef struct tagEMRSELECTCLIPPATH {
1925 EMR emr;
1926 DWORD iMode;
1927} EMRSELECTCLIPPATH,*PEMRSELECTCLIPPATH,EMRSETBKMODE,*PEMRSETBKMODE,EMRSETMAPMODE,*PEMRSETMAPMODE,EMRSETPOLYFILLMODE,*PEMRSETPOLYFILLMODE,EMRSETROP2,*PEMRSETROP2,EMRSETSTRETCHBLTMODE,*PEMRSETSTRETCHBLTMODE,EMRSETTEXTALIGN,*PEMRSETTEXTALIGN,EMRENABLEICM,*PEMRENABLEICM;
1928#pragma pack(push,2)
1929typedef struct tagMETAHEADER {
1930 WORD mtType;
1931 WORD mtHeaderSize;
1932 WORD mtVersion;
1933 DWORD mtSize;
1934 WORD mtNoObjects;
1935 DWORD mtMaxRecord;
1936 WORD mtNoParameters;
1937} METAHEADER,*PMETAHEADER,*LPMETAHEADER;
1938#pragma pack(pop)
1939typedef struct tagENHMETAHEADER {
1940 DWORD iType;
1941 DWORD nSize;
1942 RECTL rclBounds;
1943 RECTL rclFrame;
1944 DWORD dSignature;
1945 DWORD nVersion;
1946 DWORD nBytes;
1947 DWORD nRecords;
1948 WORD nHandles;
1949 WORD sReserved;
1950 DWORD nDescription;
1951 DWORD offDescription;
1952 DWORD nPalEntries;
1953 SIZEL szlDevice;
1954 SIZEL szlMillimeters;
1955} ENHMETAHEADER,*LPENHMETAHEADER;
1956typedef struct tagMETARECORD {
1957 DWORD rdSize;
1958 WORD rdFunction;
1959 WORD rdParm[1];
1960} METARECORD,*PMETARECORD,*LPMETARECORD;
1961typedef struct tagENHMETARECORD {
1962 DWORD iType;
1963 DWORD nSize;
1964 DWORD dParm[1];
1965} ENHMETARECORD,*LPENHMETARECORD;
1966typedef struct tagHANDLETABLE {
1967 HGDIOBJ objectHandle[1];
1968} HANDLETABLE,*LPHANDLETABLE;
1969typedef struct tagTEXTMETRICA {
1970 LONG tmHeight;
1971 LONG tmAscent;
1972 LONG tmDescent;
1973 LONG tmInternalLeading;
1974 LONG tmExternalLeading;
1975 LONG tmAveCharWidth;
1976 LONG tmMaxCharWidth;
1977 LONG tmWeight;
1978 LONG tmOverhang;
1979 LONG tmDigitizedAspectX;
1980 LONG tmDigitizedAspectY;
1981 BYTE tmFirstChar;
1982 BYTE tmLastChar;
1983 BYTE tmDefaultChar;
1984 BYTE tmBreakChar;
1985 BYTE tmItalic;
1986 BYTE tmUnderlined;
1987 BYTE tmStruckOut;
1988 BYTE tmPitchAndFamily;
1989 BYTE tmCharSet;
1990} TEXTMETRICA,*PTEXTMETRICA,*LPTEXTMETRICA;
1991typedef struct tagTEXTMETRICW {
1992 LONG tmHeight;
1993 LONG tmAscent;
1994 LONG tmDescent;
1995 LONG tmInternalLeading;
1996 LONG tmExternalLeading;
1997 LONG tmAveCharWidth;
1998 LONG tmMaxCharWidth;
1999 LONG tmWeight;
2000 LONG tmOverhang;
2001 LONG tmDigitizedAspectX;
2002 LONG tmDigitizedAspectY;
2003 WCHAR tmFirstChar;
2004 WCHAR tmLastChar;
2005 WCHAR tmDefaultChar;
2006 WCHAR tmBreakChar;
2007 BYTE tmItalic;
2008 BYTE tmUnderlined;
2009 BYTE tmStruckOut;
2010 BYTE tmPitchAndFamily;
2011 BYTE tmCharSet;
2012} TEXTMETRICW,*PTEXTMETRICW,*LPTEXTMETRICW;
2013typedef struct _RGNDATAHEADER {
2014 DWORD dwSize;
2015 DWORD iType;
2016 DWORD nCount;
2017 DWORD nRgnSize;
2018 RECT rcBound;
2019} RGNDATAHEADER;
2020typedef struct _RGNDATA {
2021 RGNDATAHEADER rdh;
2022 char Buffer[1];
2023} RGNDATA,*LPRGNDATA;
2024/* for GetRandomRgn */
2025#define SYSRGN 4
2026typedef struct tagGCP_RESULTSA {
2027 DWORD lStructSize;
2028 LPSTR lpOutString;
2029 UINT *lpOrder;
2030 INT *lpDx;
2031 INT *lpCaretPos;
2032 LPSTR lpClass;
2033 UINT *lpGlyphs;
2034 UINT nGlyphs;
2035 UINT nMaxFit;
2036} GCP_RESULTSA,*LPGCP_RESULTSA;
2037typedef struct tagGCP_RESULTSW {
2038 DWORD lStructSize;
2039 LPWSTR lpOutString;
2040 UINT *lpOrder;
2041 INT *lpDx;
2042 INT *lpCaretPos;
2043 LPWSTR lpClass;
2044 UINT *lpGlyphs;
2045 UINT nGlyphs;
2046 UINT nMaxFit;
2047} GCP_RESULTSW,*LPGCP_RESULTSW;
2048typedef struct _GLYPHMETRICS {
2049 UINT gmBlackBoxX;
2050 UINT gmBlackBoxY;
2051 POINT gmptGlyphOrigin;
2052 short gmCellIncX;
2053 short gmCellIncY;
2054} GLYPHMETRICS,*LPGLYPHMETRICS;
2055typedef struct tagKERNINGPAIR {
2056 WORD wFirst;
2057 WORD wSecond;
2058 int iKernAmount;
2059} KERNINGPAIR,*LPKERNINGPAIR;
2060typedef struct _FIXED {
2061 WORD fract;
2062 short value;
2063} FIXED;
2064typedef struct _MAT2 {
2065 FIXED eM11;
2066 FIXED eM12;
2067 FIXED eM21;
2068 FIXED eM22;
2069} MAT2,*LPMAT2;
2070typedef struct _OUTLINETEXTMETRICA {
2071 UINT otmSize;
2072 TEXTMETRICA otmTextMetrics;
2073 BYTE otmFiller;
2074 PANOSE otmPanoseNumber;
2075 UINT otmfsSelection;
2076 UINT otmfsType;
2077 int otmsCharSlopeRise;
2078 int otmsCharSlopeRun;
2079 int otmItalicAngle;
2080 UINT otmEMSquare;
2081 int otmAscent;
2082 int otmDescent;
2083 UINT otmLineGap;
2084 UINT otmsCapEmHeight;
2085 UINT otmsXHeight;
2086 RECT otmrcFontBox;
2087 int otmMacAscent;
2088 int otmMacDescent;
2089 UINT otmMacLineGap;
2090 UINT otmusMinimumPPEM;
2091 POINT otmptSubscriptSize;
2092 POINT otmptSubscriptOffset;
2093 POINT otmptSuperscriptSize;
2094 POINT otmptSuperscriptOffset;
2095 UINT otmsStrikeoutSize;
2096 int otmsStrikeoutPosition;
2097 int otmsUnderscoreSize;
2098 int otmsUnderscorePosition;
2099 PSTR otmpFamilyName;
2100 PSTR otmpFaceName;
2101 PSTR otmpStyleName;
2102 PSTR otmpFullName;
2103} OUTLINETEXTMETRICA,*POUTLINETEXTMETRICA,*LPOUTLINETEXTMETRICA;
2104typedef struct _OUTLINETEXTMETRICW {
2105 UINT otmSize;
2106 TEXTMETRICW otmTextMetrics;
2107 BYTE otmFiller;
2108 PANOSE otmPanoseNumber;
2109 UINT otmfsSelection;
2110 UINT otmfsType;
2111 int otmsCharSlopeRise;
2112 int otmsCharSlopeRun;
2113 int otmItalicAngle;
2114 UINT otmEMSquare;
2115 int otmAscent;
2116 int otmDescent;
2117 UINT otmLineGap;
2118 UINT otmsCapEmHeight;
2119 UINT otmsXHeight;
2120 RECT otmrcFontBox;
2121 int otmMacAscent;
2122 int otmMacDescent;
2123 UINT otmMacLineGap;
2124 UINT otmusMinimumPPEM;
2125 POINT otmptSubscriptSize;
2126 POINT otmptSubscriptOffset;
2127 POINT otmptSuperscriptSize;
2128 POINT otmptSuperscriptOffset;
2129 UINT otmsStrikeoutSize;
2130 int otmsStrikeoutPosition;
2131 int otmsUnderscoreSize;
2132 int otmsUnderscorePosition;
2133 PSTR otmpFamilyName;
2134 PSTR otmpFaceName;
2135 PSTR otmpStyleName;
2136 PSTR otmpFullName;
2137} OUTLINETEXTMETRICW,*POUTLINETEXTMETRICW,*LPOUTLINETEXTMETRICW;
2138typedef struct _RASTERIZER_STATUS {
2139 short nSize;
2140 short wFlags;
2141 short nLanguageID;
2142} RASTERIZER_STATUS,*LPRASTERIZER_STATUS;
2143typedef struct _POLYTEXTA {
2144 int x;
2145 int y;
2146 UINT n;
2147 LPCSTR lpstr;
2148 UINT uiFlags;
2149 RECT rcl;
2150 int *pdx;
2151} POLYTEXTA;
2152typedef struct _POLYTEXTW {
2153 int x;
2154 int y;
2155 UINT n;
2156 LPCWSTR lpstr;
2157 UINT uiFlags;
2158 RECT rcl;
2159 int *pdx;
2160} POLYTEXTW;
2161typedef struct tagPIXELFORMATDESCRIPTOR {
2162 WORD nSize;
2163 WORD nVersion;
2164 DWORD dwFlags;
2165 BYTE iPixelType;
2166 BYTE cColorBits;
2167 BYTE cRedBits;
2168 BYTE cRedShift;
2169 BYTE cGreenBits;
2170 BYTE cGreenShift;
2171 BYTE cBlueBits;
2172 BYTE cBlueShift;
2173 BYTE cAlphaBits;
2174 BYTE cAlphaShift;
2175 BYTE cAccumBits;
2176 BYTE cAccumRedBits;
2177 BYTE cAccumGreenBits;
2178 BYTE cAccumBlueBits;
2179 BYTE cAccumAlphaBits;
2180 BYTE cDepthBits;
2181 BYTE cStencilBits;
2182 BYTE cAuxBuffers;
2183 BYTE iLayerType;
2184 BYTE bReserved;
2185 DWORD dwLayerMask;
2186 DWORD dwVisibleMask;
2187 DWORD dwDamageMask;
2188} PIXELFORMATDESCRIPTOR,*PPIXELFORMATDESCRIPTOR,*LPPIXELFORMATDESCRIPTOR;
2189typedef struct tagMETAFILEPICT {
2190 LONG mm;
2191 LONG xExt;
2192 LONG yExt;
2193 HMETAFILE hMF;
2194} METAFILEPICT,*LPMETAFILEPICT;
2195typedef struct tagLOCALESIGNATURE {
2196 DWORD lsUsb[4];
2197 DWORD lsCsbDefault[2];
2198 DWORD lsCsbSupported[2];
2199} LOCALESIGNATURE,*PLOCALESIGNATURE,*LPLOCALESIGNATURE;
2200typedef LONG LCSTYPE;
2201#pragma pack(push,4)
2202typedef struct tagNEWTEXTMETRICA {
2203 LONG tmHeight;
2204 LONG tmAscent;
2205 LONG tmDescent;
2206 LONG tmInternalLeading;
2207 LONG tmExternalLeading;
2208 LONG tmAveCharWidth;
2209 LONG tmMaxCharWidth;
2210 LONG tmWeight;
2211 LONG tmOverhang;
2212 LONG tmDigitizedAspectX;
2213 LONG tmDigitizedAspectY;
2214 BYTE tmFirstChar;
2215 BYTE tmLastChar;
2216 BYTE tmDefaultChar;
2217 BYTE tmBreakChar;
2218 BYTE tmItalic;
2219 BYTE tmUnderlined;
2220 BYTE tmStruckOut;
2221 BYTE tmPitchAndFamily;
2222 BYTE tmCharSet;
2223 DWORD ntmFlags;
2224 UINT ntmSizeEM;
2225 UINT ntmCellHeight;
2226 UINT ntmAvgWidth;
2227} NEWTEXTMETRICA,*PNEWTEXTMETRICA,*LPNEWTEXTMETRICA;
2228typedef struct tagNEWTEXTMETRICW {
2229 LONG tmHeight;
2230 LONG tmAscent;
2231 LONG tmDescent;
2232 LONG tmInternalLeading;
2233 LONG tmExternalLeading;
2234 LONG tmAveCharWidth;
2235 LONG tmMaxCharWidth;
2236 LONG tmWeight;
2237 LONG tmOverhang;
2238 LONG tmDigitizedAspectX;
2239 LONG tmDigitizedAspectY;
2240 WCHAR tmFirstChar;
2241 WCHAR tmLastChar;
2242 WCHAR tmDefaultChar;
2243 WCHAR tmBreakChar;
2244 BYTE tmItalic;
2245 BYTE tmUnderlined;
2246 BYTE tmStruckOut;
2247 BYTE tmPitchAndFamily;
2248 BYTE tmCharSet;
2249 DWORD ntmFlags;
2250 UINT ntmSizeEM;
2251 UINT ntmCellHeight;
2252 UINT ntmAvgWidth;
2253} NEWTEXTMETRICW,*PNEWTEXTMETRICW,*LPNEWTEXTMETRICW;
2254#pragma pack(pop)
2255typedef struct tagNEWTEXTMETRICEXA {
2256 NEWTEXTMETRICA ntmTm;
2257 FONTSIGNATURE ntmFontSig;
2258} NEWTEXTMETRICEXA;
2259typedef struct tagNEWTEXTMETRICEXW {
2260 NEWTEXTMETRICW ntmTm;
2261 FONTSIGNATURE ntmFontSig;
2262} NEWTEXTMETRICEXW;
2263typedef struct tagPELARRAY {
2264 LONG paXCount;
2265 LONG paYCount;
2266 LONG paXExt;
2267 LONG paYExt;
2268 BYTE paRGBs;
2269} PELARRAY,*PPELARRAY,*LPPELARRAY;
2270typedef struct tagENUMLOGFONTA {
2271 LOGFONTA elfLogFont;
2272 BYTE elfFullName[LF_FULLFACESIZE];
2273 BYTE elfStyle[LF_FACESIZE];
2274} ENUMLOGFONTA,*LPENUMLOGFONTA;
2275typedef struct tagENUMLOGFONTW {
2276 LOGFONTW elfLogFont;
2277 WCHAR elfFullName[LF_FULLFACESIZE];
2278 WCHAR elfStyle[LF_FACESIZE];
2279} ENUMLOGFONTW,*LPENUMLOGFONTW;
2280typedef struct tagENUMLOGFONTEXA {
2281 LOGFONTA elfLogFont;
2282 BYTE elfFullName[LF_FULLFACESIZE];
2283 BYTE elfStyle[LF_FACESIZE];
2284 BYTE elfScript[LF_FACESIZE];
2285} ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
2286typedef struct tagENUMLOGFONTEXW {
2287 LOGFONTW elfLogFont;
2288 WCHAR elfFullName[LF_FULLFACESIZE];
2289 BYTE elfStyle[LF_FACESIZE];
2290 BYTE elfScript[LF_FACESIZE];
2291} ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
2292typedef struct tagPOINTFX {
2293 FIXED x;
2294 FIXED y;
2295} POINTFX,*LPPOINTFX;
2296typedef struct tagTTPOLYCURVE {
2297 WORD wType;
2298 WORD cpfx;
2299 POINTFX apfx[1];
2300} TTPOLYCURVE,*LPTTPOLYCURVE;
2301typedef struct tagTTPOLYGONHEADER {
2302 DWORD cb;
2303 DWORD dwType;
2304 POINTFX pfxStart;
2305} TTPOLYGONHEADER,*LPTTPOLYGONHEADER;
2306typedef struct _POINTFLOAT {
2307 FLOAT x;
2308 FLOAT y;
2309} POINTFLOAT,*PPOINTFLOAT;
2310typedef struct _GLYPHMETRICSFLOAT {
2311 FLOAT gmfBlackBoxX;
2312 FLOAT gmfBlackBoxY;
2313 POINTFLOAT gmfptGlyphOrigin;
2314 FLOAT gmfCellIncX;
2315 FLOAT gmfCellIncY;
2316} GLYPHMETRICSFLOAT,*PGLYPHMETRICSFLOAT,*LPGLYPHMETRICSFLOAT;
2317typedef struct tagLAYERPLANEDESCRIPTOR {
2318 WORD nSize;
2319 WORD nVersion;
2320 DWORD dwFlags;
2321 BYTE iPixelType;
2322 BYTE cColorBits;
2323 BYTE cRedBits;
2324 BYTE cRedShift;
2325 BYTE cGreenBits;
2326 BYTE cGreenShift;
2327 BYTE cBlueBits;
2328 BYTE cBlueShift;
2329 BYTE cAlphaBits;
2330 BYTE cAlphaShift;
2331 BYTE cAccumBits;
2332 BYTE cAccumRedBits;
2333 BYTE cAccumGreenBits;
2334 BYTE cAccumBlueBits;
2335 BYTE cAccumAlphaBits;
2336 BYTE cDepthBits;
2337 BYTE cStencilBits;
2338 BYTE cAuxBuffers;
2339 BYTE iLayerPlane;
2340 BYTE bReserved;
2341 COLORREF crTransparent;
2342} LAYERPLANEDESCRIPTOR,*PLAYERPLANEDESCRIPTOR,*LPLAYERPLANEDESCRIPTOR;
2343typedef struct _BLENDFUNCTION {
2344 BYTE BlendOp;
2345 BYTE BlendFlags;
2346 BYTE SourceConstantAlpha;
2347 BYTE AlphaFormat;
2348} BLENDFUNCTION,*PBLENDFUNCTION,*LPBLENDFUNCTION;
2349typedef BOOL (CALLBACK *ABORTPROC)(HDC,int);
2350typedef int (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM);
2351typedef int (CALLBACK *ENHMFENUMPROC)(HDC,HANDLETABLE*,ENHMETARECORD*,int,LPARAM);
2352typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA*,const TEXTMETRICA*,DWORD,LPARAM);
2353typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW*,const TEXTMETRICW*,DWORD,LPARAM);
2354typedef OLDFONTENUMPROCA FONTENUMPROCA;
2355typedef OLDFONTENUMPROCW FONTENUMPROCW;
2356typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM);
2357typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM);
2358typedef void (CALLBACK *GOBJENUMPROC)(LPVOID,LPARAM);
2359typedef void (CALLBACK *LINEDDAPROC)(int,int,LPARAM);
2360typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,UINT);
2361typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODEA);
2362
2363
2364#define RGB(r,g,b) ((DWORD)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
2365#define MAKEPOINTS(l) (*((POINTS*)&(l)))
2366#define MAKEROP4(f,b) (DWORD)((((b)<<8)&0xFF000000)|(f))
2367#define PALETTEINDEX(i) ((0x01000000|(COLORREF)(WORD)(i)))
2368#define PALETTERGB(r,g,b) (0x02000000|RGB(r,g,b))
2369int WINAPI AbortDoc(HDC);
2370BOOL WINAPI AbortPath(HDC);
2371int WINAPI AddFontResourceA(LPCSTR);
2372int WINAPI AddFontResourceW(LPCWSTR);
2373BOOL WINAPI AngleArc(HDC,int,int,DWORD,FLOAT,FLOAT);
2374BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
2375BOOL WINAPI Arc(HDC,int,int,int,int,int,int,int,int);
2376BOOL WINAPI ArcTo(HDC,int,int,int,int,int,int,int,int);
2377BOOL WINAPI BeginPath(HDC);
2378BOOL WINAPI BitBlt(HDC,int,int,int,int,HDC,int,int,DWORD);
2379BOOL WINAPI CancelDC(HDC);
2380BOOL WINAPI CheckColorsInGamut(HDC,PVOID,PVOID,DWORD);
2381BOOL WINAPI Chord(HDC,int,int,int,int,int,int,int,int);
2382int WINAPI ChoosePixelFormat(HDC,CONST PIXELFORMATDESCRIPTOR*);
2383HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
2384BOOL WINAPI CloseFigure(HDC);
2385HMETAFILE WINAPI CloseMetaFile(HDC);
2386BOOL WINAPI ColorMatchToTarget(HDC,HDC,DWORD);
2387int WINAPI CombineRgn(HRGN,HRGN,HRGN,int);
2388BOOL WINAPI CombineTransform(LPXFORM,const XFORM*,const XFORM*);
2389HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
2390HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
2391HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
2392HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
2393HBITMAP WINAPI CreateBitmap(int,int,UINT,UINT,PCVOID);
2394HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
2395HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
2396HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
2397HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW);
2398HBITMAP WINAPI CreateCompatibleBitmap(HDC,int,int);
2399HDC WINAPI CreateCompatibleDC(HDC);
2400HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2401HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2402HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,PCVOID,const BITMAPINFO*,UINT);
2403HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
2404HBRUSH WINAPI CreateDIBPatternBrushPt(PCVOID,UINT);
2405HBITMAP WINAPI CreateDIBSection(HDC,const BITMAPINFO*,UINT,void**,HANDLE,DWORD);
2406HBITMAP WINAPI CreateDiscardableBitmap(HDC,int,int);
2407HRGN WINAPI CreateEllipticRgn(int,int,int,int);
2408HRGN WINAPI CreateEllipticRgnIndirect(LPCRECT);
2409HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,LPCRECT,LPCSTR);
2410HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,LPCRECT,LPCWSTR);
2411HFONT WINAPI CreateFontA(int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
2412HFONT WINAPI CreateFontW(int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
2413HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
2414HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
2415HPALETTE WINAPI CreateHalftonePalette(HDC);
2416HBRUSH WINAPI CreateHatchBrush(int,COLORREF);
2417HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2418HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2419HDC WINAPI CreateMetaFileA(LPCSTR);
2420HDC WINAPI CreateMetaFileW(LPCWSTR);
2421HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
2422HBRUSH WINAPI CreatePatternBrush(HBITMAP);
2423HPEN WINAPI CreatePen(int,int,COLORREF);
2424HPEN WINAPI CreatePenIndirect(const LOGPEN*);
2425HRGN WINAPI CreatePolygonRgn(const POINT*,int,int);
2426HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,int,int);
2427HRGN WINAPI CreateRectRgn(int,int,int,int);
2428HRGN WINAPI CreateRectRgnIndirect(LPCRECT);
2429HRGN WINAPI CreateRoundRectRgn(int,int,int,int,int,int);
2430BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
2431BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
2432HBRUSH WINAPI CreateSolidBrush(COLORREF);
2433BOOL WINAPI DeleteColorSpace(HCOLORSPACE);
2434BOOL WINAPI DeleteDC(HDC);
2435BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
2436BOOL WINAPI DeleteMetaFile(HMETAFILE);
2437BOOL WINAPI DeleteObject(HGDIOBJ);
2438int WINAPI DescribePixelFormat(HDC,int,UINT,LPPIXELFORMATDESCRIPTOR);
2439DWORD WINAPI DeviceCapabilitiesA(LPCSTR,LPCSTR,WORD,LPSTR,const DEVMODEA*);
2440DWORD WINAPI DeviceCapabilitiesW(LPCWSTR,LPCWSTR,WORD,LPWSTR,const DEVMODEW*);
2441BOOL WINAPI DPtoLP(HDC,LPPOINT,int);
2442int WINAPI DrawEscape(HDC,int,int,LPCSTR);
2443BOOL WINAPI Ellipse(HDC,int,int,int,int);
2444int WINAPI EndDoc(HDC);
2445int WINAPI EndPage(HDC);
2446BOOL WINAPI EndPath(HDC);
2447BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,PVOID,LPCRECT);
2448int WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2449int WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2450int WINAPI EnumFontFamiliesExA(HDC,PLOGFONTA,FONTENUMPROCA,LPARAM,DWORD);
2451int WINAPI EnumFontFamiliesExW(HDC,PLOGFONTW,FONTENUMPROCW,LPARAM,DWORD);
2452int WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2453int WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCA,LPARAM);
2454int WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
2455int WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
2456BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
2457int WINAPI EnumObjects(HDC,int,GOBJENUMPROC,LPARAM);
2458BOOL WINAPI EqualRgn(HRGN,HRGN);
2459int WINAPI Escape(HDC,int,int,LPCSTR,PVOID);
2460int WINAPI ExcludeClipRect(HDC,int,int,int,int);
2461int WINAPI ExcludeUpdateRgn(HDC,HWND);
2462HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
2463HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
2464int WINAPI ExtEscape(HDC,int,int,LPCSTR,int,LPSTR);
2465BOOL WINAPI ExtFloodFill(HDC,int,int,COLORREF,UINT);
2466int WINAPI ExtSelectClipRgn(HDC,HRGN,int);
2467BOOL WINAPI ExtTextOutA(HDC,int,int,UINT,LPCRECT,LPCSTR,UINT,const INT*);
2468BOOL WINAPI ExtTextOutW(HDC,int,int,UINT,LPCRECT,LPCWSTR,UINT,const INT*);
2469BOOL WINAPI FillPath(HDC);
2470int WINAPI FillRect(HDC,LPCRECT,HBRUSH);
2471int WINAPI FillRgn(HDC,HRGN,HBRUSH);
2472BOOL WINAPI FixBrushOrgEx(HDC,int,int,LPPOINT);
2473BOOL WINAPI FlattenPath(HDC);
2474BOOL WINAPI FloodFill(HDC,int,int,COLORREF);
2475BOOL WINAPI GdiComment(HDC,UINT,const BYTE*);
2476BOOL WINAPI GdiFlush(void);
2477DWORD WINAPI GdiGetBatchLimit(void);
2478DWORD WINAPI GdiSetBatchLimit(DWORD);
2479#define GetCValue(cmyk) ((BYTE)(cmyk))
2480#define GetMValue(cmyk) ((BYTE)((cmyk)>> 8))
2481#define GetYValue(cmyk) ((BYTE)((cmyk)>>16))
2482#define GetKValue(cmyk) ((BYTE)((cmyk)>>24))
2483#define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(c)|((WORD)((BYTE)(m))<<8))|(((DWORD)(BYTE)(y))<<16))|(((DWORD)(BYTE)(k))<<24)))
2484#define GetRValue(c) ((BYTE)(c))
2485#define GetGValue(c) ((BYTE)(((WORD)(c))>>8))
2486#define GetBValue(c) ((BYTE)((c)>>16))
2487int WINAPI GetArcDirection(HDC);
2488BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
2489LONG WINAPI GetBitmapBits(HBITMAP,LONG,PVOID);
2490BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
2491COLORREF WINAPI GetBkColor(HDC);
2492int WINAPI GetBkMode(HDC);
2493UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
2494BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
2495BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
2496BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
2497BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
2498BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
2499DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,int,int,LPGCP_RESULTSA,DWORD);
2500DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,int,int,LPGCP_RESULTSW,DWORD);
2501BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
2502BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
2503BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
2504BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
2505BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
2506BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
2507int WINAPI GetClipBox(HDC,LPRECT);
2508int WINAPI GetClipRgn(HDC,HRGN);
2509BOOL WINAPI GetColorAdjustment(HDC,LPCOLORADJUSTMENT);
2510HANDLE WINAPI GetColorSpace(HDC);
2511HGDIOBJ WINAPI GetCurrentObject(HDC,UINT);
2512BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
2513HCURSOR WINAPI GetCursor(void);
2514BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
2515int WINAPI GetDeviceCaps(HDC,int);
2516BOOL WINAPI GetDeviceGammaRamp(HDC,PVOID);
2517UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2518int WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,PVOID,LPBITMAPINFO,UINT);
2519HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
2520HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
2521UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR);
2522UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
2523UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
2524UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
2525UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,DWORD,PIXELFORMATDESCRIPTOR*);
2526DWORD WINAPI GetFontData(HDC,DWORD,DWORD,PVOID,DWORD);
2527DWORD WINAPI GetFontLanguageInfo(HDC);
2528DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*);
2529DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*);
2530int WINAPI GetGraphicsMode(HDC);
2531BOOL WINAPI GetICMProfileA(HDC,DWORD,LPSTR);
2532BOOL WINAPI GetICMProfileW(HDC,DWORD,LPWSTR);
2533DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
2534DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
2535BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
2536BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
2537int WINAPI GetMapMode(HDC);
2538HMETAFILE WINAPI GetMetaFileA(LPCSTR);
2539HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
2540UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,PVOID);
2541int WINAPI GetMetaRgn(HDC,HRGN);
2542BOOL WINAPI GetMiterLimit(HDC,PFLOAT);
2543COLORREF WINAPI GetNearestColor(HDC,COLORREF);
2544UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
2545int WINAPI GetObjectA(HGDIOBJ,int,PVOID);
2546int WINAPI GetObjectW(HGDIOBJ,int,PVOID);
2547DWORD WINAPI GetObjectType(HGDIOBJ);
2548UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
2549UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
2550UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2551int WINAPI GetPath(HDC,LPPOINT,PBYTE,int);
2552COLORREF WINAPI GetPixel(HDC,int,int);
2553int WINAPI GetPixelFormat(HDC);
2554int WINAPI GetPolyFillMode(HDC);
2555BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
2556int WINAPI GetRandomRgn (HDC,HRGN,INT);
2557DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
2558int WINAPI GetRgnBox(HRGN,LPRECT);
2559int WINAPI GetROP2(HDC);
2560HGDIOBJ WINAPI GetStockObject(int);
2561int WINAPI GetStretchBltMode(HDC);
2562UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
2563UINT WINAPI GetSystemPaletteUse(HDC);
2564UINT WINAPI GetTextAlign(HDC);
2565int WINAPI GetTextCharacterExtra(HDC);
2566int WINAPI GetTextCharset(HDC);
2567int WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
2568COLORREF WINAPI GetTextColor(HDC);
2569BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,int,int,LPINT,LPINT,LPSIZE);
2570BOOL WINAPI GetTextExtentExPointW( HDC,LPCWSTR,int,int,LPINT,LPINT,LPSIZE );
2571BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,int,LPSIZE);
2572BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,int,LPSIZE);
2573BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,int,LPSIZE);
2574BOOL WINAPI GetTextExtentPoint32W( HDC,LPCWSTR,int,LPSIZE);
2575int WINAPI GetTextFaceA(HDC,int,LPSTR);
2576int WINAPI GetTextFaceW(HDC,int,LPWSTR);
2577BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
2578BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
2579BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
2580BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
2581BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
2582BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
2583UINT WINAPI GetWinMetaFileBits(HENHMETAFILE,UINT,LPBYTE,INT,HDC);
2584BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
2585int WINAPI IntersectClipRect(HDC,int,int,int,int);
2586BOOL WINAPI InvertRgn(HDC,HRGN);
2587BOOL WINAPI LineDDA(int,int,int,int,LINEDDAPROC,LPARAM);
2588BOOL WINAPI LineTo(HDC,int,int);
2589BOOL WINAPI LPtoDP(HDC,LPPOINT,int);
2590BOOL WINAPI MaskBlt(HDC,int,int,int,int,HDC,int,int,HBITMAP,int,int,DWORD);
2591BOOL WINAPI ModifyWorldTransform(HDC,const XFORM*,DWORD);
2592BOOL WINAPI MoveToEx(HDC,int,int,LPPOINT);
2593int WINAPI OffsetClipRgn(HDC,int,int);
2594int WINAPI OffsetRgn(HRGN,int,int);
2595BOOL WINAPI OffsetViewportOrgEx(HDC,int,int,LPPOINT);
2596BOOL WINAPI OffsetWindowOrgEx(HDC,int,int,LPPOINT);
2597BOOL WINAPI PaintRgn(HDC,HRGN);
2598BOOL WINAPI PatBlt(HDC,int,int,int,int,DWORD);
2599HRGN WINAPI PathToRegion(HDC);
2600BOOL WINAPI Pie(HDC,int,int,int,int,int,int,int,int);
2601BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,LPCRECT);
2602BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
2603BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
2604BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
2605BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,int,int,int,int,HBITMAP,int,int);
2606BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
2607BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
2608BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,int);
2609BOOL WINAPI Polygon(HDC,const POINT*,int);
2610BOOL WINAPI Polyline(HDC,const POINT*,int);
2611BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
2612BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,int);
2613BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
2614BOOL WINAPI PolyTextOutA(HDC,const POLYTEXTA*,int);
2615BOOL WINAPI PolyTextOutW(HDC,const POLYTEXTW*,int);
2616BOOL WINAPI PtInRegion(HRGN,int,int);
2617BOOL WINAPI PtVisible(HDC,int,int);
2618UINT WINAPI RealizePalette(HDC);
2619BOOL WINAPI Rectangle(HDC,int,int,int,int);
2620BOOL WINAPI RectInRegion(HRGN,LPCRECT);
2621BOOL WINAPI RectVisible(HDC,LPCRECT);
2622BOOL WINAPI RemoveFontResourceA(LPCSTR);
2623BOOL WINAPI RemoveFontResourceW(LPCWSTR);
2624HDC WINAPI ResetDCA(HDC,const DEVMODEA*);
2625HDC WINAPI ResetDCW(HDC,const DEVMODEW*);
2626BOOL WINAPI ResizePalette(HPALETTE,UINT);
2627BOOL WINAPI RestoreDC(HDC,int);
2628BOOL WINAPI RoundRect(HDC,int,int,int,int,int,int);
2629int WINAPI SaveDC(HDC);
2630BOOL WINAPI ScaleViewportExtEx(HDC,int,int,int,int,LPSIZE);
2631BOOL WINAPI ScaleWindowExtEx(HDC,int,int,int,int,LPSIZE);
2632BOOL WINAPI SelectClipPath(HDC,int);
2633int WINAPI SelectClipRgn(HDC,HRGN);
2634HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
2635HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
2636int WINAPI SetAbortProc(HDC,ABORTPROC);
2637int WINAPI SetArcDirection(HDC,int);
2638LONG WINAPI SetBitmapBits(HBITMAP,DWORD,PCVOID);
2639BOOL WINAPI SetBitmapDimensionEx(HBITMAP,int,int,LPSIZE);
2640COLORREF WINAPI SetBkColor(HDC,COLORREF);
2641int WINAPI SetBkMode(HDC,int);
2642UINT WINAPI SetBoundsRect(HDC,LPCRECT,UINT);
2643BOOL WINAPI SetBrushOrgEx(HDC,int,int,LPPOINT);
2644BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
2645BOOL WINAPI SetColorSpace(HDC,HCOLORSPACE);
2646BOOL WINAPI SetDeviceGammaRamp(HDC,PVOID);
2647UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,const RGBQUAD*);
2648int WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,PCVOID,const BITMAPINFO*,UINT);
2649int WINAPI SetDIBitsToDevice(HDC,int,int,DWORD,DWORD,int,int,UINT,UINT,PCVOID,const BITMAPINFO*,UINT);
2650HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE*);
2651int WINAPI SetGraphicsMode(HDC,int);
2652int WINAPI SetICMMode(HDC,int);
2653BOOL WINAPI SetICMProfileA(HDC,LPSTR);
2654BOOL WINAPI SetICMProfileW(HDC,LPWSTR);
2655int WINAPI SetMapMode(HDC,int);
2656DWORD WINAPI SetMapperFlags(HDC,DWORD);
2657HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE *);
2658int WINAPI SetMetaRgn(HDC);
2659BOOL WINAPI SetMiterLimit(HDC,FLOAT,PFLOAT);
2660UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,const PALETTEENTRY*);
2661COLORREF WINAPI SetPixel(HDC,int,int,COLORREF);
2662BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
2663BOOL WINAPI SetPixelV(HDC,int,int,COLORREF);
2664int WINAPI SetPolyFillMode(HDC,int);
2665BOOL WINAPI SetRectRgn(HRGN,int,int,int,int);
2666int WINAPI SetROP2(HDC,int);
2667int WINAPI SetStretchBltMode(HDC,int);
2668UINT WINAPI SetSystemPaletteUse(HDC,UINT);
2669UINT WINAPI SetTextAlign(HDC,UINT);
2670int WINAPI SetTextCharacterExtra(HDC,int);
2671COLORREF WINAPI SetTextColor(HDC,COLORREF);
2672BOOL WINAPI SetTextJustification(HDC,int,int);
2673BOOL WINAPI SetViewportExtEx(HDC,int,int,LPSIZE);
2674BOOL WINAPI SetViewportOrgEx(HDC,int,int,LPPOINT);
2675BOOL WINAPI SetWindowExtEx(HDC,int,int,LPSIZE);
2676BOOL WINAPI SetWindowOrgEx(HDC,int,int,LPPOINT);
2677HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,const BYTE*,HDC,const METAFILEPICT*);
2678BOOL WINAPI SetWorldTransform(HDC,const XFORM *);
2679int WINAPI StartDocA(HDC,const DOCINFOA*);
2680int WINAPI StartDocW(HDC,const DOCINFOW*);
2681int WINAPI StartPage(HDC);
2682BOOL WINAPI StretchBlt(HDC,int,int,int,int,HDC,int,int,int,int,DWORD);
2683int WINAPI StretchDIBits(HDC,int,int,int,int,int,int,int,int,const VOID *,const BITMAPINFO *,UINT,DWORD);
2684BOOL WINAPI StrokeAndFillPath(HDC);
2685BOOL WINAPI StrokePath(HDC);
2686BOOL WINAPI SwapBuffers(HDC);
2687BOOL WINAPI TextOutA(HDC,int,int,LPCSTR,int);
2688BOOL WINAPI TextOutW(HDC,int,int,LPCWSTR,int);
2689BOOL WINAPI TranslateCharsetInfo(PDWORD,LPCHARSETINFO,DWORD);
2690BOOL WINAPI UnrealizeObject(HGDIOBJ);
2691BOOL WINAPI UpdateColors(HDC);
2692BOOL WINAPI UpdateICMRegKeyA(DWORD,DWORD,LPSTR,UINT);
2693BOOL WINAPI UpdateICMRegKeyW(DWORD,DWORD,LPWSTR,UINT);
2694BOOL WINAPI WidenPath(HDC);
2695BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
2696HGLRC WINAPI wglCreateContext(HDC);
2697HGLRC WINAPI wglCreateLayerContext(HDC,int);
2698BOOL WINAPI wglDeleteContext(HGLRC);
2699BOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);
2700HGLRC WINAPI wglGetCurrentContext(void);
2701HDC WINAPI wglGetCurrentDC(void);
2702int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF*);
2703PROC WINAPI wglGetProcAddress(LPCSTR);
2704BOOL WINAPI wglMakeCurrent(HDC,HGLRC);
2705BOOL WINAPI wglRealizeLayerPalette(HDC,int,BOOL);
2706int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,const COLORREF*);
2707BOOL WINAPI wglShareLists(HGLRC,HGLRC);
2708BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
2709BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
2710BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
2711BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
2712BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
2713
2714#ifdef UNICODE
2715typedef WCHAR BCHAR;
2716typedef DOCINFOW DOCINFO, *LPDOCINFO;
2717typedef LOGFONTW LOGFONT,*PLOGFONT,*LPLOGFONT;
2718typedef TEXTMETRICW TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;
2719#define ICMENUMPROC ICMENUMPROCW
2720#define FONTENUMPROC FONTENUMPROCW
2721typedef DEVMODEW DEVMODE,*PDEVMODE,*LPDEVMODE;
2722typedef EXTLOGFONTW EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;
2723typedef GCP_RESULTSW GCP_RESULTS,*LPGCP_RESULTS;
2724typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;
2725typedef POLYTEXTW POLYTEXT;
2726typedef LOGCOLORSPACEW LOGCOLORSPACE,*LPLOGCOLORSPACE;
2727typedef NEWTEXTMETRICW NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC;
2728typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX;
2729typedef ENUMLOGFONTW ENUMLOGFONT,*LPENUMLOGFONT;
2730typedef ENUMLOGFONTEXW ENUMLOGFONTEX,*LPENUMLOGFONTEX;
2731#define AddFontResource AddFontResourceW
2732#define CopyEnhMetaFile CopyEnhMetaFileW
2733#define CopyMetaFile CopyMetaFileW
2734#define CreateDC CreateDCW
2735#define CreateEnhMetaFile CreateEnhMetaFileW
2736#define CreateFont CreateFontW
2737#define CreateFontIndirect CreateFontIndirectW
2738#define CreateIC CreateICW
2739#define CreateMetaFile CreateMetaFileW
2740#define CreateScalableFontResource CreateScalableFontResourceW
2741#define DeviceCapabilities DeviceCapabilitiesW
2742#define EnumFontFamilies EnumFontFamiliesW
2743#define EnumFontFamiliesEx EnumFontFamiliesExW
2744#define EnumFonts EnumFontsW
2745#define EnumICMProfiles EnumICMProfilesW
2746#define ExtTextOut ExtTextOutW
2747#define GetCharABCWidthsFloat GetCharABCWidthsFloatW
2748#define GetCharABCWidths GetCharABCWidthsW
2749#define GetCharacterPlacement GetCharacterPlacementW
2750#define GetCharWidth32 GetCharWidth32W
2751#define GetCharWidthFloat GetCharWidthFloatW
2752#define GetCharWidth GetCharWidthW
2753#define GetEnhMetaFile GetEnhMetaFileW
2754#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW
2755#define GetGlyphOutline GetGlyphOutlineW
2756#define GetICMProfile GetICMProfileW
2757#define GetKerningPairs GetKerningPairsW
2758#define GetLogColorSpace GetLogColorSpaceW
2759#define GetMetaFile GetMetaFileW
2760#define GetObject GetObjectW
2761#define GetOutlineTextMetrics GetOutlineTextMetricsW
2762#define GetTextExtentPoint GetTextExtentPointW
2763#define GetTextExtentExPoint GetTextExtentExPointW
2764#define GetTextExtentPoint32 GetTextExtentPoint32W
2765#define GetTextFace GetTextFaceW
2766#define GetTextMetrics GetTextMetricsW
2767#define PolyTextOut PolyTextOutW
2768#define RemoveFontResource RemoveFontResourceW
2769#define ResetDC ResetDCW
2770#define SetICMProfile SetICMProfileW
2771#define StartDoc StartDocW
2772#define TextOut TextOutW
2773#define UpdateICMRegKey UpdateICMRegKeyW
2774#define wglUseFontBitmaps wglUseFontBitmapsW
2775#define wglUseFontOutlines wglUseFontOutlinesW
2776#else
2777typedef BYTE BCHAR;
2778typedef DOCINFOA DOCINFO, *LPDOCINFO;
2779typedef LOGFONTA LOGFONT,*PLOGFONT,*LPLOGFONT;
2780typedef TEXTMETRICA TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;
2781#define ICMENUMPROC ICMENUMPROCA
2782#define FONTENUMPROC FONTENUMPROCA
2783typedef DEVMODEA DEVMODE,*PDEVMODE,*LPDEVMODE;
2784typedef EXTLOGFONTA EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;
2785typedef GCP_RESULTSA GCP_RESULTS,*LPGCP_RESULTS;
2786typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;
2787typedef POLYTEXTA POLYTEXT;
2788typedef LOGCOLORSPACEA LOGCOLORSPACE,*LPLOGCOLORSPACE;
2789typedef NEWTEXTMETRICA NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC;
2790typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
2791typedef ENUMLOGFONTA ENUMLOGFONT,*LPENUMLOGFONT;
2792typedef ENUMLOGFONTEXA ENUMLOGFONTEX,*LPENUMLOGFONTEX;
2793#define AddFontResource AddFontResourceA
2794#define CopyEnhMetaFile CopyEnhMetaFileA
2795#define CopyMetaFile CopyMetaFileA
2796#define CreateDC CreateDCA
2797#define CreateEnhMetaFile CreateEnhMetaFileA
2798#define CreateFont CreateFontA
2799#define CreateFontIndirect CreateFontIndirectA
2800#define CreateIC CreateICA
2801#define CreateMetaFile CreateMetaFileA
2802#define CreateScalableFontResource CreateScalableFontResourceA
2803#define DeviceCapabilities DeviceCapabilitiesA
2804#define EnumFontFamilies EnumFontFamiliesA
2805#define EnumFontFamiliesEx EnumFontFamiliesExA
2806#define EnumFonts EnumFontsA
2807#define EnumICMProfiles EnumICMProfilesA
2808#define ExtTextOut ExtTextOutA
2809#define GetCharWidthFloat GetCharWidthFloatA
2810#define GetCharWidth GetCharWidthA
2811#define GetCharacterPlacement GetCharacterPlacementA
2812#define GetCharABCWidths GetCharABCWidthsA
2813#define GetCharABCWidthsFloat GetCharABCWidthsFloatA
2814#define GetCharWidth32 GetCharWidth32A
2815#define GetEnhMetaFile GetEnhMetaFileA
2816#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA
2817#define GetGlyphOutline GetGlyphOutlineA
2818#define GetICMProfile GetICMProfileA
2819#define GetKerningPairs GetKerningPairsA
2820#define GetLogColorSpace GetLogColorSpaceA
2821#define GetMetaFile GetMetaFileA
2822#define GetObject GetObjectA
2823#define GetOutlineTextMetrics GetOutlineTextMetricsA
2824#define GetTextExtentPoint GetTextExtentPointA
2825#define GetTextExtentExPoint GetTextExtentExPointA
2826#define GetTextExtentPoint32 GetTextExtentPoint32A
2827#define GetTextFace GetTextFaceA
2828#define GetTextMetrics GetTextMetricsA
2829#define PolyTextOut PolyTextOutA
2830#define RemoveFontResource RemoveFontResourceA
2831#define ResetDC ResetDCA
2832#define SetICMProfile SetICMProfileA
2833#define StartDoc StartDocA
2834#define TextOut TextOutA
2835#define UpdateICMRegKey UpdateICMRegKeyA
2836#define wglUseFontBitmaps wglUseFontBitmapsA
2837#define wglUseFontOutlines wglUseFontOutlinesA
2838#endif
2839#endif
2840#ifdef __cplusplus
2841}
2842#endif
2843#endif
win32/include/winapi/winnetwk.h+346−0
@@ -0,0 +1,346 @@
1#ifndef _WINNETWK_H
2#define _WINNETWK_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10#define WNNC_NET_MSNET 0x00010000
11#define WNNC_NET_LANMAN 0x00020000
12#define WNNC_NET_NETWARE 0x00030000
13#define WNNC_NET_VINES 0x00040000
14#define WNNC_NET_10NET 0x00050000
15#define WNNC_NET_LOCUS 0x00060000
16#define WNNC_NET_SUN_PC_NFS 0x00070000
17#define WNNC_NET_LANSTEP 0x00080000
18#define WNNC_NET_9TILES 0x00090000
19#define WNNC_NET_LANTASTIC 0x000A0000
20#define WNNC_NET_AS400 0x000B0000
21#define WNNC_NET_FTP_NFS 0x000C0000
22#define WNNC_NET_PATHWORKS 0x000D0000
23#define WNNC_NET_LIFENET 0x000E0000
24#define WNNC_NET_POWERLAN 0x000F0000
25#define WNNC_NET_BWNFS 0x00100000
26#define WNNC_NET_COGENT 0x00110000
27#define WNNC_NET_FARALLON 0x00120000
28#define WNNC_NET_APPLETALK 0x00130000
29#define WNNC_NET_INTERGRAPH 0x00140000
30#define WNNC_NET_SYMFONET 0x00150000
31#define WNNC_NET_CLEARCASE 0x00160000
32#define WNNC_NET_FRONTIER 0x00170000
33#define WNNC_NET_BMC 0x00180000
34#define WNNC_NET_DCE 0x00190000
35#define WNNC_NET_AVID 0x001A0000
36#define WNNC_NET_DOCUSPACE 0x001B0000
37#define WNNC_NET_MANGOSOFT 0x001C0000
38#define WNNC_NET_SERNET 0x001D0000
39#define WNNC_NET_DECORB 0x00200000
40#define WNNC_NET_PROTSTOR 0x00210000
41#define WNNC_NET_FJ_REDIR 0x00220000
42#define WNNC_NET_DISTINCT 0x00230000
43#define WNNC_NET_TWINS 0x00240000
44#define WNNC_NET_RDR2SAMPLE 0x00250000
45#define WNNC_NET_CSC 0x00260000
46#define WNNC_NET_3IN1 0x00270000
47#define WNNC_NET_EXTENDNET 0x00290000
48#define WNNC_NET_OBJECT_DIRE 0x00300000
49#define WNNC_NET_MASFAX 0x00310000
50#define WNNC_NET_HOB_NFS 0x00320000
51#define WNNC_NET_SHIVA 0x00330000
52#define WNNC_NET_IBMAL 0x00340000
53#define WNNC_CRED_MANAGER 0xFFFF0000
54
55#define RESOURCE_CONNECTED 1
56#define RESOURCE_GLOBALNET 2
57#define RESOURCE_REMEMBERED 3
58#define RESOURCE_RECENT 4
59#define RESOURCE_CONTEXT 5
60#define RESOURCETYPE_ANY 0
61#define RESOURCETYPE_DISK 1
62#define RESOURCETYPE_PRINT 2
63#define RESOURCETYPE_RESERVED 8
64#define RESOURCETYPE_UNKNOWN 0xFFFFFFFF
65#define RESOURCEUSAGE_CONNECTABLE 0x00000001
66#define RESOURCEUSAGE_CONTAINER 0x00000002
67#define RESOURCEUSAGE_NOLOCALDEVICE 0x00000004
68#define RESOURCEUSAGE_SIBLING 0x00000008
69#define RESOURCEUSAGE_ATTACHED 0x00000010
70#define RESOURCEUSAGE_ALL (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED)
71#define RESOURCEUSAGE_RESERVED 0x80000000
72#define RESOURCEDISPLAYTYPE_GENERIC 0
73#define RESOURCEDISPLAYTYPE_DOMAIN 1
74#define RESOURCEDISPLAYTYPE_SERVER 2
75#define RESOURCEDISPLAYTYPE_SHARE 3
76#define RESOURCEDISPLAYTYPE_FILE 4
77#define RESOURCEDISPLAYTYPE_GROUP 5
78#define RESOURCEDISPLAYTYPE_NETWORK 6
79#define RESOURCEDISPLAYTYPE_ROOT 7
80#define RESOURCEDISPLAYTYPE_SHAREADMIN 8
81#define RESOURCEDISPLAYTYPE_DIRECTORY 9
82#define RESOURCEDISPLAYTYPE_TREE 10
83#define NETPROPERTY_PERSISTENT 1
84#define CONNECT_UPDATE_PROFILE 1
85#define CONNECT_UPDATE_RECENT 2
86#define CONNECT_TEMPORARY 4
87#define CONNECT_INTERACTIVE 8
88#define CONNECT_PROMPT 16
89#define CONNECT_NEED_DRIVE 32
90#define CONNECT_REFCOUNT 64
91#define CONNECT_REDIRECT 128
92#define CONNECT_LOCALDRIVE 256
93#define CONNECT_CURRENT_MEDIA 512
94#define CONNDLG_RO_PATH 1
95#define CONNDLG_CONN_POINT 2
96#define CONNDLG_USE_MRU 4
97#define CONNDLG_HIDE_BOX 8
98#define CONNDLG_PERSIST 16
99#define CONNDLG_NOT_PERSIST 32
100#define DISC_UPDATE_PROFILE 1
101#define DISC_NO_FORCE 64
102#define WNFMT_MULTILINE 1
103#define WNFMT_ABBREVIATED 2
104#define WNFMT_INENUM 16
105#define WNFMT_CONNECTION 32
106#define WN_SUCCESS NO_ERROR
107#define WN_NO_ERROR NO_ERROR
108#define WN_NOT_SUPPORTED ERROR_NOT_SUPPORTED
109#define WN_CANCEL ERROR_CANCELLED
110#define WN_RETRY ERROR_RETRY
111#define WN_NET_ERROR ERROR_UNEXP_NET_ERR
112#define WN_MORE_DATA ERROR_MORE_DATA
113#define WN_BAD_POINTER ERROR_INVALID_ADDRESS
114#define WN_BAD_VALUE ERROR_INVALID_PARAMETER
115#define WN_BAD_USER ERROR_BAD_USERNAME
116#define WN_BAD_PASSWORD ERROR_INVALID_PASSWORD
117#define WN_ACCESS_DENIED ERROR_ACCESS_DENIED
118#define WN_FUNCTION_BUSY ERROR_BUSY
119#define WN_WINDOWS_ERROR ERROR_UNEXP_NET_ERR
120#define WN_OUT_OF_MEMORY ERROR_NOT_ENOUGH_MEMORY
121#define WN_NO_NETWORK ERROR_NO_NETWORK
122#define WN_EXTENDED_ERROR ERROR_EXTENDED_ERROR
123#define WN_BAD_LEVEL ERROR_INVALID_LEVEL
124#define WN_BAD_HANDLE ERROR_INVALID_HANDLE
125#define WN_NOT_INITIALIZING ERROR_ALREADY_INITIALIZED
126#define WN_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES
127#define WN_NOT_CONNECTED ERROR_NOT_CONNECTED
128#define WN_OPEN_FILES ERROR_OPEN_FILES
129#define WN_DEVICE_IN_USE ERROR_DEVICE_IN_USE
130#define WN_BAD_NETNAME ERROR_BAD_NET_NAME
131#define WN_BAD_LOCALNAME ERROR_BAD_DEVICE
132#define WN_ALREADY_CONNECTED ERROR_ALREADY_ASSIGNED
133#define WN_DEVICE_ERROR ERROR_GEN_FAILURE
134#define WN_CONNECTION_CLOSED ERROR_CONNECTION_UNAVAIL
135#define WN_NO_NET_OR_BAD_PATH ERROR_NO_NET_OR_BAD_PATH
136#define WN_BAD_PROVIDER ERROR_BAD_PROVIDER
137#define WN_CANNOT_OPEN_PROFILE ERROR_CANNOT_OPEN_PROFILE
138#define WN_BAD_PROFILE ERROR_BAD_PROFILE
139#define WN_BAD_DEV_TYPE ERROR_BAD_DEV_TYPE
140#define WN_DEVICE_ALREADY_REMEMBERED ERROR_DEVICE_ALREADY_REMEMBERED
141#define WN_NO_MORE_ENTRIES ERROR_NO_MORE_ITEMS
142#define WN_NOT_CONTAINER ERROR_NOT_CONTAINER
143#define WN_NOT_AUTHENTICATED ERROR_NOT_AUTHENTICATED
144#define WN_NOT_LOGGED_ON ERROR_NOT_LOGGED_ON
145#define WN_NOT_VALIDATED ERROR_NO_LOGON_SERVERS
146#define UNIVERSAL_NAME_INFO_LEVEL 1
147#define REMOTE_NAME_INFO_LEVEL 2
148#define NETINFO_DLL16 1
149#define NETINFO_DISKRED 4
150#define NETINFO_PRINTERRED 8
151#define RP_LOGON 1
152#define RP_INIFILE 2
153#define PP_DISPLAYERRORS 1
154#define WNCON_FORNETCARD 1
155#define WNCON_NOTROUTED 2
156#define WNCON_SLOWLINK 4
157#define WNCON_DYNAMIC 8
158
159#ifndef RC_INVOKED
160typedef struct _NETRESOURCEA {
161 DWORD dwScope;
162 DWORD dwType;
163 DWORD dwDisplayType;
164 DWORD dwUsage;
165 LPSTR lpLocalName;
166 LPSTR lpRemoteName;
167 LPSTR lpComment ;
168 LPSTR lpProvider;
169}NETRESOURCEA,*LPNETRESOURCEA;
170typedef struct _NETRESOURCEW {
171 DWORD dwScope;
172 DWORD dwType;
173 DWORD dwDisplayType;
174 DWORD dwUsage;
175 LPWSTR lpLocalName;
176 LPWSTR lpRemoteName;
177 LPWSTR lpComment ;
178 LPWSTR lpProvider;
179}NETRESOURCEW,*LPNETRESOURCEW;
180typedef struct _CONNECTDLGSTRUCTA{
181 DWORD cbStructure;
182 HWND hwndOwner;
183 LPNETRESOURCEA lpConnRes;
184 DWORD dwFlags;
185 DWORD dwDevNum;
186} CONNECTDLGSTRUCTA,*LPCONNECTDLGSTRUCTA;
187typedef struct _CONNECTDLGSTRUCTW{
188 DWORD cbStructure;
189 HWND hwndOwner;
190 LPNETRESOURCEW lpConnRes;
191 DWORD dwFlags;
192 DWORD dwDevNum;
193} CONNECTDLGSTRUCTW,*LPCONNECTDLGSTRUCTW;
194typedef struct _DISCDLGSTRUCTA{
195 DWORD cbStructure;
196 HWND hwndOwner;
197 LPSTR lpLocalName;
198 LPSTR lpRemoteName;
199 DWORD dwFlags;
200} DISCDLGSTRUCTA,*LPDISCDLGSTRUCTA;
201typedef struct _DISCDLGSTRUCTW{
202 DWORD cbStructure;
203 HWND hwndOwner;
204 LPWSTR lpLocalName;
205 LPWSTR lpRemoteName;
206 DWORD dwFlags;
207} DISCDLGSTRUCTW,*LPDISCDLGSTRUCTW;
208typedef struct _UNIVERSAL_NAME_INFOA { LPSTR lpUniversalName; }UNIVERSAL_NAME_INFOA,*LPUNIVERSAL_NAME_INFOA;
209typedef struct _UNIVERSAL_NAME_INFOW { LPWSTR lpUniversalName; }UNIVERSAL_NAME_INFOW,*LPUNIVERSAL_NAME_INFOW;
210typedef struct _REMOTE_NAME_INFOA {
211 LPSTR lpUniversalName;
212 LPSTR lpConnectionName;
213 LPSTR lpRemainingPath;
214}REMOTE_NAME_INFOA,*LPREMOTE_NAME_INFOA;
215typedef struct _REMOTE_NAME_INFOW {
216 LPWSTR lpUniversalName;
217 LPWSTR lpConnectionName;
218 LPWSTR lpRemainingPath;
219}REMOTE_NAME_INFOW,*LPREMOTE_NAME_INFOW;
220typedef struct _NETINFOSTRUCT{
221 DWORD cbStructure;
222 DWORD dwProviderVersion;
223 DWORD dwStatus;
224 DWORD dwCharacteristics;
225 DWORD dwHandle;
226 WORD wNetType;
227 DWORD dwPrinters;
228 DWORD dwDrives;
229} NETINFOSTRUCT,*LPNETINFOSTRUCT;
230typedef UINT(PASCAL *PFNGETPROFILEPATHA)(LPCSTR,LPSTR,UINT);
231typedef UINT(PASCAL *PFNGETPROFILEPATHW)(LPCWSTR,LPWSTR,UINT);
232typedef UINT(PASCAL *PFNRECONCILEPROFILEA)(LPCSTR,LPCSTR,DWORD);
233typedef UINT(PASCAL *PFNRECONCILEPROFILEW)(LPCWSTR,LPCWSTR,DWORD);
234typedef BOOL(PASCAL *PFNPROCESSPOLICIESA)(HWND,LPCSTR,LPCSTR,LPCSTR,DWORD);
235typedef BOOL(PASCAL *PFNPROCESSPOLICIESW)(HWND,LPCWSTR,LPCWSTR,LPCWSTR,DWORD);
236typedef struct _NETCONNECTINFOSTRUCT{
237 DWORD cbStructure;
238 DWORD dwFlags;
239 DWORD dwSpeed;
240 DWORD dwDelay;
241 DWORD dwOptDataSize;
242} NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT;
243
244DWORD APIENTRY WNetAddConnectionA(LPCSTR,LPCSTR,LPCSTR);
245DWORD APIENTRY WNetAddConnectionW(LPCWSTR,LPCWSTR,LPCWSTR);
246DWORD APIENTRY WNetAddConnection2A(LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
247DWORD APIENTRY WNetAddConnection2W(LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
248DWORD APIENTRY WNetAddConnection3A(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
249DWORD APIENTRY WNetAddConnection3W(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
250DWORD APIENTRY WNetCancelConnectionA(LPCSTR,BOOL);
251DWORD APIENTRY WNetCancelConnectionW(LPCWSTR,BOOL);
252DWORD APIENTRY WNetCancelConnection2A(LPCSTR,DWORD,BOOL);
253DWORD APIENTRY WNetCancelConnection2W(LPCWSTR,DWORD,BOOL);
254DWORD APIENTRY WNetGetConnectionA(LPCSTR,LPSTR,PDWORD);
255DWORD APIENTRY WNetGetConnectionW(LPCWSTR,LPWSTR,PDWORD);
256DWORD APIENTRY WNetUseConnectionA(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD,LPSTR,PDWORD,PDWORD);
257DWORD APIENTRY WNetUseConnectionW(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD,LPWSTR,PDWORD,PDWORD);
258DWORD APIENTRY WNetSetConnectionA(LPCSTR,DWORD,PVOID);
259DWORD APIENTRY WNetSetConnectionW(LPCWSTR,DWORD,PVOID);
260DWORD APIENTRY WNetConnectionDialog(HWND,DWORD);
261DWORD APIENTRY WNetDisconnectDialog(HWND,DWORD);
262DWORD APIENTRY WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA);
263DWORD APIENTRY WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW);
264DWORD APIENTRY WNetDisconnectDialog1A(LPDISCDLGSTRUCTA);
265DWORD APIENTRY WNetDisconnectDialog1W(LPDISCDLGSTRUCTW);
266DWORD APIENTRY WNetOpenEnumA(DWORD,DWORD,DWORD,LPNETRESOURCEA,LPHANDLE);
267DWORD APIENTRY WNetOpenEnumW(DWORD,DWORD,DWORD,LPNETRESOURCEW,LPHANDLE);
268DWORD APIENTRY WNetEnumResourceA(HANDLE,PDWORD,PVOID,PDWORD);
269DWORD APIENTRY WNetEnumResourceW(HANDLE,PDWORD,PVOID,PDWORD);
270DWORD APIENTRY WNetCloseEnum(HANDLE);
271DWORD APIENTRY WNetGetUniversalNameA(LPCSTR,DWORD,PVOID,PDWORD);
272DWORD APIENTRY WNetGetUniversalNameW(LPCWSTR,DWORD,PVOID,PDWORD);
273DWORD APIENTRY WNetGetUserA(LPCSTR,LPSTR,PDWORD);
274DWORD APIENTRY WNetGetUserW(LPCWSTR,LPWSTR,PDWORD);
275DWORD APIENTRY WNetGetProviderNameA(DWORD,LPSTR,PDWORD);
276DWORD APIENTRY WNetGetProviderNameW(DWORD,LPWSTR,PDWORD);
277DWORD APIENTRY WNetGetNetworkInformationA(LPCSTR,LPNETINFOSTRUCT);
278DWORD APIENTRY WNetGetNetworkInformationW(LPCWSTR,LPNETINFOSTRUCT);
279DWORD APIENTRY WNetGetResourceInformationA(LPNETRESOURCEA,LPVOID,LPDWORD,LPCSTR*);
280DWORD APIENTRY WNetGetResourceInformationW(LPNETRESOURCEA,LPVOID,LPDWORD,LPCWSTR*);
281DWORD APIENTRY WNetGetLastErrorA(PDWORD,LPSTR,DWORD,LPSTR,DWORD);
282DWORD APIENTRY WNetGetLastErrorW(PDWORD,LPWSTR,DWORD,LPWSTR,DWORD);
283DWORD APIENTRY MultinetGetConnectionPerformanceA(LPNETRESOURCEA,LPNETCONNECTINFOSTRUCT);
284DWORD APIENTRY MultinetGetConnectionPerformanceW(LPNETRESOURCEW,LPNETCONNECTINFOSTRUCT);
285#ifdef UNICODE
286#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESW
287#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEW
288#define PFNGETPROFILEPATH PFNGETPROFILEPATHW
289typedef NETRESOURCEW NETRESOURCE,*LPNETRESOURCE;
290typedef CONNECTDLGSTRUCTW CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT;
291typedef DISCDLGSTRUCTW DISCDLGSTRUCT,*LPDISCDLGSTRUCT;
292typedef REMOTE_NAME_INFOW REMOTE_NAME_INFO,*LPREMOTE_NAME_INFO;
293typedef UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO,*LPUNIVERSAL_NAME_INFO;
294#define WNetEnumResource WNetEnumResourceW
295#define WNetOpenEnum WNetOpenEnumW
296#define WNetGetResourceInformation WNetGetResourceInformationW
297#define WNetGetUniversalName WNetGetUniversalNameW
298#define WNetSetConnection WNetSetConnectionW
299#define WNetUseConnection WNetUseConnectionW
300#define WNetGetConnection WNetGetConnectionW
301#define WNetCancelConnection2 WNetCancelConnection2W
302#define WNetCancelConnection WNetCancelConnectionW
303#define WNetAddConnection3 WNetAddConnection3W
304#define WNetAddConnection2 WNetAddConnection2W
305#define WNetAddConnection WNetAddConnectionW
306#define WNetConnectionDialog1 WNetConnectionDialog1W
307#define WNetDisconnectDialog1 WNetDisconnectDialog1W
308#define WNetGetNetworkInformation WNetGetNetworkInformationW
309#define WNetGetProviderName WNetGetProviderNameW
310#define WNetGetUser WNetGetUserW
311#define MultinetGetConnectionPerformance MultinetGetConnectionPerformanceW
312#define WNetGetLastError WNetGetLastErrorW
313#else
314#define PFNGETPROFILEPATH PFNGETPROFILEPATHA
315#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEA
316#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESA
317typedef NETRESOURCEA NETRESOURCE,*LPNETRESOURCE;
318typedef CONNECTDLGSTRUCTA CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT;
319typedef DISCDLGSTRUCTA DISCDLGSTRUCT,*LPDISCDLGSTRUCT;
320typedef UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO,*LPUNIVERSAL_NAME_INFO;
321typedef REMOTE_NAME_INFOA REMOTE_NAME_INFO,*LPREMOTE_NAME_INFO;
322#define WNetOpenEnum WNetOpenEnumA
323#define WNetEnumResource WNetEnumResourceA
324#define WNetGetResourceInformation WNetGetResourceInformationA
325#define WNetGetUniversalName WNetGetUniversalNameA
326#define WNetConnectionDialog1 WNetConnectionDialog1A
327#define WNetDisconnectDialog1 WNetDisconnectDialog1A
328#define WNetAddConnection2 WNetAddConnection2A
329#define WNetAddConnection3 WNetAddConnection3A
330#define WNetCancelConnection WNetCancelConnectionA
331#define WNetCancelConnection2 WNetCancelConnection2A
332#define WNetGetConnection WNetGetConnectionA
333#define WNetUseConnection WNetUseConnectionA
334#define WNetSetConnection WNetSetConnectionA
335#define WNetAddConnection WNetAddConnectionA
336#define WNetGetUser WNetGetUserA
337#define WNetGetProviderName WNetGetProviderNameA
338#define WNetGetNetworkInformation WNetGetNetworkInformationA
339#define WNetGetLastError WNetGetLastErrorA
340#define MultinetGetConnectionPerformance MultinetGetConnectionPerformanceA
341#endif
342#endif
343#ifdef __cplusplus
344}
345#endif
346#endif
win32/include/winapi/winnls.h+651−0
@@ -0,0 +1,651 @@
1#ifndef _WINNLS_H
2#define _WINNLS_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#define MAX_LEADBYTES 12
12#define MAX_DEFAULTCHAR 2
13#define LOCALE_NOUSEROVERRIDE 0x80000000
14#define LOCALE_USE_CP_ACP 0x40000000
15#define LOCALE_ILANGUAGE 1
16#define LOCALE_SLANGUAGE 2
17#define LOCALE_SENGLANGUAGE 0x1001
18#define LOCALE_SABBREVLANGNAME 3
19#define LOCALE_SNATIVELANGNAME 4
20#define LOCALE_ICOUNTRY 5
21#define LOCALE_SCOUNTRY 6
22#define LOCALE_SENGCOUNTRY 0x1002
23#define LOCALE_SABBREVCTRYNAME 7
24#define LOCALE_SNATIVECTRYNAME 8
25#define LOCALE_IDEFAULTLANGUAGE 9
26#define LOCALE_IDEFAULTCOUNTRY 10
27#define LOCALE_IDEFAULTCODEPAGE 11
28#define LOCALE_IDEFAULTANSICODEPAGE 0x1004
29#define LOCALE_SLIST 12
30#define LOCALE_IMEASURE 13
31#define LOCALE_SDECIMAL 14
32#define LOCALE_STHOUSAND 15
33#define LOCALE_SGROUPING 16
34#define LOCALE_IDIGITS 17
35#define LOCALE_ILZERO 18
36#define LOCALE_INEGNUMBER 0x1010
37#define LOCALE_SNATIVEDIGITS 19
38#define LOCALE_SCURRENCY 20
39#define LOCALE_SINTLSYMBOL 21
40#define LOCALE_SMONDECIMALSEP 22
41#define LOCALE_SMONTHOUSANDSEP 23
42#define LOCALE_SMONGROUPING 24
43#define LOCALE_ICURRDIGITS 25
44#define LOCALE_IINTLCURRDIGITS 26
45#define LOCALE_ICURRENCY 27
46#define LOCALE_INEGCURR 28
47#define LOCALE_SDATE 29
48#define LOCALE_STIME 30
49#define LOCALE_SSHORTDATE 31
50#define LOCALE_SLONGDATE 32
51#define LOCALE_STIMEFORMAT 0x1003
52#define LOCALE_IDATE 33
53#define LOCALE_ILDATE 34
54#define LOCALE_ITIME 35
55#define LOCALE_ITIMEMARKPOSN 0x1005
56#define LOCALE_ICENTURY 36
57#define LOCALE_ITLZERO 37
58#define LOCALE_IDAYLZERO 38
59#define LOCALE_IMONLZERO 39
60#define LOCALE_S1159 40
61#define LOCALE_S2359 41
62#define LOCALE_ICALENDARTYPE 0x1009
63#define LOCALE_IOPTIONALCALENDAR 0x100B
64#define LOCALE_IFIRSTDAYOFWEEK 0x100C
65#define LOCALE_IFIRSTWEEKOFYEAR 0x100D
66#define LOCALE_SDAYNAME1 42
67#define LOCALE_SDAYNAME2 43
68#define LOCALE_SDAYNAME3 44
69#define LOCALE_SDAYNAME4 45
70#define LOCALE_SDAYNAME5 46
71#define LOCALE_SDAYNAME6 47
72#define LOCALE_SDAYNAME7 48
73#define LOCALE_SABBREVDAYNAME1 49
74#define LOCALE_SABBREVDAYNAME2 50
75#define LOCALE_SABBREVDAYNAME3 51
76#define LOCALE_SABBREVDAYNAME4 52
77#define LOCALE_SABBREVDAYNAME5 53
78#define LOCALE_SABBREVDAYNAME6 54
79#define LOCALE_SABBREVDAYNAME7 55
80#define LOCALE_SMONTHNAME1 56
81#define LOCALE_SMONTHNAME2 57
82#define LOCALE_SMONTHNAME3 58
83#define LOCALE_SMONTHNAME4 59
84#define LOCALE_SMONTHNAME5 60
85#define LOCALE_SMONTHNAME6 61
86#define LOCALE_SMONTHNAME7 62
87#define LOCALE_SMONTHNAME8 63
88#define LOCALE_SMONTHNAME9 64
89#define LOCALE_SMONTHNAME10 65
90#define LOCALE_SMONTHNAME11 66
91#define LOCALE_SMONTHNAME12 67
92#define LOCALE_SMONTHNAME13 0x100E
93#define LOCALE_SABBREVMONTHNAME1 68
94#define LOCALE_SABBREVMONTHNAME2 69
95#define LOCALE_SABBREVMONTHNAME3 70
96#define LOCALE_SABBREVMONTHNAME4 71
97#define LOCALE_SABBREVMONTHNAME5 72
98#define LOCALE_SABBREVMONTHNAME6 73
99#define LOCALE_SABBREVMONTHNAME7 74
100#define LOCALE_SABBREVMONTHNAME8 75
101#define LOCALE_SABBREVMONTHNAME9 76
102#define LOCALE_SABBREVMONTHNAME10 77
103#define LOCALE_SABBREVMONTHNAME11 78
104#define LOCALE_SABBREVMONTHNAME12 79
105#define LOCALE_SABBREVMONTHNAME13 0x100F
106#define LOCALE_SPOSITIVESIGN 80
107#define LOCALE_SNEGATIVESIGN 81
108#define LOCALE_IPOSSIGNPOSN 82
109#define LOCALE_INEGSIGNPOSN 83
110#define LOCALE_IPOSSYMPRECEDES 84
111#define LOCALE_IPOSSEPBYSPACE 85
112#define LOCALE_INEGSYMPRECEDES 86
113#define LOCALE_INEGSEPBYSPACE 87
114#define LOCALE_FONTSIGNATURE 88
115#define LOCALE_SISO639LANGNAME 89
116#define LOCALE_SISO3166CTRYNAME 90
117#define LOCALE_SYSTEM_DEFAULT 0x800
118#define LOCALE_USER_DEFAULT 0x400
119#define NORM_IGNORECASE 1
120#define NORM_IGNOREKANATYPE 65536
121#define NORM_IGNORENONSPACE 2
122#define NORM_IGNORESYMBOLS 4
123#define NORM_IGNOREWIDTH 131072
124#define SORT_STRINGSORT 4096
125#define LCMAP_LOWERCASE 0x00000100
126#define LCMAP_UPPERCASE 0x00000200
127#define LCMAP_SORTKEY 0x00000400
128#define LCMAP_BYTEREV 0x00000800
129#define LCMAP_HIRAGANA 0x00100000
130#define LCMAP_KATAKANA 0x00200000
131#define LCMAP_HALFWIDTH 0x00400000
132#define LCMAP_FULLWIDTH 0x00800000
133#define LCMAP_LINGUISTIC_CASING 0x01000000
134#define LCMAP_SIMPLIFIED_CHINESE 0x02000000
135#define LCMAP_TRADITIONAL_CHINESE 0x04000000
136#define ENUM_ALL_CALENDARS (-1)
137#define DATE_SHORTDATE 1
138#define DATE_LONGDATE 2
139#define DATE_USE_ALT_CALENDAR 4
140#define CP_INSTALLED 1
141#define CP_SUPPORTED 2
142#define LCID_INSTALLED 1
143#define LCID_SUPPORTED 2
144#define LCID_ALTERNATE_SORTS 4
145#define MAP_FOLDCZONE 16
146#define MAP_FOLDDIGITS 128
147#define MAP_PRECOMPOSED 32
148#define MAP_COMPOSITE 64
149#define CP_ACP 0
150#define CP_OEMCP 1
151#define CP_MACCP 2
152#define CP_THREAD_ACP 3
153#define CP_SYMBOL 42
154#define CP_UTF7 65000
155#define CP_UTF8 65001
156#define CT_CTYPE1 1
157#define CT_CTYPE2 2
158#define CT_CTYPE3 4
159#define C1_UPPER 1
160#define C1_LOWER 2
161#define C1_DIGIT 4
162#define C1_SPACE 8
163#define C1_PUNCT 16
164#define C1_CNTRL 32
165#define C1_BLANK 64
166#define C1_XDIGIT 128
167#define C1_ALPHA 256
168#define C2_LEFTTORIGHT 1
169#define C2_RIGHTTOLEFT 2
170#define C2_EUROPENUMBER 3
171#define C2_EUROPESEPARATOR 4
172#define C2_EUROPETERMINATOR 5
173#define C2_ARABICNUMBER 6
174#define C2_COMMONSEPARATOR 7
175#define C2_BLOCKSEPARATOR 8
176#define C2_SEGMENTSEPARATOR 9
177#define C2_WHITESPACE 10
178#define C2_OTHERNEUTRAL 11
179#define C2_NOTAPPLICABLE 0
180#define C3_NONSPACING 1
181#define C3_DIACRITIC 2
182#define C3_VOWELMARK 4
183#define C3_SYMBOL 8
184#define C3_KATAKANA 16
185#define C3_HIRAGANA 32
186#define C3_HALFWIDTH 64
187#define C3_FULLWIDTH 128
188#define C3_IDEOGRAPH 256
189#define C3_KASHIDA 512
190#define C3_LEXICAL 1024
191#define C3_ALPHA 32768
192#define C3_NOTAPPLICABLE 0
193#define TIME_NOMINUTESORSECONDS 1
194#define TIME_NOSECONDS 2
195#define TIME_NOTIMEMARKER 4
196#define TIME_FORCE24HOURFORMAT 8
197#define MB_PRECOMPOSED 1
198#define MB_COMPOSITE 2
199#define MB_ERR_INVALID_CHARS 8
200#define MB_USEGLYPHCHARS 4
201#define WC_COMPOSITECHECK 512
202#define WC_DISCARDNS 16
203#define WC_SEPCHARS 32
204#define WC_DEFAULTCHAR 64
205#define CTRY_DEFAULT 0
206#define CTRY_ALBANIA 355
207#define CTRY_ALGERIA 213
208#define CTRY_ARGENTINA 54
209#define CTRY_ARMENIA 374
210#define CTRY_AUSTRALIA 61
211#define CTRY_AUSTRIA 43
212#define CTRY_AZERBAIJAN 994
213#define CTRY_BAHRAIN 973
214#define CTRY_BELARUS 375
215#define CTRY_BELGIUM 32
216#define CTRY_BELIZE 501
217#define CTRY_BOLIVIA 591
218#define CTRY_BRAZIL 55
219#define CTRY_BRUNEI_DARUSSALAM 673
220#define CTRY_BULGARIA 359
221#define CTRY_CANADA 2
222#define CTRY_CARIBBEAN 1
223#define CTRY_CHILE 56
224#define CTRY_COLOMBIA 57
225#define CTRY_COSTA_RICA 506
226#define CTRY_CROATIA 385
227#define CTRY_CZECH 420
228#define CTRY_DENMARK 45
229#define CTRY_DOMINICAN_REPUBLIC 1
230#define CTRY_ECUADOR 593
231#define CTRY_EGYPT 20
232#define CTRY_EL_SALVADOR 503
233#define CTRY_ESTONIA 372
234#define CTRY_FAEROE_ISLANDS 298
235#define CTRY_FINLAND 358
236#define CTRY_FRANCE 33
237#define CTRY_GEORGIA 995
238#define CTRY_GERMANY 49
239#define CTRY_GREECE 30
240#define CTRY_GUATEMALA 502
241#define CTRY_HONDURAS 504
242#define CTRY_HONG_KONG 852
243#define CTRY_HUNGARY 36
244#define CTRY_ICELAND 354
245#define CTRY_INDIA 91
246#define CTRY_INDONESIA 62
247#define CTRY_IRAN 981
248#define CTRY_IRAQ 964
249#define CTRY_IRELAND 353
250#define CTRY_ISRAEL 972
251#define CTRY_ITALY 39
252#define CTRY_JAMAICA 1
253#define CTRY_JAPAN 81
254#define CTRY_JORDAN 962
255#define CTRY_KAZAKSTAN 7
256#define CTRY_KENYA 254
257#define CTRY_KUWAIT 965
258#define CTRY_LATVIA 371
259#define CTRY_LEBANON 961
260#define CTRY_LIBYA 218
261#define CTRY_LIECHTENSTEIN 41
262#define CTRY_LITHUANIA 370
263#define CTRY_LUXEMBOURG 352
264#define CTRY_MACAU 853
265#define CTRY_MACEDONIA 389
266#define CTRY_MALAYSIA 60
267#define CTRY_MEXICO 52
268#define CTRY_MONACO 33
269#define CTRY_MOROCCO 212
270#define CTRY_NETHERLANDS 31
271#define CTRY_NEW_ZEALAND 64
272#define CTRY_NICARAGUA 505
273#define CTRY_NORWAY 47
274#define CTRY_OMAN 968
275#define CTRY_PAKISTAN 92
276#define CTRY_PANAMA 507
277#define CTRY_PARAGUAY 595
278#define CTRY_PERU 51
279#define CTRY_PHILIPPINES 63
280#define CTRY_POLAND 48
281#define CTRY_PORTUGAL 351
282#define CTRY_PRCHINA 86
283#define CTRY_PUERTO_RICO 1
284#define CTRY_QATAR 974
285#define CTRY_ROMANIA 40
286#define CTRY_RUSSIA 7
287#define CTRY_SAUDI_ARABIA 966
288#define CTRY_SERBIA 381
289#define CTRY_SINGAPORE 65
290#define CTRY_SLOVAK 421
291#define CTRY_SLOVENIA 386
292#define CTRY_SOUTH_AFRICA 27
293#define CTRY_SOUTH_KOREA 82
294#define CTRY_SPAIN 34
295#define CTRY_SWEDEN 46
296#define CTRY_SWITZERLAND 41
297#define CTRY_SYRIA 963
298#define CTRY_TAIWAN 886
299#define CTRY_TATARSTAN 7
300#define CTRY_THAILAND 66
301#define CTRY_TRINIDAD_Y_TOBAGO 1
302#define CTRY_TUNISIA 216
303#define CTRY_TURKEY 90
304#define CTRY_UAE 971
305#define CTRY_UKRAINE 380
306#define CTRY_UNITED_KINGDOM 44
307#define CTRY_UNITED_STATES 1
308#define CTRY_URUGUAY 598
309#define CTRY_UZBEKISTAN 7
310#define CTRY_VENEZUELA 58
311#define CTRY_VIET_NAM 84
312#define CTRY_YEMEN 967
313#define CTRY_ZIMBABWE 263
314#define CAL_ICALINTVALUE 1
315#define CAL_SCALNAME 2
316#define CAL_IYEAROFFSETRANGE 3
317#define CAL_SERASTRING 4
318#define CAL_SSHORTDATE 5
319#define CAL_SLONGDATE 6
320#define CAL_SDAYNAME1 7
321#define CAL_SDAYNAME2 8
322#define CAL_SDAYNAME3 9
323#define CAL_SDAYNAME4 10
324#define CAL_SDAYNAME5 11
325#define CAL_SDAYNAME6 12
326#define CAL_SDAYNAME7 13
327#define CAL_SABBREVDAYNAME1 14
328#define CAL_SABBREVDAYNAME2 15
329#define CAL_SABBREVDAYNAME3 16
330#define CAL_SABBREVDAYNAME4 17
331#define CAL_SABBREVDAYNAME5 18
332#define CAL_SABBREVDAYNAME6 19
333#define CAL_SABBREVDAYNAME7 20
334#define CAL_SMONTHNAME1 21
335#define CAL_SMONTHNAME2 22
336#define CAL_SMONTHNAME3 23
337#define CAL_SMONTHNAME4 24
338#define CAL_SMONTHNAME5 25
339#define CAL_SMONTHNAME6 26
340#define CAL_SMONTHNAME7 27
341#define CAL_SMONTHNAME8 28
342#define CAL_SMONTHNAME9 29
343#define CAL_SMONTHNAME10 30
344#define CAL_SMONTHNAME11 31
345#define CAL_SMONTHNAME12 32
346#define CAL_SMONTHNAME13 33
347#define CAL_SABBREVMONTHNAME1 34
348#define CAL_SABBREVMONTHNAME2 35
349#define CAL_SABBREVMONTHNAME3 36
350#define CAL_SABBREVMONTHNAME4 37
351#define CAL_SABBREVMONTHNAME5 38
352#define CAL_SABBREVMONTHNAME6 39
353#define CAL_SABBREVMONTHNAME7 40
354#define CAL_SABBREVMONTHNAME8 41
355#define CAL_SABBREVMONTHNAME9 42
356#define CAL_SABBREVMONTHNAME10 43
357#define CAL_SABBREVMONTHNAME11 44
358#define CAL_SABBREVMONTHNAME12 45
359#define CAL_SABBREVMONTHNAME13 46
360#define CAL_GREGORIAN 1
361#define CAL_GREGORIAN_US 2
362#define CAL_JAPAN 3
363#define CAL_TAIWAN 4
364#define CAL_KOREA 5
365#define CAL_HIJRI 6
366#define CAL_THAI 7
367#define CAL_HEBREW 8
368#define CAL_GREGORIAN_ME_FRENCH 9
369#define CAL_GREGORIAN_ARABIC 10
370#define CAL_GREGORIAN_XLIT_ENGLISH 11
371#define CAL_GREGORIAN_XLIT_FRENCH 12
372#define CSTR_LESS_THAN 1
373#define CSTR_EQUAL 2
374#define CSTR_GREATER_THAN 3
375#define LGRPID_INSTALLED 1
376#define LGRPID_SUPPORTED 2
377#define LGRPID_WESTERN_EUROPE 1
378#define LGRPID_CENTRAL_EUROPE 2
379#define LGRPID_BALTIC 3
380#define LGRPID_GREEK 4
381#define LGRPID_CYRILLIC 5
382#define LGRPID_TURKISH 6
383#define LGRPID_JAPANESE 7
384#define LGRPID_KOREAN 8
385#define LGRPID_TRADITIONAL_CHINESE 9
386#define LGRPID_SIMPLIFIED_CHINESE 10
387#define LGRPID_THAI 11
388#define LGRPID_HEBREW 12
389#define LGRPID_ARABIC 13
390#define LGRPID_VIETNAMESE 14
391#define LGRPID_INDIC 15
392#define LGRPID_GEORGIAN 16
393#define LGRPID_ARMENIAN 17
394
395#if(WINVER >= 0x0500)
396#define LOCALE_SYEARMONTH 0x1006
397#define LOCALE_SENGCURRNAME 0x1007
398#define LOCALE_SNATIVECURRNAME 0x1008
399#define LOCALE_IDEFAULTEBCDICCODEPAGE 0x1012
400#define LOCALE_SSORTNAME 0x1013
401#define LOCALE_IDIGITSUBSTITUTION 0x1014
402#define LOCALE_IPAPERSIZE 0x100A
403#define DATE_YEARMONTH 8
404#define DATE_LTRREADING 16
405#define DATE_RTLREADING 32
406#define MAP_EXPAND_LIGATURES 0x2000
407#define WC_NO_BEST_FIT_CHARS 1024
408#define CAL_SYEARMONTH 47
409#define CAL_ITWODIGITYEARMAX 48
410#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
411#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
412#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
413#endif /* WINVER >= 0x0500 */
414#ifndef _BASETSD_H
415typedef long LONG_PTR;
416#endif
417
418#ifndef RC_INVOKED
419typedef DWORD LCTYPE;
420typedef DWORD CALTYPE;
421typedef DWORD CALID;
422typedef DWORD LGRPID;
423typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)(LPSTR);
424typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)(LPWSTR);
425typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXA)(LPSTR, CALID);
426typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXW)(LPWSTR, CALID);
427typedef BOOL (CALLBACK* LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
428typedef BOOL (CALLBACK* LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
429typedef BOOL (CALLBACK* LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR);
430typedef BOOL (CALLBACK* LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR);
431typedef BOOL (CALLBACK* UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR);
432typedef BOOL (CALLBACK* UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR);
433typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR);
434typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR);
435typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA)(LPSTR);
436typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW)(LPWSTR);
437typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)(LPSTR);
438typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)(LPWSTR);
439typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXA)(LPSTR, CALID);
440typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXW)(LPWSTR, CALID);
441typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)(LPSTR);
442typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)(LPWSTR);
443
444typedef struct _cpinfo {
445 UINT MaxCharSize;
446 BYTE DefaultChar[MAX_DEFAULTCHAR];
447 BYTE LeadByte[MAX_LEADBYTES];
448} CPINFO,*LPCPINFO;
449typedef struct _cpinfoexA {
450 UINT MaxCharSize;
451 BYTE DefaultChar[MAX_DEFAULTCHAR];
452 BYTE LeadByte[MAX_LEADBYTES];
453 WCHAR UnicodeDefaultChar;
454 UINT CodePage;
455 CHAR CodePageName[MAX_PATH];
456} CPINFOEXA, *LPCPINFOEXA;
457typedef struct _cpinfoexW {
458 UINT MaxCharSize;
459 BYTE DefaultChar[MAX_DEFAULTCHAR];
460 BYTE LeadByte[MAX_LEADBYTES];
461 WCHAR UnicodeDefaultChar;
462 UINT CodePage;
463 WCHAR CodePageName[MAX_PATH];
464} CPINFOEXW, *LPCPINFOEXW;
465typedef struct _currencyfmtA {
466 UINT NumDigits;
467 UINT LeadingZero;
468 UINT Grouping;
469 LPSTR lpDecimalSep;
470 LPSTR lpThousandSep;
471 UINT NegativeOrder;
472 UINT PositiveOrder;
473 LPSTR lpCurrencySymbol;
474} CURRENCYFMTA, *LPCURRENCYFMTA;
475typedef struct _currencyfmtW {
476 UINT NumDigits;
477 UINT LeadingZero;
478 UINT Grouping;
479 LPWSTR lpDecimalSep;
480 LPWSTR lpThousandSep;
481 UINT NegativeOrder;
482 UINT PositiveOrder;
483 LPWSTR lpCurrencySymbol;
484} CURRENCYFMTW, *LPCURRENCYFMTW;
485typedef struct _numberfmtA {
486 UINT NumDigits;
487 UINT LeadingZero;
488 UINT Grouping;
489 LPSTR lpDecimalSep;
490 LPSTR lpThousandSep;
491 UINT NegativeOrder;
492} NUMBERFMTA, *LPNUMBERFMTA;
493typedef struct _numberfmtW {
494 UINT NumDigits;
495 UINT LeadingZero;
496 UINT Grouping;
497 LPWSTR lpDecimalSep;
498 LPWSTR lpThousandSep;
499 UINT NegativeOrder;
500} NUMBERFMTW, *LPNUMBERFMTW;
501
502int WINAPI CompareStringA(LCID,DWORD,LPCSTR,int,LPCSTR,int);
503int WINAPI CompareStringW(LCID,DWORD,LPCWSTR,int,LPCWSTR,int);
504LCID WINAPI ConvertDefaultLocale(LCID);
505BOOL WINAPI EnumCalendarInfoA(CALINFO_ENUMPROCA,LCID,CALID,CALTYPE);
506BOOL WINAPI EnumCalendarInfoW(CALINFO_ENUMPROCW,LCID,CALID,CALTYPE);
507BOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA,LCID,DWORD);
508BOOL WINAPI EnumDateFormatsW(DATEFMT_ENUMPROCW,LCID,DWORD);
509BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD);
510BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD);
511BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD);
512BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD);
513BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA,LCID,DWORD);
514BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW,LCID,DWORD);
515int WINAPI FoldStringA(DWORD,LPCSTR,int,LPSTR,int);
516int WINAPI FoldStringW(DWORD,LPCWSTR,int,LPWSTR,int);
517UINT WINAPI GetACP(void);
518BOOL WINAPI GetCPInfo(UINT,LPCPINFO);
519BOOL WINAPI GetCPInfoExA(UINT,DWORD,LPCPINFOEXA);
520BOOL WINAPI GetCPInfoExW(UINT,DWORD,LPCPINFOEXW);
521int WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,int);
522int WINAPI GetCurrencyFormatW(LCID,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,int);
523int WINAPI GetDateFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
524int WINAPI GetDateFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
525int WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,int);
526int WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,int);
527int WINAPI GetNumberFormatA(LCID,DWORD,LPCSTR,const NUMBERFMTA*,LPSTR,int);
528int WINAPI GetNumberFormatW(LCID,DWORD,LPCWSTR,const NUMBERFMTW*,LPWSTR,int);
529UINT WINAPI GetOEMCP(void);
530BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,int,LPWORD);
531BOOL WINAPI GetStringTypeW(DWORD,LPCWSTR,int,LPWORD);
532BOOL WINAPI GetStringTypeExA(LCID,DWORD,LPCSTR,int,LPWORD);
533BOOL WINAPI GetStringTypeExW(LCID,DWORD,LPCWSTR,int,LPWORD);
534LANGID WINAPI GetSystemDefaultLangID(void);
535LCID WINAPI GetSystemDefaultLCID(void);
536LCID WINAPI GetThreadLocale(void);
537int WINAPI GetTimeFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
538int WINAPI GetTimeFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
539LANGID WINAPI GetUserDefaultLangID(void);
540LCID WINAPI GetUserDefaultLCID(void);
541BOOL WINAPI IsDBCSLeadByte(BYTE);
542BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE);
543BOOL WINAPI IsValidCodePage(UINT);
544BOOL WINAPI IsValidLocale(LCID,DWORD);
545int WINAPI LCMapStringA(LCID,DWORD,LPCSTR,int,LPSTR,int);
546int WINAPI LCMapStringW(LCID,DWORD,LPCWSTR,int,LPWSTR,int);
547int WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,int,LPWSTR,int);
548BOOL WINAPI SetLocaleInfoA(LCID,LCTYPE,LPCSTR);
549BOOL WINAPI SetLocaleInfoW(LCID,LCTYPE,LPCWSTR);
550BOOL WINAPI SetThreadLocale(LCID);
551int WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,int,LPSTR,int,LPCSTR,LPBOOL);
552#if (WINVER >= 0x0500)
553BOOL WINAPI EnumCalendarInfoExA(CALINFO_ENUMPROCEXA,LCID,CALID,CALTYPE);
554BOOL WINAPI EnumCalendarInfoExW(CALINFO_ENUMPROCEXW,LCID,CALID,CALTYPE);
555BOOL WINAPI EnumDateFormatsExA(DATEFMT_ENUMPROCEXA,LCID,DWORD);
556BOOL WINAPI EnumDateFormatsExW(DATEFMT_ENUMPROCEXW,LCID,DWORD);
557BOOL WINAPI EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA,DWORD,LONG_PTR);
558BOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW,DWORD,LONG_PTR);
559BOOL WINAPI EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA,LGRPID,DWORD,LONG_PTR);
560BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW,LGRPID,DWORD,LONG_PTR);
561BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA,DWORD,LONG_PTR);
562BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW,DWORD,LONG_PTR);
563LANGID WINAPI GetSystemDefaultUILanguage(void);
564LANGID WINAPI GetUserDefaultUILanguage(void);
565BOOL WINAPI IsValidLanguageGroup(LGRPID,DWORD);
566#endif /* (WINVER >= 0x0500) */
567
568#ifdef UNICODE
569#define CALINFO_ENUMPROC CALINFO_ENUMPROCW
570#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW
571#define LOCALE_ENUMPROC LOCALE_ENUMPROCW
572#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
573#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
574#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW
575#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
576#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW
577#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW
578#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW
579typedef CPINFOEXW CPINFOEX;
580typedef LPCPINFOEXW LPCPINFOEX;
581typedef CURRENCYFMTW CURRENCYFMT;
582typedef LPCURRENCYFMTW LPCURRENCYFMT;
583typedef NUMBERFMTW NUMBERFMT;
584typedef LPNUMBERFMTW LPNUMBERFMT;
585#define CompareString CompareStringW
586#define EnumCalendarInfo EnumCalendarInfoW
587#define EnumSystemCodePages EnumSystemCodePagesW
588#define EnumSystemLocales EnumSystemLocalesW
589#define EnumTimeFormats EnumTimeFormatsW
590#define FoldString FoldStringW
591#define GetCPInfoEx GetCPInfoExW
592#define GetCurrencyFormat GetCurrencyFormatW
593#define GetDateFormat GetDateFormatW
594#define GetLocaleInfo GetLocaleInfoW
595#define GetNumberFormat GetNumberFormatW
596#define GetStringTypeEx GetStringTypeExW
597#define GetTimeFormat GetTimeFormatW
598#define LCMapString LCMapStringW
599#define SetLocaleInfo SetLocaleInfoW
600#if (WINVER >= 0x0500)
601#define EnumCalendarInfoEx EnumCalendarInfoExW;
602#define EnumDateFormatsEx EnumDateFormatsExW;
603#define EnumSystemLanguageGroups EnumSystemLanguageGroupsW;
604#define EnumLanguageGroupLocales EnumLanguageGroupLocalesW;
605#define EnumUILanguages EnumUILanguagesW;
606#endif /* (WINVER >= 0x0500) */
607#else
608#define CALINFO_ENUMPROC CALINFO_ENUMPROCA
609#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA
610#define LOCALE_ENUMPROC LOCALE_ENUMPROCA
611#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
612#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
613#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA
614#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
615#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA
616#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA
617#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA
618typedef CPINFOEXA CPINFOEX;
619typedef LPCPINFOEXA LPCPINFOEX;
620typedef CURRENCYFMTA CURRENCYFMT;
621typedef LPCURRENCYFMTA LPCURRENCYFMT;
622typedef NUMBERFMTA NUMBERFMT;
623typedef LPNUMBERFMTA LPNUMBERFMT;
624#define CompareString CompareStringA
625#define EnumCalendarInfo EnumCalendarInfoA
626#define EnumSystemCodePages EnumSystemCodePagesA
627#define EnumSystemLocales EnumSystemLocalesA
628#define EnumTimeFormats EnumTimeFormatsA
629#define FoldString FoldStringA
630#define GetCPInfoEx GetCPInfoExA
631#define GetCurrencyFormat GetCurrencyFormatA
632#define GetDateFormat GetDateFormatA
633#define GetLocaleInfo GetLocaleInfoA
634#define GetNumberFormat GetNumberFormatA
635#define GetStringTypeEx GetStringTypeExA
636#define GetTimeFormat GetTimeFormatA
637#define LCMapString LCMapStringA
638#define SetLocaleInfo SetLocaleInfoA
639#if (WINVER >= 0x0500)
640#define EnumCalendarInfoEx EnumCalendarInfoExA;
641#define EnumDateFormatsEx EnumDateFormatsExA;
642#define EnumSystemLanguageGroups EnumSystemLanguageGroupsA;
643#define EnumLanguageGroupLocales EnumLanguageGroupLocalesA;
644#define EnumUILanguages EnumUILanguagesA;
645#endif /* (WINVER >= 0x0500) */
646#endif /* UNICODE */
647#endif /* RC_INVOKED */
648#ifdef __cplusplus
649}
650#endif
651#endif
win32/include/winapi/winnt.h+2667−0
@@ -0,0 +1,2667 @@
1#ifndef _WINNT_H
2#define _WINNT_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7/* translate GCC target defines to MS equivalents. Keep this synchronized
8 with windows.h. */
9#if defined(__i686__) && !defined(_M_IX86)
10#define _M_IX86 600
11#elif defined(__i586__) && !defined(_M_IX86)
12#define _M_IX86 500
13#elif defined(__i486__) && !defined(_M_IX86)
14#define _M_IX86 400
15#elif defined(__i386__) && !defined(_M_IX86)
16#define _M_IX86 300
17#endif
18#if defined(_M_IX86) && !defined(_X86_)
19#define _X86_
20#elif defined(_M_ALPHA) && !defined(_ALPHA_)
21#define _ALPHA_
22#elif defined(_M_PPC) && !defined(_PPC_)
23#define _PPC_
24#elif defined(_M_MRX000) && !defined(_MIPS_)
25#define _MIPS_
26#elif defined(_M_M68K) && !defined(_68K_)
27#define _68K_
28#endif
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34#include <winerror.h>
35
36#ifndef RC_INVOKED
37#include <string.h>
38
39/* FIXME: add more architectures. Is there a way to specify this in GCC? */
40#ifdef _X86_
41#define UNALIGNED
42#else
43#define UNALIGNED
44#endif
45
46#ifndef VOID
47#define VOID void
48#endif
49typedef char CHAR;
50typedef short SHORT;
51typedef long LONG;
52typedef CHAR CCHAR;
53typedef unsigned char UCHAR,*PUCHAR;
54typedef unsigned short USHORT,*PUSHORT;
55typedef unsigned long ULONG,*PULONG;
56typedef char *PSZ;
57
58#ifndef _WCHAR_T_DEFINED
59#define _WCHAR_T_DEFINED
60#ifndef _WCHAR_T_
61#define _WCHAR_T_
62#undef __need_wchar_t
63#ifndef __cplusplus
64typedef unsigned short wchar_t;
65#endif
66#endif
67#endif
68
69typedef wchar_t WCHAR;
70typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR;
71typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR;
72typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR;
73typedef CONST CHAR *LPCCH,*PCSTR,*LPCSTR;
74#ifndef _TCHAR_DEFINED
75#define _TCHAR_DEFINED
76#ifdef UNICODE
77/*
78 * NOTE: This tests UNICODE, which is different from the _UNICODE define
79 * used to differentiate standard C runtime calls.
80 */
81typedef WCHAR TCHAR;
82typedef WCHAR _TCHAR;
83#else
84typedef CHAR TCHAR;
85typedef CHAR _TCHAR;
86#endif
87#endif
88typedef TCHAR TBYTE,*PTCH,*PTBYTE;
89typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR;
90typedef const TCHAR *LPCTSTR;
91#ifdef UNICODE
92/*
93 * __TEXT is a private macro whose specific use is to force the expansion of a
94 * macro passed as an argument to the macro TEXT. DO NOT use this
95 * macro within your programs. It's name and function could change without
96 * notice.
97 */
98#define __TEXT(q) L##q
99#else
100#define __TEXT(q) q
101#endif
102/*
103 * UNICODE a constant string when UNICODE is defined, else returns the string
104 * unmodified.
105 * The corresponding macros _TEXT() and _T() for mapping _UNICODE strings
106 * passed to C runtime functions are defined in mingw/tchar.h
107 */
108#define TEXT(q) __TEXT(q)
109typedef SHORT *PSHORT;
110typedef LONG *PLONG;
111typedef void *HANDLE;
112typedef HANDLE *PHANDLE,*LPHANDLE;
113#ifdef STRICT
114#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
115#else
116#define DECLARE_HANDLE(n) typedef HANDLE n
117#endif
118typedef DWORD LCID;
119typedef PDWORD PLCID;
120typedef WORD LANGID;
121#ifdef __GNUC__
122#define _HAVE_INT64
123#define _INTEGRAL_MAX_BITS 64
124#undef __int64
125#define __int64 long long
126#elif defined(__WATCOMC__) && (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64 )
127#define _HAVE_INT64
128#endif /* __GNUC__/__WATCOMC */
129#if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)
130typedef __int64 LONGLONG;
131typedef unsigned __int64 DWORDLONG;
132#else
133typedef double LONGLONG,DWORDLONG;
134#endif
135typedef LONGLONG *PLONGLONG;
136typedef DWORDLONG *PDWORDLONG;
137typedef DWORDLONG ULONGLONG,*PULONGLONG;
138typedef LONGLONG USN;
139#ifdef _HAVE_INT64
140#define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b))
141#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))
142#define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b))
143#define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b))
144#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))
145#endif
146#define ANSI_NULL '\0'
147#define UNICODE_NULL L'\0'
148typedef BYTE BOOLEAN,*PBOOLEAN;
149#endif
150
151#define NTAPI __stdcall
152#include <basetsd.h>
153#define APPLICATION_ERROR_MASK 0x20000000
154#define ERROR_SEVERITY_SUCCESS 0x00000000
155#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
156#define ERROR_SEVERITY_WARNING 0x80000000
157#define ERROR_SEVERITY_ERROR 0xC0000000
158#define COMPRESSION_FORMAT_NONE 0
159#define COMPRESSION_FORMAT_DEFAULT 1
160#define COMPRESSION_FORMAT_LZNT1 2
161#define COMPRESSION_ENGINE_STANDARD 0
162#define COMPRESSION_ENGINE_MAXIMUM 256
163#define ACCESS_ALLOWED_ACE_TYPE 0
164#define ACCESS_DENIED_ACE_TYPE 1
165#define ANYSIZE_ARRAY 1
166#define SYSTEM_AUDIT_ACE_TYPE 2
167#define SYSTEM_ALARM_ACE_TYPE 3
168#define OBJECT_INHERIT_ACE 1
169#define CONTAINER_INHERIT_ACE 2
170#define NO_PROPAGATE_INHERIT_ACE 4
171#define INHERIT_ONLY_ACE 8
172#define VALID_INHERIT_FLAGS 16
173#define SUCCESSFUL_ACCESS_ACE_FLAG 64
174#define FAILED_ACCESS_ACE_FLAG 128
175#define DELETE 0x00010000L
176#define READ_CONTROL 0x20000L
177#define WRITE_DAC 0x40000L
178#define WRITE_OWNER 0x80000L
179#define SYNCHRONIZE 0x100000L
180#define STANDARD_RIGHTS_REQUIRED 0xF0000
181#define STANDARD_RIGHTS_READ 0x20000
182#define STANDARD_RIGHTS_WRITE 0x20000
183#define STANDARD_RIGHTS_EXECUTE 0x20000
184#define STANDARD_RIGHTS_ALL 0x1F0000
185#define SPECIFIC_RIGHTS_ALL 0xFFFF
186#define ACCESS_SYSTEM_SECURITY 0x1000000
187#define MAXIMUM_ALLOWED 0x2000000
188#define GENERIC_READ 0x80000000
189#define GENERIC_WRITE 0x40000000
190#define GENERIC_EXECUTE 0x20000000
191#define GENERIC_ALL 0x10000000
192#define FILE_READ_DATA 1
193#define FILE_LIST_DIRECTORY 1
194#define FILE_WRITE_DATA 2
195#define FILE_ADD_FILE 2
196#define FILE_APPEND_DATA 4
197#define FILE_ADD_SUBDIRECTORY 4
198#define FILE_CREATE_PIPE_INSTANCE 4
199#define FILE_READ_EA 8
200#define FILE_READ_PROPERTIES 8
201#define FILE_WRITE_EA 16
202#define FILE_WRITE_PROPERTIES 16
203#define FILE_EXECUTE 32
204#define FILE_TRAVERSE 32
205#define FILE_DELETE_CHILD 64
206#define FILE_READ_ATTRIBUTES 128
207#define FILE_WRITE_ATTRIBUTES 256
208#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x1FF)
209#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ|FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA|SYNCHRONIZE)
210#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|FILE_WRITE_EA|FILE_APPEND_DATA|SYNCHRONIZE)
211#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE|FILE_READ_ATTRIBUTES|FILE_EXECUTE|SYNCHRONIZE)
212#define FILE_SHARE_READ 1
213#define FILE_SHARE_WRITE 2
214#define FILE_SHARE_DELETE 4
215#define FILE_ATTRIBUTE_READONLY 1
216#define FILE_ATTRIBUTE_HIDDEN 2
217#define FILE_ATTRIBUTE_SYSTEM 4
218#define FILE_ATTRIBUTE_DIRECTORY 16
219#define FILE_ATTRIBUTE_ARCHIVE 32
220#define FILE_ATTRIBUTE_DEVICE 64
221#define FILE_ATTRIBUTE_NORMAL 128
222#define FILE_ATTRIBUTE_TEMPORARY 256
223#define FILE_ATTRIBUTE_SPARSE_FILE 512
224#define FILE_ATTRIBUTE_REPARSE_POINT 1024
225#define FILE_ATTRIBUTE_COMPRESSED 2048
226#define FILE_ATTRIBUTE_OFFLINE 0x1000
227#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x2000
228#define FILE_ATTRIBUTE_ENCRYPTED 0x4000
229#define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
230#define FILE_NOTIFY_CHANGE_FILE_NAME 1
231#define FILE_NOTIFY_CHANGE_DIR_NAME 2
232#define FILE_NOTIFY_CHANGE_ATTRIBUTES 4
233#define FILE_NOTIFY_CHANGE_SIZE 8
234#define FILE_NOTIFY_CHANGE_LAST_WRITE 16
235#define FILE_NOTIFY_CHANGE_LAST_ACCESS 32
236#define FILE_NOTIFY_CHANGE_CREATION 64
237#define FILE_NOTIFY_CHANGE_SECURITY 256
238#define MAILSLOT_NO_MESSAGE ((DWORD)-1)
239#define MAILSLOT_WAIT_FOREVER ((DWORD)-1)
240#define FILE_CASE_SENSITIVE_SEARCH 1
241#define FILE_CASE_PRESERVED_NAMES 2
242#define FILE_UNICODE_ON_DISK 4
243#define FILE_PERSISTENT_ACLS 8
244#define FILE_FILE_COMPRESSION 16
245#define FILE_VOLUME_QUOTAS 32
246#define FILE_SUPPORTS_SPARSE_FILES 64
247#define FILE_SUPPORTS_REPARSE_POINTS 128
248#define FILE_SUPPORTS_REMOTE_STORAGE 256
249#define FILE_VOLUME_IS_COMPRESSED 0x8000
250#define FILE_SUPPORTS_OBJECT_IDS 0x10000
251#define FILE_SUPPORTS_ENCRYPTION 0x20000
252#define FILE_NAMED_STREAMS 0x40000
253#define IO_COMPLETION_MODIFY_STATE 2
254#define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|3)
255#define DUPLICATE_CLOSE_SOURCE 1
256#define DUPLICATE_SAME_ACCESS 2
257#define PROCESS_TERMINATE 1
258#define PROCESS_CREATE_THREAD 2
259#define PROCESS_VM_OPERATION 8
260#define PROCESS_VM_READ 16
261#define PROCESS_VM_WRITE 32
262#define PROCESS_DUP_HANDLE 64
263#define PROCESS_CREATE_PROCESS 128
264#define PROCESS_SET_QUOTA 256
265#define PROCESS_SET_INFORMATION 512
266#define PROCESS_QUERY_INFORMATION 1024
267#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xFFF)
268#define THREAD_TERMINATE 1
269#define THREAD_SUSPEND_RESUME 2
270#define THREAD_GET_CONTEXT 8
271#define THREAD_SET_CONTEXT 16
272#define THREAD_SET_INFORMATION 32
273#define THREAD_QUERY_INFORMATION 64
274#define THREAD_SET_THREAD_TOKEN 128
275#define THREAD_IMPERSONATE 256
276#define THREAD_DIRECT_IMPERSONATION 0x200
277#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF)
278#define EXCEPTION_NONCONTINUABLE 1
279#define EXCEPTION_MAXIMUM_PARAMETERS 15
280/*
281 * To prevent gcc compiler warnings, bracket these defines when initialising
282 * a SID_IDENTIFIER_AUTHORITY, eg.
283 * SID_IDENTIFIER_AUTHORITY aNullSidAuthority = {SECURITY_NULL_SID_AUTHORITY};
284 */
285#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
286#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
287#define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
288#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
289#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
290#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
291#define SECURITY_NULL_RID 0
292#define SECURITY_WORLD_RID 0
293#define SECURITY_LOCAL_RID 0
294#define SECURITY_CREATOR_OWNER_RID 0
295#define SECURITY_CREATOR_GROUP_RID 1
296#define SECURITY_DIALUP_RID 1
297#define SECURITY_NETWORK_RID 2
298#define SECURITY_BATCH_RID 3
299#define SECURITY_INTERACTIVE_RID 4
300#define SECURITY_LOGON_IDS_RID 5
301#define SECURITY_SERVICE_RID 6
302#define SECURITY_LOCAL_SYSTEM_RID 18
303#define SECURITY_BUILTIN_DOMAIN_RID 32
304#define SECURITY_PRINCIPAL_SELF_RID 10
305#define SID_REVISION 1
306#define DOMAIN_USER_RID_ADMIN 0x1F4L
307#define DOMAIN_USER_RID_GUEST 0x1F5L
308#define DOMAIN_GROUP_RID_ADMINS 0x200L
309#define DOMAIN_GROUP_RID_USERS 0x201L
310#define DOMAIN_ALIAS_RID_ADMINS 0x220L
311#define DOMAIN_ALIAS_RID_USERS 0x221L
312#define DOMAIN_ALIAS_RID_GUESTS 0x222L
313#define DOMAIN_ALIAS_RID_POWER_USERS 0x223L
314#define DOMAIN_ALIAS_RID_ACCOUNT_OPS 0x224L
315#define DOMAIN_ALIAS_RID_SYSTEM_OPS 0x225L
316#define DOMAIN_ALIAS_RID_PRINT_OPS 0x226L
317#define DOMAIN_ALIAS_RID_BACKUP_OPS 0x227L
318#define DOMAIN_ALIAS_RID_REPLICATOR 0x228L
319#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")
320#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege")
321#define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege")
322#define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege")
323#define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege")
324#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")
325#define SE_TCB_NAME TEXT("SeTcbPrivilege")
326#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege")
327#define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege")
328#define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege")
329#define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege")
330#define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")
331#define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege")
332#define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege")
333#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")
334#define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege")
335#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")
336#define SE_RESTORE_NAME TEXT("SeRestorePrivilege")
337#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")
338#define SE_DEBUG_NAME TEXT("SeDebugPrivilege")
339#define SE_AUDIT_NAME TEXT("SeAuditPrivilege")
340#define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege")
341#define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege")
342#define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege")
343#define SE_GROUP_MANDATORY 1
344#define SE_GROUP_ENABLED_BY_DEFAULT 2
345#define SE_GROUP_ENABLED 4
346#define SE_GROUP_OWNER 8
347#define SE_GROUP_USE_FOR_DENY_ONLY 16
348#define SE_GROUP_LOGON_ID 3221225472U
349#define SE_GROUP_RESOURCE 536870912
350#define LANG_NEUTRAL 0x00
351#define LANG_ARABIC 0x01
352#define LANG_BULGARIAN 0x02
353#define LANG_CATALAN 0x03
354#define LANG_CHINESE 0x04
355#define LANG_CZECH 0x05
356#define LANG_DANISH 0x06
357#define LANG_GERMAN 0x07
358#define LANG_GREEK 0x08
359#define LANG_ENGLISH 0x09
360#define LANG_SPANISH 0x0a
361#define LANG_FINNISH 0x0b
362#define LANG_FRENCH 0x0c
363#define LANG_HEBREW 0x0d
364#define LANG_HUNGARIAN 0x0e
365#define LANG_ICELANDIC 0x0f
366#define LANG_ITALIAN 0x10
367#define LANG_JAPANESE 0x11
368#define LANG_KOREAN 0x12
369#define LANG_DUTCH 0x13
370#define LANG_NORWEGIAN 0x14
371#define LANG_POLISH 0x15
372#define LANG_PORTUGUESE 0x16
373#define LANG_ROMANIAN 0x18
374#define LANG_RUSSIAN 0x19
375#define LANG_CROATIAN 0x1a
376#define LANG_SERBIAN 0x1a
377#define LANG_SLOVAK 0x1b
378#define LANG_ALBANIAN 0x1c
379#define LANG_SWEDISH 0x1d
380#define LANG_THAI 0x1e
381#define LANG_TURKISH 0x1f
382#define LANG_URDU 0x20
383#define LANG_INDONESIAN 0x21
384#define LANG_UKRAINIAN 0x22
385#define LANG_BELARUSIAN 0x23
386#define LANG_SLOVENIAN 0x24
387#define LANG_ESTONIAN 0x25
388#define LANG_LATVIAN 0x26
389#define LANG_LITHUANIAN 0x27
390#define LANG_FARSI 0x29
391#define LANG_VIETNAMESE 0x2a
392#define LANG_ARMENIAN 0x2b
393#define LANG_AZERI 0x2c
394#define LANG_BASQUE 0x2d
395#define LANG_MACEDONIAN 0x2f
396#define LANG_AFRIKAANS 0x36
397#define LANG_GEORGIAN 0x37
398#define LANG_FAEROESE 0x38
399#define LANG_HINDI 0x39
400#define LANG_MALAY 0x3e
401#define LANG_KAZAK 0x3f
402#define LANG_SWAHILI 0x41
403#define LANG_UZBEK 0x43
404#define LANG_TATAR 0x44
405#define LANG_BENGALI 0x45
406#define LANG_PUNJABI 0x46
407#define LANG_GUJARATI 0x47
408#define LANG_ORIYA 0x48
409#define LANG_TAMIL 0x49
410#define LANG_TELUGU 0x4a
411#define LANG_KANNADA 0x4b
412#define LANG_MALAYALAM 0x4c
413#define LANG_ASSAMESE 0x4d
414#define LANG_MARATHI 0x4e
415#define LANG_SANSKRIT 0x4f
416#define LANG_KONKANI 0x57
417#define LANG_MANIPURI 0x58
418#define LANG_SINDHI 0x59
419#define LANG_KASHMIRI 0x60
420#define LANG_NEPALI 0x61
421#define SUBLANG_NEUTRAL 0x00
422#define SUBLANG_DEFAULT 0x01
423#define SUBLANG_SYS_DEFAULT 0x02
424#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
425#define SUBLANG_ARABIC_IRAQ 0x02
426#define SUBLANG_ARABIC_EGYPT 0x03
427#define SUBLANG_ARABIC_LIBYA 0x04
428#define SUBLANG_ARABIC_ALGERIA 0x05
429#define SUBLANG_ARABIC_MOROCCO 0x06
430#define SUBLANG_ARABIC_TUNISIA 0x07
431#define SUBLANG_ARABIC_OMAN 0x08
432#define SUBLANG_ARABIC_YEMEN 0x09
433#define SUBLANG_ARABIC_SYRIA 0x0a
434#define SUBLANG_ARABIC_JORDAN 0x0b
435#define SUBLANG_ARABIC_LEBANON 0x0c
436#define SUBLANG_ARABIC_KUWAIT 0x0d
437#define SUBLANG_ARABIC_UAE 0x0e
438#define SUBLANG_ARABIC_BAHRAIN 0x0f
439#define SUBLANG_ARABIC_QATAR 0x10
440#define SUBLANG_AZERI_CYRILLIC 0x01
441#define SUBLANG_AZERI_LATIN 0x02
442#define SUBLANG_CHINESE_TRADITIONAL 0x01
443#define SUBLANG_CHINESE_SIMPLIFIED 0x02
444#define SUBLANG_CHINESE_HONGKONG 0x03
445#define SUBLANG_CHINESE_SINGAPORE 0x04
446#define SUBLANG_CHINESE_MACAU 0x05
447#define SUBLANG_DUTCH 0x01
448#define SUBLANG_DUTCH_BELGIAN 0x02
449#define SUBLANG_ENGLISH_US 0x01
450#define SUBLANG_ENGLISH_UK 0x02
451#define SUBLANG_ENGLISH_AUS 0x03
452#define SUBLANG_ENGLISH_CAN 0x04
453#define SUBLANG_ENGLISH_NZ 0x05
454#define SUBLANG_ENGLISH_EIRE 0x06
455#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
456#define SUBLANG_ENGLISH_JAMAICA 0x08
457#define SUBLANG_ENGLISH_CARIBBEAN 0x09
458#define SUBLANG_ENGLISH_BELIZE 0x0a
459#define SUBLANG_ENGLISH_TRINIDAD 0x0b
460#define SUBLANG_ENGLISH_PHILIPPINES 0x0c
461#define SUBLANG_ENGLISH_ZIMBABWE 0x0d
462#define SUBLANG_FRENCH 0x01
463#define SUBLANG_FRENCH_BELGIAN 0x02
464#define SUBLANG_FRENCH_CANADIAN 0x03
465#define SUBLANG_FRENCH_SWISS 0x04
466#define SUBLANG_FRENCH_LUXEMBOURG 0x05
467#define SUBLANG_FRENCH_MONACO 0x06
468#define SUBLANG_GERMAN 0x01
469#define SUBLANG_GERMAN_SWISS 0x02
470#define SUBLANG_GERMAN_AUSTRIAN 0x03
471#define SUBLANG_GERMAN_LUXEMBOURG 0x04
472#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
473#define SUBLANG_ITALIAN 0x01
474#define SUBLANG_ITALIAN_SWISS 0x02
475#define SUBLANG_KASHMIRI_INDIA 0x02
476#define SUBLANG_KOREAN 0x01
477#define SUBLANG_LITHUANIAN 0x01
478#define SUBLANG_MALAY_MALAYSIA 0x01
479#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
480#define SUBLANG_NEPALI_INDIA 0x02
481#define SUBLANG_NORWEGIAN_BOKMAL 0x01
482#define SUBLANG_NORWEGIAN_NYNORSK 0x02
483#define SUBLANG_PORTUGUESE 0x01
484#define SUBLANG_PORTUGUESE_BRAZILIAN 0x02
485#define SUBLANG_SERBIAN_LATIN 0x02
486#define SUBLANG_SERBIAN_CYRILLIC 0x03
487#define SUBLANG_SPANISH 0x01
488#define SUBLANG_SPANISH_MEXICAN 0x02
489#define SUBLANG_SPANISH_MODERN 0x03
490#define SUBLANG_SPANISH_GUATEMALA 0x04
491#define SUBLANG_SPANISH_COSTA_RICA 0x05
492#define SUBLANG_SPANISH_PANAMA 0x06
493#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
494#define SUBLANG_SPANISH_VENEZUELA 0x08
495#define SUBLANG_SPANISH_COLOMBIA 0x09
496#define SUBLANG_SPANISH_PERU 0x0a
497#define SUBLANG_SPANISH_ARGENTINA 0x0b
498#define SUBLANG_SPANISH_ECUADOR 0x0c
499#define SUBLANG_SPANISH_CHILE 0x0d
500#define SUBLANG_SPANISH_URUGUAY 0x0e
501#define SUBLANG_SPANISH_PARAGUAY 0x0f
502#define SUBLANG_SPANISH_BOLIVIA 0x10
503#define SUBLANG_SPANISH_EL_SALVADOR 0x11
504#define SUBLANG_SPANISH_HONDURAS 0x12
505#define SUBLANG_SPANISH_NICARAGUA 0x13
506#define SUBLANG_SPANISH_PUERTO_RICO 0x14
507#define SUBLANG_SWEDISH 0x01
508#define SUBLANG_SWEDISH_FINLAND 0x02
509#define SUBLANG_URDU_PAKISTAN 0x01
510#define SUBLANG_URDU_INDIA 0x02
511#define SUBLANG_UZBEK_LATIN 0x01
512#define SUBLANG_UZBEK_CYRILLIC 0x02
513#define NLS_VALID_LOCALE_MASK 1048575
514#define SORT_DEFAULT 0
515#define SORT_JAPANESE_XJIS 0
516#define SORT_JAPANESE_UNICODE 1
517#define SORT_CHINESE_BIG5 0
518#define SORT_CHINESE_PRCP 0
519#define SORT_CHINESE_UNICODE 1
520#define SORT_CHINESE_PRC 2
521#define SORT_CHINESE_BOPOMOFO 3
522#define SORT_KOREAN_KSC 0
523#define SORT_KOREAN_UNICODE 1
524#define SORT_GERMAN_PHONE_BOOK 1
525#define SORT_HUNGARIAN_DEFAULT 0
526#define SORT_HUNGARIAN_TECHNICAL 1
527#define SORT_GEORGIAN_TRADITIONAL 0
528#define SORT_GEORGIAN_MODERN 1
529#define MAKELANGID(p,s) ((((WORD)(s))<<10)|(WORD)(p))
530#define MAKELCID(l,s) ((DWORD)((((DWORD)((WORD)(s)))<<16)|((DWORD)((WORD)(l)))))
531#define PRIMARYLANGID(l) ((WORD)(l)&0x3ff)
532#define SORTIDFROMLCID(l) ((WORD)((((DWORD)(l))&NLS_VALID_LOCALE_MASK)>>16))
533#define SORTVERSIONFROMLCID(l) ((WORD)((((DWORD)(l))>>20)&0xf))
534#define SUBLANGID(l) ((WORD)(l)>>10)
535#define LANGIDFROMLCID(l) ((WORD)(l))
536#define LANG_SYSTEM_DEFAULT MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT)
537#define LANG_USER_DEFAULT MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT)
538#define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT)
539#define ACL_REVISION 2
540#define ACL_REVISION_DS 4
541#define ACL_REVISION1 1
542#define ACL_REVISION2 2
543#define ACL_REVISION3 3
544#define ACL_REVISION4 4
545#define MIN_ACL_REVISION 2
546#define MAX_ACL_REVISION 4
547#define MINCHAR 0x80
548#define MAXCHAR 0x7f
549#define MINSHORT 0x8000
550#define MAXSHORT 0x7fff
551#define MINLONG 0x80000000
552#define MAXLONG 0x7fffffff
553#define MAXBYTE 0xff
554#define MAXWORD 0xffff
555#define MAXDWORD 0xffffffff
556#define PROCESSOR_INTEL_386 386
557#define PROCESSOR_INTEL_486 486
558#define PROCESSOR_INTEL_PENTIUM 586
559#define PROCESSOR_MIPS_R4000 4000
560#define PROCESSOR_ALPHA_21064 21064
561#define PROCESSOR_ARCHITECTURE_INTEL 0
562#define PROCESSOR_ARCHITECTURE_MIPS 1
563#define PROCESSOR_ARCHITECTURE_ALPHA 2
564#define PROCESSOR_ARCHITECTURE_PPC 3
565#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF
566#define PF_FLOATING_POINT_PRECISION_ERRATA 0
567#define PF_FLOATING_POINT_EMULATED 1
568#define PF_COMPARE_EXCHANGE_DOUBLE 2
569#define PF_MMX_INSTRUCTIONS_AVAILABLE 3
570#define PF_PPC_MOVEMEM_64BIT_OK 4
571#define PF_ALPHA_BYTE_INSTRUCTIONS 5
572#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6
573#define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7
574#define PF_RDTSC_INSTRUCTION_AVAILABLE 8
575#define PF_PAE_ENABLED 9
576#define PAGE_READONLY 2
577#define PAGE_READWRITE 4
578#define PAGE_WRITECOPY 8
579#define FILE_ACTION_ADDED 1
580#define FILE_ACTION_REMOVED 2
581#define FILE_ACTION_MODIFIED 3
582#define FILE_ACTION_RENAMED_OLD_NAME 4
583#define FILE_ACTION_RENAMED_NEW_NAME 5
584#define HEAP_NO_SERIALIZE 1
585#define HEAP_GROWABLE 2
586#define HEAP_GENERATE_EXCEPTIONS 4
587#define HEAP_ZERO_MEMORY 8
588#define HEAP_REALLOC_IN_PLACE_ONLY 16
589#define HEAP_TAIL_CHECKING_ENABLED 32
590#define HEAP_FREE_CHECKING_ENABLED 64
591#define HEAP_DISABLE_COALESCE_ON_FREE 128
592#define HEAP_CREATE_ALIGN_16 0x0000
593#define HEAP_CREATE_ENABLE_TRACING 0x20000
594#define HEAP_MAXIMUM_TAG 0xFFF
595#define HEAP_PSEUDO_TAG_FLAG 0x8000
596#define HEAP_TAG_SHIFT 16
597#define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16)))
598#define KEY_QUERY_VALUE 1
599#define KEY_SET_VALUE 2
600#define KEY_CREATE_SUB_KEY 4
601#define KEY_ENUMERATE_SUB_KEYS 8
602#define KEY_NOTIFY 16
603#define KEY_CREATE_LINK 32
604#define KEY_WRITE 0x20006
605#define KEY_EXECUTE 0x20019
606#define KEY_READ 0x20019
607#define KEY_ALL_ACCESS 0xf003f
608#define REG_WHOLE_HIVE_VOLATILE 1
609#define REG_REFRESH_HIVE 2
610#define REG_NO_LAZY_FLUSH 4
611#define REG_OPTION_RESERVED 0
612#define REG_OPTION_NON_VOLATILE 0
613#define REG_OPTION_VOLATILE 1
614#define REG_OPTION_CREATE_LINK 2
615#define REG_OPTION_BACKUP_RESTORE 4
616#define REG_OPTION_OPEN_LINK 8
617#define REG_LEGAL_OPTION 15
618#define OWNER_SECURITY_INFORMATION 1
619#define GROUP_SECURITY_INFORMATION 2
620#define DACL_SECURITY_INFORMATION 4
621#define SACL_SECURITY_INFORMATION 8
622#define MAXIMUM_PROCESSORS 32
623#define PAGE_EXECUTE 16
624#define PAGE_EXECUTE_READ 32
625#define PAGE_EXECUTE_READWRITE 64
626#define PAGE_GUARD 256
627#define PAGE_NOACCESS 1
628#define PAGE_NOCACHE 512
629#define MEM_COMMIT 0x1000
630#define MEM_RESERVE 0x2000
631#define MEM_DECOMMIT 0x4000
632#define MEM_RELEASE 0x8000
633#define MEM_FREE 0x10000
634#define MEM_PRIVATE 0x20000
635#define MEM_MAPPED 0x40000
636#define MEM_RESET 0x80000
637#define MEM_TOP_DOWN 0x100000
638#define MEM_WRITE_WATCH 0x200000 /* 98/Me */
639#define MEM_PHYSICAL 0x400000
640#define MEM_4MB_PAGES 0x80000000
641#define MEM_IMAGE 16777216
642#define SEC_FILE 0x800000
643#define SEC_IMAGE 0x1000000
644#define SEC_VLM 0x2000000
645#define SEC_RESERVE 0x4000000
646#define SEC_COMMIT 0x8000000
647#define SEC_NOCACHE 0x10000000
648#define PAGE_EXECUTE_WRITECOPY 128
649#define SECTION_EXTEND_SIZE 16
650#define SECTION_MAP_READ 4
651#define SECTION_MAP_WRITE 2
652#define SECTION_QUERY 1
653#define SECTION_ALL_ACCESS 0xf001f
654#define MESSAGE_RESOURCE_UNICODE 1
655#define RTL_CRITSECT_TYPE 0
656#define RTL_RESOURCE_TYPE 1
657#define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
658#define IMAGE_SIZEOF_FILE_HEADER 20
659#define IMAGE_FILE_RELOCS_STRIPPED 1
660#define IMAGE_FILE_EXECUTABLE_IMAGE 2
661#define IMAGE_FILE_LINE_NUMS_STRIPPED 4
662#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 8
663#define IMAGE_FILE_BYTES_REVERSED_LO 128
664#define IMAGE_FILE_32BIT_MACHINE 256
665#define IMAGE_FILE_DEBUG_STRIPPED 512
666#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 1024
667#define IMAGE_FILE_NET_RUN_FROM_SWAP 2048
668#define IMAGE_FILE_SYSTEM 4096
669#define IMAGE_FILE_DLL 8192
670#define IMAGE_FILE_UP_SYSTEM_ONLY 16384
671#define IMAGE_FILE_BYTES_REVERSED_HI 32768
672#define IMAGE_FILE_MACHINE_UNKNOWN 0
673#define IMAGE_FILE_MACHINE_I386 332
674#define IMAGE_FILE_MACHINE_R3000 354
675#define IMAGE_FILE_MACHINE_R4000 358
676#define IMAGE_FILE_MACHINE_R10000 360
677#define IMAGE_FILE_MACHINE_ALPHA 388
678#define IMAGE_FILE_MACHINE_POWERPC 496
679#define IMAGE_DOS_SIGNATURE 0x5A4D
680#define IMAGE_OS2_SIGNATURE 0x454E
681#define IMAGE_OS2_SIGNATURE_LE 0x454C
682#define IMAGE_VXD_SIGNATURE 0x454C
683#define IMAGE_NT_SIGNATURE 0x00004550
684#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b
685#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
686#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944
687#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
688#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56
689#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
690#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER 224
691#define IMAGE_SIZEOF_SHORT_NAME 8
692#define IMAGE_SIZEOF_SECTION_HEADER 40
693#define IMAGE_SIZEOF_SYMBOL 18
694#define IMAGE_SIZEOF_AUX_SYMBOL 18
695#define IMAGE_SIZEOF_RELOCATION 10
696#define IMAGE_SIZEOF_BASE_RELOCATION 8
697#define IMAGE_SIZEOF_LINENUMBER 6
698#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
699#define SIZEOF_RFPO_DATA 16
700#define IMAGE_SUBSYSTEM_UNKNOWN 0
701#define IMAGE_SUBSYSTEM_NATIVE 1
702#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
703#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3
704#define IMAGE_SUBSYSTEM_OS2_CUI 5
705#define IMAGE_SUBSYSTEM_POSIX_CUI 7
706#define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((DWORD)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader))
707#define IMAGE_DIRECTORY_ENTRY_EXPORT 0
708#define IMAGE_DIRECTORY_ENTRY_IMPORT 1
709#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2
710#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3
711#define IMAGE_DIRECTORY_ENTRY_SECURITY 4
712#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5
713#define IMAGE_DIRECTORY_ENTRY_DEBUG 6
714#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7
715#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8
716#define IMAGE_DIRECTORY_ENTRY_TLS 9
717#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10
718#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11
719#define IMAGE_DIRECTORY_ENTRY_IAT 12
720#define IMAGE_SCN_TYPE_NO_PAD 8
721#define IMAGE_SCN_CNT_CODE 32
722#define IMAGE_SCN_CNT_INITIALIZED_DATA 64
723#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 128
724#define IMAGE_SCN_LNK_OTHER 256
725#define IMAGE_SCN_LNK_INFO 512
726#define IMAGE_SCN_LNK_REMOVE 2048
727#define IMAGE_SCN_LNK_COMDAT 4096
728#define IMAGE_SCN_MEM_FARDATA 0x8000
729#define IMAGE_SCN_MEM_PURGEABLE 0x20000
730#define IMAGE_SCN_MEM_16BIT 0x20000
731#define IMAGE_SCN_MEM_LOCKED 0x40000
732#define IMAGE_SCN_MEM_PRELOAD 0x80000
733#define IMAGE_SCN_ALIGN_1BYTES 0x100000
734#define IMAGE_SCN_ALIGN_2BYTES 0x200000
735#define IMAGE_SCN_ALIGN_4BYTES 0x300000
736#define IMAGE_SCN_ALIGN_8BYTES 0x400000
737#define IMAGE_SCN_ALIGN_16BYTES 0x500000
738#define IMAGE_SCN_ALIGN_32BYTES 0x600000
739#define IMAGE_SCN_ALIGN_64BYTES 0x700000
740#define IMAGE_SCN_LNK_NRELOC_OVFL 0x1000000
741#define IMAGE_SCN_MEM_DISCARDABLE 0x2000000
742#define IMAGE_SCN_MEM_NOT_CACHED 0x4000000
743#define IMAGE_SCN_MEM_NOT_PAGED 0x8000000
744#define IMAGE_SCN_MEM_SHARED 0x10000000
745#define IMAGE_SCN_MEM_EXECUTE 0x20000000
746#define IMAGE_SCN_MEM_READ 0x40000000
747#define IMAGE_SCN_MEM_WRITE 0x80000000
748#define IMAGE_SYM_UNDEFINED 0
749#define IMAGE_SYM_ABSOLUTE (-1)
750#define IMAGE_SYM_DEBUG (-2)
751#define IMAGE_SYM_TYPE_NULL 0
752#define IMAGE_SYM_TYPE_VOID 1
753#define IMAGE_SYM_TYPE_CHAR 2
754#define IMAGE_SYM_TYPE_SHORT 3
755#define IMAGE_SYM_TYPE_INT 4
756#define IMAGE_SYM_TYPE_LONG 5
757#define IMAGE_SYM_TYPE_FLOAT 6
758#define IMAGE_SYM_TYPE_DOUBLE 7
759#define IMAGE_SYM_TYPE_STRUCT 8
760#define IMAGE_SYM_TYPE_UNION 9
761#define IMAGE_SYM_TYPE_ENUM 10
762#define IMAGE_SYM_TYPE_MOE 11
763#define IMAGE_SYM_TYPE_BYTE 12
764#define IMAGE_SYM_TYPE_WORD 13
765#define IMAGE_SYM_TYPE_UINT 14
766#define IMAGE_SYM_TYPE_DWORD 15
767#define IMAGE_SYM_TYPE_PCODE 32768
768#define IMAGE_SYM_DTYPE_NULL 0
769#define IMAGE_SYM_DTYPE_POINTER 1
770#define IMAGE_SYM_DTYPE_FUNCTION 2
771#define IMAGE_SYM_DTYPE_ARRAY 3
772#define IMAGE_SYM_CLASS_END_OF_FUNCTION (-1)
773#define IMAGE_SYM_CLASS_NULL 0
774#define IMAGE_SYM_CLASS_AUTOMATIC 1
775#define IMAGE_SYM_CLASS_EXTERNAL 2
776#define IMAGE_SYM_CLASS_STATIC 3
777#define IMAGE_SYM_CLASS_REGISTER 4
778#define IMAGE_SYM_CLASS_EXTERNAL_DEF 5
779#define IMAGE_SYM_CLASS_LABEL 6
780#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 7
781#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8
782#define IMAGE_SYM_CLASS_ARGUMENT 9
783#define IMAGE_SYM_CLASS_STRUCT_TAG 10
784#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 11
785#define IMAGE_SYM_CLASS_UNION_TAG 12
786#define IMAGE_SYM_CLASS_TYPE_DEFINITION 13
787#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 14
788#define IMAGE_SYM_CLASS_ENUM_TAG 15
789#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16
790#define IMAGE_SYM_CLASS_REGISTER_PARAM 17
791#define IMAGE_SYM_CLASS_BIT_FIELD 18
792#define IMAGE_SYM_CLASS_FAR_EXTERNAL 68
793#define IMAGE_SYM_CLASS_BLOCK 100
794#define IMAGE_SYM_CLASS_FUNCTION 101
795#define IMAGE_SYM_CLASS_END_OF_STRUCT 102
796#define IMAGE_SYM_CLASS_FILE 103
797#define IMAGE_SYM_CLASS_SECTION 104
798#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 105
799#define IMAGE_COMDAT_SELECT_NODUPLICATES 1
800#define IMAGE_COMDAT_SELECT_ANY 2
801#define IMAGE_COMDAT_SELECT_SAME_SIZE 3
802#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4
803#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
804#define IMAGE_COMDAT_SELECT_LARGEST 6
805#define IMAGE_COMDAT_SELECT_NEWEST 7
806#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
807#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
808#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
809#define IMAGE_REL_I386_ABSOLUTE 0
810#define IMAGE_REL_I386_DIR16 1
811#define IMAGE_REL_I386_REL16 2
812#define IMAGE_REL_I386_DIR32 6
813#define IMAGE_REL_I386_DIR32NB 7
814#define IMAGE_REL_I386_SEG12 9
815#define IMAGE_REL_I386_SECTION 10
816#define IMAGE_REL_I386_SECREL 11
817#define IMAGE_REL_I386_REL32 20
818#define IMAGE_REL_MIPS_ABSOLUTE 0
819#define IMAGE_REL_MIPS_REFHALF 1
820#define IMAGE_REL_MIPS_REFWORD 2
821#define IMAGE_REL_MIPS_JMPADDR 3
822#define IMAGE_REL_MIPS_REFHI 4
823#define IMAGE_REL_MIPS_REFLO 5
824#define IMAGE_REL_MIPS_GPREL 6
825#define IMAGE_REL_MIPS_LITERAL 7
826#define IMAGE_REL_MIPS_SECTION 10
827#define IMAGE_REL_MIPS_SECREL 11
828#define IMAGE_REL_MIPS_SECRELLO 12
829#define IMAGE_REL_MIPS_SECRELHI 13
830#define IMAGE_REL_MIPS_REFWORDNB 34
831#define IMAGE_REL_MIPS_PAIR 35
832#define IMAGE_REL_ALPHA_ABSOLUTE 0
833#define IMAGE_REL_ALPHA_REFLONG 1
834#define IMAGE_REL_ALPHA_REFQUAD 2
835#define IMAGE_REL_ALPHA_GPREL32 3
836#define IMAGE_REL_ALPHA_LITERAL 4
837#define IMAGE_REL_ALPHA_LITUSE 5
838#define IMAGE_REL_ALPHA_GPDISP 6
839#define IMAGE_REL_ALPHA_BRADDR 7
840#define IMAGE_REL_ALPHA_HINT 8
841#define IMAGE_REL_ALPHA_INLINE_REFLONG 9
842#define IMAGE_REL_ALPHA_REFHI 10
843#define IMAGE_REL_ALPHA_REFLO 11
844#define IMAGE_REL_ALPHA_PAIR 12
845#define IMAGE_REL_ALPHA_MATCH 13
846#define IMAGE_REL_ALPHA_SECTION 14
847#define IMAGE_REL_ALPHA_SECREL 15
848#define IMAGE_REL_ALPHA_REFLONGNB 16
849#define IMAGE_REL_ALPHA_SECRELLO 17
850#define IMAGE_REL_ALPHA_SECRELHI 18
851#define IMAGE_REL_PPC_ABSOLUTE 0
852#define IMAGE_REL_PPC_ADDR64 1
853#define IMAGE_REL_PPC_ADDR32 2
854#define IMAGE_REL_PPC_ADDR24 3
855#define IMAGE_REL_PPC_ADDR16 4
856#define IMAGE_REL_PPC_ADDR14 5
857#define IMAGE_REL_PPC_REL24 6
858#define IMAGE_REL_PPC_REL14 7
859#define IMAGE_REL_PPC_TOCREL16 8
860#define IMAGE_REL_PPC_TOCREL14 9
861#define IMAGE_REL_PPC_ADDR32NB 10
862#define IMAGE_REL_PPC_SECREL 11
863#define IMAGE_REL_PPC_SECTION 12
864#define IMAGE_REL_PPC_IFGLUE 13
865#define IMAGE_REL_PPC_IMGLUE 14
866#define IMAGE_REL_PPC_SECREL16 15
867#define IMAGE_REL_PPC_REFHI 16
868#define IMAGE_REL_PPC_REFLO 17
869#define IMAGE_REL_PPC_PAIR 18
870#define IMAGE_REL_PPC_TYPEMASK 255
871#define IMAGE_REL_PPC_NEG 256
872#define IMAGE_REL_PPC_BRTAKEN 512
873#define IMAGE_REL_PPC_BRNTAKEN 1024
874#define IMAGE_REL_PPC_TOCDEFN 2048
875#define IMAGE_REL_BASED_ABSOLUTE 0
876#define IMAGE_REL_BASED_HIGH 1
877#define IMAGE_REL_BASED_LOW 2
878#define IMAGE_REL_BASED_HIGHLOW 3
879#define IMAGE_REL_BASED_HIGHADJ 4
880#define IMAGE_REL_BASED_MIPS_JMPADDR 5
881#define IMAGE_ARCHIVE_START_SIZE 8
882#define IMAGE_ARCHIVE_START "!<arch>\n"
883#define IMAGE_ARCHIVE_END "`\n"
884#define IMAGE_ARCHIVE_PAD "\n"
885#define IMAGE_ARCHIVE_LINKER_MEMBER "/ "
886#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// "
887#define IMAGE_ORDINAL_FLAG 0x80000000
888#define IMAGE_SNAP_BY_ORDINAL(o) ((o&IMAGE_ORDINAL_FLAG)!=0)
889#define IMAGE_ORDINAL(o) (o&0xffff)
890#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000
891#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000
892#define IMAGE_DEBUG_TYPE_UNKNOWN 0
893#define IMAGE_DEBUG_TYPE_COFF 1
894#define IMAGE_DEBUG_TYPE_CODEVIEW 2
895#define IMAGE_DEBUG_TYPE_FPO 3
896#define IMAGE_DEBUG_TYPE_MISC 4
897#define IMAGE_DEBUG_TYPE_EXCEPTION 5
898#define IMAGE_DEBUG_TYPE_FIXUP 6
899#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7
900#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8
901#define FRAME_FPO 0
902#define FRAME_TRAP 1
903#define FRAME_TSS 2
904#define FRAME_NONFPO 3
905#define IMAGE_DEBUG_MISC_EXENAME 1
906#define N_BTMASK 0x000F
907#define N_TMASK 0x0030
908#define N_TMASK1 0x00C0
909#define N_TMASK2 0x00F0
910#define N_BTSHFT 4
911#define N_TSHIFT 2
912#define IS_TEXT_UNICODE_ASCII16 1
913#define IS_TEXT_UNICODE_REVERSE_ASCII16 16
914#define IS_TEXT_UNICODE_STATISTICS 2
915#define IS_TEXT_UNICODE_REVERSE_STATISTICS 32
916#define IS_TEXT_UNICODE_CONTROLS 4
917#define IS_TEXT_UNICODE_REVERSE_CONTROLS 64
918#define IS_TEXT_UNICODE_SIGNATURE 8
919#define IS_TEXT_UNICODE_REVERSE_SIGNATURE 128
920#define IS_TEXT_UNICODE_ILLEGAL_CHARS 256
921#define IS_TEXT_UNICODE_ODD_LENGTH 512
922#define IS_TEXT_UNICODE_NULL_BYTES 4096
923#define IS_TEXT_UNICODE_UNICODE_MASK 15
924#define IS_TEXT_UNICODE_REVERSE_MASK 240
925#define IS_TEXT_UNICODE_NOT_UNICODE_MASK 3840
926#define IS_TEXT_UNICODE_NOT_ASCII_MASK 61440
927#define SERVICE_KERNEL_DRIVER 1
928#define SERVICE_FILE_SYSTEM_DRIVER 2
929#define SERVICE_ADAPTER 4
930#define SERVICE_RECOGNIZER_DRIVER 8
931#define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER|SERVICE_FILE_SYSTEM_DRIVER|SERVICE_RECOGNIZER_DRIVER)
932#define SERVICE_WIN32_OWN_PROCESS 16
933#define SERVICE_WIN32_SHARE_PROCESS 32
934#define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS|SERVICE_WIN32_SHARE_PROCESS)
935#define SERVICE_INTERACTIVE_PROCESS 256
936#define SERVICE_TYPE_ALL (SERVICE_WIN32|SERVICE_ADAPTER|SERVICE_DRIVER|SERVICE_INTERACTIVE_PROCESS)
937#define SERVICE_BOOT_START 0
938#define SERVICE_SYSTEM_START 1
939#define SERVICE_AUTO_START 2
940#define SERVICE_DEMAND_START 3
941#define SERVICE_DISABLED 4
942#define SERVICE_ERROR_IGNORE 0
943#define SERVICE_ERROR_NORMAL 1
944#define SERVICE_ERROR_SEVERE 2
945#define SERVICE_ERROR_CRITICAL 3
946#define SE_OWNER_DEFAULTED 1
947#define SE_GROUP_DEFAULTED 2
948#define SE_DACL_PRESENT 4
949#define SE_DACL_DEFAULTED 8
950#define SE_SACL_PRESENT 16
951#define SE_SACL_DEFAULTED 32
952#define SE_DACL_AUTO_INHERIT_REQ 256
953#define SE_SACL_AUTO_INHERIT_REQ 512
954#define SE_DACL_AUTO_INHERITED 1024
955#define SE_SACL_AUTO_INHERITED 2048
956#define SE_DACL_PROTECTED 4096
957#define SE_SACL_PROTECTED 8192
958#define SE_SELF_RELATIVE 0x8000
959#define SECURITY_DESCRIPTOR_MIN_LENGTH 20
960#define SECURITY_DESCRIPTOR_REVISION 1
961#define SECURITY_DESCRIPTOR_REVISION1 1
962#define SE_PRIVILEGE_ENABLED_BY_DEFAULT 1
963#define SE_PRIVILEGE_ENABLED 2
964#define SE_PRIVILEGE_USED_FOR_ACCESS 0x80000000
965#define PRIVILEGE_SET_ALL_NECESSARY 1
966#define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation
967#define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation
968#define SECURITY_DYNAMIC_TRACKING TRUE
969#define SECURITY_STATIC_TRACKING FALSE
970#define TOKEN_SOURCE_LENGTH 8
971#define TOKEN_ADJUST_DEFAULT 128
972#define TOKEN_ADJUST_GROUPS 64
973#define TOKEN_ADJUST_PRIVILEGES 32
974#define TOKEN_ALL_ACCESS 0xf00ff
975#define TOKEN_ASSIGN_PRIMARY 1
976#define TOKEN_DUPLICATE 2
977#define TOKEN_EXECUTE 0x20000
978#define TOKEN_IMPERSONATE 4
979#define TOKEN_QUERY 8
980#define TOKEN_QUERY_SOURCE 16
981#define TOKEN_READ 0x20008
982#define TOKEN_WRITE 0x200e0
983#define DLL_PROCESS_DETACH 0
984#define DLL_PROCESS_ATTACH 1
985#define DLL_THREAD_ATTACH 2
986#define DLL_THREAD_DETACH 3
987#define DBG_CONTINUE 0x10002
988#define DBG_TERMINATE_THREAD 0x40010003
989#define DBG_TERMINATE_PROCESS 0x40010004
990#define DBG_CONTROL_C 0x40010005
991#define DBG_CONTROL_BREAK 0x40010008
992#define DBG_EXCEPTION_NOT_HANDLED 0x80010001
993#define TAPE_ABSOLUTE_POSITION 0
994#define TAPE_LOGICAL_POSITION 1
995#define TAPE_PSEUDO_LOGICAL_POSITION 2
996#define TAPE_REWIND 0
997#define TAPE_ABSOLUTE_BLOCK 1
998#define TAPE_LOGICAL_BLOCK 2
999#define TAPE_PSEUDO_LOGICAL_BLOCK 3
1000#define TAPE_SPACE_END_OF_DATA 4
1001#define TAPE_SPACE_RELATIVE_BLOCKS 5
1002#define TAPE_SPACE_FILEMARKS 6
1003#define TAPE_SPACE_SEQUENTIAL_FMKS 7
1004#define TAPE_SPACE_SETMARKS 8
1005#define TAPE_SPACE_SEQUENTIAL_SMKS 9
1006#define TAPE_DRIVE_FIXED 1
1007#define TAPE_DRIVE_SELECT 2
1008#define TAPE_DRIVE_INITIATOR 4
1009#define TAPE_DRIVE_ERASE_SHORT 16
1010#define TAPE_DRIVE_ERASE_LONG 32
1011#define TAPE_DRIVE_ERASE_BOP_ONLY 64
1012#define TAPE_DRIVE_ERASE_IMMEDIATE 128
1013#define TAPE_DRIVE_TAPE_CAPACITY 256
1014#define TAPE_DRIVE_TAPE_REMAINING 512
1015#define TAPE_DRIVE_FIXED_BLOCK 1024
1016#define TAPE_DRIVE_VARIABLE_BLOCK 2048
1017#define TAPE_DRIVE_WRITE_PROTECT 4096
1018#define TAPE_DRIVE_EOT_WZ_SIZE 8192
1019#define TAPE_DRIVE_ECC 0x10000
1020#define TAPE_DRIVE_COMPRESSION 0x20000
1021#define TAPE_DRIVE_PADDING 0x40000
1022#define TAPE_DRIVE_REPORT_SMKS 0x80000
1023#define TAPE_DRIVE_GET_ABSOLUTE_BLK 0x100000
1024#define TAPE_DRIVE_GET_LOGICAL_BLK 0x200000
1025#define TAPE_DRIVE_SET_EOT_WZ_SIZE 0x400000
1026#define TAPE_DRIVE_EJECT_MEDIA 0x1000000
1027#define TAPE_DRIVE_CLEAN_REQUESTS 0x2000000
1028#define TAPE_DRIVE_SET_CMP_BOP_ONLY 0x4000000
1029#define TAPE_DRIVE_RESERVED_BIT 0x80000000
1030#define TAPE_DRIVE_LOAD_UNLOAD 0x80000001
1031#define TAPE_DRIVE_TENSION 0x80000002
1032#define TAPE_DRIVE_LOCK_UNLOCK 0x80000004
1033#define TAPE_DRIVE_REWIND_IMMEDIATE 0x80000008
1034#define TAPE_DRIVE_SET_BLOCK_SIZE 0x80000010
1035#define TAPE_DRIVE_LOAD_UNLD_IMMED 0x80000020
1036#define TAPE_DRIVE_TENSION_IMMED 0x80000040
1037#define TAPE_DRIVE_LOCK_UNLK_IMMED 0x80000080
1038#define TAPE_DRIVE_SET_ECC 0x80000100
1039#define TAPE_DRIVE_SET_COMPRESSION 0x80000200
1040#define TAPE_DRIVE_SET_PADDING 0x80000400
1041#define TAPE_DRIVE_SET_REPORT_SMKS 0x80000800
1042#define TAPE_DRIVE_ABSOLUTE_BLK 0x80001000
1043#define TAPE_DRIVE_ABS_BLK_IMMED 0x80002000
1044#define TAPE_DRIVE_LOGICAL_BLK 0x80004000
1045#define TAPE_DRIVE_LOG_BLK_IMMED 0x80008000
1046#define TAPE_DRIVE_END_OF_DATA 0x80010000
1047#define TAPE_DRIVE_RELATIVE_BLKS 0x80020000
1048#define TAPE_DRIVE_FILEMARKS 0x80040000
1049#define TAPE_DRIVE_SEQUENTIAL_FMKS 0x80080000
1050#define TAPE_DRIVE_SETMARKS 0x80100000
1051#define TAPE_DRIVE_SEQUENTIAL_SMKS 0x80200000
1052#define TAPE_DRIVE_REVERSE_POSITION 0x80400000
1053#define TAPE_DRIVE_SPACE_IMMEDIATE 0x80800000
1054#define TAPE_DRIVE_WRITE_SETMARKS 0x81000000
1055#define TAPE_DRIVE_WRITE_FILEMARKS 0x82000000
1056#define TAPE_DRIVE_WRITE_SHORT_FMKS 0x84000000
1057#define TAPE_DRIVE_WRITE_LONG_FMKS 0x88000000
1058#define TAPE_DRIVE_WRITE_MARK_IMMED 0x90000000
1059#define TAPE_DRIVE_FORMAT 0xA0000000
1060#define TAPE_DRIVE_FORMAT_IMMEDIATE 0xC0000000
1061#define TAPE_DRIVE_HIGH_FEATURES 0x80000000
1062#define TAPE_FIXED_PARTITIONS 0
1063#define TAPE_INITIATOR_PARTITIONS 2
1064#define TAPE_SELECT_PARTITIONS 1
1065#define TAPE_FILEMARKS 1
1066#define TAPE_LONG_FILEMARKS 3
1067#define TAPE_SETMARKS 0
1068#define TAPE_SHORT_FILEMARKS 2
1069#define TAPE_ERASE_LONG 1
1070#define TAPE_ERASE_SHORT 0
1071#define TAPE_LOAD 0
1072#define TAPE_UNLOAD 1
1073#define TAPE_TENSION 2
1074#define TAPE_LOCK 3
1075#define TAPE_UNLOCK 4
1076#define TAPE_FORMAT 5
1077#define VER_PLATFORM_WIN32s 0
1078#define VER_PLATFORM_WIN32_WINDOWS 1
1079#define VER_PLATFORM_WIN32_NT 2
1080#define VER_NT_WORKSTATION 1
1081#define VER_NT_DOMAIN_CONTROLLER 2
1082#define VER_NT_SERVER 3
1083#define VER_SUITE_SMALLBUSINESS 1
1084#define VER_SUITE_ENTERPRISE 2
1085#define VER_SUITE_BACKOFFICE 4
1086#define VER_SUITE_TERMINAL 16
1087#define VER_SUITE_SMALLBUSINESS_RESTRICTED 32
1088#define VER_SUITE_DATACENTER 128
1089#define VER_SUITE_PERSONAL 512
1090#define BTYPE(x) ((x)&N_BTMASK)
1091#define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT))
1092#define ISFCN(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_FUNCTION<<N_BTSHFT))
1093#define ISARY(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_ARRAY<<N_BTSHFT))
1094#define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG||(x)==IMAGE_SYM_CLASS_UNION_TAG||(x)==IMAGE_SYM_CLASS_ENUM_TAG)
1095#define INCREF(x) ((((x)&~N_BTMASK)<<N_TSHIFT)|(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT)|((x)&N_BTMASK))
1096#define DECREF(x) ((((x)>>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK))
1097#define TLS_MINIMUM_AVAILABLE 64
1098#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer)
1099#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer)
1100#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE 16384
1101#define IO_REPARSE_TAG_RESERVED_ZERO 0
1102#define IO_REPARSE_TAG_RESERVED_ONE 1
1103#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE
1104#define IsReparseTagMicrosoft(x) ((x)&0x80000000)
1105#define IsReparseTagHighLatency(x) ((x)&0x40000000)
1106#define IsReparseTagNameSurrogate(x) ((x)&0x20000000)
1107#define IO_REPARSE_TAG_VALID_VALUES 0xE000FFFF
1108#define IsReparseTagValid(x) (!((x)&~IO_REPARSE_TAG_VALID_VALUES)&&((x)>IO_REPARSE_TAG_RESERVED_RANGE))
1109#define IO_REPARSE_TAG_SYMBOLIC_LINK IO_REPARSE_TAG_RESERVED_ZERO
1110#define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003
1111#ifndef RC_INVOKED
1112typedef DWORD ACCESS_MASK, *PACCESS_MASK;
1113#ifndef _GUID_DEFINED /* also defined in basetyps.h */
1114#define _GUID_DEFINED
1115typedef struct _GUID {
1116 unsigned long Data1;
1117 unsigned short Data2;
1118 unsigned short Data3;
1119 unsigned char Data4[8];
1120} GUID, *REFGUID, *LPGUID;
1121#define SYSTEM_LUID { QuadPart:999 }
1122#endif /* _GUID_DEFINED */
1123typedef struct _GENERIC_MAPPING {
1124 ACCESS_MASK GenericRead;
1125 ACCESS_MASK GenericWrite;
1126 ACCESS_MASK GenericExecute;
1127 ACCESS_MASK GenericAll;
1128} GENERIC_MAPPING, *PGENERIC_MAPPING;
1129typedef struct _ACE_HEADER {
1130 BYTE AceType;
1131 BYTE AceFlags;
1132 WORD AceSize;
1133} ACE_HEADER;
1134typedef struct _ACCESS_ALLOWED_ACE {
1135 ACE_HEADER Header;
1136 ACCESS_MASK Mask;
1137 DWORD SidStart;
1138} ACCESS_ALLOWED_ACE;
1139typedef struct _ACCESS_DENIED_ACE {
1140 ACE_HEADER Header;
1141 ACCESS_MASK Mask;
1142 DWORD SidStart;
1143} ACCESS_DENIED_ACE;
1144typedef struct _SYSTEM_AUDIT_ACE {
1145 ACE_HEADER Header;
1146 ACCESS_MASK Mask;
1147 DWORD SidStart;
1148} SYSTEM_AUDIT_ACE;
1149typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE;
1150typedef struct _SYSTEM_ALARM_ACE {
1151 ACE_HEADER Header;
1152 ACCESS_MASK Mask;
1153 DWORD SidStart;
1154} SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE;
1155typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
1156 ACE_HEADER Header;
1157 ACCESS_MASK Mask;
1158 DWORD Flags;
1159 GUID ObjectType;
1160 GUID InheritedObjectType;
1161 DWORD SidStart;
1162} ACCESS_ALLOWED_OBJECT_ACE,*PACCESS_ALLOWED_OBJECT_ACE;
1163typedef struct _ACCESS_DENIED_OBJECT_ACE {
1164 ACE_HEADER Header;
1165 ACCESS_MASK Mask;
1166 DWORD Flags;
1167 GUID ObjectType;
1168 GUID InheritedObjectType;
1169 DWORD SidStart;
1170} ACCESS_DENIED_OBJECT_ACE,*PACCESS_DENIED_OBJECT_ACE;
1171typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
1172 ACE_HEADER Header;
1173 ACCESS_MASK Mask;
1174 DWORD Flags;
1175 GUID ObjectType;
1176 GUID InheritedObjectType;
1177 DWORD SidStart;
1178} SYSTEM_AUDIT_OBJECT_ACE,*PSYSTEM_AUDIT_OBJECT_ACE;
1179typedef struct _SYSTEM_ALARM_OBJECT_ACE {
1180 ACE_HEADER Header;
1181 ACCESS_MASK Mask;
1182 DWORD Flags;
1183 GUID ObjectType;
1184 GUID InheritedObjectType;
1185 DWORD SidStart;
1186} SYSTEM_ALARM_OBJECT_ACE,*PSYSTEM_ALARM_OBJECT_ACE;
1187typedef struct _ACL {
1188 BYTE AclRevision;
1189 BYTE Sbz1;
1190 WORD AclSize;
1191 WORD AceCount;
1192 WORD Sbz2;
1193} ACL,*PACL;
1194typedef struct _ACL_REVISION_INFORMATION {
1195 DWORD AclRevision;
1196} ACL_REVISION_INFORMATION;
1197typedef struct _ACL_SIZE_INFORMATION {
1198 DWORD AceCount;
1199 DWORD AclBytesInUse;
1200 DWORD AclBytesFree;
1201} ACL_SIZE_INFORMATION;
1202
1203/* FIXME: add more machines */
1204#ifdef _X86_
1205#define SIZE_OF_80387_REGISTERS 80
1206#define CONTEXT_i386 0x10000
1207#define CONTEXT_i486 0x10000
1208#define CONTEXT_CONTROL (CONTEXT_i386|0x00000001L)
1209#define CONTEXT_INTEGER (CONTEXT_i386|0x00000002L)
1210#define CONTEXT_SEGMENTS (CONTEXT_i386|0x00000004L)
1211#define CONTEXT_FLOATING_POINT (CONTEXT_i386|0x00000008L)
1212#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386|0x00000010L)
1213#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L)
1214#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS)
1215#define MAXIMUM_SUPPORTED_EXTENSION 512
1216typedef struct _FLOATING_SAVE_AREA {
1217 DWORD ControlWord;
1218 DWORD StatusWord;
1219 DWORD TagWord;
1220 DWORD ErrorOffset;
1221 DWORD ErrorSelector;
1222 DWORD DataOffset;
1223 DWORD DataSelector;
1224 BYTE RegisterArea[80];
1225 DWORD Cr0NpxState;
1226} FLOATING_SAVE_AREA;
1227typedef struct _CONTEXT {
1228 DWORD ContextFlags;
1229 DWORD Dr0;
1230 DWORD Dr1;
1231 DWORD Dr2;
1232 DWORD Dr3;
1233 DWORD Dr6;
1234 DWORD Dr7;
1235 FLOATING_SAVE_AREA FloatSave;
1236 DWORD SegGs;
1237 DWORD SegFs;
1238 DWORD SegEs;
1239 DWORD SegDs;
1240 DWORD Edi;
1241 DWORD Esi;
1242 DWORD Ebx;
1243 DWORD Edx;
1244 DWORD Ecx;
1245 DWORD Eax;
1246 DWORD Ebp;
1247 DWORD Eip;
1248 DWORD SegCs;
1249 DWORD EFlags;
1250 DWORD Esp;
1251 DWORD SegSs;
1252 BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];
1253} CONTEXT;
1254#elif defined(_PPC_)
1255#define CONTEXT_CONTROL 1L
1256#define CONTEXT_FLOATING_POINT 2L
1257#define CONTEXT_INTEGER 4L
1258#define CONTEXT_DEBUG_REGISTERS 8L
1259#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_FLOATING_POINT|CONTEXT_INTEGER)
1260typedef struct {
1261 double Fpr0;
1262 double Fpr1;
1263 double Fpr2;
1264 double Fpr3;
1265 double Fpr4;
1266 double Fpr5;
1267 double Fpr6;
1268 double Fpr7;
1269 double Fpr8;
1270 double Fpr9;
1271 double Fpr10;
1272 double Fpr11;
1273 double Fpr12;
1274 double Fpr13;
1275 double Fpr14;
1276 double Fpr15;
1277 double Fpr16;
1278 double Fpr17;
1279 double Fpr18;
1280 double Fpr19;
1281 double Fpr20;
1282 double Fpr21;
1283 double Fpr22;
1284 double Fpr23;
1285 double Fpr24;
1286 double Fpr25;
1287 double Fpr26;
1288 double Fpr27;
1289 double Fpr28;
1290 double Fpr29;
1291 double Fpr30;
1292 double Fpr31;
1293 double Fpscr;
1294 DWORD Gpr0;
1295 DWORD Gpr1;
1296 DWORD Gpr2;
1297 DWORD Gpr3;
1298 DWORD Gpr4;
1299 DWORD Gpr5;
1300 DWORD Gpr6;
1301 DWORD Gpr7;
1302 DWORD Gpr8;
1303 DWORD Gpr9;
1304 DWORD Gpr10;
1305 DWORD Gpr11;
1306 DWORD Gpr12;
1307 DWORD Gpr13;
1308 DWORD Gpr14;
1309 DWORD Gpr15;
1310 DWORD Gpr16;
1311 DWORD Gpr17;
1312 DWORD Gpr18;
1313 DWORD Gpr19;
1314 DWORD Gpr20;
1315 DWORD Gpr21;
1316 DWORD Gpr22;
1317 DWORD Gpr23;
1318 DWORD Gpr24;
1319 DWORD Gpr25;
1320 DWORD Gpr26;
1321 DWORD Gpr27;
1322 DWORD Gpr28;
1323 DWORD Gpr29;
1324 DWORD Gpr30;
1325 DWORD Gpr31;
1326 DWORD Cr;
1327 DWORD Xer;
1328 DWORD Msr;
1329 DWORD Iar;
1330 DWORD Lr;
1331 DWORD Ctr;
1332 DWORD ContextFlags;
1333 DWORD Fill[3];
1334 DWORD Dr0;
1335 DWORD Dr1;
1336 DWORD Dr2;
1337 DWORD Dr3;
1338 DWORD Dr4;
1339 DWORD Dr5;
1340 DWORD Dr6;
1341 DWORD Dr7;
1342} CONTEXT;
1343#elif defined(_ALPHA_)
1344#define CONTEXT_ALPHA 0x20000
1345#define CONTEXT_CONTROL (CONTEXT_ALPHA|1L)
1346#define CONTEXT_FLOATING_POINT (CONTEXT_ALPHA|2L)
1347#define CONTEXT_INTEGER (CONTEXT_ALPHA|4L)
1348#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_FLOATING_POINT|CONTEXT_INTEGER)
1349typedef struct _CONTEXT {
1350 ULONGLONG FltF0;
1351 ULONGLONG FltF1;
1352 ULONGLONG FltF2;
1353 ULONGLONG FltF3;
1354 ULONGLONG FltF4;
1355 ULONGLONG FltF5;
1356 ULONGLONG FltF6;
1357 ULONGLONG FltF7;
1358 ULONGLONG FltF8;
1359 ULONGLONG FltF9;
1360 ULONGLONG FltF10;
1361 ULONGLONG FltF11;
1362 ULONGLONG FltF12;
1363 ULONGLONG FltF13;
1364 ULONGLONG FltF14;
1365 ULONGLONG FltF15;
1366 ULONGLONG FltF16;
1367 ULONGLONG FltF17;
1368 ULONGLONG FltF18;
1369 ULONGLONG FltF19;
1370 ULONGLONG FltF20;
1371 ULONGLONG FltF21;
1372 ULONGLONG FltF22;
1373 ULONGLONG FltF23;
1374 ULONGLONG FltF24;
1375 ULONGLONG FltF25;
1376 ULONGLONG FltF26;
1377 ULONGLONG FltF27;
1378 ULONGLONG FltF28;
1379 ULONGLONG FltF29;
1380 ULONGLONG FltF30;
1381 ULONGLONG FltF31;
1382 ULONGLONG IntV0;
1383 ULONGLONG IntT0;
1384 ULONGLONG IntT1;
1385 ULONGLONG IntT2;
1386 ULONGLONG IntT3;
1387 ULONGLONG IntT4;
1388 ULONGLONG IntT5;
1389 ULONGLONG IntT6;
1390 ULONGLONG IntT7;
1391 ULONGLONG IntS0;
1392 ULONGLONG IntS1;
1393 ULONGLONG IntS2;
1394 ULONGLONG IntS3;
1395 ULONGLONG IntS4;
1396 ULONGLONG IntS5;
1397 ULONGLONG IntFp;
1398 ULONGLONG IntA0;
1399 ULONGLONG IntA1;
1400 ULONGLONG IntA2;
1401 ULONGLONG IntA3;
1402 ULONGLONG IntA4;
1403 ULONGLONG IntA5;
1404 ULONGLONG IntT8;
1405 ULONGLONG IntT9;
1406 ULONGLONG IntT10;
1407 ULONGLONG IntT11;
1408 ULONGLONG IntRa;
1409 ULONGLONG IntT12;
1410 ULONGLONG IntAt;
1411 ULONGLONG IntGp;
1412 ULONGLONG IntSp;
1413 ULONGLONG IntZero;
1414 ULONGLONG Fpcr;
1415 ULONGLONG SoftFpcr;
1416 ULONGLONG Fir;
1417 DWORD Psr;
1418 DWORD ContextFlags;
1419 DWORD Fill[4];
1420} CONTEXT;
1421#elif defined(SHx)
1422
1423/* These are the debug or break registers on the SH3 */
1424typedef struct _DEBUG_REGISTERS {
1425 ULONG BarA;
1426 UCHAR BasrA;
1427 UCHAR BamrA;
1428 USHORT BbrA;
1429 ULONG BarB;
1430 UCHAR BasrB;
1431 UCHAR BamrB;
1432 USHORT BbrB;
1433 ULONG BdrB;
1434 ULONG BdmrB;
1435 USHORT Brcr;
1436 USHORT Align;
1437} DEBUG_REGISTERS, *PDEBUG_REGISTERS;
1438
1439/* The following flags control the contents of the CONTEXT structure. */
1440
1441#define CONTEXT_SH3 0x00000040
1442#define CONTEXT_SH4 0x000000c0 /* CONTEXT_SH3 | 0x80 - must contain the SH3 bits */
1443
1444#ifdef SH3
1445#define CONTEXT_CONTROL (CONTEXT_SH3 | 0x00000001L)
1446#define CONTEXT_INTEGER (CONTEXT_SH3 | 0x00000002L)
1447#define CONTEXT_DEBUG_REGISTERS (CONTEXT_SH3 | 0x00000008L)
1448#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_DEBUG_REGISTERS)
1449#else /* SH4 */
1450#define CONTEXT_CONTROL (CONTEXT_SH4 | 0x00000001L)
1451#define CONTEXT_INTEGER (CONTEXT_SH4 | 0x00000002L)
1452#define CONTEXT_DEBUG_REGISTERS (CONTEXT_SH4 | 0x00000008L)
1453#define CONTEXT_FLOATING_POINT (CONTEXT_SH4 | 0x00000004L)
1454#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_DEBUG_REGISTERS | CONTEXT_FLOATING_POINT)
1455#endif
1456
1457/* Context Frame */
1458
1459/* This frame is used to store a limited processor context into the */
1460/* Thread structure for CPUs which have no floating point support. */
1461
1462typedef struct _CONTEXT {
1463 /* The flags values within this flag control the contents of */
1464 /* a CONTEXT record. */
1465
1466 /* If the context record is used as an input parameter, then */
1467 /* for each portion of the context record controlled by a flag */
1468 /* whose value is set, it is assumed that that portion of the */
1469 /* context record contains valid context. If the context record */
1470 /* is being used to modify a thread's context, then only that */
1471 /* portion of the threads context will be modified. */
1472
1473 /* If the context record is used as an IN OUT parameter to capture */
1474 /* the context of a thread, then only those portions of the thread's */
1475 /* context corresponding to set flags will be returned. */
1476
1477 /* The context record is never used as an OUT only parameter. */
1478
1479
1480 ULONG ContextFlags;
1481
1482 /* This section is specified/returned if the ContextFlags word contains */
1483 /* the flag CONTEXT_INTEGER. */
1484
1485 /* N.B. The registers RA and R15 are defined in this section, but are */
1486 /* considered part of the control context rather than part of the integer */
1487 /* context. */
1488
1489 ULONG PR;
1490 ULONG MACH;
1491 ULONG MACL;
1492 ULONG GBR;
1493 ULONG R0;
1494 ULONG R1;
1495 ULONG R2;
1496 ULONG R3;
1497 ULONG R4;
1498 ULONG R5;
1499 ULONG R6;
1500 ULONG R7;
1501 ULONG R8;
1502 ULONG R9;
1503 ULONG R10;
1504 ULONG R11;
1505 ULONG R12;
1506 ULONG R13;
1507 ULONG R14;
1508 ULONG R15;
1509
1510 /* This section is specified/returned if the ContextFlags word contains */
1511 /* the flag CONTEXT_CONTROL. */
1512
1513 /* N.B. The registers r15 and ra are defined in the integer section, */
1514 /* but are considered part of the control context rather than part of */
1515 /* the integer context. */
1516
1517 ULONG Fir;
1518 ULONG Psr;
1519
1520#if !defined(SH3e) && !defined(SH4)
1521 ULONG OldStuff[2];
1522 DEBUG_REGISTERS DebugRegisters;
1523#else
1524 ULONG Fpscr;
1525 ULONG Fpul;
1526 ULONG FRegs[16];
1527#if defined(SH4)
1528 ULONG xFRegs[16];
1529#endif
1530#endif
1531} CONTEXT;
1532
1533#elif defined(MIPS)
1534
1535/* The following flags control the contents of the CONTEXT structure. */
1536
1537#define CONTEXT_R4000 0x00010000 /* r4000 context */
1538
1539#define CONTEXT_CONTROL (CONTEXT_R4000 | 0x00000001L)
1540#define CONTEXT_FLOATING_POINT (CONTEXT_R4000 | 0x00000002L)
1541#define CONTEXT_INTEGER (CONTEXT_R4000 | 0x00000004L)
1542
1543#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
1544
1545/* Context Frame */
1546
1547/* N.B. This frame must be exactly a multiple of 16 bytes in length. */
1548
1549/* This frame has a several purposes: 1) it is used as an argument to */
1550/* NtContinue, 2) it is used to constuct a call frame for APC delivery, */
1551/* 3) it is used to construct a call frame for exception dispatching */
1552/* in user mode, and 4) it is used in the user level thread creation */
1553/* routines. */
1554
1555/* The layout of the record conforms to a standard call frame. */
1556
1557
1558typedef struct _CONTEXT {
1559
1560 /* This section is always present and is used as an argument build */
1561 /* area. */
1562
1563 DWORD Argument[4];
1564
1565 /* This section is specified/returned if the ContextFlags word contains */
1566 /* the flag CONTEXT_FLOATING_POINT. */
1567
1568 DWORD FltF0;
1569 DWORD FltF1;
1570 DWORD FltF2;
1571 DWORD FltF3;
1572 DWORD FltF4;
1573 DWORD FltF5;
1574 DWORD FltF6;
1575 DWORD FltF7;
1576 DWORD FltF8;
1577 DWORD FltF9;
1578 DWORD FltF10;
1579 DWORD FltF11;
1580 DWORD FltF12;
1581 DWORD FltF13;
1582 DWORD FltF14;
1583 DWORD FltF15;
1584 DWORD FltF16;
1585 DWORD FltF17;
1586 DWORD FltF18;
1587 DWORD FltF19;
1588 DWORD FltF20;
1589 DWORD FltF21;
1590 DWORD FltF22;
1591 DWORD FltF23;
1592 DWORD FltF24;
1593 DWORD FltF25;
1594 DWORD FltF26;
1595 DWORD FltF27;
1596 DWORD FltF28;
1597 DWORD FltF29;
1598 DWORD FltF30;
1599 DWORD FltF31;
1600
1601 /* This section is specified/returned if the ContextFlags word contains */
1602 /* the flag CONTEXT_INTEGER. */
1603
1604 /* N.B. The registers gp, sp, and ra are defined in this section, but are */
1605 /* considered part of the control context rather than part of the integer */
1606 /* context. */
1607
1608 /* N.B. Register zero is not stored in the frame. */
1609
1610 DWORD IntZero;
1611 DWORD IntAt;
1612 DWORD IntV0;
1613 DWORD IntV1;
1614 DWORD IntA0;
1615 DWORD IntA1;
1616 DWORD IntA2;
1617 DWORD IntA3;
1618 DWORD IntT0;
1619 DWORD IntT1;
1620 DWORD IntT2;
1621 DWORD IntT3;
1622 DWORD IntT4;
1623 DWORD IntT5;
1624 DWORD IntT6;
1625 DWORD IntT7;
1626 DWORD IntS0;
1627 DWORD IntS1;
1628 DWORD IntS2;
1629 DWORD IntS3;
1630 DWORD IntS4;
1631 DWORD IntS5;
1632 DWORD IntS6;
1633 DWORD IntS7;
1634 DWORD IntT8;
1635 DWORD IntT9;
1636 DWORD IntK0;
1637 DWORD IntK1;
1638 DWORD IntGp;
1639 DWORD IntSp;
1640 DWORD IntS8;
1641 DWORD IntRa;
1642 DWORD IntLo;
1643 DWORD IntHi;
1644
1645 /* This section is specified/returned if the ContextFlags word contains */
1646 /* the flag CONTEXT_FLOATING_POINT. */
1647
1648 DWORD Fsr;
1649
1650 /* This section is specified/returned if the ContextFlags word contains */
1651 /* the flag CONTEXT_CONTROL. */
1652
1653 /* N.B. The registers gp, sp, and ra are defined in the integer section, */
1654 /* but are considered part of the control context rather than part of */
1655 /* the integer context. */
1656
1657 DWORD Fir;
1658 DWORD Psr;
1659
1660 /* The flags values within this flag control the contents of */
1661 /* a CONTEXT record. */
1662
1663 /* If the context record is used as an input parameter, then */
1664 /* for each portion of the context record controlled by a flag */
1665 /* whose value is set, it is assumed that that portion of the */
1666 /* context record contains valid context. If the context record */
1667 /* is being used to modify a thread's context, then only that */
1668 /* portion of the threads context will be modified. */
1669
1670 /* If the context record is used as an IN OUT parameter to capture */
1671 /* the context of a thread, then only those portions of the thread's */
1672 /* context corresponding to set flags will be returned. */
1673
1674 /* The context record is never used as an OUT only parameter. */
1675
1676 DWORD ContextFlags;
1677
1678 DWORD Fill[2];
1679
1680} CONTEXT;
1681#elif defined(ARM)
1682
1683/* The following flags control the contents of the CONTEXT structure. */
1684
1685#define CONTEXT_ARM 0x0000040
1686#define CONTEXT_CONTROL (CONTEXT_ARM | 0x00000001L)
1687#define CONTEXT_INTEGER (CONTEXT_ARM | 0x00000002L)
1688
1689#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER)
1690
1691typedef struct _CONTEXT {
1692 /* The flags values within this flag control the contents of
1693 a CONTEXT record.
1694
1695 If the context record is used as an input parameter, then
1696 for each portion of the context record controlled by a flag
1697 whose value is set, it is assumed that that portion of the
1698 context record contains valid context. If the context record
1699 is being used to modify a thread's context, then only that
1700 portion of the threads context will be modified.
1701
1702 If the context record is used as an IN OUT parameter to capture
1703 the context of a thread, then only those portions of the thread's
1704 context corresponding to set flags will be returned.
1705
1706 The context record is never used as an OUT only parameter. */
1707
1708 ULONG ContextFlags;
1709
1710 /* This section is specified/returned if the ContextFlags word contains
1711 the flag CONTEXT_INTEGER. */
1712 ULONG R0;
1713 ULONG R1;
1714 ULONG R2;
1715 ULONG R3;
1716 ULONG R4;
1717 ULONG R5;
1718 ULONG R6;
1719 ULONG R7;
1720 ULONG R8;
1721 ULONG R9;
1722 ULONG R10;
1723 ULONG R11;
1724 ULONG R12;
1725
1726 ULONG Sp;
1727 ULONG Lr;
1728 ULONG Pc;
1729 ULONG Psr;
1730} CONTEXT;
1731
1732#else
1733#error "undefined processor type"
1734#endif
1735typedef CONTEXT *PCONTEXT,*LPCONTEXT;
1736typedef struct _EXCEPTION_RECORD {
1737 DWORD ExceptionCode;
1738 DWORD ExceptionFlags;
1739 struct _EXCEPTION_RECORD *ExceptionRecord;
1740 PVOID ExceptionAddress;
1741 DWORD NumberParameters;
1742 DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
1743} EXCEPTION_RECORD,*PEXCEPTION_RECORD;
1744typedef struct _EXCEPTION_POINTERS {
1745 PEXCEPTION_RECORD ExceptionRecord;
1746 PCONTEXT ContextRecord;
1747} EXCEPTION_POINTERS,*PEXCEPTION_POINTERS,*LPEXCEPTION_POINTERS;
1748typedef union _LARGE_INTEGER {
1749 struct {
1750 DWORD LowPart;
1751 LONG HighPart;
1752 } u;
1753#if ! defined(NONAMELESSUNION) || defined(__cplusplus)
1754 _ANONYMOUS_STRUCT struct {
1755 DWORD LowPart;
1756 LONG HighPart;
1757 };
1758#endif /* NONAMELESSUNION */
1759 LONGLONG QuadPart;
1760} LARGE_INTEGER, *PLARGE_INTEGER;
1761typedef union _ULARGE_INTEGER {
1762 struct {
1763 DWORD LowPart;
1764 DWORD HighPart;
1765 } u;
1766#if ! defined(NONAMELESSUNION) || defined(__cplusplus)
1767 _ANONYMOUS_STRUCT struct {
1768 DWORD LowPart;
1769 DWORD HighPart;
1770 };
1771#endif /* NONAMELESSUNION */
1772 ULONGLONG QuadPart;
1773} ULARGE_INTEGER, *PULARGE_INTEGER;
1774typedef LARGE_INTEGER LUID,*PLUID;
1775#pragma pack(push,4)
1776typedef struct _LUID_AND_ATTRIBUTES {
1777 LUID Luid;
1778 DWORD Attributes;
1779} LUID_AND_ATTRIBUTES;
1780#pragma pack(pop)
1781typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
1782typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
1783typedef struct _PRIVILEGE_SET {
1784 DWORD PrivilegeCount;
1785 DWORD Control;
1786 LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
1787} PRIVILEGE_SET,*PPRIVILEGE_SET;
1788typedef struct _SECURITY_ATTRIBUTES {
1789 DWORD nLength;
1790 LPVOID lpSecurityDescriptor;
1791 BOOL bInheritHandle;
1792} SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;
1793typedef enum _SECURITY_IMPERSONATION_LEVEL {
1794 SecurityAnonymous,
1795 SecurityIdentification,
1796 SecurityImpersonation,
1797 SecurityDelegation
1798} SECURITY_IMPERSONATION_LEVEL;
1799typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,*PSECURITY_CONTEXT_TRACKING_MODE;
1800typedef struct _SECURITY_QUALITY_OF_SERVICE {
1801 DWORD Length;
1802 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
1803 SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
1804 BOOLEAN EffectiveOnly;
1805} SECURITY_QUALITY_OF_SERVICE,*PSECURITY_QUALITY_OF_SERVICE;
1806typedef PVOID PACCESS_TOKEN;
1807typedef struct _SE_IMPERSONATION_STATE {
1808 PACCESS_TOKEN Token;
1809 BOOLEAN CopyOnOpen;
1810 BOOLEAN EffectiveOnly;
1811 SECURITY_IMPERSONATION_LEVEL Level;
1812} SE_IMPERSONATION_STATE,*PSE_IMPERSONATION_STATE;
1813typedef struct _SID_IDENTIFIER_AUTHORITY {
1814 BYTE Value[6];
1815} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;
1816typedef PVOID PSID;
1817typedef struct _SID {
1818 BYTE Revision;
1819 BYTE SubAuthorityCount;
1820 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
1821 DWORD SubAuthority[ANYSIZE_ARRAY];
1822} SID, *PISID;
1823typedef struct _SID_AND_ATTRIBUTES {
1824 PSID Sid;
1825 DWORD Attributes;
1826} SID_AND_ATTRIBUTES;
1827typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
1828typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY;
1829typedef struct _TOKEN_SOURCE {
1830 CHAR SourceName[TOKEN_SOURCE_LENGTH];
1831 LUID SourceIdentifier;
1832} TOKEN_SOURCE,*PTOKEN_SOURCE;
1833typedef struct _TOKEN_CONTROL {
1834 LUID TokenId;
1835 LUID AuthenticationId;
1836 LUID ModifiedId;
1837 TOKEN_SOURCE TokenSource;
1838} TOKEN_CONTROL,*PTOKEN_CONTROL;
1839typedef struct _TOKEN_DEFAULT_DACL {
1840 PACL DefaultDacl;
1841} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
1842typedef struct _TOKEN_GROUPS {
1843 DWORD GroupCount;
1844 SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
1845} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
1846typedef struct _TOKEN_OWNER {
1847 PSID Owner;
1848} TOKEN_OWNER,*PTOKEN_OWNER;
1849typedef struct _TOKEN_PRIMARY_GROUP {
1850 PSID PrimaryGroup;
1851} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
1852typedef struct _TOKEN_PRIVILEGES {
1853 DWORD PrivilegeCount;
1854 LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
1855} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
1856typedef enum tagTOKEN_TYPE { TokenPrimary=1,TokenImpersonation }TOKEN_TYPE;
1857typedef struct _TOKEN_STATISTICS {
1858 LUID TokenId;
1859 LUID AuthenticationId;
1860 LARGE_INTEGER ExpirationTime;
1861 TOKEN_TYPE TokenType;
1862 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
1863 DWORD DynamicCharged;
1864 DWORD DynamicAvailable;
1865 DWORD GroupCount;
1866 DWORD PrivilegeCount;
1867 LUID ModifiedId;
1868} TOKEN_STATISTICS;
1869typedef struct _TOKEN_USER {
1870 SID_AND_ATTRIBUTES User;
1871} TOKEN_USER, *PTOKEN_USER;
1872typedef DWORD SECURITY_INFORMATION,*PSECURITY_INFORMATION;
1873typedef WORD SECURITY_DESCRIPTOR_CONTROL,*PSECURITY_DESCRIPTOR_CONTROL;
1874typedef struct _SECURITY_DESCRIPTOR {
1875 BYTE Revision;
1876 BYTE Sbz1;
1877 SECURITY_DESCRIPTOR_CONTROL Control;
1878 PSID Owner;
1879 PSID Group;
1880 PACL Sacl;
1881 PACL Dacl;
1882} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;
1883typedef enum _TOKEN_INFORMATION_CLASS {
1884 TokenUser=1,TokenGroups,TokenPrivileges,TokenOwner,
1885 TokenPrimaryGroup,TokenDefaultDacl,TokenSource,TokenType,
1886 TokenImpersonationLevel,TokenStatistics,TokenRestrictedSids,
1887 TokenSessionId
1888} TOKEN_INFORMATION_CLASS;
1889typedef enum _SID_NAME_USE {
1890 SidTypeUser=1,SidTypeGroup,SidTypeDomain,SidTypeAlias,SidTypeWellKnownGroup,
1891 SidTypeDeletedAccount,SidTypeInvalid,SidTypeUnknown
1892} SID_NAME_USE,*PSID_NAME_USE;
1893typedef struct _QUOTA_LIMITS {
1894 SIZE_T PagedPoolLimit;
1895 SIZE_T NonPagedPoolLimit;
1896 SIZE_T MinimumWorkingSetSize;
1897 SIZE_T MaximumWorkingSetSize;
1898 SIZE_T PagefileLimit;
1899 LARGE_INTEGER TimeLimit;
1900} QUOTA_LIMITS,*PQUOTA_LIMITS;
1901typedef struct _IO_COUNTERS {
1902 ULONGLONG ReadOperationCount;
1903 ULONGLONG WriteOperationCount;
1904 ULONGLONG OtherOperationCount;
1905 ULONGLONG ReadTransferCount;
1906 ULONGLONG WriteTransferCount;
1907 ULONGLONG OtherTransferCount;
1908} IO_COUNTERS, *PIO_COUNTERS;
1909typedef struct _FILE_NOTIFY_INFORMATION {
1910 DWORD NextEntryOffset;
1911 DWORD Action;
1912 DWORD FileNameLength;
1913 WCHAR FileName[1];
1914} FILE_NOTIFY_INFORMATION,*PFILE_NOTIFY_INFORMATION;
1915typedef struct _TAPE_ERASE {
1916 DWORD Type;
1917 BOOLEAN Immediate;
1918} TAPE_ERASE,*PTAPE_ERASE;
1919typedef struct _TAPE_GET_DRIVE_PARAMETERS {
1920 BOOLEAN ECC;
1921 BOOLEAN Compression;
1922 BOOLEAN DataPadding;
1923 BOOLEAN ReportSetmarks;
1924 DWORD DefaultBlockSize;
1925 DWORD MaximumBlockSize;
1926 DWORD MinimumBlockSize;
1927 DWORD MaximumPartitionCount;
1928 DWORD FeaturesLow;
1929 DWORD FeaturesHigh;
1930 DWORD EOTWarningZoneSize;
1931} TAPE_GET_DRIVE_PARAMETERS,*PTAPE_GET_DRIVE_PARAMETERS;
1932typedef struct _TAPE_GET_MEDIA_PARAMETERS {
1933 LARGE_INTEGER Capacity;
1934 LARGE_INTEGER Remaining;
1935 DWORD BlockSize;
1936 DWORD PartitionCount;
1937 BOOLEAN WriteProtected;
1938} TAPE_GET_MEDIA_PARAMETERS,*PTAPE_GET_MEDIA_PARAMETERS;
1939typedef struct _TAPE_GET_POSITION {
1940 ULONG Type;
1941 ULONG Partition;
1942 ULONG OffsetLow;
1943 ULONG OffsetHigh;
1944} TAPE_GET_POSITION,*PTAPE_GET_POSITION;
1945typedef struct _TAPE_PREPARE {
1946 DWORD Operation;
1947 BOOLEAN Immediate;
1948} TAPE_PREPARE,*PTAPE_PREPARE;
1949typedef struct _TAPE_SET_DRIVE_PARAMETERS {
1950 BOOLEAN ECC;
1951 BOOLEAN Compression;
1952 BOOLEAN DataPadding;
1953 BOOLEAN ReportSetmarks;
1954 ULONG EOTWarningZoneSize;
1955} TAPE_SET_DRIVE_PARAMETERS,*PTAPE_SET_DRIVE_PARAMETERS;
1956typedef struct _TAPE_SET_MEDIA_PARAMETERS {
1957 ULONG BlockSize;
1958} TAPE_SET_MEDIA_PARAMETERS,*PTAPE_SET_MEDIA_PARAMETERS;
1959typedef struct _TAPE_SET_POSITION {
1960 DWORD Method;
1961 DWORD Partition;
1962 LARGE_INTEGER Offset;
1963 BOOLEAN Immediate;
1964} TAPE_SET_POSITION,*PTAPE_SET_POSITION;
1965typedef struct _TAPE_WRITE_MARKS {
1966 DWORD Type;
1967 DWORD Count;
1968 BOOLEAN Immediate;
1969} TAPE_WRITE_MARKS,*PTAPE_WRITE_MARKS;
1970typedef struct _TAPE_CREATE_PARTITION {
1971 DWORD Method;
1972 DWORD Count;
1973 DWORD Size;
1974} TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION;
1975typedef struct _MEMORY_BASIC_INFORMATION {
1976 PVOID BaseAddress;
1977 PVOID AllocationBase;
1978 DWORD AllocationProtect;
1979 DWORD RegionSize;
1980 DWORD State;
1981 DWORD Protect;
1982 DWORD Type;
1983} MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION;
1984typedef struct _MESSAGE_RESOURCE_ENTRY {
1985 WORD Length;
1986 WORD Flags;
1987 BYTE Text[1];
1988} MESSAGE_RESOURCE_ENTRY,*PMESSAGE_RESOURCE_ENTRY;
1989typedef struct _MESSAGE_RESOURCE_BLOCK {
1990 DWORD LowId;
1991 DWORD HighId;
1992 DWORD OffsetToEntries;
1993} MESSAGE_RESOURCE_BLOCK,*PMESSAGE_RESOURCE_BLOCK;
1994typedef struct _MESSAGE_RESOURCE_DATA {
1995 DWORD NumberOfBlocks;
1996 MESSAGE_RESOURCE_BLOCK Blocks[1];
1997} MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA;
1998typedef struct _LIST_ENTRY {
1999 struct _LIST_ENTRY *Flink;
2000 struct _LIST_ENTRY *Blink;
2001} LIST_ENTRY,*PLIST_ENTRY;
2002typedef struct _RTL_CRITICAL_SECTION_DEBUG {
2003 WORD Type;
2004 WORD CreatorBackTraceIndex;
2005 struct _RTL_CRITICAL_SECTION *CriticalSection;
2006 LIST_ENTRY ProcessLocksList;
2007 DWORD EntryCount;
2008 DWORD ContentionCount;
2009 DWORD Spare[2];
2010} RTL_CRITICAL_SECTION_DEBUG,*PRTL_CRITICAL_SECTION_DEBUG;
2011typedef struct _RTL_CRITICAL_SECTION {
2012 PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
2013 LONG LockCount;
2014 LONG RecursionCount;
2015 HANDLE OwningThread;
2016 HANDLE LockSemaphore;
2017 DWORD Reserved;
2018} RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION;
2019typedef struct _EVENTLOGRECORD {
2020 DWORD Length;
2021 DWORD Reserved;
2022 DWORD RecordNumber;
2023 DWORD TimeGenerated;
2024 DWORD TimeWritten;
2025 DWORD EventID;
2026 WORD EventType;
2027 WORD NumStrings;
2028 WORD EventCategory;
2029 WORD ReservedFlags;
2030 DWORD ClosingRecordNumber;
2031 DWORD StringOffset;
2032 DWORD UserSidLength;
2033 DWORD UserSidOffset;
2034 DWORD DataLength;
2035 DWORD DataOffset;
2036} EVENTLOGRECORD,*PEVENTLOGRECORD;
2037typedef struct _OSVERSIONINFOA {
2038 DWORD dwOSVersionInfoSize;
2039 DWORD dwMajorVersion;
2040 DWORD dwMinorVersion;
2041 DWORD dwBuildNumber;
2042 DWORD dwPlatformId;
2043 CHAR szCSDVersion[128];
2044} OSVERSIONINFOA,*POSVERSIONINFOA,*LPOSVERSIONINFOA;
2045typedef struct _OSVERSIONINFOW {
2046 DWORD dwOSVersionInfoSize;
2047 DWORD dwMajorVersion;
2048 DWORD dwMinorVersion;
2049 DWORD dwBuildNumber;
2050 DWORD dwPlatformId;
2051 WCHAR szCSDVersion[128];
2052} OSVERSIONINFOW,*POSVERSIONINFOW,*LPOSVERSIONINFOW;
2053typedef struct _OSVERSIONINFOEXA {
2054 DWORD dwOSVersionInfoSize;
2055 DWORD dwMajorVersion;
2056 DWORD dwMinorVersion;
2057 DWORD dwBuildNumber;
2058 DWORD dwPlatformId;
2059 CHAR szCSDVersion[128];
2060 WORD wServicePackMajor;
2061 WORD wServicePackMinor;
2062 WORD wSuiteMask;
2063 BYTE wProductType;
2064 BYTE wReserved;
2065} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
2066typedef struct _OSVERSIONINFOEXW {
2067 DWORD dwOSVersionInfoSize;
2068 DWORD dwMajorVersion;
2069 DWORD dwMinorVersion;
2070 DWORD dwBuildNumber;
2071 DWORD dwPlatformId;
2072 WCHAR szCSDVersion[128];
2073 WORD wServicePackMajor;
2074 WORD wServicePackMinor;
2075 WORD wSuiteMask;
2076 BYTE wProductType;
2077 BYTE wReserved;
2078} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW;
2079#pragma pack(push,2)
2080typedef struct _IMAGE_VXD_HEADER {
2081 WORD e32_magic;
2082 BYTE e32_border;
2083 BYTE e32_worder;
2084 DWORD e32_level;
2085 WORD e32_cpu;
2086 WORD e32_os;
2087 DWORD e32_ver;
2088 DWORD e32_mflags;
2089 DWORD e32_mpages;
2090 DWORD e32_startobj;
2091 DWORD e32_eip;
2092 DWORD e32_stackobj;
2093 DWORD e32_esp;
2094 DWORD e32_pagesize;
2095 DWORD e32_lastpagesize;
2096 DWORD e32_fixupsize;
2097 DWORD e32_fixupsum;
2098 DWORD e32_ldrsize;
2099 DWORD e32_ldrsum;
2100 DWORD e32_objtab;
2101 DWORD e32_objcnt;
2102 DWORD e32_objmap;
2103 DWORD e32_itermap;
2104 DWORD e32_rsrctab;
2105 DWORD e32_rsrccnt;
2106 DWORD e32_restab;
2107 DWORD e32_enttab;
2108 DWORD e32_dirtab;
2109 DWORD e32_dircnt;
2110 DWORD e32_fpagetab;
2111 DWORD e32_frectab;
2112 DWORD e32_impmod;
2113 DWORD e32_impmodcnt;
2114 DWORD e32_impproc;
2115 DWORD e32_pagesum;
2116 DWORD e32_datapage;
2117 DWORD e32_preload;
2118 DWORD e32_nrestab;
2119 DWORD e32_cbnrestab;
2120 DWORD e32_nressum;
2121 DWORD e32_autodata;
2122 DWORD e32_debuginfo;
2123 DWORD e32_debuglen;
2124 DWORD e32_instpreload;
2125 DWORD e32_instdemand;
2126 DWORD e32_heapsize;
2127 BYTE e32_res3[12];
2128 DWORD e32_winresoff;
2129 DWORD e32_winreslen;
2130 WORD e32_devid;
2131 WORD e32_ddkver;
2132} IMAGE_VXD_HEADER,*PIMAGE_VXD_HEADER;
2133#pragma pack(pop)
2134#pragma pack(push,4)
2135typedef struct _IMAGE_FILE_HEADER {
2136 WORD Machine;
2137 WORD NumberOfSections;
2138 DWORD TimeDateStamp;
2139 DWORD PointerToSymbolTable;
2140 DWORD NumberOfSymbols;
2141 WORD SizeOfOptionalHeader;
2142 WORD Characteristics;
2143} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
2144typedef struct _IMAGE_DATA_DIRECTORY {
2145 DWORD VirtualAddress;
2146 DWORD Size;
2147} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;
2148typedef struct _IMAGE_OPTIONAL_HEADER {
2149 WORD Magic;
2150 BYTE MajorLinkerVersion;
2151 BYTE MinorLinkerVersion;
2152 DWORD SizeOfCode;
2153 DWORD SizeOfInitializedData;
2154 DWORD SizeOfUninitializedData;
2155 DWORD AddressOfEntryPoint;
2156 DWORD BaseOfCode;
2157 DWORD BaseOfData;
2158 DWORD ImageBase;
2159 DWORD SectionAlignment;
2160 DWORD FileAlignment;
2161 WORD MajorOperatingSystemVersion;
2162 WORD MinorOperatingSystemVersion;
2163 WORD MajorImageVersion;
2164 WORD MinorImageVersion;
2165 WORD MajorSubsystemVersion;
2166 WORD MinorSubsystemVersion;
2167 DWORD Reserved1;
2168 DWORD SizeOfImage;
2169 DWORD SizeOfHeaders;
2170 DWORD CheckSum;
2171 WORD Subsystem;
2172 WORD DllCharacteristics;
2173 DWORD SizeOfStackReserve;
2174 DWORD SizeOfStackCommit;
2175 DWORD SizeOfHeapReserve;
2176 DWORD SizeOfHeapCommit;
2177 DWORD LoaderFlags;
2178 DWORD NumberOfRvaAndSizes;
2179 IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
2180} IMAGE_OPTIONAL_HEADER,*PIMAGE_OPTIONAL_HEADER;
2181typedef struct _IMAGE_ROM_OPTIONAL_HEADER {
2182 WORD Magic;
2183 BYTE MajorLinkerVersion;
2184 BYTE MinorLinkerVersion;
2185 DWORD SizeOfCode;
2186 DWORD SizeOfInitializedData;
2187 DWORD SizeOfUninitializedData;
2188 DWORD AddressOfEntryPoint;
2189 DWORD BaseOfCode;
2190 DWORD BaseOfData;
2191 DWORD BaseOfBss;
2192 DWORD GprMask;
2193 DWORD CprMask[4];
2194 DWORD GpValue;
2195} IMAGE_ROM_OPTIONAL_HEADER,*PIMAGE_ROM_OPTIONAL_HEADER;
2196#pragma pack(pop)
2197#pragma pack(push,2)
2198typedef struct _IMAGE_DOS_HEADER {
2199 WORD e_magic;
2200 WORD e_cblp;
2201 WORD e_cp;
2202 WORD e_crlc;
2203 WORD e_cparhdr;
2204 WORD e_minalloc;
2205 WORD e_maxalloc;
2206 WORD e_ss;
2207 WORD e_sp;
2208 WORD e_csum;
2209 WORD e_ip;
2210 WORD e_cs;
2211 WORD e_lfarlc;
2212 WORD e_ovno;
2213 WORD e_res[4];
2214 WORD e_oemid;
2215 WORD e_oeminfo;
2216 WORD e_res2[10];
2217 LONG e_lfanew;
2218} IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER;
2219typedef struct _IMAGE_OS2_HEADER {
2220 WORD ne_magic;
2221 CHAR ne_ver;
2222 CHAR ne_rev;
2223 WORD ne_enttab;
2224 WORD ne_cbenttab;
2225 LONG ne_crc;
2226 WORD ne_flags;
2227 WORD ne_autodata;
2228 WORD ne_heap;
2229 WORD ne_stack;
2230 LONG ne_csip;
2231 LONG ne_sssp;
2232 WORD ne_cseg;
2233 WORD ne_cmod;
2234 WORD ne_cbnrestab;
2235 WORD ne_segtab;
2236 WORD ne_rsrctab;
2237 WORD ne_restab;
2238 WORD ne_modtab;
2239 WORD ne_imptab;
2240 LONG ne_nrestab;
2241 WORD ne_cmovent;
2242 WORD ne_align;
2243 WORD ne_cres;
2244 BYTE ne_exetyp;
2245 BYTE ne_flagsothers;
2246 WORD ne_pretthunks;
2247 WORD ne_psegrefbytes;
2248 WORD ne_swaparea;
2249 WORD ne_expver;
2250} IMAGE_OS2_HEADER,*PIMAGE_OS2_HEADER;
2251#pragma pack(pop)
2252#pragma pack(push,4)
2253typedef struct _IMAGE_NT_HEADERS {
2254 DWORD Signature;
2255 IMAGE_FILE_HEADER FileHeader;
2256 IMAGE_OPTIONAL_HEADER OptionalHeader;
2257} IMAGE_NT_HEADERS,*PIMAGE_NT_HEADERS;
2258typedef struct _IMAGE_ROM_HEADERS {
2259 IMAGE_FILE_HEADER FileHeader;
2260 IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
2261} IMAGE_ROM_HEADERS,*PIMAGE_ROM_HEADERS;
2262typedef struct _IMAGE_SECTION_HEADER {
2263 BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
2264 union {
2265 DWORD PhysicalAddress;
2266 DWORD VirtualSize;
2267 } Misc;
2268 DWORD VirtualAddress;
2269 DWORD SizeOfRawData;
2270 DWORD PointerToRawData;
2271 DWORD PointerToRelocations;
2272 DWORD PointerToLinenumbers;
2273 WORD NumberOfRelocations;
2274 WORD NumberOfLinenumbers;
2275 DWORD Characteristics;
2276} IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER;
2277#pragma pack(pop)
2278#pragma pack(push,2)
2279typedef struct _IMAGE_SYMBOL {
2280 union {
2281 BYTE ShortName[8];
2282 struct {
2283 DWORD Short;
2284 DWORD Long;
2285 } Name;
2286 PBYTE LongName[2];
2287 } N;
2288 DWORD Value;
2289 SHORT SectionNumber;
2290 WORD Type;
2291 BYTE StorageClass;
2292 BYTE NumberOfAuxSymbols;
2293} IMAGE_SYMBOL,*PIMAGE_SYMBOL;
2294typedef union _IMAGE_AUX_SYMBOL {
2295 struct {
2296 DWORD TagIndex;
2297 union {
2298 struct {
2299 WORD Linenumber;
2300 WORD Size;
2301 } LnSz;
2302 DWORD TotalSize;
2303 } Misc;
2304 union {
2305 struct {
2306 DWORD PointerToLinenumber;
2307 DWORD PointerToNextFunction;
2308 } Function;
2309 struct {
2310 WORD Dimension[4];
2311 } Array;
2312 } FcnAry;
2313 WORD TvIndex;
2314 } Sym;
2315 struct {
2316 BYTE Name[IMAGE_SIZEOF_SYMBOL];
2317 } File;
2318 struct {
2319 DWORD Length;
2320 WORD NumberOfRelocations;
2321 WORD NumberOfLinenumbers;
2322 DWORD CheckSum;
2323 SHORT Number;
2324 BYTE Selection;
2325 } Section;
2326} IMAGE_AUX_SYMBOL,*PIMAGE_AUX_SYMBOL;
2327typedef struct _IMAGE_COFF_SYMBOLS_HEADER {
2328 DWORD NumberOfSymbols;
2329 DWORD LvaToFirstSymbol;
2330 DWORD NumberOfLinenumbers;
2331 DWORD LvaToFirstLinenumber;
2332 DWORD RvaToFirstByteOfCode;
2333 DWORD RvaToLastByteOfCode;
2334 DWORD RvaToFirstByteOfData;
2335 DWORD RvaToLastByteOfData;
2336} IMAGE_COFF_SYMBOLS_HEADER,*PIMAGE_COFF_SYMBOLS_HEADER;
2337typedef struct _IMAGE_RELOCATION {
2338 _ANONYMOUS_UNION union {
2339 DWORD VirtualAddress;
2340 DWORD RelocCount;
2341 } DUMMYUNIONNAME;
2342 DWORD SymbolTableIndex;
2343 WORD Type;
2344} IMAGE_RELOCATION,*PIMAGE_RELOCATION;
2345#pragma pack(pop)
2346#pragma pack(push,4)
2347typedef struct _IMAGE_BASE_RELOCATION {
2348 DWORD VirtualAddress;
2349 DWORD SizeOfBlock;
2350} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION;
2351#pragma pack(pop)
2352#pragma pack(push,2)
2353typedef struct _IMAGE_LINENUMBER {
2354 union {
2355 DWORD SymbolTableIndex;
2356 DWORD VirtualAddress;
2357 } Type;
2358 WORD Linenumber;
2359} IMAGE_LINENUMBER,*PIMAGE_LINENUMBER;
2360#pragma pack(pop)
2361#pragma pack(push,4)
2362typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER {
2363 BYTE Name[16];
2364 BYTE Date[12];
2365 BYTE UserID[6];
2366 BYTE GroupID[6];
2367 BYTE Mode[8];
2368 BYTE Size[10];
2369 BYTE EndHeader[2];
2370} IMAGE_ARCHIVE_MEMBER_HEADER,*PIMAGE_ARCHIVE_MEMBER_HEADER;
2371typedef struct _IMAGE_EXPORT_DIRECTORY {
2372 DWORD Characteristics;
2373 DWORD TimeDateStamp;
2374 WORD MajorVersion;
2375 WORD MinorVersion;
2376 DWORD Name;
2377 DWORD Base;
2378 DWORD NumberOfFunctions;
2379 DWORD NumberOfNames;
2380 PDWORD *AddressOfFunctions;
2381 PDWORD *AddressOfNames;
2382 PWORD *AddressOfNameOrdinals;
2383} IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY;
2384typedef struct _IMAGE_IMPORT_BY_NAME {
2385 WORD Hint;
2386 BYTE Name[1];
2387} IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME;
2388typedef struct _IMAGE_THUNK_DATA {
2389 union {
2390 PBYTE ForwarderString;
2391 PDWORD Function;
2392 DWORD Ordinal;
2393 PIMAGE_IMPORT_BY_NAME AddressOfData;
2394 } u1;
2395} IMAGE_THUNK_DATA,*PIMAGE_THUNK_DATA;
2396typedef struct _IMAGE_IMPORT_DESCRIPTOR {
2397 _ANONYMOUS_UNION union {
2398 DWORD Characteristics;
2399 PIMAGE_THUNK_DATA OriginalFirstThunk;
2400 } DUMMYUNIONNAME;
2401 DWORD TimeDateStamp;
2402 DWORD ForwarderChain;
2403 DWORD Name;
2404 PIMAGE_THUNK_DATA FirstThunk;
2405} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR;
2406typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR {
2407 DWORD TimeDateStamp;
2408 WORD OffsetModuleName;
2409 WORD NumberOfModuleForwarderRefs;
2410} IMAGE_BOUND_IMPORT_DESCRIPTOR,*PIMAGE_BOUND_IMPORT_DESCRIPTOR;
2411typedef struct _IMAGE_BOUND_FORWARDER_REF {
2412 DWORD TimeDateStamp;
2413 WORD OffsetModuleName;
2414 WORD Reserved;
2415} IMAGE_BOUND_FORWARDER_REF,*PIMAGE_BOUND_FORWARDER_REF;
2416typedef void(NTAPI *PIMAGE_TLS_CALLBACK)(PVOID,DWORD,PVOID);
2417typedef struct _IMAGE_TLS_DIRECTORY {
2418 DWORD StartAddressOfRawData;
2419 DWORD EndAddressOfRawData;
2420 PDWORD AddressOfIndex;
2421 PIMAGE_TLS_CALLBACK *AddressOfCallBacks;
2422 DWORD SizeOfZeroFill;
2423 DWORD Characteristics;
2424} IMAGE_TLS_DIRECTORY,*PIMAGE_TLS_DIRECTORY;
2425typedef struct _IMAGE_RESOURCE_DIRECTORY {
2426 DWORD Characteristics;
2427 DWORD TimeDateStamp;
2428 WORD MajorVersion;
2429 WORD MinorVersion;
2430 WORD NumberOfNamedEntries;
2431 WORD NumberOfIdEntries;
2432} IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY;
2433_ANONYMOUS_STRUCT typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
2434 _ANONYMOUS_UNION union {
2435 _ANONYMOUS_STRUCT struct {
2436 DWORD NameOffset:31;
2437 DWORD NameIsString:1;
2438 }DUMMYSTRUCTNAME;
2439 DWORD Name;
2440 WORD Id;
2441 } DUMMYUNIONNAME;
2442 _ANONYMOUS_UNION union {
2443 DWORD OffsetToData;
2444 _ANONYMOUS_STRUCT struct {
2445 DWORD OffsetToDirectory:31;
2446 DWORD DataIsDirectory:1;
2447 } DUMMYSTRUCTNAME2;
2448 } DUMMYUNIONNAME2;
2449} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY;
2450typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {
2451 WORD Length;
2452 CHAR NameString[1];
2453} IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING;
2454typedef struct _IMAGE_RESOURCE_DIR_STRING_U {
2455 WORD Length;
2456 WCHAR NameString[1];
2457} IMAGE_RESOURCE_DIR_STRING_U,*PIMAGE_RESOURCE_DIR_STRING_U;
2458typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
2459 DWORD OffsetToData;
2460 DWORD Size;
2461 DWORD CodePage;
2462 DWORD Reserved;
2463} IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY;
2464typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY {
2465 DWORD Characteristics;
2466 DWORD TimeDateStamp;
2467 WORD MajorVersion;
2468 WORD MinorVersion;
2469 DWORD GlobalFlagsClear;
2470 DWORD GlobalFlagsSet;
2471 DWORD CriticalSectionDefaultTimeout;
2472 DWORD DeCommitFreeBlockThreshold;
2473 DWORD DeCommitTotalFreeThreshold;
2474 PVOID LockPrefixTable;
2475 DWORD MaximumAllocationSize;
2476 DWORD VirtualMemoryThreshold;
2477 DWORD ProcessHeapFlags;
2478 DWORD Reserved[4];
2479} IMAGE_LOAD_CONFIG_DIRECTORY,*PIMAGE_LOAD_CONFIG_DIRECTORY;
2480typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY {
2481 DWORD BeginAddress;
2482 DWORD EndAddress;
2483 PVOID ExceptionHandler;
2484 PVOID HandlerData;
2485 DWORD PrologEndAddress;
2486} IMAGE_RUNTIME_FUNCTION_ENTRY,*PIMAGE_RUNTIME_FUNCTION_ENTRY;
2487typedef struct _IMAGE_DEBUG_DIRECTORY {
2488 DWORD Characteristics;
2489 DWORD TimeDateStamp;
2490 WORD MajorVersion;
2491 WORD MinorVersion;
2492 DWORD Type;
2493 DWORD SizeOfData;
2494 DWORD AddressOfRawData;
2495 DWORD PointerToRawData;
2496} IMAGE_DEBUG_DIRECTORY,*PIMAGE_DEBUG_DIRECTORY;
2497typedef struct _FPO_DATA {
2498 DWORD ulOffStart;
2499 DWORD cbProcSize;
2500 DWORD cdwLocals;
2501 WORD cdwParams;
2502 WORD cbProlog:8;
2503 WORD cbRegs:3;
2504 WORD fHasSEH:1;
2505 WORD fUseBP:1;
2506 WORD reserved:1;
2507 WORD cbFrame:2;
2508} FPO_DATA,*PFPO_DATA;
2509typedef struct _IMAGE_DEBUG_MISC {
2510 DWORD DataType;
2511 DWORD Length;
2512 BOOLEAN Unicode;
2513 BYTE Reserved[3];
2514 BYTE Data[1];
2515} IMAGE_DEBUG_MISC,*PIMAGE_DEBUG_MISC;
2516typedef struct _IMAGE_FUNCTION_ENTRY {
2517 DWORD StartingAddress;
2518 DWORD EndingAddress;
2519 DWORD EndOfPrologue;
2520} IMAGE_FUNCTION_ENTRY,*PIMAGE_FUNCTION_ENTRY;
2521typedef struct _IMAGE_SEPARATE_DEBUG_HEADER {
2522 WORD Signature;
2523 WORD Flags;
2524 WORD Machine;
2525 WORD Characteristics;
2526 DWORD TimeDateStamp;
2527 DWORD CheckSum;
2528 DWORD ImageBase;
2529 DWORD SizeOfImage;
2530 DWORD NumberOfSections;
2531 DWORD ExportedNamesSize;
2532 DWORD DebugDirectorySize;
2533 DWORD Reserved[3];
2534} IMAGE_SEPARATE_DEBUG_HEADER,*PIMAGE_SEPARATE_DEBUG_HEADER;
2535#pragma pack(pop)
2536typedef enum _CM_SERVICE_NODE_TYPE {
2537 DriverType=SERVICE_KERNEL_DRIVER,
2538 FileSystemType=SERVICE_FILE_SYSTEM_DRIVER,
2539 Win32ServiceOwnProcess=SERVICE_WIN32_OWN_PROCESS,
2540 Win32ServiceShareProcess=SERVICE_WIN32_SHARE_PROCESS,
2541 AdapterType=SERVICE_ADAPTER,
2542 RecognizerType=SERVICE_RECOGNIZER_DRIVER
2543} SERVICE_NODE_TYPE;
2544typedef enum _CM_SERVICE_LOAD_TYPE {
2545 BootLoad=SERVICE_BOOT_START,
2546 SystemLoad=SERVICE_SYSTEM_START,
2547 AutoLoad=SERVICE_AUTO_START,
2548 DemandLoad=SERVICE_DEMAND_START,
2549 DisableLoad=SERVICE_DISABLED
2550} SERVICE_LOAD_TYPE;
2551typedef enum _CM_ERROR_CONTROL_TYPE {
2552 IgnoreError=SERVICE_ERROR_IGNORE,
2553 NormalError=SERVICE_ERROR_NORMAL,
2554 SevereError=SERVICE_ERROR_SEVERE,
2555 CriticalError=SERVICE_ERROR_CRITICAL
2556} SERVICE_ERROR_TYPE;
2557typedef struct _NT_TIB {
2558 struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
2559 PVOID StackBase;
2560 PVOID StackLimit;
2561 PVOID SubSystemTib;
2562 _ANONYMOUS_UNION union {
2563 PVOID FiberData;
2564 DWORD Version;
2565 } DUMMYUNIONNAME;
2566 PVOID ArbitraryUserPointer;
2567 struct _NT_TIB *Self;
2568} NT_TIB,*PNT_TIB;
2569typedef struct _REPARSE_DATA_BUFFER {
2570 DWORD ReparseTag;
2571 WORD ReparseDataLength;
2572 WORD Reserved;
2573 _ANONYMOUS_UNION union {
2574 struct {
2575 WORD SubstituteNameOffset;
2576 WORD SubstituteNameLength;
2577 WORD PrintNameOffset;
2578 WORD PrintNameLength;
2579 WCHAR PathBuffer[1];
2580 } SymbolicLinkReparseBuffer;
2581 struct {
2582 WORD SubstituteNameOffset;
2583 WORD SubstituteNameLength;
2584 WORD PrintNameOffset;
2585 WORD PrintNameLength;
2586 WCHAR PathBuffer[1];
2587 } MountPointReparseBuffer;
2588 struct {
2589 BYTE DataBuffer[1];
2590 } GenericReparseBuffer;
2591 } DUMMYUNIONNAME;
2592} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
2593typedef struct _REPARSE_GUID_DATA_BUFFER {
2594 DWORD ReparseTag;
2595 WORD ReparseDataLength;
2596 WORD Reserved;
2597 GUID ReparseGuid;
2598 struct {
2599 BYTE DataBuffer[1];
2600 } GenericReparseBuffer;
2601} REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER;
2602typedef struct _REPARSE_POINT_INFORMATION {
2603 WORD ReparseDataLength;
2604 WORD UnparsedNameLength;
2605} REPARSE_POINT_INFORMATION, *PREPARSE_POINT_INFORMATION;
2606
2607#ifdef UNICODE
2608typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
2609typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
2610#else
2611typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
2612typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
2613#endif
2614
2615#if defined(__GNUC__)
2616
2617PVOID GetCurrentFiber(void);
2618PVOID GetFiberData(void);
2619
2620PVOID GetCurrentFiber(void);
2621extern __inline__ PVOID GetCurrentFiber(void)
2622{
2623 void* ret;
2624 __asm__ volatile (
2625 "movl %%fs:0x10,%0"
2626 : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */
2627 :
2628 );
2629 return ret;
2630}
2631
2632PVOID GetFiberData(void);
2633extern __inline__ PVOID GetFiberData(void)
2634{
2635 void* ret;
2636 __asm__ volatile (
2637 "movl %%fs:0x10,%0\n"
2638 "movl (%0),%0"
2639 : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */
2640 :
2641 );
2642 return ret;
2643}
2644
2645#else
2646
2647extern PVOID GetCurrentFiber(void);
2648#pragma aux GetCurrentFiber = \
2649 "mov eax, dword ptr fs:0x10" \
2650 value [eax] \
2651 modify [eax];
2652
2653extern PVOID GetFiberData(void);
2654#pragma aux GetFiberData = \
2655 "mov eax, dword ptr fs:0x10" \
2656 "mov eax, [eax]" \
2657 value [eax] \
2658 modify [eax];
2659
2660#endif /* __GNUC__ */
2661
2662#endif
2663#ifdef __cplusplus
2664}
2665#endif
2666#endif
2667
win32/include/winapi/winreg.h+159−0
@@ -0,0 +1,159 @@
1#ifndef _WINREG_H
2#define _WINREG_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10#define HKEY_CLASSES_ROOT ((HKEY)0x80000000)
11#define HKEY_CURRENT_USER ((HKEY)0x80000001)
12#define HKEY_LOCAL_MACHINE ((HKEY)0x80000002)
13#define HKEY_USERS ((HKEY)0x80000003)
14#define HKEY_PERFORMANCE_DATA ((HKEY)0x80000004)
15#define HKEY_CURRENT_CONFIG ((HKEY)0x80000005)
16#define HKEY_DYN_DATA ((HKEY)0x80000006)
17#define REG_OPTION_VOLATILE 1
18#define REG_OPTION_NON_VOLATILE 0
19#define REG_CREATED_NEW_KEY 1
20#define REG_OPENED_EXISTING_KEY 2
21#define REG_NONE 0
22#define REG_SZ 1
23#define REG_EXPAND_SZ 2
24#define REG_BINARY 3
25#define REG_DWORD 4
26#define REG_DWORD_BIG_ENDIAN 5
27#define REG_DWORD_LITTLE_ENDIAN 4
28#define REG_LINK 6
29#define REG_MULTI_SZ 7
30#define REG_RESOURCE_LIST 8
31#define REG_FULL_RESOURCE_DESCRIPTOR 9
32#define REG_RESOURCE_REQUIREMENTS_LIST 10
33#define REG_NOTIFY_CHANGE_NAME 1
34#define REG_NOTIFY_CHANGE_ATTRIBUTES 2
35#define REG_NOTIFY_CHANGE_LAST_SET 4
36#define REG_NOTIFY_CHANGE_SECURITY 8
37
38#ifndef RC_INVOKED
39typedef ACCESS_MASK REGSAM;
40typedef struct value_entA {
41 LPSTR ve_valuename;
42 DWORD ve_valuelen;
43 DWORD ve_valueptr;
44 DWORD ve_type;
45} VALENTA,*PVALENTA;
46typedef struct value_entW {
47 LPWSTR ve_valuename;
48 DWORD ve_valuelen;
49 DWORD ve_valueptr;
50 DWORD ve_type;
51} VALENTW,*PVALENTW;
52BOOL WINAPI AbortSystemShutdownA(LPCSTR);
53BOOL WINAPI AbortSystemShutdownW(LPCWSTR);
54BOOL WINAPI InitiateSystemShutdownA(LPSTR,LPSTR,DWORD,BOOL,BOOL);
55BOOL WINAPI InitiateSystemShutdownW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL);
56LONG WINAPI RegCloseKey(HKEY);
57LONG WINAPI RegConnectRegistryA(LPSTR,HKEY,PHKEY);
58LONG WINAPI RegConnectRegistryW(LPWSTR,HKEY,PHKEY);
59LONG WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY);
60LONG WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
61LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
62LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY);
63LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR);
64LONG WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
65LONG WINAPI RegDeleteValueA (HKEY,LPCSTR);
66LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR);
67LONG WINAPI RegEnumKeyA (HKEY,DWORD,LPSTR,DWORD);
68LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
69LONG WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,LPSTR,PDWORD,PFILETIME);
70LONG WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,LPWSTR,PDWORD,PFILETIME);
71LONG WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
72LONG WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
73LONG WINAPI RegFlushKey(HKEY);
74LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PDWORD);
75LONG WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR);
76LONG WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR);
77LONG WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
78LONG WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY);
79LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY);
80LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
81LONG WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY);
82LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
83LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
84LONG WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,PDWORD);
85LONG WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,PDWORD);
86LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,PLONG);
87LONG WINAPI RegQueryValueExA (HKEY,LPCSTR,PDWORD,PDWORD,LPBYTE,PDWORD);
88LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,PDWORD,PDWORD,LPBYTE,PDWORD);
89LONG WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,PLONG);
90LONG WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
91LONG WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
92LONG WINAPI RegRestoreKeyA (HKEY,LPCSTR,DWORD);
93LONG WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD);
94LONG WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
95LONG WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
96LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
97LONG WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
98LONG WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD);
99LONG WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,const BYTE*,DWORD);
100LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
101LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR);
102LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR);
103
104#ifdef UNICODE
105typedef VALENTW VALENT,*PVALENT;
106#define AbortSystemShutdown AbortSystemShutdownW
107#define InitiateSystemShutdown InitiateSystemShutdownW
108#define RegConnectRegistry RegConnectRegistryW
109#define RegCreateKey RegCreateKeyW
110#define RegCreateKeyEx RegCreateKeyExW
111#define RegDeleteKey RegDeleteKeyW
112#define RegDeleteValue RegDeleteValueW
113#define RegEnumKey RegEnumKeyW
114#define RegEnumKeyEx RegEnumKeyExW
115#define RegEnumValue RegEnumValueW
116#define RegLoadKey RegLoadKeyW
117#define RegOpenKey RegOpenKeyW
118#define RegOpenKeyEx RegOpenKeyExW
119#define RegQueryInfoKey RegQueryInfoKeyW
120#define RegQueryMultipleValues RegQueryMultipleValuesW
121#define RegQueryValue RegQueryValueW
122#define RegQueryValueEx RegQueryValueExW
123#define RegReplaceKey RegReplaceKeyW
124#define RegRestoreKey RegRestoreKeyW
125#define RegSaveKey RegSaveKeyW
126#define RegSetValue RegSetValueW
127#define RegSetValueEx RegSetValueExW
128#define RegUnLoadKey RegUnLoadKeyW
129#else
130typedef VALENTA VALENT,*PVALENT;
131#define AbortSystemShutdown AbortSystemShutdownA
132#define InitiateSystemShutdown InitiateSystemShutdownA
133#define RegConnectRegistry RegConnectRegistryA
134#define RegCreateKey RegCreateKeyA
135#define RegCreateKeyEx RegCreateKeyExA
136#define RegDeleteKey RegDeleteKeyA
137#define RegDeleteValue RegDeleteValueA
138#define RegEnumKey RegEnumKeyA
139#define RegEnumKeyEx RegEnumKeyExA
140#define RegEnumValue RegEnumValueA
141#define RegLoadKey RegLoadKeyA
142#define RegOpenKey RegOpenKeyA
143#define RegOpenKeyEx RegOpenKeyExA
144#define RegQueryInfoKey RegQueryInfoKeyA
145#define RegQueryMultipleValues RegQueryMultipleValuesA
146#define RegQueryValue RegQueryValueA
147#define RegQueryValueEx RegQueryValueExA
148#define RegReplaceKey RegReplaceKeyA
149#define RegRestoreKey RegRestoreKeyA
150#define RegSaveKey RegSaveKeyA
151#define RegSetValue RegSetValueA
152#define RegSetValueEx RegSetValueExA
153#define RegUnLoadKey RegUnLoadKeyA
154#endif
155#endif
156#ifdef __cplusplus
157}
158#endif
159#endif
win32/include/winapi/winsvc.h+309−0
@@ -0,0 +1,309 @@
1#ifndef _WINSVC_H
2#define _WINSVC_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10#define SERVICES_ACTIVE_DATABASEA "ServicesActive"
11#define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
12#define SERVICES_FAILED_DATABASEA "ServicesFailed"
13#define SERVICES_FAILED_DATABASEW L"ServicesFailed"
14#define SC_GROUP_IDENTIFIERA '+'
15#define SC_GROUP_IDENTIFIERW L'+'
16#define SC_MANAGER_ALL_ACCESS 0xf003f
17#define SC_MANAGER_CONNECT 1
18#define SC_MANAGER_CREATE_SERVICE 2
19#define SC_MANAGER_ENUMERATE_SERVICE 4
20#define SC_MANAGER_LOCK 8
21#define SC_MANAGER_QUERY_LOCK_STATUS 16
22#define SC_MANAGER_MODIFY_BOOT_CONFIG 32
23#define SERVICE_NO_CHANGE (-1)
24#define SERVICE_STOPPED 1
25#define SERVICE_START_PENDING 2
26#define SERVICE_STOP_PENDING 3
27#define SERVICE_RUNNING 4
28#define SERVICE_CONTINUE_PENDING 5
29#define SERVICE_PAUSE_PENDING 6
30#define SERVICE_PAUSED 7
31#define SERVICE_ACCEPT_STOP 1
32#define SERVICE_ACCEPT_PAUSE_CONTINUE 2
33#define SERVICE_ACCEPT_SHUTDOWN 4
34#define SERVICE_ACCEPT_PARAMCHANGE 8
35#define SERVICE_ACCEPT_NETBINDCHANGE 16
36#define SERVICE_ACCEPT_HARDWAREPROFILECHANGE 32
37#define SERVICE_ACCEPT_POWEREVENT 64
38#define SERVICE_ACCEPT_SESSIONCHANGE 128
39#define SERVICE_CONTROL_STOP 1
40#define SERVICE_CONTROL_PAUSE 2
41#define SERVICE_CONTROL_CONTINUE 3
42#define SERVICE_CONTROL_INTERROGATE 4
43#define SERVICE_CONTROL_SHUTDOWN 5
44#define SERVICE_CONTROL_PARAMCHANGE 6
45#define SERVICE_CONTROL_NETBINDADD 7
46#define SERVICE_CONTROL_NETBINDREMOVE 8
47#define SERVICE_CONTROL_NETBINDENABLE 9
48#define SERVICE_CONTROL_NETBINDDISABLE 10
49#define SERVICE_CONTROL_DEVICEEVENT 11
50#define SERVICE_CONTROL_HARDWAREPROFILECHANGE 12
51#define SERVICE_CONTROL_POWEREVENT 13
52#define SERVICE_CONTROL_SESSIONCHANGE 14
53#define SERVICE_ACTIVE 1
54#define SERVICE_INACTIVE 2
55#define SERVICE_STATE_ALL 3
56#define SERVICE_QUERY_CONFIG 1
57#define SERVICE_CHANGE_CONFIG 2
58#define SERVICE_QUERY_STATUS 4
59#define SERVICE_ENUMERATE_DEPENDENTS 8
60#define SERVICE_START 16
61#define SERVICE_STOP 32
62#define SERVICE_PAUSE_CONTINUE 64
63#define SERVICE_INTERROGATE 128
64#define SERVICE_USER_DEFINED_CONTROL 256
65#define SERVICE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SERVICE_QUERY_CONFIG|SERVICE_CHANGE_CONFIG|SERVICE_QUERY_STATUS|SERVICE_ENUMERATE_DEPENDENTS|SERVICE_START|SERVICE_STOP|SERVICE_PAUSE_CONTINUE|SERVICE_INTERROGATE|SERVICE_USER_DEFINED_CONTROL)
66#define SERVICE_RUNS_IN_SYSTEM_PROCESS 1
67#define SERVICE_CONFIG_DESCRIPTION 1
68#define SERVICE_CONFIG_FAILURE_ACTIONS 2
69
70typedef struct _SERVICE_STATUS {
71 DWORD dwServiceType;
72 DWORD dwCurrentState;
73 DWORD dwControlsAccepted;
74 DWORD dwWin32ExitCode;
75 DWORD dwServiceSpecificExitCode;
76 DWORD dwCheckPoint;
77 DWORD dwWaitHint;
78} SERVICE_STATUS,*LPSERVICE_STATUS;
79typedef struct _SERVICE_STATUS_PROCESS {
80 DWORD dwServiceType;
81 DWORD dwCurrentState;
82 DWORD dwControlsAccepted;
83 DWORD dwWin32ExitCode;
84 DWORD dwServiceSpecificExitCode;
85 DWORD dwCheckPoint;
86 DWORD dwWaitHint;
87 DWORD dwProcessId;
88 DWORD dwServiceFlags;
89} SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS;
90typedef enum _SC_STATUS_TYPE {
91 SC_STATUS_PROCESS_INFO = 0
92} SC_STATUS_TYPE;
93typedef enum _SC_ENUM_TYPE {
94 SC_ENUM_PROCESS_INFO = 0
95} SC_ENUM_TYPE;
96typedef struct _ENUM_SERVICE_STATUSA {
97 LPSTR lpServiceName;
98 LPSTR lpDisplayName;
99 SERVICE_STATUS ServiceStatus;
100} ENUM_SERVICE_STATUSA,*LPENUM_SERVICE_STATUSA;
101typedef struct _ENUM_SERVICE_STATUSW {
102 LPWSTR lpServiceName;
103 LPWSTR lpDisplayName;
104 SERVICE_STATUS ServiceStatus;
105} ENUM_SERVICE_STATUSW,*LPENUM_SERVICE_STATUSW;
106typedef struct _ENUM_SERVICE_STATUS_PROCESSA {
107 LPSTR lpServiceName;
108 LPSTR lpDisplayName;
109 SERVICE_STATUS_PROCESS ServiceStatusProcess;
110} ENUM_SERVICE_STATUS_PROCESSA,*LPENUM_SERVICE_STATUS_PROCESSA;
111typedef struct _ENUM_SERVICE_STATUS_PROCESSW {
112 LPWSTR lpServiceName;
113 LPWSTR lpDisplayName;
114 SERVICE_STATUS_PROCESS ServiceStatusProcess;
115} ENUM_SERVICE_STATUS_PROCESSW,*LPENUM_SERVICE_STATUS_PROCESSW;
116typedef struct _QUERY_SERVICE_CONFIGA {
117 DWORD dwServiceType;
118 DWORD dwStartType;
119 DWORD dwErrorControl;
120 LPSTR lpBinaryPathName;
121 LPSTR lpLoadOrderGroup;
122 DWORD dwTagId;
123 LPSTR lpDependencies;
124 LPSTR lpServiceStartName;
125 LPSTR lpDisplayName;
126} QUERY_SERVICE_CONFIGA,*LPQUERY_SERVICE_CONFIGA;
127typedef struct _QUERY_SERVICE_CONFIGW {
128 DWORD dwServiceType;
129 DWORD dwStartType;
130 DWORD dwErrorControl;
131 LPWSTR lpBinaryPathName;
132 LPWSTR lpLoadOrderGroup;
133 DWORD dwTagId;
134 LPWSTR lpDependencies;
135 LPWSTR lpServiceStartName;
136 LPWSTR lpDisplayName;
137} QUERY_SERVICE_CONFIGW,*LPQUERY_SERVICE_CONFIGW;
138typedef struct _QUERY_SERVICE_LOCK_STATUSA {
139 DWORD fIsLocked;
140 LPSTR lpLockOwner;
141 DWORD dwLockDuration;
142} QUERY_SERVICE_LOCK_STATUSA,*LPQUERY_SERVICE_LOCK_STATUSA;
143typedef struct _QUERY_SERVICE_LOCK_STATUSW {
144 DWORD fIsLocked;
145 LPWSTR lpLockOwner;
146 DWORD dwLockDuration;
147} QUERY_SERVICE_LOCK_STATUSW,*LPQUERY_SERVICE_LOCK_STATUSW;
148typedef void (WINAPI *LPSERVICE_MAIN_FUNCTIONA)(DWORD,LPSTR*);
149typedef void (WINAPI *LPSERVICE_MAIN_FUNCTIONW)(DWORD,LPWSTR*);
150typedef struct _SERVICE_TABLE_ENTRYA {
151 LPSTR lpServiceName;
152 LPSERVICE_MAIN_FUNCTIONA lpServiceProc;
153} SERVICE_TABLE_ENTRYA,*LPSERVICE_TABLE_ENTRYA;
154typedef struct _SERVICE_TABLE_ENTRYW {
155 LPWSTR lpServiceName;
156 LPSERVICE_MAIN_FUNCTIONW lpServiceProc;
157} SERVICE_TABLE_ENTRYW,*LPSERVICE_TABLE_ENTRYW;
158DECLARE_HANDLE(SC_HANDLE);
159typedef SC_HANDLE *LPSC_HANDLE;
160typedef PVOID SC_LOCK;
161typedef DWORD SERVICE_STATUS_HANDLE;
162typedef VOID(WINAPI *LPHANDLER_FUNCTION)(DWORD);
163typedef DWORD (WINAPI *LPHANDLER_FUNCTION_EX)(DWORD,DWORD,LPVOID,LPVOID);
164typedef struct _SERVICE_DESCRIPTIONA {
165 LPSTR lpDescription;
166} SERVICE_DESCRIPTIONA,*LPSERVICE_DESCRIPTIONA;
167typedef struct _SERVICE_DESCRIPTIONW {
168 LPWSTR lpDescription;
169} SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW;
170typedef enum _SC_ACTION_TYPE {
171 SC_ACTION_NONE = 0,
172 SC_ACTION_RESTART = 1,
173 SC_ACTION_REBOOT = 2,
174 SC_ACTION_RUN_COMMAND = 3
175} SC_ACTION_TYPE;
176typedef struct _SC_ACTION {
177 SC_ACTION_TYPE Type;
178 DWORD Delay;
179} SC_ACTION,*LPSC_ACTION;
180typedef struct _SERVICE_FAILURE_ACTIONSA {
181 DWORD dwResetPeriod;
182 LPSTR lpRebootMsg;
183 LPSTR lpCommand;
184 DWORD cActions;
185 SC_ACTION * lpsaActions;
186} SERVICE_FAILURE_ACTIONSA,*LPSERVICE_FAILURE_ACTIONSA;
187typedef struct _SERVICE_FAILURE_ACTIONSW {
188 DWORD dwResetPeriod;
189 LPWSTR lpRebootMsg;
190 LPWSTR lpCommand;
191 DWORD cActions;
192 SC_ACTION * lpsaActions;
193} SERVICE_FAILURE_ACTIONSW,*LPSERVICE_FAILURE_ACTIONSW;
194
195BOOL WINAPI ChangeServiceConfigA(SC_HANDLE,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,LPDWORD,LPCSTR,LPCSTR,LPCSTR,LPCSTR);
196BOOL WINAPI ChangeServiceConfigW(SC_HANDLE,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,LPDWORD,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
197BOOL WINAPI ChangeServiceConfig2A(SC_HANDLE,DWORD,LPVOID);
198BOOL WINAPI ChangeServiceConfig2W(SC_HANDLE,DWORD,LPVOID);
199BOOL WINAPI CloseServiceHandle(SC_HANDLE);
200BOOL WINAPI ControlService(SC_HANDLE,DWORD,LPSERVICE_STATUS);
201SC_HANDLE WINAPI CreateServiceA(SC_HANDLE,LPCSTR,LPCSTR,DWORD,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,PDWORD,LPCSTR,LPCSTR,LPCSTR);
202SC_HANDLE WINAPI CreateServiceW(SC_HANDLE,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,PDWORD,LPCWSTR,LPCWSTR,LPCWSTR);
203BOOL WINAPI DeleteService(SC_HANDLE);
204BOOL WINAPI EnumDependentServicesA(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSA,DWORD,PDWORD,PDWORD);
205BOOL WINAPI EnumDependentServicesW(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSW,DWORD,PDWORD,PDWORD);
206BOOL WINAPI EnumServicesStatusA(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSA,DWORD,PDWORD,PDWORD,PDWORD);
207BOOL WINAPI EnumServicesStatusW(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSW,DWORD,PDWORD,PDWORD,PDWORD);
208BOOL WINAPI EnumServicesStatusExA(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCSTR);
209BOOL WINAPI EnumServicesStatusExW(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCWSTR);
210BOOL WINAPI GetServiceDisplayNameA(SC_HANDLE,LPCSTR,LPSTR,PDWORD);
211BOOL WINAPI GetServiceDisplayNameW(SC_HANDLE,LPCWSTR,LPWSTR,PDWORD);
212BOOL WINAPI GetServiceKeyNameA(SC_HANDLE,LPCSTR,LPSTR,PDWORD);
213BOOL WINAPI GetServiceKeyNameW(SC_HANDLE,LPCWSTR,LPWSTR,PDWORD);
214SC_LOCK WINAPI LockServiceDatabase(SC_HANDLE);
215BOOL WINAPI NotifyBootConfigStatus(BOOL);
216SC_HANDLE WINAPI OpenSCManagerA(LPCSTR,LPCSTR,DWORD);
217SC_HANDLE WINAPI OpenSCManagerW(LPCWSTR,LPCWSTR,DWORD);
218SC_HANDLE WINAPI OpenServiceA(SC_HANDLE,LPCSTR,DWORD);
219SC_HANDLE WINAPI OpenServiceW(SC_HANDLE,LPCWSTR,DWORD);
220BOOL WINAPI QueryServiceConfigA(SC_HANDLE,LPQUERY_SERVICE_CONFIGA,DWORD,PDWORD);
221BOOL WINAPI QueryServiceConfigW(SC_HANDLE,LPQUERY_SERVICE_CONFIGW,DWORD,PDWORD);
222BOOL WINAPI QueryServiceConfig2A(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
223BOOL WINAPI QueryServiceConfig2W(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
224BOOL WINAPI QueryServiceLockStatusA(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSA,DWORD,PDWORD);
225BOOL WINAPI QueryServiceLockStatusW(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSW,DWORD,PDWORD);
226BOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
227BOOL WINAPI QueryServiceStatus(SC_HANDLE,LPSERVICE_STATUS);
228BOOL WINAPI QueryServiceStatusEx(SC_HANDLE,SC_STATUS_TYPE,LPBYTE,DWORD,LPDWORD);
229SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerA(LPCSTR,LPHANDLER_FUNCTION);
230SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerW(LPCWSTR,LPHANDLER_FUNCTION);
231SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExA(LPCSTR,LPHANDLER_FUNCTION_EX,LPVOID);
232SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR,LPHANDLER_FUNCTION_EX,LPVOID);
233BOOL WINAPI SetServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
234BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE,LPSERVICE_STATUS);
235BOOL WINAPI StartServiceA(SC_HANDLE,DWORD,LPCSTR*);
236BOOL WINAPI StartServiceCtrlDispatcherA(LPSERVICE_TABLE_ENTRYA);
237BOOL WINAPI StartServiceCtrlDispatcherW(LPSERVICE_TABLE_ENTRYW);
238BOOL WINAPI StartServiceW(SC_HANDLE,DWORD,LPCWSTR);
239BOOL WINAPI UnlockServiceDatabase(SC_LOCK);
240
241#ifdef UNICODE
242typedef ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS,*LPENUM_SERVICE_STATUS;
243typedef ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESS;
244typedef LPENUM_SERVICE_STATUS_PROCESSW LPENUM_SERVICE_STATUS_PROCESS;
245typedef QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIG,*LPQUERY_SERVICE_CONFIG;
246typedef QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS;
247typedef SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY;
248typedef LPSERVICE_MAIN_FUNCTIONW LPSERVICE_MAIN_FUNCTION;
249typedef SERVICE_DESCRIPTIONW SERVICE_DESCRIPTION;
250typedef LPSERVICE_DESCRIPTIONW LPSERVICE_DESCRIPTION;
251typedef SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONS;
252typedef LPSERVICE_FAILURE_ACTIONSW LPSERVICE_FAILURE_ACTIONS;
253#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW
254#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW
255#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW
256#define ChangeServiceConfig ChangeServiceConfigW
257#define ChangeServiceConfig2 ChangeServiceConfig2W
258#define CreateService CreateServiceW
259#define EnumDependentServices EnumDependentServicesW
260#define EnumServicesStatus EnumServicesStatusW
261#define EnumServicesStatusEx EnumServicesStatusExW
262#define GetServiceDisplayName GetServiceDisplayNameW
263#define GetServiceKeyName GetServiceKeyNameW
264#define OpenSCManager OpenSCManagerW
265#define OpenService OpenServiceW
266#define QueryServiceConfig QueryServiceConfigW
267#define QueryServiceConfig2 QueryServiceConfig2W
268#define QueryServiceLockStatus QueryServiceLockStatusW
269#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerW
270#define RegisterServiceCtrlHandlerEx RegisterServiceCtrlHandlerExW
271#define StartService StartServiceW
272#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherW
273#else
274typedef ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUS,*LPENUM_SERVICE_STATUS;
275typedef ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESS;
276typedef LPENUM_SERVICE_STATUS_PROCESSA LPENUM_SERVICE_STATUS_PROCESS;
277typedef QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIG,*LPQUERY_SERVICE_CONFIG;
278typedef QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS;
279typedef SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY;
280typedef LPSERVICE_MAIN_FUNCTIONA LPSERVICE_MAIN_FUNCTION;
281typedef SERVICE_DESCRIPTIONA SERVICE_DESCRIPTION;
282typedef LPSERVICE_DESCRIPTIONA LPSERVICE_DESCRIPTION;
283typedef SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS;
284typedef LPSERVICE_FAILURE_ACTIONSA LPSERVICE_FAILURE_ACTIONS;
285#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA
286#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA
287#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA
288#define ChangeServiceConfig ChangeServiceConfigA
289#define ChangeServiceConfig2 ChangeServiceConfig2A
290#define CreateService CreateServiceA
291#define EnumDependentServices EnumDependentServicesA
292#define EnumServicesStatus EnumServicesStatusA
293#define EnumServicesStatusEx EnumServicesStatusExA
294#define GetServiceDisplayName GetServiceDisplayNameA
295#define GetServiceKeyName GetServiceKeyNameA
296#define OpenSCManager OpenSCManagerA
297#define OpenService OpenServiceA
298#define QueryServiceConfig QueryServiceConfigA
299#define QueryServiceConfig2 QueryServiceConfig2A
300#define QueryServiceLockStatus QueryServiceLockStatusA
301#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerA
302#define RegisterServiceCtrlHandlerEx RegisterServiceCtrlHandlerExA
303#define StartService StartServiceA
304#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherA
305#endif
306#ifdef __cplusplus
307}
308#endif
309#endif /* _WINSVC_H */
win32/include/winapi/winuser.h+3472−0
@@ -0,0 +1,3472 @@
1#ifndef _WINUSER_H
2#define _WINUSER_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10#define WC_DIALOG MAKEINTATOM(0x8002)
11#define FALT 16
12#define FCONTROL 8
13#define FNOINVERT 2
14#define FSHIFT 4
15#define FVIRTKEY 1
16#define ATF_TIMEOUTON 1
17#define ATF_ONOFFFEEDBACK 2
18#define ATF_AVAILABLE 4 /* May be obsolete. Not in recent MS docs. */
19#define WH_MIN (-1)
20#define WH_MSGFILTER (-1)
21#define WH_JOURNALRECORD 0
22#define WH_JOURNALPLAYBACK 1
23#define WH_KEYBOARD 2
24#define WH_GETMESSAGE 3
25#define WH_CALLWNDPROC 4
26#define WH_CBT 5
27#define WH_SYSMSGFILTER 6
28#define WH_MOUSE 7
29#define WH_HARDWARE 8
30#define WH_DEBUG 9
31#define WH_SHELL 10
32#define WH_FOREGROUNDIDLE 11
33#define WH_CALLWNDPROCRET 12
34#define WH_KEYBOARD_LL 13
35#define WH_MOUSE_LL 14
36#define WH_MAX 14
37#define WH_MINHOOK WH_MIN
38#define WH_MAXHOOK WH_MAX
39#define HC_ACTION 0
40#define HC_GETNEXT 1
41#define HC_SKIP 2
42#define HC_NOREMOVE 3
43#define HC_NOREM 3
44#define HC_SYSMODALON 4
45#define HC_SYSMODALOFF 5
46#define HCBT_MOVESIZE 0
47#define HCBT_MINMAX 1
48#define HCBT_QS 2
49#define HCBT_CREATEWND 3
50#define HCBT_DESTROYWND 4
51#define HCBT_ACTIVATE 5
52#define HCBT_CLICKSKIPPED 6
53#define HCBT_KEYSKIPPED 7
54#define HCBT_SYSCOMMAND 8
55#define HCBT_SETFOCUS 9
56#define CF_TEXT 1
57#define CF_BITMAP 2
58#define CF_METAFILEPICT 3
59#define CF_SYLK 4
60#define CF_DIF 5
61#define CF_TIFF 6
62#define CF_OEMTEXT 7
63#define CF_DIB 8
64#define CF_PALETTE 9
65#define CF_PENDATA 10
66#define CF_RIFF 11
67#define CF_WAVE 12
68#define CF_UNICODETEXT 13
69#define CF_ENHMETAFILE 14
70#define CF_HDROP 15
71#define CF_LOCALE 16
72#define CF_MAX 17
73#define CF_OWNERDISPLAY 128
74#define CF_DSPTEXT 129
75#define CF_DSPBITMAP 130
76#define CF_DSPMETAFILEPICT 131
77#define CF_DSPENHMETAFILE 142
78#define CF_PRIVATEFIRST 512
79#define CF_PRIVATELAST 767
80#define CF_GDIOBJFIRST 768
81#define CF_GDIOBJLAST 1023
82#define HKL_NEXT 1
83#define HKL_PREV 0
84#define KLF_ACTIVATE 1
85#define KLF_SUBSTITUTE_OK 2
86#define KLF_UNLOADPREVIOUS 4
87#define KLF_REORDER 8
88#define KLF_REPLACELANG 16
89#define KLF_NOTELLSHELL 128
90#define KLF_SETFORPROCESS 256
91#define KL_NAMELENGTH 9
92#define MF_ENABLED 0
93#define MF_GRAYED 1
94#define MF_DISABLED 2
95#define MF_BITMAP 4
96#define MF_CHECKED 8
97#define MF_MENUBARBREAK 32
98#define MF_MENUBREAK 64
99#define MF_OWNERDRAW 256
100#define MF_POPUP 16
101#define MF_SEPARATOR 0x800
102#define MF_STRING 0
103#define MF_UNCHECKED 0
104#define MF_DEFAULT 4096
105#define MF_SYSMENU 0x2000
106#define MF_HELP 0x4000
107#define MF_END 128
108#define MF_RIGHTJUSTIFY 0x4000
109#define MF_MOUSESELECT 0x8000
110#define MF_INSERT 0
111#define MF_CHANGE 128
112#define MF_APPEND 256
113#define MF_DELETE 512
114#define MF_REMOVE 4096
115#define MF_USECHECKBITMAPS 512
116#define MF_UNHILITE 0
117#define MF_HILITE 128
118#define BSF_IGNORECURRENTTASK 2
119#define BSF_QUERY 1
120#define BSF_FLUSHDISK 4
121#define BSF_NOHANG 8
122#define BSF_POSTMESSAGE 16
123#define BSF_FORCEIFHUNG 32
124#define BSF_NOTIMEOUTIFNOTHUNG 64
125#define BSM_ALLCOMPONENTS 0
126#define BSM_APPLICATIONS 8
127#define BSM_ALLDESKTOPS 16
128#define BSM_INSTALLABLEDRIVERS 4
129#define BSM_NETDRIVER 2
130#define BSM_VXDS 1
131#define BROADCAST_QUERY_DENY 1112363332
132#define ENUM_CURRENT_SETTINGS ((DWORD)-1)
133#define ENUM_REGISTRY_SETTINGS ((DWORD)-2)
134#define DM_BITSPERPEL 0x40000
135#define DM_PELSWIDTH 0x80000
136#define DM_PELSHEIGHT 0x100000
137#define DM_DISPLAYFLAGS 0x200000
138#define DM_DISPLAYFREQUENCY 0x400000
139#define CDS_UPDATEREGISTRY 1
140#define CDS_TEST 2
141#define CDS_FULLSCREEN 4
142#define CDS_GLOBAL 8
143#define CDS_SET_PRIMARY 16
144#define CDS_RESET 0x40000000
145#define CDS_SETRECT 0x20000000
146#define CDS_NORESET 0x10000000
147#define DISP_CHANGE_SUCCESSFUL 0
148#define DISP_CHANGE_RESTART 1
149#define DISP_CHANGE_BADFLAGS (-4)
150#define DISP_CHANGE_BADPARAM (-5)
151#define DISP_CHANGE_FAILED (-1)
152#define DISP_CHANGE_BADMODE (-2)
153#define DISP_CHANGE_NOTUPDATED (-3)
154#define BST_CHECKED 1
155#define BST_INDETERMINATE 2
156#define BST_UNCHECKED 0
157#define BST_FOCUS 8
158#define BST_PUSHED 4
159#define MF_BYCOMMAND 0
160#define MF_BYPOSITION 1024
161#define MF_UNCHECKED 0
162#define MF_HILITE 128
163#define MF_UNHILITE 0
164#define CWP_ALL 0
165#define CWP_SKIPINVISIBLE 1
166#define CWP_SKIPDISABLED 2
167#define CWP_SKIPTRANSPARENT 4
168#define IMAGE_BITMAP 0
169#define IMAGE_ICON 1
170#define IMAGE_CURSOR 2
171#define IMAGE_ENHMETAFILE 3
172#define DF_ALLOWOTHERACCOUNTHOOK 1
173#define DESKTOP_CREATEMENU 4
174#define DESKTOP_CREATEWINDOW 2
175#define DESKTOP_ENUMERATE 64
176#define DESKTOP_HOOKCONTROL 8
177#define DESKTOP_JOURNALPLAYBACK 32
178#define DESKTOP_JOURNALRECORD 16
179#define DESKTOP_READOBJECTS 1
180#define DESKTOP_SWITCHDESKTOP 256
181#define DESKTOP_WRITEOBJECTS 128
182#define CW_USEDEFAULT 0x80000000
183#define WS_BORDER 0x800000
184#define WS_CAPTION 0xc00000
185#define WS_CHILD 0x40000000
186#define WS_CHILDWINDOW 0x40000000
187#define WS_CLIPCHILDREN 0x2000000
188#define WS_CLIPSIBLINGS 0x4000000
189#define WS_DISABLED 0x8000000
190#define WS_DLGFRAME 0x400000
191#define WS_GROUP 0x20000
192#define WS_HSCROLL 0x100000
193#define WS_ICONIC 0x20000000
194#define WS_MAXIMIZE 0x1000000
195#define WS_MAXIMIZEBOX 0x10000
196#define WS_MINIMIZE 0x20000000
197#define WS_MINIMIZEBOX 0x20000
198#define WS_OVERLAPPED 0
199#define WS_OVERLAPPEDWINDOW 0xcf0000
200#define WS_POPUP 0x80000000
201#define WS_POPUPWINDOW 0x80880000
202#define WS_SIZEBOX 0x40000
203#define WS_SYSMENU 0x80000
204#define WS_TABSTOP 0x10000
205#define WS_THICKFRAME 0x40000
206#define WS_TILED 0
207#define WS_TILEDWINDOW 0xcf0000
208#define WS_VISIBLE 0x10000000
209#define WS_VSCROLL 0x200000
210#define MDIS_ALLCHILDSTYLES 1
211#define BS_3STATE 5
212#define BS_AUTO3STATE 6
213#define BS_AUTOCHECKBOX 3
214#define BS_AUTORADIOBUTTON 9
215#define BS_BITMAP 128
216#define BS_BOTTOM 0x800
217#define BS_CENTER 0x300
218#define BS_CHECKBOX 2
219#define BS_DEFPUSHBUTTON 1
220#define BS_GROUPBOX 7
221#define BS_ICON 64
222#define BS_LEFT 256
223#define BS_LEFTTEXT 32
224#define BS_MULTILINE 0x2000
225#define BS_NOTIFY 0x4000
226#define BS_OWNERDRAW 0xb
227#define BS_PUSHBUTTON 0
228#define BS_PUSHLIKE 4096
229#define BS_RADIOBUTTON 4
230#define BS_RIGHT 512
231#define BS_RIGHTBUTTON 32
232#define BS_TEXT 0
233#define BS_TOP 0x400
234#define BS_USERBUTTON 8
235#define BS_VCENTER 0xc00
236#define BS_FLAT 0x8000
237#define CBS_AUTOHSCROLL 64
238#define CBS_DISABLENOSCROLL 0x800
239#define CBS_DROPDOWN 2
240#define CBS_DROPDOWNLIST 3
241#define CBS_HASSTRINGS 512
242#define CBS_LOWERCASE 0x4000
243#define CBS_NOINTEGRALHEIGHT 0x400
244#define CBS_OEMCONVERT 128
245#define CBS_OWNERDRAWFIXED 16
246#define CBS_OWNERDRAWVARIABLE 32
247#define CBS_SIMPLE 1
248#define CBS_SORT 256
249#define CBS_UPPERCASE 0x2000
250#define ES_AUTOHSCROLL 128
251#define ES_AUTOVSCROLL 64
252#define ES_CENTER 1
253#define ES_LEFT 0
254#define ES_LOWERCASE 16
255#define ES_MULTILINE 4
256#define ES_NOHIDESEL 256
257#define ES_NUMBER 0x2000
258#define ES_OEMCONVERT 0x400
259#define ES_PASSWORD 32
260#define ES_READONLY 0x800
261#define ES_RIGHT 2
262#define ES_UPPERCASE 8
263#define ES_WANTRETURN 4096
264#define LBS_DISABLENOSCROLL 4096
265#define LBS_EXTENDEDSEL 0x800
266#define LBS_HASSTRINGS 64
267#define LBS_MULTICOLUMN 512
268#define LBS_MULTIPLESEL 8
269#define LBS_NODATA 0x2000
270#define LBS_NOINTEGRALHEIGHT 256
271#define LBS_NOREDRAW 4
272#define LBS_NOSEL 0x4000
273#define LBS_NOTIFY 1
274#define LBS_OWNERDRAWFIXED 16
275#define LBS_OWNERDRAWVARIABLE 32
276#define LBS_SORT 2
277#define LBS_STANDARD 0xa00003
278#define LBS_USETABSTOPS 128
279#define LBS_WANTKEYBOARDINPUT 0x400
280#define SBS_BOTTOMALIGN 4
281#define SBS_HORZ 0
282#define SBS_LEFTALIGN 2
283#define SBS_RIGHTALIGN 4
284#define SBS_SIZEBOX 8
285#define SBS_SIZEBOXBOTTOMRIGHTALIGN 4
286#define SBS_SIZEBOXTOPLEFTALIGN 2
287#define SBS_SIZEGRIP 16
288#define SBS_TOPALIGN 2
289#define SBS_VERT 1
290#define SS_BITMAP 14
291#define SS_BLACKFRAME 7
292#define SS_BLACKRECT 4
293#define SS_CENTER 1
294#define SS_CENTERIMAGE 512
295#define SS_ENHMETAFILE 15
296#define SS_ETCHEDFRAME 18
297#define SS_ETCHEDHORZ 16
298#define SS_ETCHEDVERT 17
299#define SS_GRAYFRAME 8
300#define SS_GRAYRECT 5
301#define SS_ICON 3
302#define SS_LEFT 0
303#define SS_LEFTNOWORDWRAP 0xc
304#define SS_NOPREFIX 128
305#define SS_NOTIFY 256
306#define SS_OWNERDRAW 0xd
307#define SS_REALSIZEIMAGE 0x800
308#define SS_RIGHT 2
309#define SS_RIGHTJUST 0x400
310#define SS_SIMPLE 11
311#define SS_SUNKEN 4096
312#define SS_WHITEFRAME 9
313#define SS_WHITERECT 6
314#define SS_USERITEM 10
315#define SS_TYPEMASK 0x0000001FL
316#define SS_ENDELLIPSIS 0x00004000L
317#define SS_PATHELLIPSIS 0x00008000L
318#define SS_WORDELLIPSIS 0x0000C000L
319#define SS_ELLIPSISMASK 0x0000C000L
320#define DS_3DLOOK 4
321#define DS_ABSALIGN 1
322#define DS_CENTER 0x800
323#define DS_CENTERMOUSE 4096
324#define DS_CONTEXTHELP 0x2000
325#define DS_CONTROL 0x400
326#define DS_FIXEDSYS 8
327#define DS_LOCALEDIT 32
328#define DS_MODALFRAME 128
329#define DS_NOFAILCREATE 16
330#define DS_NOIDLEMSG 256
331#define DS_SETFONT 64
332#define DS_SETFOREGROUND 512
333#define DS_SYSMODAL 2
334#define WS_EX_ACCEPTFILES 16
335#define WS_EX_APPWINDOW 0x40000
336#define WS_EX_CLIENTEDGE 512
337#define WS_EX_COMPOSITED 0x2000000 /* XP */
338#define WS_EX_CONTEXTHELP 0x400
339#define WS_EX_CONTROLPARENT 0x10000
340#define WS_EX_DLGMODALFRAME 1
341#define WS_EX_LAYERED 0x80000 /* w2k */
342#define WS_EX_LAYOUTRTL 0x400000 /* w98, w2k */
343#define WS_EX_LEFT 0
344#define WS_EX_LEFTSCROLLBAR 0x4000
345#define WS_EX_LTRREADING 0
346#define WS_EX_MDICHILD 64
347#define WS_EX_NOACTIVATE 0x8000000 /* w2k */
348#define WS_EX_NOINHERITLAYOUT 0x100000 /* w2k */
349#define WS_EX_NOPARENTNOTIFY 4
350#define WS_EX_OVERLAPPEDWINDOW 0x300
351#define WS_EX_PALETTEWINDOW 0x188
352#define WS_EX_RIGHT 0x1000
353#define WS_EX_RIGHTSCROLLBAR 0
354#define WS_EX_RTLREADING 0x2000
355#define WS_EX_STATICEDGE 0x20000
356#define WS_EX_TOOLWINDOW 128
357#define WS_EX_TOPMOST 8
358#define WS_EX_TRANSPARENT 32
359#define WS_EX_WINDOWEDGE 256
360#define WINSTA_ACCESSCLIPBOARD 4
361#define WINSTA_ACCESSGLOBALATOMS 32
362#define WINSTA_CREATEDESKTOP 8
363#define WINSTA_ENUMDESKTOPS 1
364#define WINSTA_ENUMERATE 256
365#define WINSTA_EXITWINDOWS 64
366#define WINSTA_READATTRIBUTES 2
367#define WINSTA_READSCREEN 512
368#define WINSTA_WRITEATTRIBUTES 16
369#define DDL_READWRITE 0
370#define DDL_READONLY 1
371#define DDL_HIDDEN 2
372#define DDL_SYSTEM 4
373#define DDL_DIRECTORY 16
374#define DDL_ARCHIVE 32
375#define DDL_POSTMSGS 8192
376#define DDL_DRIVES 16384
377#define DDL_EXCLUSIVE 32768
378#define DC_ACTIVE 1
379#define DC_SMALLCAP 2
380#define DC_ICON 4
381#define DC_TEXT 8
382#define DC_INBUTTON 16
383#define DC_CAPTION (DC_ICON|DC_TEXT|DC_BUTTONS)
384#define DC_NC (DC_CAPTION|DC_FRAME)
385#define BDR_RAISEDOUTER 1
386#define BDR_SUNKENOUTER 2
387#define BDR_RAISEDINNER 4
388#define BDR_SUNKENINNER 8
389#define BDR_OUTER 3
390#define BDR_INNER 0xc
391#define BDR_RAISED 5
392#define BDR_SUNKEN 10
393#define EDGE_RAISED (BDR_RAISEDOUTER|BDR_RAISEDINNER)
394#define EDGE_SUNKEN (BDR_SUNKENOUTER|BDR_SUNKENINNER)
395#define EDGE_ETCHED (BDR_SUNKENOUTER|BDR_RAISEDINNER)
396#define EDGE_BUMP (BDR_RAISEDOUTER|BDR_SUNKENINNER)
397#define BF_LEFT 1
398#define BF_TOP 2
399#define BF_RIGHT 4
400#define BF_BOTTOM 8
401#define BF_TOPLEFT (BF_TOP|BF_LEFT)
402#define BF_TOPRIGHT (BF_TOP|BF_RIGHT)
403#define BF_BOTTOMLEFT (BF_BOTTOM|BF_LEFT)
404#define BF_BOTTOMRIGHT (BF_BOTTOM|BF_RIGHT)
405#define BF_RECT (BF_LEFT|BF_TOP|BF_RIGHT|BF_BOTTOM)
406#define BF_DIAGONAL 16
407#define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL|BF_TOP|BF_RIGHT)
408#define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL|BF_TOP|BF_LEFT)
409#define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL|BF_BOTTOM|BF_LEFT)
410#define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL|BF_BOTTOM|BF_RIGHT)
411#define BF_MIDDLE 0x800
412#define BF_SOFT 0x1000
413#define BF_ADJUST 0x2000
414#define BF_FLAT 0x4000
415#define BF_MONO 0x8000
416#define DFC_CAPTION 1
417#define DFC_MENU 2
418#define DFC_SCROLL 3
419#define DFC_BUTTON 4
420#define DFCS_CAPTIONCLOSE 0
421#define DFCS_CAPTIONMIN 1
422#define DFCS_CAPTIONMAX 2
423#define DFCS_CAPTIONRESTORE 3
424#define DFCS_CAPTIONHELP 4
425#define DFCS_MENUARROW 0
426#define DFCS_MENUCHECK 1
427#define DFCS_MENUBULLET 2
428#define DFCS_MENUARROWRIGHT 4
429#define DFCS_SCROLLUP 0
430#define DFCS_SCROLLDOWN 1
431#define DFCS_SCROLLLEFT 2
432#define DFCS_SCROLLRIGHT 3
433#define DFCS_SCROLLCOMBOBOX 5
434#define DFCS_SCROLLSIZEGRIP 8
435#define DFCS_SCROLLSIZEGRIPRIGHT 16
436#define DFCS_BUTTONCHECK 0
437#define DFCS_BUTTONRADIOIMAGE 1
438#define DFCS_BUTTONRADIOMASK 2
439#define DFCS_BUTTONRADIO 4
440#define DFCS_BUTTON3STATE 8
441#define DFCS_BUTTONPUSH 16
442#define DFCS_INACTIVE 256
443#define DFCS_PUSHED 512
444#define DFCS_CHECKED 1024
445#define DFCS_ADJUSTRECT 0x2000
446#define DFCS_FLAT 0x4000
447#define DFCS_MONO 0x8000
448#define DST_COMPLEX 0
449#define DST_TEXT 1
450#define DST_PREFIXTEXT 2
451#define DST_ICON 3
452#define DST_BITMAP 4
453#define DSS_NORMAL 0
454#define DSS_UNION 16
455#define DSS_DISABLED 32
456#define DSS_MONO 128
457#define DSS_RIGHT 0x8000
458#define DT_BOTTOM 8
459#define DT_CALCRECT 1024
460#define DT_CENTER 1
461#define DT_EDITCONTROL 8192
462#define DT_END_ELLIPSIS 32768
463#define DT_PATH_ELLIPSIS 16384
464#define DT_WORD_ELLIPSIS 0x40000
465#define DT_EXPANDTABS 64
466#define DT_EXTERNALLEADING 512
467#define DT_LEFT 0
468#define DT_MODIFYSTRING 65536
469#define DT_NOCLIP 256
470#define DT_NOPREFIX 2048
471#define DT_RIGHT 2
472#define DT_RTLREADING 131072
473#define DT_SINGLELINE 32
474#define DT_TABSTOP 128
475#define DT_TOP 0
476#define DT_VCENTER 4
477#define DT_WORDBREAK 16
478#define DT_INTERNAL 4096
479#define WB_ISDELIMITER 2
480#define WB_LEFT 0
481#define WB_RIGHT 1
482#define SB_HORZ 0
483#define SB_VERT 1
484#define SB_CTL 2
485#define SB_BOTH 3
486#define ESB_DISABLE_BOTH 3
487#define ESB_DISABLE_DOWN 2
488#define ESB_DISABLE_LEFT 1
489#define ESB_DISABLE_LTUP 1
490#define ESB_DISABLE_RIGHT 2
491#define ESB_DISABLE_RTDN 2
492#define ESB_DISABLE_UP 1
493#define ESB_ENABLE_BOTH 0
494#define SB_LINEUP 0
495#define SB_LINEDOWN 1
496#define SB_LINELEFT 0
497#define SB_LINERIGHT 1
498#define SB_PAGEUP 2
499#define SB_PAGEDOWN 3
500#define SB_PAGELEFT 2
501#define SB_PAGERIGHT 3
502#define SB_THUMBPOSITION 4
503#define SB_THUMBTRACK 5
504#define SB_ENDSCROLL 8
505#define SB_LEFT 6
506#define SB_RIGHT 7
507#define SB_BOTTOM 7
508#define SB_TOP 6
509#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))
510#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))
511#ifndef XFree86Server
512# define RT_CURSOR MAKEINTRESOURCE(1)
513# define RT_FONT MAKEINTRESOURCE(8)
514#endif /* ndef XFree86Server */
515#define RT_BITMAP MAKEINTRESOURCE(2)
516#define RT_ICON MAKEINTRESOURCE(3)
517#define RT_MENU MAKEINTRESOURCE(4)
518#define RT_DIALOG MAKEINTRESOURCE(5)
519#define RT_STRING MAKEINTRESOURCE(6)
520#define RT_FONTDIR MAKEINTRESOURCE(7)
521#define RT_ACCELERATOR MAKEINTRESOURCE(9)
522#define RT_RCDATA MAKEINTRESOURCE(10)
523#define RT_MESSAGETABLE MAKEINTRESOURCE(11)
524#define DIFFERENCE 11
525#define RT_GROUP_CURSOR MAKEINTRESOURCE((DWORD)RT_CURSOR+DIFFERENCE)
526#define RT_GROUP_ICON MAKEINTRESOURCE((DWORD)RT_ICON+DIFFERENCE)
527#define RT_VERSION MAKEINTRESOURCE(16)
528#define RT_DLGINCLUDE MAKEINTRESOURCE(17)
529#define RT_PLUGPLAY MAKEINTRESOURCE(19)
530#define RT_VXD MAKEINTRESOURCE(20)
531#define RT_ANICURSOR MAKEINTRESOURCE(21)
532#define RT_ANIICON MAKEINTRESOURCE(22)
533#define RT_HTML MAKEINTRESOURCE(23)
534#define EWX_FORCE 4
535#define EWX_LOGOFF 0
536#define EWX_POWEROFF 8
537#define EWX_REBOOT 2
538#define EWX_SHUTDOWN 1
539#define CS_BYTEALIGNCLIENT 4096
540#define CS_BYTEALIGNWINDOW 8192
541#define CS_KEYCVTWINDOW 4
542#define CS_NOKEYCVT 256
543#define CS_CLASSDC 64
544#define CS_DBLCLKS 8
545#define CS_GLOBALCLASS 16384
546#define CS_HREDRAW 2
547#define CS_NOCLOSE 512
548#define CS_OWNDC 32
549#define CS_PARENTDC 128
550#define CS_SAVEBITS 2048
551#define CS_VREDRAW 1
552#define CS_IME 0x10000
553#define GCW_ATOM (-32)
554#define GCL_CBCLSEXTRA (-20)
555#define GCL_CBWNDEXTRA (-18)
556#define GCL_HBRBACKGROUND (-10)
557#define GCL_HCURSOR (-12)
558#define GCL_HICON (-14)
559#define GCL_HICONSM (-34)
560#define GCL_HMODULE (-16)
561#define GCL_MENUNAME (-8)
562#define GCL_STYLE (-26)
563#define GCL_WNDPROC (-24)
564#if 0
565 /* This is supposed to be defined by the program using it not defined
566 in the win32api headers. I've left it here for documentation purposes.
567 */
568#ifndef IDC_STATIC /* May be predefined by resource compiler. */
569#define IDC_STATIC (-1)
570#endif
571#endif
572#define IDC_ARROW MAKEINTRESOURCE(32512)
573#define IDC_IBEAM MAKEINTRESOURCE(32513)
574#define IDC_WAIT MAKEINTRESOURCE(32514)
575#define IDC_CROSS MAKEINTRESOURCE(32515)
576#define IDC_UPARROW MAKEINTRESOURCE(32516)
577#define IDC_SIZENWSE MAKEINTRESOURCE(32642)
578#define IDC_SIZENESW MAKEINTRESOURCE(32643)
579#define IDC_SIZEWE MAKEINTRESOURCE(32644)
580#define IDC_SIZENS MAKEINTRESOURCE(32645)
581#define IDC_SIZEALL MAKEINTRESOURCE(32646)
582#define IDC_NO MAKEINTRESOURCE(32648)
583#define IDC_HAND MAKEINTRESOURCE(32649)
584#define IDC_APPSTARTING MAKEINTRESOURCE(32650)
585#define IDC_HELP MAKEINTRESOURCE(32651)
586#define IDC_ICON MAKEINTRESOURCE(32641)
587#define IDC_SIZE MAKEINTRESOURCE(32640)
588#ifndef RC_INVOKED
589#define IDI_APPLICATION MAKEINTRESOURCE(32512)
590#define IDI_HAND MAKEINTRESOURCE(32513)
591#define IDI_QUESTION MAKEINTRESOURCE(32514)
592#define IDI_EXCLAMATION MAKEINTRESOURCE(32515)
593#define IDI_ASTERISK MAKEINTRESOURCE(32516)
594#define IDI_WINLOGO MAKEINTRESOURCE(32517)
595#else
596#define IDI_APPLICATION 32512
597#define IDI_HAND 32513
598#define IDI_QUESTION 32514
599#define IDI_EXCLAMATION 32515
600#define IDI_ASTERISK 32516
601#define IDI_WINLOGO 32517
602#endif
603#define IDI_WARNING IDI_EXCLAMATION
604#define IDI_ERROR IDI_HAND
605#define IDI_INFORMATION IDI_ASTERISK
606#define MIIM_STATE 1
607#define MIIM_ID 2
608#define MIIM_SUBMENU 4
609#define MIIM_CHECKMARKS 8
610#define MIIM_TYPE 16
611#define MIIM_DATA 32
612#define MIIM_STRING 64
613#define MIIM_BITMAP 128
614#define MIIM_FTYPE 256
615#define MFT_BITMAP 4
616#define MFT_MENUBARBREAK 32
617#define MFT_MENUBREAK 64
618#define MFT_OWNERDRAW 256
619#define MFT_RADIOCHECK 512
620#define MFT_RIGHTJUSTIFY 0x4000
621#define MFT_SEPARATOR 0x800
622#define MFT_RIGHTORDER 0x2000L
623#define MFT_STRING 0
624#define MFS_CHECKED 8
625#define MFS_DEFAULT 4096
626#define MFS_DISABLED 3
627#define MFS_ENABLED 0
628#define MFS_GRAYED 3
629#define MFS_HILITE 128
630#define MFS_UNCHECKED 0
631#define MFS_UNHILITE 0
632#define GW_HWNDNEXT 2
633#define GW_HWNDPREV 3
634#define GW_CHILD 5
635#define GW_HWNDFIRST 0
636#define GW_HWNDLAST 1
637#define GW_OWNER 4
638#define SW_HIDE 0
639#define SW_NORMAL 1
640#define SW_SHOWNORMAL 1
641#define SW_SHOWMINIMIZED 2
642#define SW_MAXIMIZE 3
643#define SW_SHOWMAXIMIZED 3
644#define SW_SHOWNOACTIVATE 4
645#define SW_SHOW 5
646#define SW_MINIMIZE 6
647#define SW_SHOWMINNOACTIVE 7
648#define SW_SHOWNA 8
649#define SW_RESTORE 9
650#define SW_SHOWDEFAULT 10
651#define SW_FORCEMINIMIZE 11
652#define SW_MAX 11
653#define MB_USERICON 128
654#define MB_ICONASTERISK 64
655#define MB_ICONEXCLAMATION 0x30
656#define MB_ICONWARNING 0x30
657#define MB_ICONERROR 16
658#define MB_ICONHAND 16
659#define MB_ICONQUESTION 32
660#define MB_OK 0
661#define MB_ABORTRETRYIGNORE 2
662#define MB_APPLMODAL 0
663#define MB_DEFAULT_DESKTOP_ONLY 0x20000
664#define MB_HELP 0x4000
665#define MB_RIGHT 0x80000
666#define MB_RTLREADING 0x100000
667#define MB_TOPMOST 0x40000
668#define MB_DEFBUTTON1 0
669#define MB_DEFBUTTON2 256
670#define MB_DEFBUTTON3 512
671#define MB_DEFBUTTON4 0x300
672#define MB_ICONINFORMATION 64
673#define MB_ICONSTOP 16
674#define MB_OKCANCEL 1
675#define MB_RETRYCANCEL 5
676#ifdef _WIN32_WINNT
677#if (_WIN32_WINNT >= 0x0400)
678#define MB_SERVICE_NOTIFICATION 0x00200000
679#else
680#define MB_SERVICE_NOTIFICATION 0x00040000
681#endif
682#define MB_SERVICE_NOTIFICATION_NT3X 0x00040000
683#endif
684#define MB_SETFOREGROUND 0x10000
685#define MB_SYSTEMMODAL 4096
686#define MB_TASKMODAL 0x2000
687#define MB_YESNO 4
688#define MB_YESNOCANCEL 3
689#define MB_ICONMASK 240
690#define MB_DEFMASK 3840
691#define MB_MODEMASK 0x00003000
692#define MB_MISCMASK 0x0000C000
693#define MB_NOFOCUS 0x00008000
694#define MB_TYPEMASK 15
695#define MB_TOPMOST 0x40000
696#define IDABORT 3
697#define IDCANCEL 2
698#define IDCLOSE 8
699#define IDHELP 9
700#define IDIGNORE 5
701#define IDNO 7
702#define IDOK 1
703#define IDRETRY 4
704#define IDYES 6
705#define GWL_EXSTYLE (-20)
706#define GWL_STYLE (-16)
707#define GWL_WNDPROC (-4)
708#define GWLP_WNDPROC (-4)
709#define GWL_HINSTANCE (-6)
710#define GWLP_HINSTANCE (-6)
711#define GWL_HWNDPARENT (-8)
712#define GWLP_HWNDPARENT (-8)
713#define GWL_ID (-12)
714#define GWLP_ID (-12)
715#define GWL_USERDATA (-21)
716#define GWLP_USERDATA (-21)
717#define DWL_DLGPROC 4
718#define DWLP_DLGPROC 4
719#define DWL_MSGRESULT 0
720#define DWLP_MSGRESULT 0
721#define DWL_USER 8
722#define DWLP_USER 8
723#define QS_ALLEVENTS 191
724#define QS_ALLINPUT 255
725#define QS_HOTKEY 128
726#define QS_INPUT 7
727#define QS_KEY 1
728#define QS_MOUSE 6
729#define QS_MOUSEBUTTON 4
730#define QS_MOUSEMOVE 2
731#define QS_PAINT 32
732#define QS_POSTMESSAGE 8
733#define QS_SENDMESSAGE 64
734#define QS_TIMER 16
735#define COLOR_3DDKSHADOW 21
736#define COLOR_3DFACE 15
737#define COLOR_3DHILIGHT 20
738#define COLOR_3DHIGHLIGHT 20
739#define COLOR_3DLIGHT 22
740#define COLOR_BTNHILIGHT 20
741#define COLOR_3DSHADOW 16
742#define COLOR_ACTIVEBORDER 10
743#define COLOR_ACTIVECAPTION 2
744#define COLOR_APPWORKSPACE 12
745#define COLOR_BACKGROUND 1
746#define COLOR_DESKTOP 1
747#define COLOR_BTNFACE 15
748#define COLOR_BTNHIGHLIGHT 20
749#define COLOR_BTNSHADOW 16
750#define COLOR_BTNTEXT 18
751#define COLOR_CAPTIONTEXT 9
752#define COLOR_GRAYTEXT 17
753#define COLOR_HIGHLIGHT 13
754#define COLOR_HIGHLIGHTTEXT 14
755#define COLOR_INACTIVEBORDER 11
756#define COLOR_INACTIVECAPTION 3
757#define COLOR_INACTIVECAPTIONTEXT 19
758#define COLOR_INFOBK 24
759#define COLOR_INFOTEXT 23
760#define COLOR_MENU 4
761#define COLOR_MENUTEXT 7
762#define COLOR_SCROLLBAR 0
763#define COLOR_WINDOW 5
764#define COLOR_WINDOWFRAME 6
765#define COLOR_WINDOWTEXT 8
766#define CTLCOLOR_MSGBOX 0
767#define CTLCOLOR_EDIT 1
768#define CTLCOLOR_LISTBOX 2
769#define CTLCOLOR_BTN 3
770#define CTLCOLOR_DLG 4
771#define CTLCOLOR_SCROLLBAR 5
772#define CTLCOLOR_STATIC 6
773#define CTLCOLOR_MAX 7
774#define SM_CXSCREEN 0
775#define SM_CYSCREEN 1
776#define SM_CXVSCROLL 2
777#define SM_CYHSCROLL 3
778#define SM_CYCAPTION 4
779#define SM_CXBORDER 5
780#define SM_CYBORDER 6
781#define SM_CXDLGFRAME 7
782#define SM_CXFIXEDFRAME 7
783#define SM_CYDLGFRAME 8
784#define SM_CYFIXEDFRAME 8
785#define SM_CYVTHUMB 9
786#define SM_CXHTHUMB 10
787#define SM_CXICON 11
788#define SM_CYICON 12
789#define SM_CXCURSOR 13
790#define SM_CYCURSOR 14
791#define SM_CYMENU 15
792#define SM_CXFULLSCREEN 16
793#define SM_CYFULLSCREEN 17
794#define SM_CYKANJIWINDOW 18
795#define SM_MOUSEPRESENT 19
796#define SM_CYVSCROLL 20
797#define SM_CXHSCROLL 21
798#define SM_DEBUG 22
799#define SM_SWAPBUTTON 23
800#define SM_RESERVED1 24
801#define SM_RESERVED2 25
802#define SM_RESERVED3 26
803#define SM_RESERVED4 27
804#define SM_CXMIN 28
805#define SM_CYMIN 29
806#define SM_CXSIZE 30
807#define SM_CYSIZE 31
808#define SM_CXSIZEFRAME 32
809#define SM_CXFRAME 32
810#define SM_CYSIZEFRAME 33
811#define SM_CYFRAME 33
812#define SM_CXMINTRACK 34
813#define SM_CYMINTRACK 35
814#define SM_CXDOUBLECLK 36
815#define SM_CYDOUBLECLK 37
816#define SM_CXICONSPACING 38
817#define SM_CYICONSPACING 39
818#define SM_MENUDROPALIGNMENT 40
819#define SM_PENWINDOWS 41
820#define SM_DBCSENABLED 42
821#define SM_CMOUSEBUTTONS 43
822#define SM_SECURE 44
823#define SM_CXEDGE 45
824#define SM_CYEDGE 46
825#define SM_CXMINSPACING 47
826#define SM_CYMINSPACING 48
827#define SM_CXSMICON 49
828#define SM_CYSMICON 50
829#define SM_CYSMCAPTION 51
830#define SM_CXSMSIZE 52
831#define SM_CYSMSIZE 53
832#define SM_CXMENUSIZE 54
833#define SM_CYMENUSIZE 55
834#define SM_ARRANGE 56
835#define SM_CXMINIMIZED 57
836#define SM_CYMINIMIZED 58
837#define SM_CXMAXTRACK 59
838#define SM_CYMAXTRACK 60
839#define SM_CXMAXIMIZED 61
840#define SM_CYMAXIMIZED 62
841#define SM_NETWORK 63
842#define LR_DEFAULTSIZE 64
843#define SM_CLEANBOOT 67
844#define SM_CXDRAG 68
845#define SM_CYDRAG 69
846#define SM_SHOWSOUNDS 70
847#define SM_CXMENUCHECK 71
848#define SM_CYMENUCHECK 72
849#define SM_SLOWMACHINE 73
850#define SM_MIDEASTENABLED 74
851#define SM_MOUSEWHEELPRESENT 75
852#define SM_XVIRTUALSCREEN 76
853#define SM_YVIRTUALSCREEN 77
854#define SM_CXVIRTUALSCREEN 78
855#define SM_CYVIRTUALSCREEN 79
856#define SM_CMONITORS 80
857#define SM_SAMEDISPLAYFORMAT 81
858#if (_WIN32_WINNT < 0x0400)
859#define SM_CMETRICS 76
860#else
861#define SM_CMETRICS 83
862#endif
863#define ARW_BOTTOMLEFT 0
864#define ARW_BOTTOMRIGHT 1
865#define ARW_HIDE 8
866#define ARW_TOPLEFT 2
867#define ARW_TOPRIGHT 3
868#define ARW_DOWN 4
869#define ARW_LEFT 0
870#define ARW_RIGHT 0
871#define ARW_UP 4
872#define UOI_FLAGS 1
873#define UOI_NAME 2
874#define UOI_TYPE 3
875#define UOI_USER_SID 4
876#define LR_DEFAULTCOLOR 0
877#define LR_MONOCHROME 1
878#define LR_COLOR 2
879#define LR_COPYRETURNORG 4
880#define LR_COPYDELETEORG 8
881#define LR_LOADFROMFILE 16
882#define LR_LOADTRANSPARENT 32
883#define LR_LOADREALSIZE 128
884#define LR_LOADMAP3DCOLORS 4096
885#define LR_CREATEDIBSECTION 8192
886#define LR_COPYFROMRESOURCE 0x4000
887#define LR_SHARED 32768
888#define KEYEVENTF_EXTENDEDKEY 1
889#define KEYEVENTF_KEYUP 2
890#define OBM_BTNCORNERS 32758
891#define OBM_BTSIZE 32761
892#define OBM_CHECK 32760
893#define OBM_CHECKBOXES 32759
894#define OBM_CLOSE 32754
895#define OBM_COMBO 32738
896#define OBM_DNARROW 32752
897#define OBM_DNARROWD 32742
898#define OBM_DNARROWI 32736
899#define OBM_LFARROW 32750
900#define OBM_LFARROWI 32734
901#define OBM_LFARROWD 32740
902#define OBM_MNARROW 32739
903#define OBM_OLD_CLOSE 32767
904#define OBM_OLD_DNARROW 32764
905#define OBM_OLD_LFARROW 32762
906#define OBM_OLD_REDUCE 32757
907#define OBM_OLD_RESTORE 32755
908#define OBM_OLD_RGARROW 32763
909#define OBM_OLD_UPARROW 32765
910#define OBM_OLD_ZOOM 32756
911#define OBM_REDUCE 32749
912#define OBM_REDUCED 32746
913#define OBM_RESTORE 32747
914#define OBM_RESTORED 32744
915#define OBM_RGARROW 32751
916#define OBM_RGARROWD 32741
917#define OBM_RGARROWI 32735
918#define OBM_SIZE 32766
919#define OBM_UPARROW 32753
920#define OBM_UPARROWD 32743
921#define OBM_UPARROWI 32737
922#define OBM_ZOOM 32748
923#define OBM_ZOOMD 32745
924#define OCR_NORMAL 32512
925#define OCR_IBEAM 32513
926#define OCR_WAIT 32514
927#define OCR_CROSS 32515
928#define OCR_UP 32516
929#define OCR_SIZE 32640
930#define OCR_ICON 32641
931#define OCR_SIZENWSE 32642
932#define OCR_SIZENESW 32643
933#define OCR_SIZEWE 32644
934#define OCR_SIZENS 32645
935#define OCR_SIZEALL 32646
936#define OCR_NO 32648
937#define OCR_APPSTARTING 32650
938#define OIC_SAMPLE 32512
939#define OIC_HAND 32513
940#define OIC_QUES 32514
941#define OIC_BANG 32515
942#define OIC_NOTE 32516
943#define OIC_WINLOGO 32517
944#define OIC_WARNING OIC_BANG
945#define OIC_ERROR OIC_HAND
946#define OIC_INFORMATION OIC_NOTE
947#define HELPINFO_MENUITEM 2
948#define HELPINFO_WINDOW 1
949#define MSGF_DIALOGBOX 0
950#define MSGF_MESSAGEBOX 1
951#define MSGF_MENU 2
952#define MSGF_MOVE 3
953#define MSGF_SIZE 4
954#define MSGF_SCROLLBAR 5
955#define MSGF_NEXTWINDOW 6
956#define MSGF_MAINLOOP 8
957#define MSGF_USER 4096
958#define MOUSEEVENTF_MOVE 1
959#define MOUSEEVENTF_LEFTDOWN 2
960#define MOUSEEVENTF_LEFTUP 4
961#define MOUSEEVENTF_RIGHTDOWN 8
962#define MOUSEEVENTF_RIGHTUP 16
963#define MOUSEEVENTF_MIDDLEDOWN 32
964#define MOUSEEVENTF_MIDDLEUP 64
965#define MOUSEEVENTF_WHEEL 0x0800
966#define MOUSEEVENTF_ABSOLUTE 32768
967#define PM_NOREMOVE 0
968#define PM_REMOVE 1
969#define PM_NOYIELD 2
970#define HWND_BROADCAST ((HWND)0xffff)
971#define HWND_BOTTOM ((HWND)1)
972#define HWND_NOTOPMOST ((HWND)(-2))
973#define HWND_TOP ((HWND)0)
974#define HWND_TOPMOST ((HWND)(-1))
975#define HWND_DESKTOP (HWND)0
976#define HWND_MESSAGE ((HWND)(-3)) /* w2k */
977#define RDW_ERASE 4
978#define RDW_FRAME 1024
979#define RDW_INTERNALPAINT 2
980#define RDW_INVALIDATE 1
981#define RDW_NOERASE 32
982#define RDW_NOFRAME 2048
983#define RDW_NOINTERNALPAINT 16
984#define RDW_VALIDATE 8
985#define RDW_ERASENOW 512
986#define RDW_UPDATENOW 256
987#define RDW_ALLCHILDREN 128
988#define RDW_NOCHILDREN 64
989#define SMTO_ABORTIFHUNG 2
990#define SMTO_BLOCK 1
991#define SMTO_NORMAL 0
992#define SIF_ALL 23
993#define SIF_PAGE 2
994#define SIF_POS 4
995#define SIF_RANGE 1
996#define SIF_DISABLENOSCROLL 8
997#define SIF_TRACKPOS 16
998#define SWP_DRAWFRAME 32
999#define SWP_FRAMECHANGED 32
1000#define SWP_HIDEWINDOW 128
1001#define SWP_NOACTIVATE 16
1002#define SWP_NOCOPYBITS 256
1003#define SWP_NOMOVE 2
1004#define SWP_NOSIZE 1
1005#define SWP_NOREDRAW 8
1006#define SWP_NOZORDER 4
1007#define SWP_SHOWWINDOW 64
1008#define SWP_NOOWNERZORDER 512
1009#define SWP_NOREPOSITION 512
1010#define SWP_NOSENDCHANGING 1024
1011#define SWP_DEFERERASE 8192
1012#define SWP_ASYNCWINDOWPOS 16384
1013#define HSHELL_ACTIVATESHELLWINDOW 3
1014#define HSHELL_GETMINRECT 5
1015#define HSHELL_LANGUAGE 8
1016#define HSHELL_REDRAW 6
1017#define HSHELL_TASKMAN 7
1018#define HSHELL_WINDOWACTIVATED 4
1019#define HSHELL_WINDOWCREATED 1
1020#define HSHELL_WINDOWDESTROYED 2
1021#define SPI_GETACCESSTIMEOUT 60
1022#define SPI_GETANIMATION 72
1023#define SPI_GETBEEP 1
1024#define SPI_GETBORDER 5
1025#define SPI_GETDEFAULTINPUTLANG 89
1026#define SPI_GETDRAGFULLWINDOWS 38
1027#define SPI_GETFASTTASKSWITCH 35
1028#define SPI_GETFILTERKEYS 50
1029#define SPI_GETFONTSMOOTHING 74
1030#define SPI_GETGRIDGRANULARITY 18
1031#define SPI_GETHIGHCONTRAST 66
1032#define SPI_GETICONMETRICS 45
1033#define SPI_GETICONTITLELOGFONT 31
1034#define SPI_GETICONTITLEWRAP 25
1035#define SPI_GETKEYBOARDDELAY 22
1036#define SPI_GETKEYBOARDPREF 68
1037#define SPI_GETKEYBOARDSPEED 10
1038#define SPI_GETLOWPOWERACTIVE 83
1039#define SPI_GETLOWPOWERTIMEOUT 79
1040#define SPI_GETMENUDROPALIGNMENT 27
1041#define SPI_GETMINIMIZEDMETRICS 43
1042#define SPI_GETMOUSE 3
1043#define SPI_GETMOUSEKEYS 54
1044#define SPI_GETMOUSETRAILS 94
1045#define SPI_GETNONCLIENTMETRICS 41
1046#define SPI_GETPOWEROFFACTIVE 84
1047#define SPI_GETPOWEROFFTIMEOUT 80
1048#define SPI_GETSCREENREADER 70
1049#define SPI_GETSCREENSAVEACTIVE 16
1050#define SPI_GETSCREENSAVETIMEOUT 14
1051#define SPI_GETSERIALKEYS 62
1052#define SPI_GETSHOWSOUNDS 56
1053#define SPI_GETSOUNDSENTRY 64
1054#define SPI_GETSTICKYKEYS 58
1055#define SPI_GETTOGGLEKEYS 52
1056#define SPI_GETWINDOWSEXTENSION 92
1057#define SPI_GETWORKAREA 48
1058#define SPI_ICONHORIZONTALSPACING 13
1059#define SPI_ICONVERTICALSPACING 24
1060#define SPI_LANGDRIVER 12
1061#define SPI_SCREENSAVERRUNNING 97
1062#define SPI_SETACCESSTIMEOUT 61
1063#define SPI_SETANIMATION 73
1064#define SPI_SETBEEP 2
1065#define SPI_SETBORDER 6
1066#define SPI_SETDEFAULTINPUTLANG 90
1067#define SPI_SETDESKPATTERN 21
1068#define SPI_SETDESKWALLPAPER 20
1069#define SPI_SETDOUBLECLICKTIME 32
1070#define SPI_SETDOUBLECLKHEIGHT 30
1071#define SPI_SETDOUBLECLKWIDTH 29
1072#define SPI_SETDRAGFULLWINDOWS 37
1073#define SPI_SETDRAGHEIGHT 77
1074#define SPI_SETDRAGWIDTH 76
1075#define SPI_SETFASTTASKSWITCH 36
1076#define SPI_SETFILTERKEYS 51
1077#define SPI_SETFONTSMOOTHING 75
1078#define SPI_SETGRIDGRANULARITY 19
1079#define SPI_SETHANDHELD 78
1080#define SPI_SETHIGHCONTRAST 67
1081#define SPI_SETICONMETRICS 46
1082#define SPI_SETICONTITLELOGFONT 34
1083#define SPI_SETICONTITLEWRAP 26
1084#define SPI_SETKEYBOARDDELAY 23
1085#define SPI_SETKEYBOARDPREF 69
1086#define SPI_SETKEYBOARDSPEED 11
1087#define SPI_SETLANGTOGGLE 91
1088#define SPI_SETLOWPOWERACTIVE 85
1089#define SPI_SETLOWPOWERTIMEOUT 81
1090#define SPI_SETMENUDROPALIGNMENT 28
1091#define SPI_SETMINIMIZEDMETRICS 44
1092#define SPI_SETMOUSE 4
1093#define SPI_SETMOUSEBUTTONSWAP 33
1094#define SPI_SETMOUSEKEYS 55
1095#define SPI_SETMOUSETRAILS 93
1096#define SPI_SETNONCLIENTMETRICS 42
1097#define SPI_SETPENWINDOWS 49
1098#define SPI_SETPOWEROFFACTIVE 86
1099#define SPI_SETPOWEROFFTIMEOUT 82
1100#define SPI_SETSCREENREADER 71
1101#define SPI_SETSCREENSAVEACTIVE 17
1102#define SPI_SETSCREENSAVERRUNNING 97
1103#define SPI_SETSCREENSAVETIMEOUT 15
1104#define SPI_SETSERIALKEYS 63
1105#define SPI_SETSHOWSOUNDS 57
1106#define SPI_SETSOUNDSENTRY 65
1107#define SPI_SETSTICKYKEYS 59
1108#define SPI_SETTOGGLEKEYS 53
1109#define SPI_SETWORKAREA 47
1110#define SPIF_UPDATEINIFILE 1
1111#define SPIF_SENDWININICHANGE 2
1112#define SPIF_SENDCHANGE 2
1113#define ATF_ONOFFFEEDBACK 2
1114#define ATF_TIMEOUTON 1
1115#define WM_APP 32768
1116#define WM_ACTIVATE 6
1117#define WM_ACTIVATEAPP 28
1118/* FIXME/CHECK: Are WM_AFX{FIRST,LAST} valid for WINVER < 0x400? */
1119#define WM_AFXFIRST 864
1120#define WM_AFXLAST 895
1121#define WM_ASKCBFORMATNAME 780
1122#define WM_CANCELJOURNAL 75
1123#define WM_CANCELMODE 31
1124#define WM_CAPTURECHANGED 533
1125#define WM_CHANGECBCHAIN 781
1126#define WM_CHAR 258
1127#define WM_CHARTOITEM 47
1128#define WM_CHILDACTIVATE 34
1129#define WM_CLEAR 771
1130#define WM_CLOSE 16
1131#define WM_COMMAND 273
1132#define WM_COMMNOTIFY 68 /* obsolete */
1133#define WM_COMPACTING 65
1134#define WM_COMPAREITEM 57
1135#define WM_CONTEXTMENU 123
1136#define WM_COPY 769
1137#define WM_COPYDATA 74
1138#define WM_CREATE 1
1139#define WM_CTLCOLORBTN 309
1140#define WM_CTLCOLORDLG 310
1141#define WM_CTLCOLOREDIT 307
1142#define WM_CTLCOLORLISTBOX 308
1143#define WM_CTLCOLORMSGBOX 306
1144#define WM_CTLCOLORSCROLLBAR 311
1145#define WM_CTLCOLORSTATIC 312
1146#define WM_CUT 768
1147#define WM_DEADCHAR 259
1148#define WM_DELETEITEM 45
1149#define WM_DESTROY 2
1150#define WM_DESTROYCLIPBOARD 775
1151#define WM_DEVICECHANGE 537
1152#define WM_DEVMODECHANGE 27
1153#define WM_DISPLAYCHANGE 126
1154#define WM_DRAWCLIPBOARD 776
1155#define WM_DRAWITEM 43
1156#define WM_DROPFILES 563
1157#define WM_ENABLE 10
1158#define WM_ENDSESSION 22
1159#define WM_ENTERIDLE 289
1160#define WM_ENTERMENULOOP 529
1161#define WM_ENTERSIZEMOVE 561
1162#define WM_ERASEBKGND 20
1163#define WM_EXITMENULOOP 530
1164#define WM_EXITSIZEMOVE 562
1165#define WM_FONTCHANGE 29
1166#define WM_GETDLGCODE 135
1167#define WM_GETFONT 49
1168#define WM_GETHOTKEY 51
1169#define WM_GETICON 127
1170#define WM_GETMINMAXINFO 36
1171#define WM_GETTEXT 13
1172#define WM_GETTEXTLENGTH 14
1173/* FIXME/CHECK: Are WM_HANDHEL{FIRST,LAST} valid for WINVER < 0x400? */
1174#define WM_HANDHELDFIRST 856
1175#define WM_HANDHELDLAST 863
1176#define WM_HELP 83
1177#define WM_HOTKEY 786
1178#define WM_HSCROLL 276
1179#define WM_HSCROLLCLIPBOARD 782
1180#define WM_ICONERASEBKGND 39
1181#define WM_INITDIALOG 272
1182#define WM_INITMENU 278
1183#define WM_INITMENUPOPUP 279
1184#define WM_INPUTLANGCHANGE 81
1185#define WM_INPUTLANGCHANGEREQUEST 80
1186#define WM_KEYDOWN 256
1187#define WM_KEYUP 257
1188#define WM_KILLFOCUS 8
1189#define WM_MDIACTIVATE 546
1190#define WM_MDICASCADE 551
1191#define WM_MDICREATE 544
1192#define WM_MDIDESTROY 545
1193#define WM_MDIGETACTIVE 553
1194#define WM_MDIICONARRANGE 552
1195#define WM_MDIMAXIMIZE 549
1196#define WM_MDINEXT 548
1197#define WM_MDIREFRESHMENU 564
1198#define WM_MDIRESTORE 547
1199#define WM_MDISETMENU 560
1200#define WM_MDITILE 550
1201#define WM_MEASUREITEM 44
1202#define WM_MENUCHAR 288
1203#define WM_MENUSELECT 287
1204#define WM_NEXTMENU 531
1205#define WM_MOVE 3
1206#define WM_MOVING 534
1207#define WM_NCACTIVATE 134
1208#define WM_NCCALCSIZE 131
1209#define WM_NCCREATE 129
1210#define WM_NCDESTROY 130
1211#define WM_NCHITTEST 132
1212#define WM_NCLBUTTONDBLCLK 163
1213#define WM_NCLBUTTONDOWN 161
1214#define WM_NCLBUTTONUP 162
1215#define WM_NCMBUTTONDBLCLK 169
1216#define WM_NCMBUTTONDOWN 167
1217#define WM_NCMBUTTONUP 168
1218#define WM_NCMOUSEMOVE 160
1219#define WM_NCPAINT 133
1220#define WM_NCRBUTTONDBLCLK 166
1221#define WM_NCRBUTTONDOWN 164
1222#define WM_NCRBUTTONUP 165
1223#define WM_NEXTDLGCTL 40
1224#define WM_NEXTMENU 531
1225#define WM_NOTIFY 78
1226#define WM_NOTIFYFORMAT 85
1227#define WM_NULL 0
1228#define WM_PAINT 15
1229#define WM_PAINTCLIPBOARD 777
1230#define WM_PAINTICON 38
1231#define WM_PALETTECHANGED 785
1232#define WM_PALETTEISCHANGING 784
1233#define WM_PARENTNOTIFY 528
1234#define WM_PASTE 770
1235#define WM_PENWINFIRST 896
1236#define WM_PENWINLAST 911
1237#define WM_POWER 72
1238#define WM_POWERBROADCAST 536
1239#define WM_PRINT 791
1240#define WM_PRINTCLIENT 792
1241#define WM_QUERYDRAGICON 55
1242#define WM_QUERYENDSESSION 17
1243#define WM_QUERYNEWPALETTE 783
1244#define WM_QUERYOPEN 19
1245#define WM_QUEUESYNC 35
1246#define WM_QUIT 18
1247#define WM_RENDERALLFORMATS 774
1248#define WM_RENDERFORMAT 773
1249#define WM_SETCURSOR 32
1250#define WM_SETFOCUS 7
1251#define WM_SETFONT 48
1252#define WM_SETHOTKEY 50
1253#define WM_SETICON 128
1254#define WM_SETREDRAW 11
1255#define WM_SETTEXT 12
1256#define WM_SETTINGCHANGE 26
1257#define WM_SHOWWINDOW 24
1258#define WM_SIZE 5
1259#define WM_SIZECLIPBOARD 779
1260#define WM_SIZING 532
1261#define WM_SPOOLERSTATUS 42
1262#define WM_STYLECHANGED 125
1263#define WM_STYLECHANGING 124
1264#define WM_SYSCHAR 262
1265#define WM_SYSCOLORCHANGE 21
1266#define WM_SYSCOMMAND 274
1267#define WM_SYSDEADCHAR 263
1268#define WM_SYSKEYDOWN 260
1269#define WM_SYSKEYUP 261
1270#define WM_TCARD 82
1271#define WM_TIMECHANGE 30
1272#define WM_TIMER 275
1273#define WM_UNDO 772
1274#define WM_USER 1024
1275#define WM_USERCHANGED 84
1276#define WM_VKEYTOITEM 46
1277#define WM_VSCROLL 277
1278#define WM_VSCROLLCLIPBOARD 778
1279#define WM_WINDOWPOSCHANGED 71
1280#define WM_WINDOWPOSCHANGING 70
1281#define WM_WININICHANGE 26
1282#define WM_KEYFIRST 256
1283#define WM_KEYLAST 264
1284#define WM_SYNCPAINT 136
1285#define WM_MOUSEACTIVATE 33
1286#define WM_MOUSEMOVE 512
1287#define WM_LBUTTONDOWN 513
1288#define WM_LBUTTONUP 514
1289#define WM_LBUTTONDBLCLK 515
1290#define WM_RBUTTONDOWN 516
1291#define WM_RBUTTONUP 517
1292#define WM_RBUTTONDBLCLK 518
1293#define WM_MBUTTONDOWN 519
1294#define WM_MBUTTONUP 520
1295#define WM_MBUTTONDBLCLK 521
1296#define WM_MOUSEWHEEL 522
1297#define WM_MOUSEFIRST 512
1298#define WM_MOUSELAST 522
1299#define WM_MOUSEHOVER 0x2A1
1300#define WM_MOUSELEAVE 0x2A3
1301#if(_WIN32_WINNT >= 0x0400)
1302#define WHEEL_DELTA 120
1303#define GET_WHEEL_DELTA_WPARAM(wparam) ((short)HIWORD (wparam))
1304#endif
1305#define BM_CLICK 245
1306#define BM_GETCHECK 240
1307#define BM_GETIMAGE 246
1308#define BM_GETSTATE 242
1309#define BM_SETCHECK 241
1310#define BM_SETIMAGE 247
1311#define BM_SETSTATE 243
1312#define BM_SETSTYLE 244
1313#define BN_CLICKED 0
1314#define BN_DBLCLK 5
1315#define BN_DISABLE 4
1316#define BN_DOUBLECLICKED 5
1317#define BN_HILITE 2
1318#define BN_KILLFOCUS 7
1319#define BN_PAINT 1
1320#define BN_PUSHED 2
1321#define BN_SETFOCUS 6
1322#define BN_UNHILITE 3
1323#define BN_UNPUSHED 3
1324#define CB_ADDSTRING 323
1325#define CB_DELETESTRING 324
1326#define CB_DIR 325
1327#define CB_FINDSTRING 332
1328#define CB_FINDSTRINGEXACT 344
1329#define CB_GETCOUNT 326
1330#define CB_GETCURSEL 327
1331#define CB_GETDROPPEDCONTROLRECT 338
1332#define CB_GETDROPPEDSTATE 343
1333#define CB_GETDROPPEDWIDTH 351
1334#define CB_GETEDITSEL 320
1335#define CB_GETEXTENDEDUI 342
1336#define CB_GETHORIZONTALEXTENT 349
1337#define CB_GETITEMDATA 336
1338#define CB_GETITEMHEIGHT 340
1339#define CB_GETLBTEXT 328
1340#define CB_GETLBTEXTLEN 329
1341#define CB_GETLOCALE 346
1342#define CB_GETTOPINDEX 347
1343#define CB_INITSTORAGE 353
1344#define CB_INSERTSTRING 330
1345#define CB_LIMITTEXT 321
1346#define CB_RESETCONTENT 331
1347#define CB_SELECTSTRING 333
1348#define CB_SETCURSEL 334
1349#define CB_SETDROPPEDWIDTH 352
1350#define CB_SETEDITSEL 322
1351#define CB_SETEXTENDEDUI 341
1352#define CB_SETHORIZONTALEXTENT 350
1353#define CB_SETITEMDATA 337
1354#define CB_SETITEMHEIGHT 339
1355#define CB_SETLOCALE 345
1356#define CB_SETTOPINDEX 348
1357#define CB_SHOWDROPDOWN 335
1358#define CBN_CLOSEUP 8
1359#define CBN_DBLCLK 2
1360#define CBN_DROPDOWN 7
1361#define CBN_EDITCHANGE 5
1362#define CBN_EDITUPDATE 6
1363#define CBN_ERRSPACE (-1)
1364#define CBN_KILLFOCUS 4
1365#define CBN_SELCHANGE 1
1366#define CBN_SELENDCANCEL 10
1367#define CBN_SELENDOK 9
1368#define CBN_SETFOCUS 3
1369#define EM_CANUNDO 198
1370#define EM_CHARFROMPOS 215
1371#define EM_EMPTYUNDOBUFFER 205
1372#define EM_FMTLINES 200
1373#define EM_GETFIRSTVISIBLELINE 206
1374#define EM_GETHANDLE 189
1375#define EM_GETLIMITTEXT 213
1376#define EM_GETLINE 196
1377#define EM_GETLINECOUNT 186
1378#define EM_GETMARGINS 212
1379#define EM_GETMODIFY 184
1380#define EM_GETPASSWORDCHAR 210
1381#define EM_GETRECT 178
1382#define EM_GETSEL 176
1383#define EM_GETTHUMB 190
1384#define EM_GETWORDBREAKPROC 209
1385#define EM_LIMITTEXT 197
1386#define EM_LINEFROMCHAR 201
1387#define EM_LINEINDEX 187
1388#define EM_LINELENGTH 193
1389#define EM_LINESCROLL 182
1390#define EM_POSFROMCHAR 214
1391#define EM_REPLACESEL 194
1392#define EM_SCROLL 181
1393#define EM_SCROLLCARET 183
1394#define EM_SETHANDLE 188
1395#define EM_SETLIMITTEXT 197
1396#define EM_SETMARGINS 211
1397#define EM_SETMODIFY 185
1398#define EM_SETPASSWORDCHAR 204
1399#define EM_SETREADONLY 207
1400#define EM_SETRECT 179
1401#define EM_SETRECTNP 180
1402#define EM_SETSEL 177
1403#define EM_SETTABSTOPS 203
1404#define EM_SETWORDBREAKPROC 208
1405#define EM_UNDO 199
1406#define EN_CHANGE 768
1407#define EN_ERRSPACE 1280
1408#define EN_HSCROLL 1537
1409#define EN_KILLFOCUS 512
1410#define EN_MAXTEXT 1281
1411#define EN_SETFOCUS 256
1412#define EN_UPDATE 1024
1413#define EN_VSCROLL 1538
1414#define LB_ADDFILE 406
1415#define LB_ADDSTRING 384
1416#define LB_DELETESTRING 386
1417#define LB_DIR 397
1418#define LB_FINDSTRING 399
1419#define LB_FINDSTRINGEXACT 418
1420#define LB_GETANCHORINDEX 413
1421#define LB_GETCARETINDEX 415
1422#define LB_GETCOUNT 395
1423#define LB_GETCURSEL 392
1424#define LB_GETHORIZONTALEXTENT 403
1425#define LB_GETITEMDATA 409
1426#define LB_GETITEMHEIGHT 417
1427#define LB_GETITEMRECT 408
1428#define LB_GETLOCALE 422
1429#define LB_GETSEL 391
1430#define LB_GETSELCOUNT 400
1431#define LB_GETSELITEMS 401
1432#define LB_GETTEXT 393
1433#define LB_GETTEXTLEN 394
1434#define LB_GETTOPINDEX 398
1435#define LB_INITSTORAGE 424
1436#define LB_INSERTSTRING 385
1437#define LB_ITEMFROMPOINT 425
1438#define LB_RESETCONTENT 388
1439#define LB_SELECTSTRING 396
1440#define LB_SELITEMRANGE 411
1441#define LB_SELITEMRANGEEX 387
1442#define LB_SETANCHORINDEX 412
1443#define LB_SETCARETINDEX 414
1444#define LB_SETCOLUMNWIDTH 405
1445#define LB_SETCOUNT 423
1446#define LB_SETCURSEL 390
1447#define LB_SETHORIZONTALEXTENT 404
1448#define LB_SETITEMDATA 410
1449#define LB_SETITEMHEIGHT 416
1450#define LB_SETLOCALE 421
1451#define LB_SETSEL 389
1452#define LB_SETTABSTOPS 402
1453#define LB_SETTOPINDEX 407
1454#define LBN_DBLCLK 2
1455#define LBN_ERRSPACE (-2)
1456#define LBN_KILLFOCUS 5
1457#define LBN_SELCANCEL 3
1458#define LBN_SELCHANGE 1
1459#define LBN_SETFOCUS 4
1460#define SBM_ENABLE_ARROWS 228
1461#define SBM_GETPOS 225
1462#define SBM_GETRANGE 227
1463#define SBM_GETSCROLLINFO 234
1464#define SBM_SETPOS 224
1465#define SBM_SETRANGE 226
1466#define SBM_SETRANGEREDRAW 230
1467#define SBM_SETSCROLLINFO 233
1468#define STM_GETICON 369
1469#define STM_GETIMAGE 371
1470#define STM_SETICON 368
1471#define STM_SETIMAGE 370
1472#define STN_CLICKED 0
1473#define STN_DBLCLK 1
1474#define STN_DISABLE 3
1475#define STN_ENABLE 2
1476#define DM_GETDEFID WM_USER
1477#define DM_SETDEFID (WM_USER+1)
1478#define DM_REPOSITION (WM_USER+2)
1479#define PSM_PAGEINFO (WM_USER+100)
1480#define PSM_SHEETINFO (WM_USER+101)
1481#define PSI_SETACTIVE 1
1482#define PSI_KILLACTIVE 2
1483#define PSI_APPLY 3
1484#define PSI_RESET 4
1485#define PSI_HASHELP 5
1486#define PSI_HELP 6
1487#define PSI_CHANGED 1
1488#define PSI_GUISTART 2
1489#define PSI_REBOOT 3
1490#define PSI_GETSIBLINGS 4
1491#define DCX_WINDOW 1
1492#define DCX_CACHE 2
1493#define DCX_PARENTCLIP 32
1494#define DCX_CLIPSIBLINGS 16
1495#define DCX_CLIPCHILDREN 8
1496#define DCX_NORESETATTRS 4
1497#define DCX_LOCKWINDOWUPDATE 0x400
1498#define DCX_EXCLUDERGN 64
1499#define DCX_INTERSECTRGN 128
1500#define DCX_VALIDATE 0x200000
1501#define GMDI_GOINTOPOPUPS 2
1502#define GMDI_USEDISABLED 1
1503#define FKF_AVAILABLE 2
1504#define FKF_CLICKON 64
1505#define FKF_FILTERKEYSON 1
1506#define FKF_HOTKEYACTIVE 4
1507#define FKF_HOTKEYSOUND 16
1508#define FKF_CONFIRMHOTKEY 8
1509#define FKF_INDICATOR 32
1510#define HCF_HIGHCONTRASTON 1
1511#define HCF_AVAILABLE 2
1512#define HCF_HOTKEYACTIVE 4
1513#define HCF_CONFIRMHOTKEY 8
1514#define HCF_HOTKEYSOUND 16
1515#define HCF_INDICATOR 32
1516#define HCF_HOTKEYAVAILABLE 64
1517#define MKF_AVAILABLE 2
1518#define MKF_CONFIRMHOTKEY 8
1519#define MKF_HOTKEYACTIVE 4
1520#define MKF_HOTKEYSOUND 16
1521#define MKF_INDICATOR 32
1522#define MKF_MOUSEKEYSON 1
1523#define MKF_MODIFIERS 64
1524#define MKF_REPLACENUMBERS 128
1525#define SERKF_ACTIVE 8 /* May be obsolete. Not in recent MS docs. */
1526#define SERKF_AVAILABLE 2
1527#define SERKF_INDICATOR 4
1528#define SERKF_SERIALKEYSON 1
1529#define SSF_AVAILABLE 2
1530#define SSF_SOUNDSENTRYON 1
1531#define SSTF_BORDER 2
1532#define SSTF_CHARS 1
1533#define SSTF_DISPLAY 3
1534#define SSTF_NONE 0
1535#define SSGF_DISPLAY 3
1536#define SSGF_NONE 0
1537#define SSWF_CUSTOM 4
1538#define SSWF_DISPLAY 3
1539#define SSWF_NONE 0
1540#define SSWF_TITLE 1
1541#define SSWF_WINDOW 2
1542#define SKF_AUDIBLEFEEDBACK 64
1543#define SKF_AVAILABLE 2
1544#define SKF_CONFIRMHOTKEY 8
1545#define SKF_HOTKEYACTIVE 4
1546#define SKF_HOTKEYSOUND 16
1547#define SKF_INDICATOR 32
1548#define SKF_STICKYKEYSON 1
1549#define SKF_TRISTATE 128
1550#define SKF_TWOKEYSOFF 256
1551#define TKF_AVAILABLE 2
1552#define TKF_CONFIRMHOTKEY 8
1553#define TKF_HOTKEYACTIVE 4
1554#define TKF_HOTKEYSOUND 16
1555#define TKF_TOGGLEKEYSON 1
1556#define MDITILE_SKIPDISABLED 2
1557#define MDITILE_HORIZONTAL 1
1558#define MDITILE_VERTICAL 0
1559#define VK_LBUTTON 1
1560#define VK_RBUTTON 2
1561#define VK_CANCEL 3
1562#define VK_MBUTTON 4
1563#define VK_BACK 8
1564#define VK_TAB 9
1565#define VK_CLEAR 12
1566#define VK_RETURN 13
1567#define VK_KANA 15
1568#define VK_SHIFT 16
1569#define VK_CONTROL 17
1570#define VK_MENU 18
1571#define VK_PAUSE 19
1572#define VK_CAPITAL 20
1573#define VK_ESCAPE 0x1B
1574#define VK_SPACE 32
1575#define VK_PRIOR 33
1576#define VK_NEXT 34
1577#define VK_END 35
1578#define VK_HOME 36
1579#define VK_LEFT 37
1580#define VK_UP 38
1581#define VK_RIGHT 39
1582#define VK_DOWN 40
1583#define VK_SELECT 41
1584#define VK_PRINT 42
1585#define VK_EXECUTE 43
1586#define VK_SNAPSHOT 44
1587#define VK_INSERT 45
1588#define VK_DELETE 46
1589#define VK_HELP 47
1590#define VK_LWIN 0x5B
1591#define VK_RWIN 0x5C
1592#define VK_APPS 0x5D
1593#define VK_NUMPAD0 0x60
1594#define VK_NUMPAD1 0x61
1595#define VK_NUMPAD2 0x62
1596#define VK_NUMPAD3 0x63
1597#define VK_NUMPAD4 0x64
1598#define VK_NUMPAD5 0x65
1599#define VK_NUMPAD6 0x66
1600#define VK_NUMPAD7 0x67
1601#define VK_NUMPAD8 0x68
1602#define VK_NUMPAD9 0x69
1603#define VK_MULTIPLY 0x6A
1604#define VK_ADD 0x6B
1605#define VK_SEPARATOR 0x6C
1606#define VK_SUBTRACT 0x6D
1607#define VK_DECIMAL 0x6E
1608#define VK_DIVIDE 0x6F
1609#define VK_F1 0x70
1610#define VK_F2 0x71
1611#define VK_F3 0x72
1612#define VK_F4 0x73
1613#define VK_F5 0x74
1614#define VK_F6 0x75
1615#define VK_F7 0x76
1616#define VK_F8 0x77
1617#define VK_F9 0x78
1618#define VK_F10 0x79
1619#define VK_F11 0x7A
1620#define VK_F12 0x7B
1621#define VK_F13 0x7C
1622#define VK_F14 0x7D
1623#define VK_F15 0x7E
1624#define VK_F16 0x7F
1625#define VK_F17 0x80
1626#define VK_F18 0x81
1627#define VK_F19 0x82
1628#define VK_F20 0x83
1629#define VK_F21 0x84
1630#define VK_F22 0x85
1631#define VK_F23 0x86
1632#define VK_F24 0x87
1633#define VK_NUMLOCK 0x90
1634#define VK_SCROLL 0x91
1635#define VK_LSHIFT 0xA0
1636#define VK_RSHIFT 0xA1
1637#define VK_LCONTROL 0xA2
1638#define VK_RCONTROL 0xA3
1639#define VK_LMENU 0xA4
1640#define VK_RMENU 0xA5
1641#define VK_PROCESSKEY 0xE5
1642#define VK_ATTN 0xF6
1643#define VK_CRSEL 0xF7
1644#define VK_EXSEL 0xF8
1645#define VK_EREOF 0xF9
1646#define VK_PLAY 0xFA
1647#define VK_ZOOM 0xFB
1648#define VK_NONAME 0xFC
1649#define VK_PA1 0xFD
1650#define VK_OEM_CLEAR 0xFE
1651#define TME_HOVER 1
1652#define TME_LEAVE 2
1653#define TME_QUERY 0x40000000
1654#define TME_CANCEL 0x80000000
1655#define HOVER_DEFAULT 0xFFFFFFFF
1656#define MK_LBUTTON 1
1657#define MK_RBUTTON 2
1658#define MK_SHIFT 4
1659#define MK_CONTROL 8
1660#define MK_MBUTTON 16
1661#define TPM_CENTERALIGN 4
1662#define TPM_LEFTALIGN 0
1663#define TPM_RIGHTALIGN 8
1664#define TPM_LEFTBUTTON 0
1665#define TPM_RIGHTBUTTON 2
1666#define TPM_HORIZONTAL 0
1667#define TPM_VERTICAL 64
1668#define TPM_TOPALIGN 0
1669#define TPM_VCENTERALIGN 16
1670#define TPM_BOTTOMALIGN 32
1671#define TPM_NONOTIFY 128
1672#define TPM_RETURNCMD 256
1673#define HELP_COMMAND 0x102
1674#define HELP_CONTENTS 3
1675#define HELP_CONTEXT 1
1676#define HELP_CONTEXTPOPUP 8
1677#define HELP_FORCEFILE 9
1678#define HELP_HELPONHELP 4
1679#define HELP_INDEX 3
1680#define HELP_KEY 0x101
1681#define HELP_MULTIKEY 0x201
1682#define HELP_PARTIALKEY 0x105
1683#define HELP_QUIT 2
1684#define HELP_SETCONTENTS 5
1685#define HELP_SETINDEX 5
1686#define HELP_CONTEXTMENU 0xa
1687#define HELP_FINDER 0xb
1688#define HELP_WM_HELP 0xc
1689#define HELP_TCARD 0x8000
1690#define HELP_TCARD_DATA 16
1691#define HELP_TCARD_OTHER_CALLER 0x11
1692#define IDH_NO_HELP 28440
1693#define IDH_MISSING_CONTEXT 28441
1694#define IDH_GENERIC_HELP_BUTTON 28442
1695#define IDH_OK 28443
1696#define IDH_CANCEL 28444
1697#define IDH_HELP 28445
1698#define LB_CTLCODE 0
1699#define LB_OKAY 0
1700#define LB_ERR (-1)
1701#define LB_ERRSPACE (-2)
1702#define CB_OKAY 0
1703#define CB_ERR (-1)
1704#define CB_ERRSPACE (-2)
1705#define HIDE_WINDOW 0
1706#define SHOW_OPENWINDOW 1
1707#define SHOW_ICONWINDOW 2
1708#define SHOW_FULLSCREEN 3
1709#define SHOW_OPENNOACTIVATE 4
1710#define SW_PARENTCLOSING 1
1711#define SW_OTHERZOOM 2
1712#define SW_PARENTOPENING 3
1713#define SW_OTHERUNZOOM 4
1714#define KF_EXTENDED 256
1715#define KF_DLGMODE 2048
1716#define KF_MENUMODE 4096
1717#define KF_ALTDOWN 8192
1718#define KF_REPEAT 16384
1719#define KF_UP 32768
1720#define WSF_VISIBLE 1
1721#define PWR_OK 1
1722#define PWR_FAIL (-1)
1723#define PWR_SUSPENDREQUEST 1
1724#define PWR_SUSPENDRESUME 2
1725#define PWR_CRITICALRESUME 3
1726#define NFR_ANSI 1
1727#define NFR_UNICODE 2
1728#define NF_QUERY 3
1729#define NF_REQUERY 4
1730#define MENULOOP_WINDOW 0
1731#define MENULOOP_POPUP 1
1732#define WMSZ_LEFT 1
1733#define WMSZ_RIGHT 2
1734#define WMSZ_TOP 3
1735#define WMSZ_TOPLEFT 4
1736#define WMSZ_TOPRIGHT 5
1737#define WMSZ_BOTTOM 6
1738#define WMSZ_BOTTOMLEFT 7
1739#define WMSZ_BOTTOMRIGHT 8
1740#define HTERROR (-2)
1741#define HTTRANSPARENT (-1)
1742#define HTNOWHERE 0
1743#define HTCLIENT 1
1744#define HTCAPTION 2
1745#define HTSYSMENU 3
1746#define HTGROWBOX 4
1747#define HTSIZE 4
1748#define HTMENU 5
1749#define HTHSCROLL 6
1750#define HTVSCROLL 7
1751#define HTMINBUTTON 8
1752#define HTMAXBUTTON 9
1753#define HTREDUCE 8
1754#define HTZOOM 9
1755#define HTLEFT 10
1756#define HTSIZEFIRST 10
1757#define HTRIGHT 11
1758#define HTTOP 12
1759#define HTTOPLEFT 13
1760#define HTTOPRIGHT 14
1761#define HTBOTTOM 15
1762#define HTBOTTOMLEFT 16
1763#define HTBOTTOMRIGHT 17
1764#define HTSIZELAST 17
1765#define HTBORDER 18
1766#define HTOBJECT 19
1767#define HTCLOSE 20
1768#define HTHELP 21
1769#define MA_ACTIVATE 1
1770#define MA_ACTIVATEANDEAT 2
1771#define MA_NOACTIVATE 3
1772#define MA_NOACTIVATEANDEAT 4
1773#define SIZE_RESTORED 0
1774#define SIZE_MINIMIZED 1
1775#define SIZE_MAXIMIZED 2
1776#define SIZE_MAXSHOW 3
1777#define SIZE_MAXHIDE 4
1778#define SIZENORMAL 0
1779#define SIZEICONIC 1
1780#define SIZEFULLSCREEN 2
1781#define SIZEZOOMSHOW 3
1782#define SIZEZOOMHIDE 4
1783#define WVR_ALIGNTOP 16
1784#define WVR_ALIGNLEFT 32
1785#define WVR_ALIGNBOTTOM 64
1786#define WVR_ALIGNRIGHT 128
1787#define WVR_HREDRAW 256
1788#define WVR_VREDRAW 512
1789#define WVR_REDRAW (WVR_HREDRAW|WVR_VREDRAW)
1790#define WVR_VALIDRECTS 1024
1791#define PRF_CHECKVISIBLE 1
1792#define PRF_NONCLIENT 2
1793#define PRF_CLIENT 4
1794#define PRF_ERASEBKGND 8
1795#define PRF_CHILDREN 16
1796#define PRF_OWNED 32
1797#define IDANI_OPEN 1
1798#define IDANI_CLOSE 2
1799#define IDANI_CAPTION 3
1800#define WPF_RESTORETOMAXIMIZED 2
1801#define WPF_SETMINPOSITION 1
1802#define ODT_MENU 1
1803#define ODT_LISTBOX 2
1804#define ODT_COMBOBOX 3
1805#define ODT_BUTTON 4
1806#define ODT_STATIC 5
1807#define ODA_DRAWENTIRE 1
1808#define ODA_SELECT 2
1809#define ODA_FOCUS 4
1810#define ODS_SELECTED 1
1811#define ODS_GRAYED 2
1812#define ODS_DISABLED 4
1813#define ODS_CHECKED 8
1814#define ODS_FOCUS 16
1815#define ODS_DEFAULT 32
1816#define ODS_COMBOBOXEDIT 4096
1817#define IDHOT_SNAPWINDOW (-1)
1818#define IDHOT_SNAPDESKTOP (-2)
1819#define DBWF_LPARAMPOINTER 0x8000
1820#define DLGWINDOWEXTRA 30
1821#define MNC_IGNORE 0
1822#define MNC_CLOSE 1
1823#define MNC_EXECUTE 2
1824#define MNC_SELECT 3
1825#define DOF_EXECUTABLE 0x8001
1826#define DOF_DOCUMENT 0x8002
1827#define DOF_DIRECTORY 0x8003
1828#define DOF_MULTIPLE 0x8004
1829#define DOF_PROGMAN 1
1830#define DOF_SHELLDATA 2
1831#define DO_DROPFILE 0x454C4946
1832#define DO_PRINTFILE 0x544E5250
1833#define SW_SCROLLCHILDREN 1
1834#define SW_INVALIDATE 2
1835#define SW_ERASE 4
1836#define SC_SIZE 0xF000
1837#define SC_MOVE 0xF010
1838#define SC_MINIMIZE 0xF020
1839#define SC_ICON 0xf020
1840#define SC_MAXIMIZE 0xF030
1841#define SC_ZOOM 0xF030
1842#define SC_NEXTWINDOW 0xF040
1843#define SC_PREVWINDOW 0xF050
1844#define SC_CLOSE 0xF060
1845#define SC_VSCROLL 0xF070
1846#define SC_HSCROLL 0xF080
1847#define SC_MOUSEMENU 0xF090
1848#define SC_KEYMENU 0xF100
1849#define SC_ARRANGE 0xF110
1850#define SC_RESTORE 0xF120
1851#define SC_TASKLIST 0xF130
1852#define SC_SCREENSAVE 0xF140
1853#define SC_HOTKEY 0xF150
1854#define SC_DEFAULT 0xF160
1855#define SC_MONITORPOWER 0xF170
1856#define SC_CONTEXTHELP 0xF180
1857#define SC_SEPARATOR 0xF00F
1858#define EC_LEFTMARGIN 1
1859#define EC_RIGHTMARGIN 2
1860#define EC_USEFONTINFO 0xffff
1861#define DC_HASDEFID 0x534B
1862#define DLGC_WANTARROWS 1
1863#define DLGC_WANTTAB 2
1864#define DLGC_WANTALLKEYS 4
1865#define DLGC_WANTMESSAGE 4
1866#define DLGC_HASSETSEL 8
1867#define DLGC_DEFPUSHBUTTON 16
1868#define DLGC_UNDEFPUSHBUTTON 32
1869#define DLGC_RADIOBUTTON 64
1870#define DLGC_WANTCHARS 128
1871#define DLGC_STATIC 256
1872#define DLGC_BUTTON 0x2000
1873#define LB_CTLCODE 0
1874#define WA_INACTIVE 0
1875#define WA_ACTIVE 1
1876#define WA_CLICKACTIVE 2
1877#define ICON_SMALL 0
1878#define ICON_BIG 1
1879#define HBMMENU_CALLBACK ((HBITMAP) -1)
1880#define HBMMENU_SYSTEM ((HBITMAP)1)
1881#define HBMMENU_MBAR_RESTORE ((HBITMAP)2)
1882#define HBMMENU_MBAR_MINIMIZE ((HBITMAP)3)
1883#define HBMMENU_MBAR_CLOSE ((HBITMAP)5)
1884#define HBMMENU_MBAR_CLOSE_D ((HBITMAP)6)
1885#define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP)7)
1886#define HBMMENU_POPUP_CLOSE ((HBITMAP)8)
1887#define HBMMENU_POPUP_RESTORE ((HBITMAP)9)
1888#define HBMMENU_POPUP_MAXIMIZE ((HBITMAP)10)
1889#define HBMMENU_POPUP_MINIMIZE ((HBITMAP)11)
1890#define MOD_ALT 1
1891#define MOD_CONTROL 2
1892#define MOD_SHIFT 4
1893#define MOD_WIN 8
1894#define MOD_IGNORE_ALL_MODIFIER 1024
1895#define MOD_ON_KEYUP 2048
1896#define MOD_RIGHT 16384
1897#define MOD_LEFT 32768
1898#define LLKHF_ALTDOWN 0x00000020
1899
1900#ifndef RC_INVOKED
1901typedef BOOL(CALLBACK *DLGPROC)(HWND,UINT,WPARAM,LPARAM);
1902typedef VOID(CALLBACK *TIMERPROC)(HWND,UINT,UINT,DWORD);
1903typedef BOOL(CALLBACK *GRAYSTRINGPROC)(HDC,LPARAM,int);
1904typedef LRESULT(CALLBACK *HOOKPROC)(int,WPARAM,LPARAM);
1905typedef BOOL(CALLBACK *PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
1906typedef BOOL(CALLBACK *PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);
1907typedef BOOL(CALLBACK *PROPENUMPROCEXA)(HWND,LPSTR,HANDLE,DWORD);
1908typedef BOOL(CALLBACK *PROPENUMPROCEXW)(HWND,LPWSTR,HANDLE,DWORD);
1909typedef int(CALLBACK *EDITWORDBREAKPROCA)(LPSTR,int,int,int);
1910typedef int(CALLBACK *EDITWORDBREAKPROCW)(LPWSTR,int,int,int);
1911typedef LRESULT(CALLBACK *WNDPROC)(HWND,UINT,WPARAM,LPARAM);
1912typedef BOOL(CALLBACK *DRAWSTATEPROC)(HDC,LPARAM,WPARAM,int,int);
1913typedef BOOL(CALLBACK *WNDENUMPROC)(HWND,LPARAM);
1914typedef BOOL(CALLBACK *ENUMWINDOWSPROC)(HWND,LPARAM);
1915typedef BOOL(CALLBACK* MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
1916typedef BOOL(CALLBACK *NAMEENUMPROCA)(LPSTR,LPARAM);
1917typedef BOOL(CALLBACK *NAMEENUMPROCW)(LPWSTR,LPARAM);
1918typedef NAMEENUMPROCA DESKTOPENUMPROCA;
1919typedef NAMEENUMPROCW DESKTOPENUMPROCW;
1920typedef NAMEENUMPROCA WINSTAENUMPROCA;
1921typedef NAMEENUMPROCW WINSTAENUMPROCW;
1922typedef void(CALLBACK *SENDASYNCPROC)(HWND,UINT,DWORD,LRESULT);
1923DECLARE_HANDLE(HHOOK);
1924DECLARE_HANDLE(HDWP);
1925typedef struct tagACCEL {
1926 BYTE fVirt;
1927 WORD key;
1928 WORD cmd;
1929} ACCEL,*LPACCEL;
1930typedef struct tagACCESSTIMEOUT {
1931 UINT cbSize;
1932 DWORD dwFlags;
1933 DWORD iTimeOutMSec;
1934} ACCESSTIMEOUT, *LPACCESSTIMEOUT;
1935typedef struct tagANIMATIONINFO {
1936 UINT cbSize;
1937 int iMinAnimate;
1938} ANIMATIONINFO,*LPANIMATIONINFO;
1939typedef struct tagCREATESTRUCTA {
1940 LPVOID lpCreateParams;
1941 HINSTANCE hInstance;
1942 HMENU hMenu;
1943 HWND hwndParent;
1944 int cy;
1945 int cx;
1946 int y;
1947 int x;
1948 LONG style;
1949 LPCSTR lpszName;
1950 LPCSTR lpszClass;
1951 DWORD dwExStyle;
1952} CREATESTRUCTA,*LPCREATESTRUCTA;
1953typedef struct tagCREATESTRUCTW {
1954 LPVOID lpCreateParams;
1955 HINSTANCE hInstance;
1956 HMENU hMenu;
1957 HWND hwndParent;
1958 int cy;
1959 int cx;
1960 int y;
1961 int x;
1962 LONG style;
1963 LPCWSTR lpszName;
1964 LPCWSTR lpszClass;
1965 DWORD dwExStyle;
1966} CREATESTRUCTW,*LPCREATESTRUCTW;
1967typedef struct tagCBT_CREATEWNDA {
1968 LPCREATESTRUCTA lpcs;
1969 HWND hwndInsertAfter;
1970} CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
1971typedef struct tagCBT_CREATEWNDW {
1972 LPCREATESTRUCTW lpcs;
1973 HWND hwndInsertAfter;
1974} CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
1975typedef struct tagCBTACTIVATESTRUCT {
1976 BOOL fMouse;
1977 HWND hWndActive;
1978} CBTACTIVATESTRUCT,*LPCBTACTIVATESTRUCT;
1979typedef struct tagCLIENTCREATESTRUCT {
1980 HANDLE hWindowMenu;
1981 UINT idFirstChild;
1982} CLIENTCREATESTRUCT,*LPCLIENTCREATESTRUCT;
1983typedef struct tagCOMPAREITEMSTRUCT {
1984 UINT CtlType;
1985 UINT CtlID;
1986 HWND hwndItem;
1987 UINT itemID1;
1988 DWORD itemData1;
1989 UINT itemID2;
1990 DWORD itemData2;
1991 DWORD dwLocaleId;
1992} COMPAREITEMSTRUCT,*LPCOMPAREITEMSTRUCT;
1993typedef struct tagCOPYDATASTRUCT {
1994 DWORD dwData;
1995 DWORD cbData;
1996 PVOID lpData;
1997} COPYDATASTRUCT,*PCOPYDATASTRUCT;
1998typedef struct tagCURSORSHAPE {
1999 int xHotSpot;
2000 int yHotSpot;
2001 int cx;
2002 int cy;
2003 int cbWidth;
2004 BYTE Planes;
2005 BYTE BitsPixel;
2006} CURSORSHAPE,*LPCURSORSHAPE;
2007typedef struct tagCWPRETSTRUCT {
2008 LRESULT lResult;
2009 LPARAM lParam;
2010 WPARAM wParam;
2011 DWORD message;
2012 HWND hwnd;
2013} CWPRETSTRUCT;
2014typedef struct tagCWPSTRUCT {
2015 LPARAM lParam;
2016 WPARAM wParam;
2017 UINT message;
2018 HWND hwnd;
2019} CWPSTRUCT,*PCWPSTRUCT;
2020typedef struct tagDEBUGHOOKINFO {
2021 DWORD idThread;
2022 DWORD idThreadInstaller;
2023 LPARAM lParam;
2024 WPARAM wParam;
2025 int code;
2026} DEBUGHOOKINFO,*PDEBUGHOOKINFO,*LPDEBUGHOOKINFO;
2027typedef struct tagDELETEITEMSTRUCT {
2028 UINT CtlType;
2029 UINT CtlID;
2030 UINT itemID;
2031 HWND hwndItem;
2032 UINT itemData;
2033} DELETEITEMSTRUCT,*PDELETEITEMSTRUCT,*LPDELETEITEMSTRUCT;
2034#pragma pack(push,2)
2035typedef struct {
2036 DWORD style;
2037 DWORD dwExtendedStyle;
2038 short x;
2039 short y;
2040 short cx;
2041 short cy;
2042 WORD id;
2043} DLGITEMTEMPLATE,*LPDLGITEMTEMPLATE;
2044typedef struct {
2045 DWORD style;
2046 DWORD dwExtendedStyle;
2047 WORD cdit;
2048 short x;
2049 short y;
2050 short cx;
2051 short cy;
2052} DLGTEMPLATE,*LPDLGTEMPLATE;
2053typedef const DLGTEMPLATE *LPCDLGTEMPLATE;
2054#pragma pack(pop)
2055typedef struct tagDRAWITEMSTRUCT {
2056 UINT CtlType;
2057 UINT CtlID;
2058 UINT itemID;
2059 UINT itemAction;
2060 UINT itemState;
2061 HWND hwndItem;
2062 HDC hDC;
2063 RECT rcItem;
2064 DWORD itemData;
2065} DRAWITEMSTRUCT,*LPDRAWITEMSTRUCT,*PDRAWITEMSTRUCT;
2066typedef struct {
2067 UINT cbSize;
2068 int iTabLength;
2069 int iLeftMargin;
2070 int iRightMargin;
2071 UINT uiLengthDrawn;
2072} DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
2073typedef struct tagPAINTSTRUCT {
2074 HDC hdc;
2075 BOOL fErase;
2076 RECT rcPaint;
2077 BOOL fRestore;
2078 BOOL fIncUpdate;
2079 BYTE rgbReserved[32];
2080} PAINTSTRUCT,*LPPAINTSTRUCT;
2081typedef struct tagMSG {
2082 HWND hwnd;
2083 UINT message;
2084 WPARAM wParam;
2085 LPARAM lParam;
2086 DWORD time;
2087 POINT pt;
2088} MSG,*LPMSG,*PMSG;
2089typedef struct _ICONINFO {
2090 BOOL fIcon;
2091 DWORD xHotspot;
2092 DWORD yHotspot;
2093 HBITMAP hbmMask;
2094 HBITMAP hbmColor;
2095} ICONINFO,*PICONINFO;
2096typedef struct tagNMHDR {
2097 HWND hwndFrom;
2098 UINT idFrom;
2099 UINT code;
2100} NMHDR,*LPNMHDR;
2101typedef struct _WNDCLASSA {
2102 UINT style;
2103 WNDPROC lpfnWndProc;
2104 int cbClsExtra;
2105 int cbWndExtra;
2106 HANDLE hInstance;
2107 HICON hIcon;
2108 HCURSOR hCursor;
2109 HBRUSH hbrBackground;
2110 LPCSTR lpszMenuName;
2111 LPCSTR lpszClassName;
2112} WNDCLASSA,*LPWNDCLASSA,*PWNDCLASSA;
2113typedef struct _WNDCLASSW {
2114 UINT style;
2115 WNDPROC lpfnWndProc;
2116 int cbClsExtra;
2117 int cbWndExtra;
2118 HANDLE hInstance;
2119 HICON hIcon;
2120 HCURSOR hCursor;
2121 HBRUSH hbrBackground;
2122 LPCWSTR lpszMenuName;
2123 LPCWSTR lpszClassName;
2124} WNDCLASSW,*LPWNDCLASSW,*PWNDCLASSW;
2125typedef struct _WNDCLASSEXA {
2126 UINT cbSize;
2127 UINT style;
2128 WNDPROC lpfnWndProc;
2129 int cbClsExtra;
2130 int cbWndExtra;
2131 HANDLE hInstance;
2132 HICON hIcon;
2133 HCURSOR hCursor;
2134 HBRUSH hbrBackground;
2135 LPCSTR lpszMenuName;
2136 LPCSTR lpszClassName;
2137 HICON hIconSm;
2138} WNDCLASSEXA,*LPWNDCLASSEXA,*PWNDCLASSEXA;
2139typedef struct _WNDCLASSEXW {
2140 UINT cbSize;
2141 UINT style;
2142 WNDPROC lpfnWndProc;
2143 int cbClsExtra;
2144 int cbWndExtra;
2145 HANDLE hInstance;
2146 HICON hIcon;
2147 HCURSOR hCursor;
2148 HBRUSH hbrBackground;
2149 LPCWSTR lpszMenuName;
2150 LPCWSTR lpszClassName;
2151 HICON hIconSm;
2152} WNDCLASSEXW,*LPWNDCLASSEXW,*PWNDCLASSEXW;
2153typedef struct tagMENUITEMINFOA {
2154 UINT cbSize;
2155 UINT fMask;
2156 UINT fType;
2157 UINT fState;
2158 UINT wID;
2159 HMENU hSubMenu;
2160 HBITMAP hbmpChecked;
2161 HBITMAP hbmpUnchecked;
2162 DWORD dwItemData;
2163 LPSTR dwTypeData;
2164 UINT cch;
2165#if (_WIN32_WINNT >= 0x0500)
2166 HBITMAP hbmpItem;
2167#endif
2168} MENUITEMINFOA,*LPMENUITEMINFOA;
2169typedef const MENUITEMINFOA *LPCMENUITEMINFOA;
2170typedef struct tagMENUITEMINFOW {
2171 UINT cbSize;
2172 UINT fMask;
2173 UINT fType;
2174 UINT fState;
2175 UINT wID;
2176 HMENU hSubMenu;
2177 HBITMAP hbmpChecked;
2178 HBITMAP hbmpUnchecked;
2179 DWORD dwItemData;
2180 LPWSTR dwTypeData;
2181 UINT cch;
2182#if (_WIN32_WINNT >= 0x0500)
2183 HBITMAP hbmpItem;
2184#endif
2185} MENUITEMINFOW,*LPMENUITEMINFOW;
2186typedef const MENUITEMINFOW *LPCMENUITEMINFOW;
2187typedef struct tagSCROLLINFO {
2188 UINT cbSize;
2189 UINT fMask;
2190 int nMin;
2191 int nMax;
2192 UINT nPage;
2193 int nPos;
2194 int nTrackPos;
2195} SCROLLINFO,*LPSCROLLINFO;
2196typedef const SCROLLINFO *LPCSCROLLINFO;
2197typedef struct _WINDOWPLACEMENT {
2198 UINT length;
2199 UINT flags;
2200 UINT showCmd;
2201 POINT ptMinPosition;
2202 POINT ptMaxPosition;
2203 RECT rcNormalPosition;
2204} WINDOWPLACEMENT,*LPWINDOWPLACEMENT,*PWINDOWPLACEMENT;
2205typedef struct {
2206 WORD versionNumber;
2207 WORD offset;
2208} MENUITEMTEMPLATEHEADER;
2209typedef struct {
2210 WORD mtOption;
2211 WORD mtID;
2212 WCHAR mtString[1];
2213} MENUITEMTEMPLATE;
2214typedef void MENUTEMPLATE,MENUTEMPLATEA,MENUTEMPLATEW,*LPMENUTEMPLATEA,*LPMENUTEMPLATEW,*LPMENUTEMPLATE;
2215typedef struct tagHELPINFO {
2216 UINT cbSize;
2217 int iContextType;
2218 int iCtrlId;
2219 HANDLE hItemHandle;
2220 DWORD dwContextId;
2221 POINT MousePos;
2222} HELPINFO,*LPHELPINFO;
2223typedef void(CALLBACK *MSGBOXCALLBACK)(LPHELPINFO);
2224typedef struct {
2225 UINT cbSize;
2226 HWND hwndOwner;
2227 HINSTANCE hInstance;
2228 LPCSTR lpszText;
2229 LPCSTR lpszCaption;
2230 DWORD dwStyle;
2231 LPCSTR lpszIcon;
2232 DWORD dwContextHelpId;
2233 MSGBOXCALLBACK lpfnMsgBoxCallback;
2234 DWORD dwLanguageId;
2235} MSGBOXPARAMSA,*PMSGBOXPARAMSA,*LPMSGBOXPARAMSA;
2236typedef struct {
2237 UINT cbSize;
2238 HWND hwndOwner;
2239 HINSTANCE hInstance;
2240 LPCWSTR lpszText;
2241 LPCWSTR lpszCaption;
2242 DWORD dwStyle;
2243 LPCWSTR lpszIcon;
2244 DWORD dwContextHelpId;
2245 MSGBOXCALLBACK lpfnMsgBoxCallback;
2246 DWORD dwLanguageId;
2247} MSGBOXPARAMSW,*PMSGBOXPARAMSW,*LPMSGBOXPARAMSW;
2248typedef struct tagUSEROBJECTFLAGS {
2249 BOOL fInherit;
2250 BOOL fReserved;
2251 DWORD dwFlags;
2252} USEROBJECTFLAGS;
2253typedef struct tagFILTERKEYS {
2254 UINT cbSize;
2255 DWORD dwFlags;
2256 DWORD iWaitMSec;
2257 DWORD iDelayMSec;
2258 DWORD iRepeatMSec;
2259 DWORD iBounceMSec;
2260} FILTERKEYS;
2261typedef struct tagHIGHCONTRASTA {
2262 UINT cbSize;
2263 DWORD dwFlags;
2264 LPSTR lpszDefaultScheme;
2265} HIGHCONTRASTA,*LPHIGHCONTRASTA;
2266typedef struct tagHIGHCONTRASTW {
2267 UINT cbSize;
2268 DWORD dwFlags;
2269 LPWSTR lpszDefaultScheme;
2270} HIGHCONTRASTW,*LPHIGHCONTRASTW;
2271typedef struct tagICONMETRICSA {
2272 UINT cbSize;
2273 int iHorzSpacing;
2274 int iVertSpacing;
2275 int iTitleWrap;
2276 LOGFONTA lfFont;
2277} ICONMETRICSA,*LPICONMETRICSA;
2278typedef struct tagICONMETRICSW {
2279 UINT cbSize;
2280 int iHorzSpacing;
2281 int iVertSpacing;
2282 int iTitleWrap;
2283 LOGFONTW lfFont;
2284} ICONMETRICSW,*LPICONMETRICSW;
2285typedef struct tagMINIMIZEDMETRICS {
2286 UINT cbSize;
2287 int iWidth;
2288 int iHorzGap;
2289 int iVertGap;
2290 int iArrange;
2291} MINIMIZEDMETRICS,*LPMINIMIZEDMETRICS;
2292typedef struct tagMOUSEKEYS{
2293 UINT cbSize;
2294 DWORD dwFlags;
2295 DWORD iMaxSpeed;
2296 DWORD iTimeToMaxSpeed;
2297 DWORD iCtrlSpeed;
2298 DWORD dwReserved1;
2299 DWORD dwReserved2;
2300} MOUSEKEYS, *LPMOUSEKEYS;
2301typedef struct tagNONCLIENTMETRICSA {
2302 UINT cbSize;
2303 int iBorderWidth;
2304 int iScrollWidth;
2305 int iScrollHeight;
2306 int iCaptionWidth;
2307 int iCaptionHeight;
2308 LOGFONTA lfCaptionFont;
2309 int iSmCaptionWidth;
2310 int iSmCaptionHeight;
2311 LOGFONTA lfSmCaptionFont;
2312 int iMenuWidth;
2313 int iMenuHeight;
2314 LOGFONTA lfMenuFont;
2315 LOGFONTA lfStatusFont;
2316 LOGFONTA lfMessageFont;
2317} NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
2318typedef struct tagNONCLIENTMETRICSW {
2319 UINT cbSize;
2320 int iBorderWidth;
2321 int iScrollWidth;
2322 int iScrollHeight;
2323 int iCaptionWidth;
2324 int iCaptionHeight;
2325 LOGFONTW lfCaptionFont;
2326 int iSmCaptionWidth;
2327 int iSmCaptionHeight;
2328 LOGFONTW lfSmCaptionFont;
2329 int iMenuWidth;
2330 int iMenuHeight;
2331 LOGFONTW lfMenuFont;
2332 LOGFONTW lfStatusFont;
2333 LOGFONTW lfMessageFont;
2334} NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
2335typedef struct tagSERIALKEYSA {
2336 UINT cbSize;
2337 DWORD dwFlags;
2338 LPSTR lpszActivePort;
2339 LPSTR lpszPort;
2340 UINT iBaudRate;
2341 UINT iPortState;
2342 UINT iActive;
2343} SERIALKEYSA,*LPSERIALKEYSA;
2344typedef struct tagSERIALKEYSW {
2345 UINT cbSize;
2346 DWORD dwFlags;
2347 LPWSTR lpszActivePort;
2348 LPWSTR lpszPort;
2349 UINT iBaudRate;
2350 UINT iPortState;
2351 UINT iActive;
2352} SERIALKEYSW,*LPSERIALKEYSW;
2353typedef struct tagSOUNDSENTRYA {
2354 UINT cbSize;
2355 DWORD dwFlags;
2356 DWORD iFSTextEffect;
2357 DWORD iFSTextEffectMSec;
2358 DWORD iFSTextEffectColorBits;
2359 DWORD iFSGrafEffect;
2360 DWORD iFSGrafEffectMSec;
2361 DWORD iFSGrafEffectColor;
2362 DWORD iWindowsEffect;
2363 DWORD iWindowsEffectMSec;
2364 LPSTR lpszWindowsEffectDLL;
2365 DWORD iWindowsEffectOrdinal;
2366} SOUNDSENTRYA,*LPSOUNDSENTRYA;
2367typedef struct tagSOUNDSENTRYW {
2368 UINT cbSize;
2369 DWORD dwFlags;
2370 DWORD iFSTextEffect;
2371 DWORD iFSTextEffectMSec;
2372 DWORD iFSTextEffectColorBits;
2373 DWORD iFSGrafEffect;
2374 DWORD iFSGrafEffectMSec;
2375 DWORD iFSGrafEffectColor;
2376 DWORD iWindowsEffect;
2377 DWORD iWindowsEffectMSec;
2378 LPWSTR lpszWindowsEffectDLL;
2379 DWORD iWindowsEffectOrdinal;
2380} SOUNDSENTRYW,*LPSOUNDSENTRYW;
2381typedef struct tagSTICKYKEYS {
2382 DWORD cbSize;
2383 DWORD dwFlags;
2384} STICKYKEYS,*LPSTICKYKEYS;
2385typedef struct tagTOGGLEKEYS {
2386 DWORD cbSize;
2387 DWORD dwFlags;
2388} TOGGLEKEYS;
2389typedef struct tagTRACKMOUSEEVENT {
2390 DWORD cbSize;
2391 DWORD dwFlags;
2392 HWND hwndTrack;
2393 DWORD dwHoverTime;
2394} TRACKMOUSEEVENT,*LPTRACKMOUSEEVENT;
2395typedef struct tagTPMPARAMS {
2396 UINT cbSize;
2397 RECT rcExclude;
2398} TPMPARAMS,*LPTPMPARAMS;
2399typedef struct tagEVENTMSG {
2400 UINT message;
2401 UINT paramL;
2402 UINT paramH;
2403 DWORD time;
2404 HWND hwnd;
2405} EVENTMSG,*PEVENTMSGMSG,*LPEVENTMSGMSG, *PEVENTMSG, *LPEVENTMSG;
2406typedef struct _WINDOWPOS {
2407 HWND hwnd;
2408 HWND hwndInsertAfter;
2409 int x;
2410 int y;
2411 int cx;
2412 int cy;
2413 UINT flags;
2414} WINDOWPOS,*PWINDOWPOS,*LPWINDOWPOS;
2415typedef struct tagMDICREATESTRUCTA {
2416 LPCSTR szClass;
2417 LPCSTR szTitle;
2418 HANDLE hOwner;
2419 int x;

1053 more lines aren’t shown here.

win32/include/winapi/winver.h+133−0

This diff is large: its 134 lines aren’t shown here.

win32/lib/chkstk.S+29−0

This diff is large: its 30 lines aren’t shown here.

win32/lib/crt1.c+35−0

This diff is large: its 36 lines aren’t shown here.

win32/lib/dllcrt1.c+13−0

This diff is large: its 14 lines aren’t shown here.

win32/lib/dllmain.c+9−0

This diff is large: its 10 lines aren’t shown here.

win32/lib/gdi32.def+337−0

This diff is large: its 338 lines aren’t shown here.

win32/lib/kernel32.def+763−0

This diff is large: its 764 lines aren’t shown here.

win32/lib/msvcrt.def+782−0

This diff is large: its 783 lines aren’t shown here.

win32/lib/user32.def+654−0

This diff is large: its 655 lines aren’t shown here.

win32/lib/wincrt1.c+49−0

This diff is large: its 50 lines aren’t shown here.

win32/readme.txt+102−0

This diff is large: its 103 lines aren’t shown here.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t