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
5858 With @code{libtcc}, you can use TCC as a backend for dynamic code
5959 generation (@pxref{Libtcc}).
6060
61−TCC mainly supports the i386 target. There are alpha ports for the ARM
62−(@code{arm-tcc}) and the TMS320C67xx targets (@code{c67-tcc}). More
63−information about the ARM port is available at
61+TCC mainly supports the i386 target on Linux and Windows. There are alpha
62+ports for the ARM (@code{arm-tcc}) and the TMS320C67xx targets
63+(@code{c67-tcc}). More information about the ARM port is available at
6464 @url{http://lists.gnu.org/archive/html/tinycc-devel/2003-10/msg00044.html}.
6565
6666 @node Invoke
tcc.c+13−2
@@ -85,6 +85,10 @@ · 84 unmodified lines
8585 #define CONFIG_TCC_BCHECK /* enable bound checking code */
8686 #endif
8787
88+#if defined(WIN32) && !defined(TCC_TARGET_PE)
89+#define CONFIG_TCC_STATIC
90+#endif
91+
8892 /* define it to include assembler support */
8993 #if !defined(TCC_TARGET_ARM) && !defined(TCC_TARGET_C67)
9094 #define CONFIG_TCC_ASM
@@ -392,7 +396,7 @@ static const char **rt_bound_error_msg; · 301 unmodified lines
392396 static struct TCCState *tcc_state;
393397
394398 /* give the path of the tcc libraries */
395−static const char *tcc_lib_path = CONFIG_TCC_LIBDIR "/tcc";
399+static const char *tcc_lib_path = CONFIG_TCCDIR;
396400
397401 struct TCCState {
398402 int output_type;
@@ -699,6 +703,12 @@ static const char tcc_keywords[] = · 300 unmodified lines
699703 #define TOK_UIDENT TOK_DEFINE
700704
701705 #ifdef WIN32
706+int __stdcall GetModuleFileNameA(void *, char *, int);
707+void *__stdcall GetProcAddress(void *, const char *);
708+void *__stdcall GetModuleHandleA(const char *);
709+void *__stdcall LoadLibraryA(const char *);
710+int __stdcall FreeConsole(void);
711+
702712 #define snprintf _snprintf
703713 #define vsnprintf _vsnprintf
704714 #endif
@@ -10499,7 +10509,8 @@ int main(int argc, char **argv) · 9794 unmodified lines
1049910509 of 'tcc.exe' */
1050010510 {
1050110511 static char path[1024];
10502−
10512+ char *p, *d;
10513+
1050310514 GetModuleFileNameA(NULL, path, sizeof path);
1050410515 p = d = strlwr(path);
1050510516 while (*d)
tccpe.c+0−8
@@ -380,14 +380,6 @@ ST char pe_type; · 379 unmodified lines
380380 #define PE_GUI 2
381381 #define PE_EXE 3
382382
383−#ifdef WIN32
384−int __stdcall GetModuleFileNameA(void *, char *, int);
385−void *__stdcall GetProcAddress(void *, const char *);
386−void *__stdcall GetModuleHandleA(const char *);
387−void *__stdcall LoadLibraryA(const char *);
388−int __stdcall FreeConsole(void);
389−#endif
390−
391383 ST int pe_find_import(TCCState * s1, const char *symbol, char *ret)
392384 {
393385 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+
41+int 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+
53+LPVOID 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+
95+BOOL 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+
128+BOOL 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+
161+int 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+
214+int 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+ {
259+usage:
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+ );
266+error:
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+
365+the_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+
11+DLL_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+
3+LIBRARY dll.dll
4+
5+EXPORTS
6+HelloWorld
win32/examples/fib.c+23−0
@@ -0,0 +1,23 @@
1+#include <stdio.h>
2+
3+int fib(n)
4+{
5+ if (n <= 2)
6+ return 1;
7+ else
8+ return fib(n-1) + fib(n-2);
9+}
10+
11+int 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+
8+void HelloWorld (void);
9+
10+int 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+
11+char szAppName[] = APPNAME; // The name of this application
12+char szTitle[] = APPNAME; // The title bar text
13+char *pWindowText;
14+
15+HINSTANCE g_hInst; // current instance
16+
17+void 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+
29+LRESULT 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+//----------------------------------------------------------------------------
85+int 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+
143+void 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
43+typedef 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
36+extern "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+ */
52+void _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
18+extern "C" {
19+#endif
20+
21+#define BLINK 0
22+
23+typedef 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+
52+void clreol (void);
53+void clrscr (void);
54+
55+int _conio_gettext (int left, int top, int right, int bottom,
56+ char *str);
57+/* _conio_kbhit */
58+
59+void delline (void);
60+
61+/* gettextinfo */
62+void gotoxy(int x, int y);
63+/*
64+highvideo
65+insline
66+intensevideo
67+lowvideo
68+movetext
69+normvideo
70+*/
71+
72+void puttext (int left, int top, int right, int bottom, char *str);
73+
74+// Screen Variables
75+
76+/* ScreenCols
77+ScreenGetChar
78+ScreenGetCursor
79+ScreenMode
80+ScreenPutChar
81+ScreenPutString
82+ScreenRetrieve
83+ScreenRows
84+ScreenSetCursor
85+ScreenUpdate
86+ScreenUpdateLine
87+ScreenVisualBell
88+_set_screen_lines */
89+
90+void _setcursortype (int type);
91+
92+void textattr (int _attr);
93+
94+void textbackground (int color);
95+
96+void textcolor (int color);
97+
98+/* textmode */
99+
100+int wherex (void);
101+
102+int 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+
136+char* _cgets (char*);
137+int _cprintf (const char*, ...);
138+int _cputs (const char*);
139+int _cscanf (char*, ...);
140+
141+int _getch (void);
142+int _getche (void);
143+int _kbhit (void);
144+int _putch (int);
145+int _ungetch (int);
146+
147+
148+int getch (void);
149+int getche (void);
150+int kbhit (void);
151+int putch (int);
152+int 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
59+extern "C" {
60+#endif
61+
62+int isalnum(int);
63+int isalpha(int);
64+int iscntrl(int);
65+int isdigit(int);
66+int isgraph(int);
67+int islower(int);
68+int isprint(int);
69+int ispunct(int);
70+int isspace(int);
71+int isupper(int);
72+int isxdigit(int);
73+
74+#ifndef __STRICT_ANSI__
75+int _isctype (int, int);
76+#endif
77+
78+/* These are the ANSI versions, with correct checking of argument */
79+int tolower(int);
80+int 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+ */
92+int _tolower(int);
93+int _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))
133+extern __inline__ int isalnum(int c) {return __ISCTYPE(c, (_ALPHA|_DIGIT));}
134+extern __inline__ int isalpha(int c) {return __ISCTYPE(c, _ALPHA);}
135+extern __inline__ int iscntrl(int c) {return __ISCTYPE(c, _CONTROL);}
136+extern __inline__ int isdigit(int c) {return __ISCTYPE(c, _DIGIT);}
137+extern __inline__ int isgraph(int c) {return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT));}
138+extern __inline__ int islower(int c) {return __ISCTYPE(c, _LOWER);}
139+extern __inline__ int isprint(int c) {return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT));}
140+extern __inline__ int ispunct(int c) {return __ISCTYPE(c, _PUNCT);}
141+extern __inline__ int isspace(int c) {return __ISCTYPE(c, _SPACE);}
142+extern __inline__ int isupper(int c) {return __ISCTYPE(c, _UPPER);}
143+extern __inline__ int isxdigit(int c) {return __ISCTYPE(c, _HEX);}
144+
145+/* these reproduce behaviour of lib underscored versions */
146+extern __inline__ int _tolower(int c) {return ( c -'A'+'a');}
147+extern __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
161+typedef wchar_t wctype_t;
162+#define _WCTYPE_T_DEFINED
163+#endif
164+
165+int iswalnum(wint_t);
166+int iswalpha(wint_t);
167+int iswascii(wint_t);
168+int iswcntrl(wint_t);
169+int iswctype(wint_t, wctype_t);
170+int is_wctype(wint_t, wctype_t); /* Obsolete! */
171+int iswdigit(wint_t);
172+int iswgraph(wint_t);
173+int iswlower(wint_t);
174+int iswprint(wint_t);
175+int iswpunct(wint_t);
176+int iswspace(wint_t);
177+int iswupper(wint_t);
178+int iswxdigit(wint_t);
179+
180+wchar_t towlower(wchar_t);
181+wchar_t towupper(wchar_t);
182+
183+int isleadbyte (int);
184+
185+/* Also in wctype.h */
186+#if ! (defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED))
187+#define __WCTYPE_INLINES_DEFINED
188+extern __inline__ int iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
189+extern __inline__ int iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
190+extern __inline__ int iswascii(wint_t wc) {return (((unsigned)wc & 0x7F) ==0);}
191+extern __inline__ int iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
192+extern __inline__ int iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
193+extern __inline__ int iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
194+extern __inline__ int iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
195+extern __inline__ int iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
196+extern __inline__ int iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
197+extern __inline__ int iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
198+extern __inline__ int iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
199+extern __inline__ int iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
200+extern __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__
204+int __isascii (int);
205+int __toascii (int);
206+int __iscsymf (int); /* Valid first character in C symbol */
207+int __iscsym (int); /* Valid character in C symbol (after first) */
208+
209+#ifndef __NO_CTYPE_INLINES
210+extern __inline__ int __isascii(int c) {return (((unsigned)c & ~0x7F) == 0);}
211+extern __inline__ int __toascii(int c) {return (c & 0x7F);}
212+extern __inline__ int __iscsymf(int c) {return (isalpha(c) || (c == '_'));}
213+extern __inline__ int __iscsym(int c) {return (isalnum(c) || (c == '_'));}
214+#endif /* __NO_CTYPE_INLINES */
215+
216+#ifndef _NO_OLDNAMES
217+int isascii (int);
218+int toascii (int);
219+int iscsymf (int);
220+int 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
46+extern "C" {
47+#endif
48+
49+#ifndef _DISKFREE_T_DEFINED
50+/* needed by _getdiskfree (also in dos.h) */
51+struct _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+ */
64+int _getdrive (void);
65+unsigned long _getdrives(void);
66+int _chdrive (int);
67+char* _getdcwd (int, char*, int);
68+unsigned _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__
77+int _wchdir(const wchar_t*);
78+wchar_t* _wgetcwd(wchar_t*, int);
79+wchar_t* _wgetdcwd(int, wchar_t*, int);
80+int _wmkdir(const wchar_t*);
81+int _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
37+extern "C" {
38+#endif
39+
40+struct 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+ */
54+typedef 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+
80+DIR* opendir (const char*);
81+struct dirent* readdir (DIR*);
82+int closedir (DIR*);
83+void rewinddir (DIR*);
84+long telldir (DIR*);
85+void 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
46+extern "C" {
47+#endif
48+
49+#ifndef __MSVCRT__ /* these are in CRTDLL, but not MSVCRT */
50+#ifndef __DECLSPEC_SUPPORTED
51+extern unsigned int *__imp__basemajor_dll;
52+extern unsigned int *__imp__baseminor_dll;
53+extern unsigned int *__imp__baseversion_dll;
54+extern unsigned int *__imp__osmajor_dll;
55+extern unsigned int *__imp__osminor_dll;
56+extern 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) */
86+struct _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+
95+unsigned _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
96+extern "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
105+extern int errno;
106+#else
107+int* _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__
96+extern unsigned int* __imp__fmode;
97+#define _fmode (*__imp__fmode)
98+#else
99+/* CRTDLL */
100+extern 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
117+extern "C" {
118+#endif
119+
120+int _setmode (int, int);
121+
122+#ifndef _NO_OLDNAMES
123+int 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+*/
9+typedef unsigned short fexcept_t;
10+
11+/* This 28-byte struct represents the entire floating point
12+ environment as stored by fnstenv or fstenv */
13+typedef 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
53+extern "C" {
54+#endif
55+
56+
57+/*TODO: Some of these could be inlined */
58+/* 7.6.2 Exception */
59+
60+extern int feclearexcept (int);
61+extern int fegetexceptflag (fexcept_t * flagp, int excepts);
62+extern int feraiseexcept (int excepts );
63+extern int fesetexceptflag (const fexcept_t *, int);
64+extern int fetestexcept (int excepts);
65+
66+
67+/* 7.6.3 Rounding */
68+
69+extern int fegetround (void);
70+extern int fesetround (int mode);
71+
72+
73+/* 7.6.4 Environment */
74+
75+extern int fegetenv (fenv_t * envp);
76+extern int fesetenv (const fenv_t * );
77+extern int feupdateenv (const fenv_t *);
78+extern 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
179+extern "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. */
185+unsigned int _controlfp (unsigned int unNew, unsigned int unMask);
186+unsigned int _control87 (unsigned int unNew, unsigned int unMask);
187+
188+
189+unsigned int _clearfp (void); /* Clear the FPU status word */
190+unsigned int _statusfp (void); /* Report the FPU status word */
191+#define _clear87 _clearfp
192+#define _status87 _statusfp
193+
194+void _fpreset (void); /* Reset the FPU */
195+void fpreset (void);
196+
197+/* Global 'variable' for the current floating point error code. */
198+int * __fpecode(void);
199+#define _fpecode (*(__fpecode()))
200+
201+/*
202+ * IEEE recommended functions
203+ */
204+
205+double _chgsign (double);
206+double _copysign (double, double);
207+double _logb (double);
208+double _nextafter (double, double);
209+double _scalb (double, long);
210+
211+int _finite (double);
212+int _fpclass (double);
213+int _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
11+extern "C" {
12+#endif
13+
14+typedef 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+
257+extern inline intmax_t imaxabs (intmax_t j)
258+ {return (j >= 0 ? j : -j);}
259+imaxdiv_t imaxdiv (intmax_t numer, intmax_t denom);
260+
261+/* 7.8.2 Conversion functions for greatest-width integer types */
262+
263+intmax_t strtoimax (const char* __restrict__ nptr, char** __restrict__ endptr, int base);
264+uintmax_t strtoumax (const char* __restrict__ nptr, char** __restrict__ endptr, int base);
265+
266+intmax_t wcstoimax (const wchar_t* __restrict__ nptr, wchar_t** __restrict__ endptr,
267+ int base);
268+uintmax_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
60+typedef 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+ */
68+struct _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+
78+struct _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
89+struct _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+};
97+struct _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
110+extern "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+ */
119+int _findfirst (const char*, struct _finddata_t*);
120+int _findnext (int, struct _finddata_t*);
121+int _findclose (int);
122+
123+int _chdir (const char*);
124+char* _getcwd (char*, int);
125+int _mkdir (const char*);
126+char* _mktemp (char*);
127+int _rmdir (const char*);
128+
129+
130+#ifdef __MSVCRT__
131+__int64 _filelengthi64(int);
132+long _findfirsti64(const char*, struct _finddatai64_t*);
133+int _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
142+int chdir (const char*);
143+char* getcwd (char*, int);
144+int mkdir (const char*);
145+char* mktemp (char*);
146+int 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
174+extern "C" {
175+#endif
176+
177+int _access (const char*, int);
178+int _chsize (int, long);
179+int _close (int);
180+int _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). */
184+int _creat (const char*, unsigned);
185+
186+int _dup (int);
187+int _dup2 (int, int);
188+long _filelength (int);
189+int _fileno (FILE*);
190+long _get_osfhandle (int);
191+int _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
199+int _eof (int);
200+#endif
201+
202+/* LK_... locking commands defined in sys/locking.h. */
203+int _locking (int, int, long);
204+
205+long _lseek (int, long, int);
206+
207+/* Optional third argument is unsigned unPermissions. */
208+int _open (const char*, int, ...);
209+
210+int _open_osfhandle (long, int);
211+int _pipe (int *, unsigned int, int);
212+int _read (int, void*, unsigned int);
213+
214+/* SH_... flags for nShFlags defined in share.h
215+ * Optional fourth argument is unsigned unPermissions */
216+int _sopen (const char*, int, int, ...);
217+
218+long _tell (int);
219+/* Should umask be in sys/stat.h and/or sys/types.h instead? */
220+int _umask (int);
221+int _unlink (const char*);
222+int _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__)
228+int _waccess(const wchar_t*, int);
229+int _wchmod(const wchar_t*, int);
230+int _wcreat(const wchar_t*, int);
231+long _wfindfirst(wchar_t*, struct _wfinddata_t*);
232+int _wfindnext(long, struct _wfinddata_t *);
233+int _wunlink(const wchar_t*);
234+int _wopen(const wchar_t*, int, ...);
235+int _wsopen(const wchar_t*, int, int, ...);
236+wchar_t * _wmktemp(wchar_t*);
237+long _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*);
238+int _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
250+int access (const char*, int);
251+int chsize (int, long );
252+int close (int);
253+int creat (const char*, int);
254+int dup (int);
255+int dup2 (int, int);
256+int eof (int);
257+long filelength (int);
258+int fileno (FILE*);
259+int isatty (int);
260+long lseek (int, long, int);
261+int open (const char*, int, ...);
262+int read (int, void*, unsigned int);
263+int sopen (const char*, int, int, ...);
264+long tell (int);
265+int umask (int);
266+int unlink (const char*);
267+int 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
273+int waccess(const wchar_t *, int);
274+int wchmod(const wchar_t *, int);
275+int wcreat(const wchar_t *, int);
276+long wfindfirst(wchar_t *, struct _wfinddata_t *);
277+int wfindnext(long, struct _wfinddata_t *);
278+int wunlink(const wchar_t *);
279+int wrename(const wchar_t *, const wchar_t *);
280+int wopen(const wchar_t *, int, ...);
281+int wsopen(const wchar_t *, int, int, ...);
282+wchar_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+ */
57+struct 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
80+extern "C" {
81+#endif
82+
83+char* setlocale (int, const char*);
84+struct 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+ */
45+typedef 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
57+extern "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+*/
63+int _heapwalk (_HEAPINFO*);
64+
65+#ifndef _NO_OLDNAMES
66+int heapwalk (_HEAPINFO*);
67+#endif /* Not _NO_OLDNAMES */
68+
69+int _heapchk (void); /* Verify heap integrety. */
70+int _heapmin (void); /* Return unused heap to the OS. */
71+int _heapset (unsigned int);
72+
73+size_t _msize (void*);
74+size_t _get_sbh_threshold (void);
75+int _set_sbh_threshold (size_t);
76+void * _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
84+extern "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__
101+extern double* __imp__HUGE;
102+#define HUGE_VAL (*__imp__HUGE)
103+#else
104+/* CRTDLL */
105+extern 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+
122+struct _exception
123+{
124+ int type;
125+ char *name;
126+ double arg1;
127+ double arg2;
128+ double retval;
129+};
130+
131+
132+double sin (double);
133+double cos (double);
134+double tan (double);
135+double sinh (double);
136+double cosh (double);
137+double tanh (double);
138+double asin (double);
139+double acos (double);
140+double atan (double);
141+double atan2 (double, double);
142+double exp (double);
143+double log (double);
144+double log10 (double);
145+double pow (double, double);
146+double sqrt (double);
147+double ceil (double);
148+double floor (double);
149+double fabs (double);
150+double ldexp (double, int);
151+double frexp (double, int*);
152+double modf (double, double*);
153+double fmod (double, double);
154+
155+
156+#ifndef __STRICT_ANSI__
157+
158+/* Complex number (for cabs) */
159+struct _complex
160+{
161+ double x; /* Real part */
162+ double y; /* Imaginary part */
163+};
164+
165+double _cabs (struct _complex);
166+double _hypot (double, double);
167+double _j0 (double);
168+double _j1 (double);
169+double _jn (int, double);
170+double _y0 (double);
171+double _y1 (double);
172+double _yn (int, double);
173+int _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+
182+double _chgsign (double);
183+double _copysign (double, double);
184+double _logb (double);
185+double _nextafter (double, double);
186+double _scalb (double, long);
187+
188+int _finite (double);
189+int _fpclass (double);
190+int _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+
203+double cabs (struct _complex);
204+double hypot (double, double);
205+double j0 (double);
206+double j1 (double);
207+double jn (int, double);
208+double y0 (double);
209+double y1 (double);
210+double 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
242+extern "C" {
243+#endif
244+
245+double nan(const char *tagp);
246+float 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+*/
261+extern __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+
267+extern 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+
275+extern __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+
284+extern __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+
302+extern __inline__ int __signbit (double x) {
303+ unsigned short stw;
304+ __asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x));
305+ return stw & 0x0200;
306+}
307+
308+extern __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 */
335+extern __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 */
358+extern __inline__ double rint (double x)
359+{
360+ double retval;
361+ __asm__ ("frndint;": "=t" (retval) : "0" (x));
362+ return retval;
363+}
364+
365+extern __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 */
373+extern double round (double);
374+extern float roundf (float);
375+
376+/* round towards zero, regardless of fpu control word settings */
377+extern double trunc (double);
378+extern 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+
386+extern double fmax (double, double);
387+extern double fmin (double, double);
388+extern float fmaxf (float, float);
389+float fminf (float, float);
390+
391+/* return x * y + z as a ternary op */
392+extern double fma (double, double, double);
393+extern float fmaf (float, float, float);
394+
395+/* one lonely transcendental */
396+extern double log2 (double _x);
397+extern float log2f (float _x);
398+
399+/* The underscored versions are in MSVCRT.dll.
400+ The stubs for these are in libmingwex.a */
401+
402+double copysign (double, double);
403+float copysignf (float, float);
404+double logb (double);
405+float logbf (float);
406+double nextafter (double, double);
407+float nextafterf (float, float);
408+double scalb (double, long);
409+float scalbf (float, long);
410+
411+#if !defined (__STRICT_ANSI__) /* inline using non-ANSI functions */
412+extern __inline__ double copysign (double x, double y)
413+ { return _copysign(x, y); }
414+extern __inline__ float copysignf (float x, float y)
415+ { return _copysign(x, y); }
416+extern __inline__ double logb (double x)
417+ { return _logb(x); }
418+extern __inline__ float logbf (float x)
419+ { return _logb(x); }
420+extern __inline__ double nextafter(double x, double y)
421+ { return _nextafter(x, y); }
422+extern __inline__ float nextafterf(float x, float y)
423+ { return _nextafter(x, y); }
424+extern __inline__ double scalb (double x, long i)
425+ { return _scalb (x, i); }
426+extern __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
73+extern "C" {
74+#endif
75+
76+void _cexit(void);
77+void _c_exit(void);
78+
79+int _cwait (int*, _pid_t, int);
80+
81+_pid_t _getpid(void);
82+
83+int _execl (const char*, const char*, ...);
84+int _execle (const char*, const char*, ...);
85+int _execlp (const char*, const char*, ...);
86+int _execlpe (const char*, const char*, ...);
87+int _execv (const char*, char* const*);
88+int _execve (const char*, char* const*, char* const*);
89+int _execvp (const char*, char* const*);
90+int _execvpe (const char*, char* const*, char* const*);
91+
92+int _spawnl (int, const char*, const char*, ...);
93+int _spawnle (int, const char*, const char*, ...);
94+int _spawnlp (int, const char*, const char*, ...);
95+int _spawnlpe (int, const char*, const char*, ...);
96+int _spawnv (int, const char*, char* const*);
97+int _spawnve (int, const char*, char* const*, char* const*);
98+int _spawnvp (int, const char*, char* const*);
99+int _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+ */
112+unsigned long
113+ _beginthread (void (*)(void *), unsigned, void*);
114+void _endthread (void);
115+
116+#ifdef __MSVCRT__
117+unsigned long
118+ _beginthreadex (void *, unsigned, unsigned (__stdcall *) (void *),
119+ void*, unsigned, unsigned*);
120+void _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+ */
129+int cwait (int*, pid_t, int);
130+pid_t getpid (void);
131+int execl (const char*, const char*, ...);
132+int execle (const char*, const char*, ...);
133+int execlp (const char*, const char*, ...);
134+int execlpe (const char*, const char*, ...);
135+int execv (const char*, char* const*);
136+int execve (const char*, char* const*, char* const*);
137+int execvp (const char*, char* const*);
138+int execvpe (const char*, char* const*, char* const*);
139+int spawnl (int, const char*, const char*, ...);
140+int spawnle (int, const char*, const char*, ...);
141+int spawnlp (int, const char*, const char*, ...);
142+int spawnlpe (int, const char*, const char*, ...);
143+int spawnv (int, const char*, char* const*);
144+int spawnve (int, const char*, char* const*, char* const*);
145+int spawnvp (int, const char*, char* const*);
146+int 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
37+extern "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
49+typedef _JBTYPE jmp_buf[_JBLEN];
50+
51+/*
52+ * The function provided by CRTDLL which appears to do the actual work
53+ * of setjmp.
54+ */
55+int _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+ */
63+void 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
62+typedef 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+ */
76+typedef 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
88+extern "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+ */
102+int 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+
4+typedef 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 */
12+typedef 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)
5+typedef __SIZE_TYPE__ size_t;
6+typedef __WCHAR_TYPE__ wchar_t;
7+typedef __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
15+typedef char int8_t;
16+typedef short int int16_t;
17+typedef int int32_t;
18+typedef 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 */
24+typedef signed char int8_t;
25+typedef unsigned char uint8_t;
26+typedef short int16_t;
27+typedef unsigned short uint16_t;
28+typedef int int32_t;
29+typedef unsigned uint32_t;
30+typedef long long int64_t;
31+typedef unsigned long long uint64_t;
32+
33+/* 7.18.1.2 Minimum-width integer types */
34+typedef signed char int_least8_t;
35+typedef unsigned char uint_least8_t;
36+typedef short int_least16_t;
37+typedef unsigned short uint_least16_t;
38+typedef int int_least32_t;
39+typedef unsigned uint_least32_t;
40+typedef long long int_least64_t;
41+typedef 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+ */
47+typedef char int_fast8_t;
48+typedef unsigned char uint_fast8_t;
49+typedef short int_fast16_t;
50+typedef unsigned short uint_fast16_t;
51+typedef int int_fast32_t;
52+typedef unsigned int uint_fast32_t;
53+typedef long long int_fast64_t;
54+typedef unsigned long long uint_fast64_t;
55+
56+/* 7.18.1.4 Integer types capable of holding object pointers */
57+typedef int intptr_t;
58+typedef unsigned uintptr_t;
59+
60+/* 7.18.1.5 Greatest-width integer types */
61+typedef long long intmax_t;
62+typedef 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
133+typedef __builtin_va_list va_list;
134+#else
135+typedef 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
147+typedef 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+
166+extern 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
181+extern "C" {
182+#endif
183+
184+/*
185+ * File Operations
186+ */
187+FILE* fopen (const char*, const char*);
188+FILE* freopen (const char*, const char*, FILE*);
189+int fflush (FILE*);
190+int fclose (FILE*);
191+/* MS puts remove & rename (but not wide versions) in io.h also */
192+int remove (const char*);
193+int rename (const char*, const char*);
194+FILE* tmpfile (void);
195+char* tmpnam (char*);
196+char* _tempnam (const char*, const char*);
197+
198+#ifndef NO_OLDNAMES
199+char* tempnam (const char*, const char*);
200+#endif
201+
202+int setvbuf (FILE*, char*, int, size_t);
203+
204+void setbuf (FILE*, char*);
205+
206+/*
207+ * Formatted Output
208+ */
209+
210+int fprintf (FILE*, const char*, ...);
211+int printf (const char*, ...);
212+int sprintf (char*, const char*, ...);
213+int _snprintf (char*, size_t, const char*, ...);
214+int vfprintf (FILE*, const char*, va_list);
215+int vprintf (const char*, va_list);
216+int vsprintf (char*, const char*, va_list);
217+int _vsnprintf (char*, size_t, const char*, va_list);
218+
219+#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
220+int snprintf(char* s, size_t n, const char* format, ...);
221+extern 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+
230+int fscanf (FILE*, const char*, ...);
231+int scanf (const char*, ...);
232+int sscanf (const char*, const char*, ...);
233+/*
234+ * Character Input and Output Functions
235+ */
236+
237+int fgetc (FILE*);
238+char* fgets (char*, int, FILE*);
239+int fputc (int, FILE*);
240+int fputs (const char*, FILE*);
241+int getc (FILE*);
242+int getchar (void);
243+char* gets (char*);
244+int putc (int, FILE*);
245+int putchar (int);
246+int puts (const char*);
247+int ungetc (int, FILE*);
248+
249+/*
250+ * Direct Input and Output Functions
251+ */
252+
253+size_t fread (void*, size_t, size_t, FILE*);
254+size_t fwrite (const void*, size_t, size_t, FILE*);
255+
256+/*
257+ * File Positioning Functions
258+ */
259+
260+int fseek (FILE*, long, int);
261+long ftell (FILE*);
262+void 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+
270+int __mingw_fseek (FILE *, long, int);
271+int __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__
287+typedef long long fpos_t;
288+#else
289+typedef long fpos_t;
290+#endif
291+
292+int fgetpos (FILE*, fpos_t*);
293+int fsetpos (FILE*, const fpos_t*);
294+
295+/*
296+ * Error Functions
297+ */
298+
299+void clearerr (FILE*);
300+int feof (FILE*);
301+int ferror (FILE*);
302+void perror (const char*);
303+
304+
305+#ifndef __STRICT_ANSI__
306+/*
307+ * Pipes
308+ */
309+FILE* _popen (const char*, const char*);
310+int _pclose (FILE*);
311+
312+#ifndef NO_OLDNAMES
313+FILE* popen (const char*, const char*);
314+int pclose (FILE*);
315+#endif
316+
317+/*
318+ * Other Non ANSI functions
319+ */
320+int _flushall (void);
321+int _fgetchar (void);
322+int _fputchar (int);
323+FILE* _fdopen (int, const char*);
324+int _fileno (FILE*);
325+
326+#ifndef _NO_OLDNAMES
327+int fgetchar (void);
328+int fputchar (int);
329+FILE* fdopen (int, const char*);
330+int 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 */
339+int fwprintf (FILE*, const wchar_t*, ...);
340+int wprintf (const wchar_t*, ...);
341+int swprintf (wchar_t*, const wchar_t*, ...);
342+int _snwprintf (wchar_t*, size_t, const wchar_t*, ...);
343+int vfwprintf (FILE*, const wchar_t*, va_list);
344+int vwprintf (const wchar_t*, va_list);
345+int vswprintf (wchar_t*, const wchar_t*, va_list);
346+int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list);
347+int fwscanf (FILE*, const wchar_t*, ...);
348+int wscanf (const wchar_t*, ...);
349+int swscanf (const wchar_t*, const wchar_t*, ...);
350+wint_t fgetwc (FILE*);
351+wint_t fputwc (wchar_t, FILE*);
352+wint_t ungetwc (wchar_t, FILE*);
353+#ifdef __MSVCRT__
354+wchar_t* fgetws (wchar_t*, int, FILE*);
355+int fputws (const wchar_t*, FILE*);
356+wint_t getwc (FILE*);
357+wint_t getwchar (void);
358+wchar_t* _getws (wchar_t*);
359+wint_t putwc (wint_t, FILE*);
360+int _putws (const wchar_t*);
361+wint_t putwchar (wint_t);
362+FILE* _wfopen (const wchar_t*, const wchar_t*);
363+FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
364+FILE* _wfsopen (const wchar_t*, const wchar_t*, int);
365+wchar_t* _wtmpnam (wchar_t*);
366+wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
367+int _wrename (const wchar_t*, const wchar_t*);
368+int _wremove (const wchar_t*);
369+void _wperror (const wchar_t*);
370+FILE* _wpopen (const wchar_t*, const wchar_t*);
371+#endif /* __MSVCRT__ */
372+
373+#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
374+int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...);
375+extern 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
386+FILE* 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+ */
393+wint_t _fgetwchar (void);
394+wint_t _fputwchar (wint_t);
395+int _getw (FILE*);
396+int _putw (int, FILE*);
397+
398+#ifndef _NO_OLDNAMES
399+wint_t fgetwchar (void);
400+wint_t fputwchar (wint_t);
401+int getw (FILE*);
402+int 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
77+extern "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+ */
86+extern int _argc;
87+extern char** _argv;
88+
89+/* imports from runtime dll of the above variables */
90+#ifdef __MSVCRT__
91+
92+extern int* __p___argc(void);
93+extern char*** __p___argv(void);
94+extern 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+
104+extern int* __imp___argc_dll;
105+extern 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
140+extern int errno;
141+#else
142+int* _errno(void);
143+#define errno (*_errno())
144+#endif
145+int* __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
197+extern 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+
214+extern unsigned int* __p__osver(void);
215+extern unsigned int* __p__winver(void);
216+extern unsigned int* __p__winmajor(void);
217+extern 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+
229+extern unsigned int* _imp___osver_dll;
230+extern unsigned int* _imp___winver_dll;
231+extern unsigned int* _imp___winmajor_dll;
232+extern 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. */
258+char** __p__pgmptr(void);
259+#define _pgmptr (*__p__pgmptr())
260+wchar_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+
281+double atof (const char*);
282+int atoi (const char*);
283+long atol (const char*);
284+int _wtoi (const wchar_t *);
285+long _wtol (const wchar_t *);
286+
287+double strtod (const char*, char**);
288+#if !defined __NO_ISOCEXT /* extern stubs in static libmingwex.a */
289+extern __inline__ float strtof (const char *nptr, char **endptr)
290+ { return (strtod (nptr, endptr));}
291+#endif /* __NO_ISOCEXT */
292+
293+long strtol (const char*, char**, int);
294+unsigned long strtoul (const char*, char**, int);
295+
296+#ifndef _WSTDLIB_DEFINED
297+/* also declared in wchar.h */
298+double wcstod (const wchar_t*, wchar_t**);
299+#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
300+extern __inline__ float wcstof( const wchar_t *nptr, wchar_t **endptr)
301+{ return (wcstod(nptr, endptr)); }
302+#endif /* __NO_ISOCEXT */
303+
304+long wcstol (const wchar_t*, wchar_t**, int);
305+unsigned long wcstoul (const wchar_t*, wchar_t**, int);
306+#define _WSTDLIB_DEFINED
307+#endif
308+
309+size_t wcstombs (char*, const wchar_t*, size_t);
310+int wctomb (char*, wchar_t);
311+
312+int mblen (const char*, size_t);
313+size_t mbstowcs (wchar_t*, const char*, size_t);
314+int mbtowc (wchar_t*, const char*, size_t);
315+
316+int rand (void);
317+void srand (unsigned int);
318+
319+void* calloc (size_t, size_t);
320+void* malloc (size_t);
321+void* realloc (void*, size_t);
322+void free (void*);
323+
324+void abort (void) _ATTRIB_NORETURN;
325+void exit (int) _ATTRIB_NORETURN;
326+int atexit (void (*)(void));
327+
328+int system (const char*);
329+char* getenv (const char*);
330+
331+void* bsearch (const void*, const void*, size_t, size_t,
332+ int (*)(const void*, const void*));
333+void qsort (const void*, size_t, size_t,
334+ int (*)(const void*, const void*));
335+
336+int abs (int);
337+long 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+ */
347+typedef struct { int quot, rem; } div_t;
348+typedef struct { long quot, rem; } ldiv_t;
349+
350+div_t div (int, int);
351+ldiv_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+ */
359+void _beep (unsigned int, unsigned int);
360+void _seterrormode (int);
361+void _sleep (unsigned long);
362+
363+void _exit (int) _ATTRIB_NORETURN;
364+#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
365+/* C99 function name */
366+void _Exit(int) _ATTRIB_NORETURN; /* Declare to get noreturn attribute. */
367+extern __inline__ void _Exit(int status)
368+ { _exit(status); }
369+#endif
370+/* _onexit is MS extension. Use atexit for portability. */
371+typedef int (* _onexit_t)(void);
372+_onexit_t _onexit( _onexit_t );
373+
374+int _putenv (const char*);
375+void _searchenv (const char*, const char*, char*);
376+
377+
378+char* _ecvt (double, int, int*, int*);
379+char* _fcvt (double, int, int*, int*);
380+char* _gcvt (double, int, char*);
381+
382+void _makepath (char*, const char*, const char*, const char*, const char*);
383+void _splitpath (const char*, char*, char*, char*, char*);
384+char* _fullpath (char*, const char*, size_t);
385+
386+
387+char* _itoa (int, char*, int);
388+char* _ltoa (long, char*, int);
389+char* _ultoa(unsigned long, char*, int);
390+wchar_t* _itow (int, wchar_t*, int);
391+wchar_t* _ltow (long, wchar_t*, int);
392+wchar_t* _ultow (unsigned long, wchar_t*, int);
393+
394+#ifdef __MSVCRT__
395+__int64 _atoi64(const char *);
396+char* _i64toa(__int64, char *, int);
397+char* _ui64toa(unsigned __int64, char *, int);
398+__int64 _wtoi64(const wchar_t *);
399+wchar_t* _i64tow(__int64, wchar_t *, int);
400+wchar_t* _ui64tow(unsigned __int64, wchar_t *, int);
401+
402+wchar_t* _wgetenv(const wchar_t*);
403+int _wputenv(const wchar_t*);
404+void _wsearchenv(const wchar_t*, const wchar_t*, wchar_t*);
405+void _wmakepath(wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*);
406+void _wsplitpath (const wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*);
407+wchar_t* _wfullpath (wchar_t*, const wchar_t*, size_t);
408+#endif
409+
410+#ifndef _NO_OLDNAMES
411+
412+int putenv (const char*);
413+void searchenv (const char*, const char*, char*);
414+
415+char* itoa (int, char*, int);
416+char* ltoa (long, char*, int);
417+
418+#ifndef _UWIN
419+char* ecvt (double, int, int*, int*);
420+char* fcvt (double, int, int*, int*);
421+char* 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+
431+typedef struct { long long quot, rem; } lldiv_t;
432+
433+lldiv_t lldiv (long long, long long);
434+
435+extern __inline__ long long llabs(long long _j)
436+ {return (_j >= 0 ? _j : -_j);}
437+
438+long long strtoll (const char* __restrict__, char** __restrict, int);
439+unsigned long long strtoull (const char* __restrict__, char** __restrict__, int);
440+
441+#if defined (__MSVCRT__) /* these are stubs for MS _i64 versions */
442+long long atoll (const char *);
443+
444+#if !defined (__STRICT_ANSI__)
445+long long wtoll(const wchar_t *);
446+char* lltoa(long long, char *, int);
447+char* ulltoa(unsigned long long , char *, int);
448+wchar_t* lltow(long long, wchar_t *, int);
449+wchar_t* ulltow(unsigned long long, wchar_t *, int);
450+
451+ /* inline using non-ansi functions */
452+extern __inline__ long long atoll (const char * _c)
453+ { return _atoi64 (_c); }
454+extern __inline__ char* lltoa(long long _n, char * _c, int _i)
455+ { return _i64toa (_n, _c, _i); }
456+extern __inline__ char* ulltoa(unsigned long long _n, char * _c, int _i)
457+ { return _ui64toa (_n, _c, _i); }
458+extern __inline__ long long wtoll(const wchar_t * _w)
459+ { return _wtoi64 (_w); }
460+extern __inline__ wchar_t* lltow(long long _n, wchar_t * _w, int _i)
461+ { return _i64tow (_n, _w, _i); }
462+extern __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
46+extern "C" {
47+#endif
48+
49+/*
50+ * Prototypes of the ANSI Standard C library string functions.
51+ */
52+void* memchr (const void*, int, size_t);
53+int memcmp (const void*, const void*, size_t);
54+void* memcpy (void*, const void*, size_t);
55+void* memmove (void*, const void*, size_t);
56+void* memset (void*, int, size_t);
57+char* strcat (char*, const char*);
58+char* strchr (const char*, int);
59+int strcmp (const char*, const char*);
60+int strcoll (const char*, const char*); /* Compare using locale */
61+char* strcpy (char*, const char*);
62+size_t strcspn (const char*, const char*);
63+char* strerror (int); /* NOTE: NOT an old name wrapper. */
64+char* _strerror (const char *);
65+size_t strlen (const char*);
66+char* strncat (char*, const char*, size_t);
67+int strncmp (const char*, const char*, size_t);
68+char* strncpy (char*, const char*, size_t);
69+char* strpbrk (const char*, const char*);
70+char* strrchr (const char*, int);
71+size_t strspn (const char*, const char*);
72+char* strstr (const char*, const char*);
73+char* strtok (char*, const char*);
74+size_t strxfrm (char*, const char*, size_t);
75+
76+#ifndef __STRICT_ANSI__
77+/*
78+ * Extra non-ANSI functions provided by the CRTDLL library
79+ */
80+void* _memccpy (void*, const void*, int, size_t);
81+int _memicmp (const void*, const void*, size_t);
82+char* _strdup (const char*);
83+int _strcmpi (const char*, const char*);
84+int _stricmp (const char*, const char*);
85+int _stricoll (const char*, const char*);
86+char* _strlwr (char*);
87+int _strnicmp (const char*, const char*, size_t);
88+char* _strnset (char*, int, size_t);
89+char* _strrev (char*);
90+char* _strset (char*, int);
91+char* _strupr (char*);
92+void _swab (const char*, char*, size_t);
93+
94+/*
95+ * Multi-byte character functions
96+ */
97+unsigned char* _mbschr (unsigned char*, unsigned char*);
98+unsigned char* _mbsncat (unsigned char*, const unsigned char*, size_t);
99+unsigned char* _mbstok (unsigned char*, unsigned char*);
100+
101+#ifdef __MSVCRT__
102+int _strncoll(const char*, const char*, size_t);
103+int _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+ */
111+wchar_t* wcscat (wchar_t*, const wchar_t*);
112+wchar_t* wcschr (const wchar_t*, wchar_t);
113+int wcscmp (const wchar_t*, const wchar_t*);
114+int wcscoll (const wchar_t*, const wchar_t*);
115+wchar_t* wcscpy (wchar_t*, const wchar_t*);
116+size_t wcscspn (const wchar_t*, const wchar_t*);
117+/* Note: No wcserror in CRTDLL. */
118+size_t wcslen (const wchar_t*);
119+wchar_t* wcsncat (wchar_t*, const wchar_t*, size_t);
120+int wcsncmp(const wchar_t*, const wchar_t*, size_t);
121+wchar_t* wcsncpy(wchar_t*, const wchar_t*, size_t);
122+wchar_t* wcspbrk(const wchar_t*, const wchar_t*);
123+wchar_t* wcsrchr(const wchar_t*, wchar_t);
124+size_t wcsspn(const wchar_t*, const wchar_t*);
125+wchar_t* wcsstr(const wchar_t*, const wchar_t*);
126+wchar_t* wcstok(wchar_t*, const wchar_t*);
127+size_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+
137+wchar_t* _wcsdup (wchar_t*);
138+int _wcsicmp (const wchar_t*, const wchar_t*);
139+int _wcsicoll (const wchar_t*, const wchar_t*);
140+wchar_t* _wcslwr (wchar_t*);
141+int _wcsnicmp (const wchar_t*, const wchar_t*, size_t);
142+wchar_t* _wcsnset (wchar_t*, wchar_t, size_t);
143+wchar_t* _wcsrev (wchar_t*);
144+wchar_t* _wcsset (wchar_t*, wchar_t);
145+wchar_t* _wcsupr (wchar_t*);
146+
147+#ifdef __MSVCRT__
148+int _wcsncoll(const wchar_t*, const wchar_t*, size_t);
149+int _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+
165+void* memccpy (void*, const void*, int, size_t);
166+int memicmp (const void*, const void*, size_t);
167+char* strdup (const char*);
168+int strcmpi (const char*, const char*);
169+int stricmp (const char*, const char*);
170+int strcasecmp (const char*, const char*);
171+int stricoll (const char*, const char*);
172+char* strlwr (char*);
173+int strnicmp (const char*, const char*, size_t);
174+int strncasecmp (const char*, const char*, size_t);
175+char* strnset (char*, int, size_t);
176+char* strrev (char*);
177+char* strset (char*, int);
178+char* strupr (char*);
179+#ifndef _UWIN
180+void swab (const char*, char*, size_t);
181+#endif /* _UWIN */
182+
183+/* NOTE: There is no _wcscmpi, but this is for compatibility. */
184+int wcscmpi (const wchar_t*, const wchar_t*);
185+wchar_t* wcsdup (wchar_t*);
186+int wcsicmp (const wchar_t*, const wchar_t*);
187+int wcsicoll (const wchar_t*, const wchar_t*);
188+wchar_t* wcslwr (wchar_t*);
189+int wcsnicmp (const wchar_t*, const wchar_t*, size_t);
190+wchar_t* wcsnset (wchar_t*, wchar_t, size_t);
191+wchar_t* wcsrev (wchar_t*);
192+wchar_t* wcsset (wchar_t*, wchar_t);
193+wchar_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+ */
104+struct _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+
120+struct 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__)
136+struct _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
154+extern "C" {
155+#endif
156+
157+int _fstat (int, struct _stat*);
158+int _chmod (const char*, int);
159+int _stat (const char*, struct _stat*);
160+
161+#if defined (__MSVCRT__)
162+int _fstati64(int, struct _stati64 *);
163+int _stati64(const char *, struct _stati64 *);
164+#if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */
165+int _wstat(const wchar_t*, struct _stat*);
166+int _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. */
174+int fstat (int, struct stat*);
175+int chmod (const char*, int);
176+int 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+ */
40+struct _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+ */
52+struct timeb
53+{
54+ long time;
55+ short millitm;
56+ short timezone;
57+ short dstflag;
58+};
59+#endif
60+
61+
62+#ifdef __cplusplus
63+extern "C" {
64+#endif
65+
66+/* TODO: Not tested. */
67+void _ftime (struct _timeb*);
68+
69+#ifndef _NO_OLDNAMES
70+void 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
44+typedef 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_
53+typedef long _off_t;
54+
55+#ifndef _NO_OLDNAMES
56+typedef _off_t off_t;
57+#endif
58+#endif /* Not _OFF_T_ */
59+
60+
61+#ifndef _DEV_T_
62+#define _DEV_T_
63+#ifdef __MSVCRT__
64+typedef unsigned int _dev_t;
65+#else
66+typedef short _dev_t;
67+#endif
68+
69+#ifndef _NO_OLDNAMES
70+typedef _dev_t dev_t;
71+#endif
72+#endif /* Not _DEV_T_ */
73+
74+
75+#ifndef _INO_T_
76+#define _INO_T_
77+typedef short _ino_t;
78+
79+#ifndef _NO_OLDNAMES
80+typedef _ino_t ino_t;
81+#endif
82+#endif /* Not _INO_T_ */
83+
84+
85+#ifndef _PID_T_
86+#define _PID_T_
87+typedef int _pid_t;
88+
89+#ifndef _NO_OLDNAMES
90+typedef _pid_t pid_t;
91+#endif
92+#endif /* Not _PID_T_ */
93+
94+
95+#ifndef _MODE_T_
96+#define _MODE_T_
97+typedef unsigned short _mode_t;
98+
99+#ifndef _NO_OLDNAMES
100+typedef _mode_t mode_t;
101+#endif
102+#endif /* Not _MODE_T_ */
103+
104+
105+#ifndef _SIGSET_T_
106+#define _SIGSET_T_
107+typedef int _sigset_t;
108+
109+#ifndef _NO_OLDNAMES
110+typedef _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+ */
47+struct _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. */
56+struct utimbuf
57+{
58+ time_t actime;
59+ time_t modtime;
60+};
61+#endif /* Not _NO_OLDNAMES */
62+
63+
64+#ifdef __cplusplus
65+extern "C" {
66+#endif
67+
68+int _utime (const char*, struct _utimbuf*);
69+int _futime (int, struct _utimbuf*);
70+
71+/* The wide character version, only available for MSVCRT versions of the
72+ * C runtime library. */
73+#ifdef __MSVCRT__
74+int _wutime (const wchar_t*, struct _utimbuf*);
75+#endif /* MSVCRT runtime */
76+#ifndef _NO_OLDNAMES
77+int 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
57+typedef wchar_t TCHAR;
58+typedef 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
212+typedef char TCHAR;
213+typedef 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
60+typedef 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
68+typedef 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+ */
77+struct 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
92+extern "C" {
93+#endif
94+
95+clock_t clock (void);
96+time_t time (time_t*);
97+double difftime (time_t, time_t);
98+time_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+ */
110+char* asctime (const struct tm*);
111+char* ctime (const time_t*);
112+struct tm* gmtime (const time_t*);
113+struct tm* localtime (const time_t*);
114+
115+
116+size_t strftime (char*, size_t, const char*, const struct tm*);
117+
118+size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
119+
120+#ifndef __STRICT_ANSI__
121+extern void _tzset (void);
122+
123+#ifndef _NO_OLDNAMES
124+extern void tzset (void);
125+#endif
126+
127+size_t strftime(char*, size_t, const char*, const struct tm*);
128+char* _strdate(char*);
129+char* _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. */
142+extern int* __p__daylight (void);
143+extern long* __p__timezone (void);
144+extern 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+
154+extern int* __imp__daylight_dll;
155+extern long* __imp__timezone_dll;
156+extern 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+
188+wchar_t * _wasctime(const struct tm*);
189+wchar_t * _wctime(const time_t*);
190+wchar_t* _wstrdate(wchar_t*);
191+wchar_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
53+extern "C" {
54+#endif
55+
56+#ifndef __STRICT_ANSI__
57+
58+#ifndef _FSIZE_T_DEFINED
59+typedef unsigned long _fsize_t;
60+#define _FSIZE_T_DEFINED
61+#endif
62+
63+#ifndef _WFINDDATA_T_DEFINED
64+struct _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+};
72+struct _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__)
88+int _waccess (const wchar_t*, int);
89+int _wchmod (const wchar_t*, int);
90+int _wcreat (const wchar_t*, int);
91+long _wfindfirst (wchar_t*, struct _wfinddata_t *);
92+int _wfindnext (long, struct _wfinddata_t *);
93+int _wunlink (const wchar_t*);
94+int _wopen (const wchar_t*, int, ...);
95+int _wsopen (const wchar_t*, int, int, ...);
96+wchar_t* _wmktemp (wchar_t*);
97+long _wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*);
98+int _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 */
105+int fwprintf (FILE*, const wchar_t*, ...);
106+int wprintf (const wchar_t*, ...);
107+int swprintf (wchar_t*, const wchar_t*, ...);
108+int _snwprintf (wchar_t*, size_t, const wchar_t*, ...);
109+int vfwprintf (FILE*, const wchar_t*, va_list);
110+int vwprintf (const wchar_t*, va_list);
111+int vswprintf (wchar_t*, const wchar_t*, va_list);
112+int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list);
113+int fwscanf (FILE*, const wchar_t*, ...);
114+int wscanf (const wchar_t*, ...);
115+int swscanf (const wchar_t*, const wchar_t*, ...);
116+wint_t fgetwc (FILE*);
117+wint_t fputwc (wchar_t, FILE*);
118+wint_t ungetwc (wchar_t, FILE*);
119+
120+#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
121+int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...);
122+extern 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__
128+wchar_t* fgetws (wchar_t*, int, FILE*);
129+int fputws (const wchar_t*, FILE*);
130+wint_t getwc (FILE*);
131+wint_t getwchar (void);
132+wchar_t* _getws (wchar_t*);
133+wint_t putwc (wint_t, FILE*);
134+int _putws (const wchar_t*);
135+wint_t putwchar (wint_t);
136+
137+FILE* _wfopen (const wchar_t*, const wchar_t*);
138+FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
139+FILE* _wfsopen (const wchar_t*, const wchar_t*, int);
140+wchar_t* _wtmpnam (wchar_t*);
141+wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
142+int _wrename (const wchar_t*, const wchar_t*);
143+int _wremove (const wchar_t*)
144+
145+FILE* _wpopen (const wchar_t*, const wchar_t*)
146+void _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__
154+int _wchdir (const wchar_t*);
155+wchar_t* _wgetcwd (wchar_t*, int);
156+wchar_t* _wgetdcwd (int, wchar_t*, int);
157+int _wmkdir (const wchar_t*);
158+int _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+ */
171+struct _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+
187+struct 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__)
203+struct _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__
223+int _wstat (const wchar_t*, struct _stat*);
224+int _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 */
232+wchar_t* _wasctime (const struct tm*);
233+wchar_t* _wctime (const time_t*);
234+wchar_t* _wstrdate (wchar_t*);
235+wchar_t* _wstrtime (wchar_t*);
236+#endif /* __MSVCRT__ */
237+size_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 */
242+wchar_t* _wsetlocale (int, const wchar_t*);
243+#define _WLOCALE_DEFINED
244+#endif
245+
246+#ifndef _WSTDLIB_DEFINED /* also declared in stdlib.h */
247+long wcstol (const wchar_t*, wchar_t**, int);
248+unsigned long wcstoul (const wchar_t*, wchar_t**, int);
249+double wcstod (const wchar_t*, wchar_t**);
250+#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
251+extern __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)
263+int waccess (const wchar_t *, int);
264+int wchmod (const wchar_t *, int);
265+int wcreat (const wchar_t *, int);
266+long wfindfirst (wchar_t *, struct _wfinddata_t *);
267+int wfindnext (long, struct _wfinddata_t *);
268+int wunlink (const wchar_t *);
269+int wrename (const wchar_t *, const wchar_t *);
270+int wremove (const wchar_t *);
271+int wopen (const wchar_t *, int, ...);
272+int wsopen (const wchar_t *, int, int, ...);
273+wchar_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. */
282+typedef int mbstate_t;
283+typedef wchar_t _Wint_t;
284+
285+wint_t btowc(int);
286+size_t mbrlen(const char *, size_t, mbstate_t *);
287+size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
288+size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
289+
290+size_t wcrtomb(char *, wchar_t, mbstate_t *);
291+size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
292+int wctob(wint_t);
293+
294+#ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */
295+extern inline int fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */
296+extern inline int mbsinit(const mbstate_t* ps) {return 1;}
297+wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);
298+wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);
299+int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n);
300+wchar_t* wmemcpy(wchar_t* __restrict__ s1, const wchar_t* __restrict__ s2,
301+ size_t n);
302+wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);
303+long long wcstoll(const wchar_t* __restrict__ nptr,
304+ wchar_t** __restrict__ endptr, int base);
305+unsigned 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
54+extern "C" {
55+#endif
56+
57+#ifndef WEOF
58+#define WEOF (wchar_t)(0xFFFF)
59+#endif
60+
61+#ifndef _WCTYPE_T_DEFINED
62+typedef wchar_t wctype_t;
63+#define _WCTYPE_T_DEFINED
64+#endif
65+
66+/* Wide character equivalents - also in ctype.h */
67+int iswalnum(wint_t);
68+int iswalpha(wint_t);
69+int iswascii(wint_t);
70+int iswcntrl(wint_t);
71+int iswctype(wint_t, wctype_t);
72+int is_wctype(wint_t, wctype_t); /* Obsolete! */
73+int iswdigit(wint_t);
74+int iswgraph(wint_t);
75+int iswlower(wint_t);
76+int iswprint(wint_t);
77+int iswpunct(wint_t);
78+int iswspace(wint_t);
79+int iswupper(wint_t);
80+int iswxdigit(wint_t);
81+
82+wchar_t towlower(wchar_t);
83+wchar_t towupper(wchar_t);
84+
85+int 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
99+extern inline int iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
100+extern inline int iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
101+extern inline int iswascii(wint_t wc) {return (((unsigned)wc & 0x7F) ==0);}
102+extern inline int iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
103+extern inline int iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
104+extern inline int iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
105+extern inline int iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
106+extern inline int iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
107+extern inline int iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
108+extern inline int iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
109+extern inline int iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
110+extern inline int iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
111+extern inline int isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
112+#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */
113+
114+
115+typedef wchar_t wctrans_t;
116+wint_t towctrans(wint_t, wctrans_t);
117+wctrans_t wctrans(const char*);
118+wctype_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
48+extern "C" {
49+#endif
50+typedef int LONG32, *PLONG32;
51+#ifndef XFree86Server
52+typedef int INT32, *PINT32;
53+#endif /* ndef XFree86Server */
54+typedef unsigned int ULONG32, *PULONG32;
55+typedef unsigned int DWORD32, *PDWORD32;
56+typedef unsigned int UINT32, *PUINT32;
57+
58+#if defined(_WIN64)
59+typedef __int64 INT_PTR, *PINT_PTR;
60+typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
61+typedef __int64 LONG_PTR, *PLONG_PTR;
62+typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
63+typedef unsigned __int64 HANDLE_PTR;
64+typedef unsigned int UHALF_PTR, *PUHALF_PTR;
65+typedef int HALF_PTR, *PHALF_PTR;
66+
67+#if 0 /* TODO when WIN64 is here */
68+inline unsigned long HandleToUlong(const void* h )
69+ { return((unsigned long) h ); }
70+inline long HandleToLong( const void* h )
71+ { return((long) h ); }
72+inline void* LongToHandle( const long h )
73+ { return((void*) (INT_PTR) h ); }
74+inline unsigned long PtrToUlong( const void* p)
75+ { return((unsigned long) p ); }
76+inline unsigned int PtrToUint( const void* p )
77+ { return((unsigned int) p ); }
78+inline unsigned short PtrToUshort( const void* p )
79+ { return((unsigned short) p ); }
80+inline long PtrToLong( const void* p )
81+ { return((long) p ); }
82+inline int PtrToInt( const void* p )
83+ { return((int) p ); }
84+inline short PtrToShort( const void* p )
85+ { return((short) p ); }
86+inline void* IntToPtr( const int i )
87+ { return( (void*)(INT_PTR)i ); }
88+inline void* UIntToPtr(const unsigned int ui)
89+ { return( (void*)(UINT_PTR)ui ); }
90+inline void* LongToPtr( const long l )
91+ { return( (void*)(LONG_PTR)l ); }
92+inline void* ULongToPtr( const unsigned long ul )
93+ { return( (void*)(ULONG_PTR)ul ); }
94+#endif /* 0_ */
95+
96+#else /* !_WIN64 */
97+typedef int INT_PTR, *PINT_PTR;
98+typedef unsigned int UINT_PTR, *PUINT_PTR;
99+typedef long LONG_PTR, *PLONG_PTR;
100+typedef unsigned long ULONG_PTR, *PULONG_PTR;
101+typedef unsigned short UHALF_PTR, *PUHALF_PTR;
102+typedef short HALF_PTR, *PHALF_PTR;
103+typedef unsigned long HANDLE_PTR;
104+#endif /* !_WIN64 */
105+
106+typedef ULONG_PTR SIZE_T, *PSIZE_T;
107+typedef LONG_PTR SSIZE_T, *PSSIZE_T;
108+typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
109+typedef __int64 LONG64, *PLONG64;
110+typedef __int64 INT64, *PINT64;
111+typedef unsigned __int64 ULONG64, *PULONG64;
112+typedef unsigned __int64 DWORD64, *PDWORD64;
113+typedef 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) \
53+typedef interface i { CONST_VTABLE struct i##Vtbl *lpVtbl; } i; \
54+typedef CONST_VTABLE struct i##Vtbl i##Vtbl; \
55+CONST_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) \
70+DECLARE_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
86+typedef 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
96+typedef GUID UUID;
97+#endif /* UUID_DEFINED */
98+typedef GUID IID;
99+typedef GUID CLSID;
100+typedef CLSID *LPCLSID;
101+typedef IID *LPIID;
102+typedef IID *REFIID;
103+typedef CLSID *REFCLSID;
104+typedef GUID FMTID;
105+typedef FMTID *REFFMTID;
106+typedef unsigned long error_status_t;
107+#define uuid_t UUID
108+typedef 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
9+extern "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
504+typedef struct _FILETIME {
505+ DWORD dwLowDateTime;
506+ DWORD dwHighDateTime;
507+} FILETIME,*PFILETIME,*LPFILETIME;
508+typedef 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;
520+typedef 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;
550+typedef 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;
560+typedef 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;
580+typedef struct _COMMTIMEOUTS {
581+ DWORD ReadIntervalTimeout;
582+ DWORD ReadTotalTimeoutMultiplier;
583+ DWORD ReadTotalTimeoutConstant;
584+ DWORD WriteTotalTimeoutMultiplier;
585+ DWORD WriteTotalTimeoutConstant;
586+} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
587+typedef 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;
599+typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID);
600+typedef 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;
612+typedef 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;
617+typedef struct _EXCEPTION_DEBUG_INFO {
618+ EXCEPTION_RECORD ExceptionRecord;
619+ DWORD dwFirstChance;
620+} EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO;
621+typedef struct _EXIT_THREAD_DEBUG_INFO {
622+ DWORD dwExitCode;
623+} EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO;
624+typedef struct _EXIT_PROCESS_DEBUG_INFO {
625+ DWORD dwExitCode;
626+} EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO;
627+typedef 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;
635+typedef struct _UNLOAD_DLL_DEBUG_INFO {
636+ LPVOID lpBaseOfDll;
637+} UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO;
638+typedef struct _OUTPUT_DEBUG_STRING_INFO {
639+ LPSTR lpDebugStringData;
640+ WORD fUnicode;
641+ WORD nDebugStringLength;
642+} OUTPUT_DEBUG_STRING_INFO,*LPOUTPUT_DEBUG_STRING_INFO;
643+typedef struct _RIP_INFO {
644+ DWORD dwError;
645+ DWORD dwType;
646+} RIP_INFO,*LPRIP_INFO;
647+typedef 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;
663+typedef struct _OVERLAPPED {
664+ DWORD Internal;
665+ DWORD InternalHigh;
666+ DWORD Offset;
667+ DWORD OffsetHigh;
668+ HANDLE hEvent;
669+} OVERLAPPED,*POVERLAPPED,*LPOVERLAPPED;
670+typedef 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;
690+typedef 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;
710+typedef struct _PROCESS_INFORMATION {
711+ HANDLE hProcess;
712+ HANDLE hThread;
713+ DWORD dwProcessId;
714+ DWORD dwThreadId;
715+} PROCESS_INFORMATION,*LPPROCESS_INFORMATION;
716+typedef 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;
725+typedef 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;
733+typedef 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;
743+typedef 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;
751+typedef 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;
763+typedef 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;
775+typedef 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;
782+typedef enum _FINDEX_INFO_LEVELS {
783+ FindExInfoStandard,
784+ FindExInfoMaxInfoLevel
785+} FINDEX_INFO_LEVELS;
786+typedef enum _FINDEX_SEARCH_OPS {
787+ FindExSearchNameMatch,
788+ FindExSearchLimitToDirectories,
789+ FindExSearchLimitToDevices,
790+ FindExSearchMaxSearchOp
791+} FINDEX_SEARCH_OPS;
792+typedef enum _ACL_INFORMATION_CLASS {
793+ AclRevisionInformation=1,
794+ AclSizeInformation
795+} ACL_INFORMATION_CLASS;
796+typedef 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;
801+typedef 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;
806+typedef enum _GET_FILEEX_INFO_LEVELS {
807+ GetFileExInfoStandard,
808+ GetFileExMaxInfoLevel
809+} GET_FILEEX_INFO_LEVELS;
810+typedef 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;
828+typedef 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;
836+typedef 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;
845+typedef 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;
855+typedef 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;
879+typedef 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;
898+typedef 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;
906+typedef struct _WIN_CERTIFICATE {
907+ DWORD dwLength;
908+ WORD wRevision;
909+ WORD wCertificateType;
910+ BYTE bCertificate[1];
911+} WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
912+
913+typedef DWORD(WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER,LARGE_INTEGER,LARGE_INTEGER,LARGE_INTEGER,DWORD,DWORD,HANDLE,HANDLE,LPVOID);
914+typedef void(WINAPI *LPFIBER_START_ROUTINE)(PVOID);
915+typedef BOOL(CALLBACK *ENUMRESLANGPROC)(HMODULE,LPCTSTR,LPCTSTR,WORD,LONG);
916+typedef BOOL(CALLBACK *ENUMRESNAMEPROC)(HMODULE,LPCTSTR,LPTSTR,LONG);
917+typedef BOOL(CALLBACK *ENUMRESTYPEPROC)(HMODULE,LPTSTR,LONG);
918+typedef void(CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
919+typedef LONG(CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(LPEXCEPTION_POINTERS);
920+typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
921+typedef void(APIENTRY *PAPCFUNC)(DWORD);
922+typedef void(CALLBACK *PTIMERAPCROUTINE)(PVOID,DWORD,DWORD);
923+#define MAKEINTATOM(i) (LPTSTR)((DWORD)((WORD)(i)))
924+/* Functions */
925+#ifndef UNDER_CE
926+int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
927+#else
928+int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPWSTR,int);
929+#endif
930+int APIENTRY wWinMain(HINSTANCE,HINSTANCE,LPWSTR,int);
931+long WINAPI _hread(HFILE,LPVOID,long);
932+long WINAPI _hwrite(HFILE,LPCSTR,long);
933+HFILE WINAPI _lclose(HFILE);
934+HFILE WINAPI _lcreat(LPCSTR,int);
935+LONG WINAPI _llseek(HFILE,LONG,int);
936+HFILE WINAPI _lopen(LPCSTR,int);
937+UINT WINAPI _lread(HFILE,LPVOID,UINT);
938+UINT WINAPI _lwrite(HFILE,LPCSTR,UINT);
939+#define AbnormalTermination() FALSE
940+BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,PDWORD,PDWORD,PBOOL);
941+BOOL WINAPI AccessCheckAndAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL);
942+BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL);
943+BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
944+BOOL WINAPI AddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
945+BOOL WINAPI AddAce(PACL,DWORD,DWORD,PVOID,DWORD);
946+ATOM WINAPI AddAtomA(LPCSTR);
947+ATOM WINAPI AddAtomW(LPCWSTR);
948+BOOL WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
949+BOOL WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD);
950+BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
951+BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID*);
952+BOOL WINAPI AllocateLocallyUniqueId(PLUID);
953+BOOL WINAPI AreAllAccessesGranted(DWORD,DWORD);
954+BOOL WINAPI AreAnyAccessesGranted(DWORD,DWORD);
955+BOOL WINAPI AreFileApisANSI(void);
956+BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR);
957+BOOL WINAPI BackupEventLogW(HANDLE,LPCWSTR);
958+BOOL WINAPI BackupRead(HANDLE,PBYTE,DWORD,PDWORD,BOOL,BOOL,PVOID);
959+BOOL WINAPI BackupSeek(HANDLE,DWORD,DWORD,PDWORD,PDWORD,PVOID);
960+BOOL WINAPI BackupWrite(HANDLE,PBYTE,DWORD,PDWORD,BOOL,BOOL,PVOID);
961+BOOL WINAPI Beep(DWORD,DWORD);
962+HANDLE WINAPI BeginUpdateResourceA(LPCSTR,BOOL);
963+HANDLE WINAPI BeginUpdateResourceW(LPCWSTR,BOOL);
964+BOOL WINAPI BuildCommDCBA(LPCSTR,LPDCB);
965+BOOL WINAPI BuildCommDCBW(LPCWSTR,LPDCB);
966+BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS);
967+BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS);
968+BOOL WINAPI CallNamedPipeA(LPCSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWORD);
969+BOOL WINAPI CallNamedPipeW(LPCWSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWORD);
970+BOOL WINAPI CancelIo(HANDLE);
971+BOOL WINAPI CancelWaitableTimer(HANDLE);
972+BOOL WINAPI ClearCommBreak(HANDLE);
973+BOOL WINAPI ClearCommError(HANDLE,PDWORD,LPCOMSTAT);
974+BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR);
975+BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR);
976+BOOL WINAPI CloseEventLog(HANDLE);
977+BOOL WINAPI CloseHandle(HANDLE);
978+BOOL WINAPI CommConfigDialogA(LPCSTR,HWND,LPCOMMCONFIG);
979+BOOL WINAPI CommConfigDialogW(LPCWSTR,HWND,LPCOMMCONFIG);
980+LONG WINAPI CompareFileTime(CONST FILETIME*,CONST FILETIME*);
981+BOOL WINAPI ConnectNamedPipe(HANDLE,LPOVERLAPPED);
982+BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD);
983+PVOID WINAPI ConvertThreadToFiber(PVOID);
984+BOOL WINAPI CopyFileA(LPCSTR,LPCSTR,BOOL);
985+BOOL WINAPI CopyFileW(LPCWSTR,LPCWSTR,BOOL);
986+BOOL WINAPI CopyFileExA(LPCSTR,LPCSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD);
987+BOOL 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
996+BOOL WINAPI CopySid(DWORD,PSID,PSID);
997+BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
998+BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);
999+BOOL WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1000+BOOL WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1001+HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR);
1002+HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR);
1003+LPVOID WINAPI CreateFiber(DWORD,LPFIBER_START_ROUTINE,LPVOID);
1004+HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1005+HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1006+HANDLE WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR);
1007+HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR);
1008+HANDLE WINAPI CreateHardLinkA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1009+HANDLE WINAPI CreateHardLinkW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1010+HANDLE WINAPI CreateIoCompletionPort(HANDLE,HANDLE,DWORD,DWORD);
1011+HANDLE WINAPI CreateMailslotA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1012+HANDLE WINAPI CreateMailslotW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1013+HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1014+HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1015+HANDLE WINAPI CreateNamedPipeA(LPCSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1016+HANDLE WINAPI CreateNamedPipeW(LPCWSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1017+BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
1018+BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
1019+BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1020+BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1021+BOOL WINAPI CreateProcessAsUserA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1022+BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1023+HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1024+HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
1025+HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
1026+DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
1027+HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,PVOID,DWORD,PDWORD);
1028+HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1029+HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1030+BOOL WINAPI DebugActiveProcess(DWORD);
1031+void WINAPI DebugBreak(void);
1032+BOOL WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR);
1033+BOOL WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR);
1034+#define DefineHandleTable(w) ((w),TRUE)
1035+BOOL WINAPI DeleteAce(PACL,DWORD);
1036+ATOM WINAPI DeleteAtom(ATOM);
1037+void WINAPI DeleteCriticalSection(PCRITICAL_SECTION);
1038+void WINAPI DeleteFiber(PVOID);
1039+BOOL WINAPI DeleteFileA(LPCSTR);
1040+BOOL WINAPI DeleteFileW(LPCWSTR);
1041+BOOL WINAPI DeregisterEventSource(HANDLE);
1042+BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
1043+BOOL WINAPI DeviceIoControl(HANDLE,DWORD,PVOID,DWORD,PVOID,DWORD,PDWORD,POVERLAPPED);
1044+BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
1045+BOOL WINAPI DisconnectNamedPipe(HANDLE);
1046+BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
1047+BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,PHANDLE,DWORD,BOOL,DWORD);
1048+BOOL WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
1049+BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
1050+BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
1051+BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL);
1052+void WINAPI EnterCriticalSection(LPCRITICAL_SECTION);
1053+BOOL WINAPI EnumResourceLanguagesA(HINSTANCE,LPCSTR,LPCSTR,ENUMRESLANGPROC,LONG);
1054+BOOL WINAPI EnumResourceLanguagesW(HINSTANCE,LPCWSTR,LPCWSTR,ENUMRESLANGPROC,LONG);
1055+BOOL WINAPI EnumResourceNamesA(HINSTANCE,LPCSTR,ENUMRESNAMEPROC,LONG);
1056+BOOL WINAPI EnumResourceNamesW(HINSTANCE,LPCWSTR,ENUMRESNAMEPROC,LONG);
1057+BOOL WINAPI EnumResourceTypesA(HINSTANCE,ENUMRESTYPEPROC,LONG);
1058+BOOL WINAPI EnumResourceTypesW(HINSTANCE,ENUMRESTYPEPROC,LONG);
1059+BOOL WINAPI EqualPrefixSid(PSID,PSID);
1060+BOOL WINAPI EqualSid(PSID,PSID);
1061+DWORD WINAPI EraseTape(HANDLE,DWORD,BOOL);
1062+BOOL WINAPI EscapeCommFunction(HANDLE,DWORD);
1063+DECLSPEC_NORETURN void WINAPI ExitProcess(UINT);
1064+DECLSPEC_NORETURN void WINAPI ExitThread(DWORD);
1065+DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
1066+DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
1067+void WINAPI FatalAppExitA(UINT,LPCSTR);
1068+void WINAPI FatalAppExitW(UINT,LPCWSTR);
1069+void WINAPI FatalExit(int);
1070+BOOL WINAPI FileTimeToDosDateTime(CONST FILETIME *,LPWORD,LPWORD);
1071+BOOL WINAPI FileTimeToLocalFileTime(FILETIME *,LPFILETIME);
1072+BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *,LPSYSTEMTIME);
1073+ATOM WINAPI FindAtomA(LPCSTR);
1074+ATOM WINAPI FindAtomW(LPCWSTR);
1075+BOOL WINAPI FindClose(HANDLE);
1076+BOOL WINAPI FindCloseChangeNotification(HANDLE);
1077+HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD);
1078+HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD);
1079+HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
1080+HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
1081+HANDLE WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1082+HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1083+BOOL WINAPI FindFirstFreeAce(PACL,PVOID*);
1084+BOOL WINAPI FindNextChangeNotification(HANDLE);
1085+BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
1086+BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
1087+HRSRC WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR);
1088+HRSRC WINAPI FindResourceW(HINSTANCE,LPCWSTR,LPCWSTR);
1089+HRSRC WINAPI FindResourceExA(HINSTANCE,LPCSTR,LPCSTR,WORD);
1090+HRSRC WINAPI FindResourceExW(HINSTANCE,LPCWSTR,LPCWSTR,WORD);
1091+BOOL WINAPI FlushFileBuffers(HANDLE);
1092+BOOL WINAPI FlushInstructionCache(HANDLE,PCVOID,DWORD);
1093+BOOL WINAPI FlushViewOfFile(PCVOID,DWORD);
1094+DWORD WINAPI FormatMessageA(DWORD,PCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
1095+DWORD WINAPI FormatMessageW(DWORD,PCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*);
1096+BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
1097+BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
1098+BOOL WINAPI FreeLibrary(HMODULE);
1099+DECLSPEC_NORETURN void WINAPI FreeLibraryAndExitThread(HMODULE,DWORD);
1100+#define FreeModule(m) FreeLibrary(m)
1101+#define FreeProcInstance(p) (void)(p)
1102+#ifndef XFree86Server
1103+BOOL WINAPI FreeResource(HGLOBAL);
1104+#endif /* ndef XFree86Server */
1105+PVOID WINAPI FreeSid(PSID);
1106+BOOL WINAPI GetAce(PACL,DWORD,PVOID);
1107+BOOL WINAPI GetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
1108+UINT WINAPI GetAtomNameA(ATOM,LPSTR,int);
1109+UINT WINAPI GetAtomNameW(ATOM,LPWSTR,int);
1110+BOOL WINAPI GetBinaryTypeA(LPCSTR,PDWORD);
1111+BOOL WINAPI GetBinaryTypeW(LPCWSTR,PDWORD);
1112+LPSTR WINAPI GetCommandLineA(VOID);
1113+LPWSTR WINAPI GetCommandLineW(VOID);
1114+BOOL WINAPI GetCommConfig(HANDLE,LPCOMMCONFIG,PDWORD);
1115+BOOL WINAPI GetCommMask(HANDLE,PDWORD);
1116+BOOL WINAPI GetCommModemStatus(HANDLE,PDWORD);
1117+BOOL WINAPI GetCommProperties(HANDLE,LPCOMMPROP);
1118+BOOL WINAPI GetCommState(HANDLE,LPDCB);
1119+BOOL WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1120+DWORD WINAPI GetCompressedFileSizeA(LPCSTR,PDWORD);
1121+DWORD WINAPI GetCompressedFileSizeW(LPCWSTR,PDWORD);
1122+BOOL WINAPI GetComputerNameA(LPSTR,PDWORD);
1123+BOOL WINAPI GetComputerNameW(LPWSTR,PDWORD);
1124+DWORD WINAPI GetCurrentDirectoryA(DWORD,LPSTR);
1125+DWORD WINAPI GetCurrentDirectoryW(DWORD,LPWSTR);
1126+BOOL WINAPI GetCurrentHwProfileA(LPHW_PROFILE_INFOA);
1127+BOOL WINAPI GetCurrentHwProfileW(LPHW_PROFILE_INFOW);
1128+HANDLE WINAPI GetCurrentProcess(void);
1129+DWORD WINAPI GetCurrentProcessId(void);
1130+HANDLE WINAPI GetCurrentThread(void);
1131+DWORD WINAPI GetCurrentThreadId(void);
1132+#define GetCurrentTime GetTickCount
1133+BOOL WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,PDWORD);
1134+BOOL WINAPI GetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,PDWORD);
1135+BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,PDWORD,PDWORD,PDWORD,PDWORD);
1136+BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,PDWORD,PDWORD,PDWORD,PDWORD);
1137+BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1138+BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1139+UINT WINAPI GetDriveTypeA(LPCSTR);
1140+UINT WINAPI GetDriveTypeW(LPCWSTR);
1141+LPSTR WINAPI GetEnvironmentStrings(void);
1142+LPSTR WINAPI GetEnvironmentStringsA(void);
1143+LPWSTR WINAPI GetEnvironmentStringsW(void);
1144+DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
1145+DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);
1146+BOOL WINAPI GetExitCodeProcess(HANDLE,PDWORD);
1147+BOOL WINAPI GetExitCodeThread(HANDLE,PDWORD);
1148+DWORD WINAPI GetFileAttributesA(LPCSTR);
1149+DWORD WINAPI GetFileAttributesW(LPCWSTR);
1150+BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,PVOID);
1151+BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,PVOID);
1152+BOOL WINAPI GetFileInformationByHandle(HANDLE,LPBY_HANDLE_FILE_INFORMATION);
1153+BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1154+BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1155+DWORD WINAPI GetFileSize(HANDLE,PDWORD);
1156+BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
1157+DWORD WINAPI GetFileType(HANDLE);
1158+#define GetFreeSpace(w) (0x100000L)
1159+DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
1160+DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1161+BOOL WINAPI GetHandleInformation(HANDLE,PDWORD);
1162+BOOL WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1163+DWORD WINAPI GetLengthSid(PSID);
1164+void WINAPI GetLocalTime(LPSYSTEMTIME);
1165+DWORD WINAPI GetLogicalDrives(void);
1166+DWORD WINAPI GetLogicalDriveStringsA(DWORD,LPSTR);
1167+DWORD WINAPI GetLogicalDriveStringsW(DWORD,LPWSTR);
1168+DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
1169+DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
1170+BOOL WINAPI GetMailslotInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD);
1171+DWORD WINAPI GetModuleFileNameA(HINSTANCE,LPSTR,DWORD);
1172+DWORD WINAPI GetModuleFileNameW(HINSTANCE,LPWSTR,DWORD);
1173+HMODULE WINAPI GetModuleHandleA(LPCSTR);
1174+HMODULE WINAPI GetModuleHandleW(LPCWSTR);
1175+BOOL WINAPI GetNamedPipeHandleStateA(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD,LPSTR,DWORD);
1176+BOOL WINAPI GetNamedPipeHandleStateW(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD);
1177+BOOL WINAPI GetNamedPipeInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD);
1178+BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
1179+BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
1180+BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,PDWORD,BOOL);
1181+DWORD WINAPI GetPriorityClass(HANDLE);
1182+BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1183+UINT WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR);
1184+UINT WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR);
1185+DWORD WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR);
1186+DWORD WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
1187+DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR);
1188+DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR);
1189+DWORD WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,DWORD,LPCSTR);
1190+DWORD WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD,LPCWSTR);
1191+BOOL WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,PVOID,UINT,LPCSTR);
1192+BOOL WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,PVOID,UINT,LPCWSTR);
1193+FARPROC WINAPI GetProcAddress(HINSTANCE,LPCSTR);
1194+BOOL WINAPI GetProcessAffinityMask(HANDLE,PDWORD,PDWORD);
1195+HANDLE WINAPI GetProcessHeap(VOID);
1196+DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
1197+BOOL WINAPI GetProcessPriorityBoost(HANDLE,PBOOL);
1198+BOOL WINAPI GetProcessShutdownParameters(PDWORD,PDWORD);
1199+BOOL WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1200+DWORD WINAPI GetProcessVersion(DWORD);
1201+HWINSTA WINAPI GetProcessWindowStation(void);
1202+BOOL WINAPI GetProcessWorkingSetSize(HANDLE,PDWORD,PDWORD);
1203+UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT);
1204+UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT);
1205+DWORD WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD);
1206+DWORD WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD);
1207+DWORD WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,DWORD);
1208+DWORD WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD);
1209+BOOL WINAPI GetQueuedCompletionStatus(HANDLE,PDWORD,PDWORD,LPOVERLAPPED*,DWORD);
1210+BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,PDWORD);
1211+BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
1212+BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
1213+DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
1214+BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
1215+BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
1216+DWORD WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD);
1217+DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);
1218+PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
1219+DWORD WINAPI GetSidLengthRequired(UCHAR);
1220+PDWORD WINAPI GetSidSubAuthority(PSID,DWORD);
1221+PUCHAR WINAPI GetSidSubAuthorityCount(PSID);
1222+VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA);
1223+VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW);
1224+HANDLE WINAPI GetStdHandle(DWORD);
1225+UINT WINAPI GetSystemDirectoryA(LPSTR,UINT);
1226+UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT);
1227+VOID WINAPI GetSystemInfo(LPSYSTEM_INFO);
1228+BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
1229+VOID WINAPI GetSystemTime(LPSYSTEMTIME);
1230+BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
1231+void WINAPI GetSystemTimeAsFileTime(LPFILETIME);
1232+DWORD WINAPI GetTapeParameters(HANDLE,DWORD,PDWORD,PVOID);
1233+DWORD WINAPI GetTapePosition(HANDLE,DWORD,PDWORD,PDWORD,PDWORD);
1234+DWORD WINAPI GetTapeStatus(HANDLE);
1235+UINT WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR);
1236+UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);
1237+DWORD WINAPI GetTempPathA(DWORD,LPSTR);
1238+DWORD WINAPI GetTempPathW(DWORD,LPWSTR);
1239+BOOL WINAPI GetThreadContext(HANDLE,LPCONTEXT);
1240+int WINAPI GetThreadPriority(HANDLE);
1241+BOOL WINAPI GetThreadPriorityBoost(HANDLE,PBOOL);
1242+BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY);
1243+BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1244+DWORD WINAPI GetTickCount(void);
1245+DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
1246+BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD,PDWORD);
1247+BOOL WINAPI GetUserNameA (LPSTR,PDWORD);
1248+BOOL WINAPI GetUserNameW(LPWSTR,PDWORD);
1249+DWORD WINAPI GetVersion(void);
1250+BOOL WINAPI GetVersionExA(LPOSVERSIONINFOA);
1251+BOOL WINAPI GetVersionExW(LPOSVERSIONINFOW);
1252+BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,PDWORD,PDWORD,PDWORD,LPSTR,DWORD);
1253+BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD);
1254+UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT);
1255+UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
1256+DWORD WINAPI GetWindowThreadProcessId(HWND,PDWORD);
1257+ATOM WINAPI GlobalAddAtomA(LPCSTR);
1258+ATOM WINAPI GlobalAddAtomW( LPCWSTR);
1259+HGLOBAL WINAPI GlobalAlloc(UINT,DWORD);
1260+UINT WINAPI GlobalCompact(DWORD);
1261+ATOM WINAPI GlobalDeleteAtom(ATOM);
1262+HGLOBAL GlobalDiscard(HGLOBAL);
1263+ATOM WINAPI GlobalFindAtomA(LPCSTR);
1264+ATOM WINAPI GlobalFindAtomW(LPCWSTR);
1265+VOID WINAPI GlobalFix(HGLOBAL);
1266+UINT WINAPI GlobalFlags(HGLOBAL);
1267+HGLOBAL WINAPI GlobalFree(HGLOBAL);
1268+UINT WINAPI GlobalGetAtomNameA(ATOM,LPSTR,int);
1269+UINT WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,int);
1270+HGLOBAL WINAPI GlobalHandle(PCVOID);
1271+LPVOID WINAPI GlobalLock(HGLOBAL);
1272+VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
1273+HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,DWORD,UINT);
1274+DWORD WINAPI GlobalSize(HGLOBAL);
1275+VOID WINAPI GlobalUnfix(HGLOBAL);
1276+BOOL WINAPI GlobalUnlock(HGLOBAL);
1277+BOOL WINAPI GlobalUnWire(HGLOBAL);
1278+PVOID WINAPI GlobalWire(HGLOBAL);
1279+#define HasOverlappedIoCompleted(lpOverlapped) ((lpOverlapped)->Internal != STATUS_PENDING)
1280+PVOID WINAPI HeapAlloc(HANDLE,DWORD,DWORD);
1281+UINT WINAPI HeapCompact(HANDLE,DWORD);
1282+HANDLE WINAPI HeapCreate(DWORD,DWORD,DWORD);
1283+BOOL WINAPI HeapDestroy(HANDLE);
1284+BOOL WINAPI HeapFree(HANDLE,DWORD,PVOID);
1285+BOOL WINAPI HeapLock(HANDLE);
1286+PVOID WINAPI HeapReAlloc(HANDLE,DWORD,PVOID,DWORD);
1287+DWORD WINAPI HeapSize(HANDLE,DWORD,PCVOID);
1288+BOOL WINAPI HeapUnlock(HANDLE);
1289+BOOL WINAPI HeapValidate(HANDLE,DWORD,PCVOID);
1290+BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
1291+BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
1292+BOOL WINAPI ImpersonateNamedPipeClient(HANDLE);
1293+BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
1294+BOOL WINAPI InitAtomTable(DWORD);
1295+BOOL WINAPI InitializeAcl(PACL,DWORD,DWORD);
1296+VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION);
1297+#if (_WIN32_WINNT >= 0x0403) /* Needs NT4, SP3 or later. */
1298+BOOL WINAPI InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION,DWORD);
1299+DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD);
1300+#endif
1301+BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
1302+BOOL WINAPI InitializeSid (PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
1303+LONG 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))
1307+LONG WINAPI InterlockedDecrement(LPLONG);
1308+LONG WINAPI InterlockedExchange(LPLONG,LONG);
1309+/* PVOID WINAPI InterlockedExchangePointer(PVOID*,PVOID); */
1310+#define InterlockedExchangePointer(t,v) \
1311+ (PVOID)InterlockedExchange((LPLONG)(t),(LONG)(v))
1312+LONG WINAPI InterlockedExchangeAdd(PLONG,LONG);
1313+LONG WINAPI InterlockedIncrement(LPLONG);
1314+BOOL WINAPI IsBadCodePtr(FARPROC);
1315+BOOL WINAPI IsBadHugeReadPtr(PCVOID,UINT);
1316+BOOL WINAPI IsBadHugeWritePtr(PVOID,UINT);
1317+BOOL WINAPI IsBadReadPtr(PCVOID,UINT);
1318+BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT);
1319+BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT);
1320+BOOL WINAPI IsBadWritePtr(PVOID,UINT);
1321+BOOL WINAPI IsDebuggerPresent(void);
1322+BOOL WINAPI IsProcessorFeaturePresent(DWORD);
1323+BOOL WINAPI IsTextUnicode(PCVOID,int,LPINT);
1324+BOOL WINAPI IsValidAcl(PACL);
1325+BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
1326+BOOL WINAPI IsValidSid(PSID);
1327+void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION);
1328+#define LimitEmsPages(n)
1329+HINSTANCE WINAPI LoadLibraryA(LPCSTR);
1330+HINSTANCE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD);
1331+HINSTANCE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD);
1332+HINSTANCE WINAPI LoadLibraryW(LPCWSTR);
1333+DWORD WINAPI LoadModule(LPCSTR,PVOID);
1334+HGLOBAL WINAPI LoadResource(HINSTANCE,HRSRC);
1335+HLOCAL WINAPI LocalAlloc(UINT,UINT);
1336+UINT WINAPI LocalCompact(UINT);
1337+HLOCAL LocalDiscard(HLOCAL);
1338+BOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *,LPFILETIME);
1339+UINT WINAPI LocalFlags(HLOCAL);
1340+HLOCAL WINAPI LocalFree(HLOCAL);
1341+HLOCAL WINAPI LocalHandle(LPCVOID);
1342+PVOID WINAPI LocalLock(HLOCAL);
1343+HLOCAL WINAPI LocalReAlloc(HLOCAL,UINT,UINT);
1344+UINT WINAPI LocalShrink(HLOCAL,UINT);
1345+UINT WINAPI LocalSize(HLOCAL);
1346+BOOL WINAPI LocalUnlock(HLOCAL);
1347+BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1348+BOOL WINAPI LockFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPOVERLAPPED);
1349+PVOID WINAPI LockResource(HGLOBAL);
1350+#define LockSegment(w) GlobalFix((HANDLE)(w))
1351+BOOL WINAPI LogonUserA(LPSTR,LPSTR,LPSTR,DWORD,DWORD,PHANDLE);
1352+BOOL WINAPI LogonUserW(LPWSTR,LPWSTR,LPWSTR,DWORD,DWORD,PHANDLE);
1353+BOOL WINAPI LookupAccountNameA(LPCSTR,LPCSTR,PSID,PDWORD,LPSTR,PDWORD,PSID_NAME_USE);
1354+BOOL WINAPI LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE);
1355+BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,PDWORD,LPSTR,PDWORD,PSID_NAME_USE);
1356+BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE);
1357+BOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR,LPCSTR,LPSTR,PDWORD,PDWORD);
1358+BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR,LPCWSTR,LPWSTR,PDWORD,PDWORD);
1359+BOOL WINAPI LookupPrivilegeNameA(LPCSTR,PLUID,LPSTR,PDWORD);
1360+BOOL WINAPI LookupPrivilegeNameW(LPCWSTR,PLUID,LPWSTR,PDWORD);
1361+BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,PLUID);
1362+BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,PLUID);
1363+LPSTR WINAPI lstrcatA(LPSTR,LPCSTR);
1364+LPWSTR WINAPI lstrcatW(LPWSTR,LPCWSTR);
1365+int WINAPI lstrcmpA(LPCSTR,LPCSTR);
1366+int WINAPI lstrcmpiA(LPCSTR,LPCSTR);
1367+int WINAPI lstrcmpiW( LPCWSTR,LPCWSTR);
1368+int WINAPI lstrcmpW(LPCWSTR,LPCWSTR);
1369+LPSTR WINAPI lstrcpyA(LPSTR,LPCSTR);
1370+LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,int);
1371+LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,int);
1372+LPWSTR WINAPI lstrcpyW(LPWSTR,LPCWSTR);
1373+int WINAPI lstrlenA(LPCSTR);
1374+int WINAPI lstrlenW(LPCWSTR);
1375+BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD);
1376+#define MakeProcInstance(p,i) (p)
1377+BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD);
1378+VOID WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING);
1379+PVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1380+PVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,PVOID);
1381+BOOL WINAPI MoveFileA(LPCSTR,LPCSTR);
1382+BOOL WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD);
1383+BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD);
1384+BOOL WINAPI MoveFileW(LPCWSTR,LPCWSTR);
1385+int WINAPI MulDiv(int,int,int);
1386+BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE);
1387+BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR,PVOID,BOOL);
1388+BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,PVOID,BOOL);
1389+BOOL WINAPI ObjectDeleteAuditAlarmA(LPCSTR,PVOID,BOOL);
1390+BOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR,PVOID,BOOL);
1391+BOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR,PVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL);
1392+BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR,PVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL);
1393+BOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
1394+BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
1395+HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR);
1396+HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR);
1397+HANDLE WINAPI OpenEventA(DWORD,BOOL,LPCSTR);
1398+HANDLE WINAPI OpenEventLogA (LPCSTR,LPCSTR);
1399+HANDLE WINAPI OpenEventLogW(LPCWSTR,LPCWSTR);
1400+HANDLE WINAPI OpenEventW(DWORD,BOOL,LPCWSTR);
1401+HFILE WINAPI OpenFile(LPCSTR,LPOFSTRUCT,UINT);
1402+HANDLE WINAPI OpenFileMappingA(DWORD,BOOL,LPCSTR);
1403+HANDLE WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR);
1404+HANDLE WINAPI OpenMutexA(DWORD,BOOL,LPCSTR);
1405+HANDLE WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR);
1406+HANDLE WINAPI OpenProcess(DWORD,BOOL,DWORD);
1407+BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
1408+HANDLE WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR);
1409+HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
1410+BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
1411+HANDLE WINAPI OpenWaitableTimerA(DWORD,BOOL,LPCSTR);
1412+HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
1413+void WINAPI OutputDebugStringA(LPCSTR);
1414+void WINAPI OutputDebugStringW(LPCWSTR);
1415+BOOL WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD);
1416+BOOL WINAPI PostQueuedCompletionStatus(HANDLE,DWORD,DWORD,LPOVERLAPPED);
1417+DWORD WINAPI PrepareTape(HANDLE,DWORD,BOOL);
1418+BOOL WINAPI PrivilegeCheck (HANDLE,PPRIVILEGE_SET,PBOOL);
1419+BOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR,LPCSTR,HANDLE,PPRIVILEGE_SET,BOOL);
1420+BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL);
1421+BOOL WINAPI PulseEvent(HANDLE);
1422+BOOL WINAPI PurgeComm(HANDLE,DWORD);
1423+DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD);
1424+DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
1425+BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER);
1426+BOOL WINAPI QueryPerformanceFrequency(PLARGE_INTEGER);
1427+DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,DWORD);
1428+void WINAPI RaiseException(DWORD,DWORD,DWORD,const DWORD*);
1429+BOOL WINAPI ReadDirectoryChangesW(HANDLE,PVOID,DWORD,BOOL,DWORD,PDWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1430+BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *);
1431+BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *);
1432+BOOL WINAPI ReadFile(HANDLE,PVOID,DWORD,PDWORD,LPOVERLAPPED);
1433+BOOL WINAPI ReadFileEx(HANDLE,PVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1434+BOOL WINAPI ReadProcessMemory(HANDLE,PCVOID,PVOID,DWORD,PDWORD);
1435+HANDLE WINAPI RegisterEventSourceA (LPCSTR,LPCSTR);
1436+HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR);
1437+BOOL WINAPI ReleaseMutex(HANDLE);
1438+BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
1439+BOOL WINAPI RemoveDirectoryA(LPCSTR);
1440+BOOL WINAPI RemoveDirectoryW(LPCWSTR);
1441+BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR*,PVOID);
1442+BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR*,PVOID);
1443+BOOL WINAPI ResetEvent(HANDLE);
1444+DWORD WINAPI ResumeThread(HANDLE);
1445+BOOL WINAPI RevertToSelf(void);
1446+DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
1447+DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1448+BOOL WINAPI SetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
1449+BOOL WINAPI SetCommBreak(HANDLE);
1450+BOOL WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD);
1451+BOOL WINAPI SetCommMask(HANDLE,DWORD);
1452+BOOL WINAPI SetCommState(HANDLE,LPDCB);
1453+BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1454+BOOL WINAPI SetComputerNameA(LPCSTR);
1455+BOOL WINAPI SetComputerNameW(LPCWSTR);
1456+BOOL WINAPI SetCurrentDirectoryA(LPCSTR);
1457+BOOL WINAPI SetCurrentDirectoryW(LPCWSTR);
1458+BOOL WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD);
1459+BOOL WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD);
1460+BOOL WINAPI SetEndOfFile(HANDLE);
1461+BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR);
1462+BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
1463+UINT WINAPI SetErrorMode(UINT);
1464+BOOL WINAPI SetEvent(HANDLE);
1465+VOID WINAPI SetFileApisToANSI(void);
1466+VOID WINAPI SetFileApisToOEM(void);
1467+BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
1468+BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
1469+DWORD WINAPI SetFilePointer(HANDLE,LONG,PLONG,DWORD);
1470+BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1471+BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1472+BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
1473+UINT WINAPI SetHandleCount(UINT);
1474+BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD);
1475+BOOL WINAPI SetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1476+void WINAPI SetLastError(DWORD);
1477+void WINAPI SetLastErrorEx(DWORD,DWORD);
1478+BOOL WINAPI SetLocalTime(const SYSTEMTIME*);
1479+BOOL WINAPI SetMailslotInfo(HANDLE,DWORD);
1480+BOOL WINAPI SetNamedPipeHandleState(HANDLE,PDWORD,PDWORD,PDWORD);
1481+BOOL WINAPI SetPriorityClass(HANDLE,DWORD);
1482+BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR *,PGENERIC_MAPPING,HANDLE);
1483+BOOL WINAPI SetProcessAffinityMask(HANDLE,DWORD);
1484+BOOL WINAPI SetProcessPriorityBoost(HANDLE,BOOL);
1485+BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD);
1486+BOOL WINAPI SetProcessWorkingSetSize(HANDLE,DWORD,DWORD);
1487+BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
1488+BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
1489+BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL);
1490+BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL);
1491+BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
1492+BOOL WINAPI SetStdHandle(DWORD,HANDLE);
1493+#define SetSwapAreaSize(w) (w)
1494+BOOL WINAPI SetSystemPowerState(BOOL,BOOL);
1495+BOOL WINAPI SetSystemTime(const SYSTEMTIME*);
1496+BOOL WINAPI SetSystemTimeAdjustment(DWORD,BOOL);
1497+DWORD WINAPI SetTapeParameters(HANDLE,DWORD,PVOID);
1498+DWORD WINAPI SetTapePosition(HANDLE,DWORD,DWORD,DWORD,DWORD,BOOL);
1499+DWORD WINAPI SetThreadAffinityMask(HANDLE,DWORD);
1500+BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT*);
1501+DWORD WINAPI SetThreadIdealProcessor(HANDLE,DWORD);
1502+BOOL WINAPI SetThreadPriority(HANDLE,int);
1503+BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
1504+BOOL WINAPI SetThreadToken (PHANDLE,HANDLE);
1505+BOOL WINAPI SetTimeZoneInformation(const TIME_ZONE_INFORMATION *);
1506+BOOL WINAPI SetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD);
1507+LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
1508+BOOL WINAPI SetupComm(HANDLE,DWORD,DWORD);
1509+BOOL WINAPI SetVolumeLabelA(LPCSTR,LPCSTR);
1510+BOOL WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR);
1511+BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,PVOID,BOOL);
1512+BOOL WINAPI SignalObjectAndWait(HANDLE,HANDLE,DWORD,BOOL);
1513+DWORD WINAPI SizeofResource(HINSTANCE,HRSRC);
1514+void WINAPI Sleep(DWORD);
1515+DWORD WINAPI SleepEx(DWORD,BOOL);
1516+DWORD WINAPI SuspendThread(HANDLE);
1517+void WINAPI SwitchToFiber(PVOID);
1518+BOOL WINAPI SwitchToThread(void);
1519+BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
1520+BOOL WINAPI SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME);
1521+BOOL WINAPI TerminateProcess(HANDLE,UINT);
1522+BOOL WINAPI TerminateThread(HANDLE,DWORD);
1523+DWORD WINAPI TlsAlloc(VOID);
1524+BOOL WINAPI TlsFree(DWORD);
1525+PVOID WINAPI TlsGetValue(DWORD);
1526+BOOL WINAPI TlsSetValue(DWORD,PVOID);
1527+BOOL WINAPI TransactNamedPipe(HANDLE,PVOID,DWORD,PVOID,DWORD,PDWORD,LPOVERLAPPED);
1528+BOOL WINAPI TransmitCommChar(HANDLE,char);
1529+BOOL WINAPI TryEnterCriticalSection(LPCRITICAL_SECTION);
1530+LONG WINAPI UnhandledExceptionFilter(LPEXCEPTION_POINTERS);
1531+BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1532+BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
1533+#define UnlockResource(h) (h)
1534+#define UnlockSegment(w) GlobalUnfix((HANDLE)(w))
1535+BOOL WINAPI UnmapViewOfFile(PVOID);
1536+BOOL WINAPI UpdateResourceA(HANDLE,LPCSTR,LPCSTR,WORD,PVOID,DWORD);
1537+BOOL WINAPI UpdateResourceW(HANDLE,LPCWSTR,LPCWSTR,WORD,PVOID,DWORD);
1538+BOOL WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA,DWORD,DWORDLONG);
1539+BOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW,DWORD,DWORDLONG);
1540+PVOID WINAPI VirtualAlloc(PVOID,DWORD,DWORD,DWORD);
1541+PVOID WINAPI VirtualAllocEx(HANDLE,PVOID,DWORD,DWORD,DWORD);
1542+BOOL WINAPI VirtualFree(PVOID,DWORD,DWORD);
1543+BOOL WINAPI VirtualFreeEx(HANDLE,PVOID,DWORD,DWORD);
1544+BOOL WINAPI VirtualLock(PVOID,DWORD);
1545+BOOL WINAPI VirtualProtect(PVOID,DWORD,DWORD,PDWORD);
1546+BOOL WINAPI VirtualProtectEx(HANDLE,PVOID,DWORD,DWORD,PDWORD);
1547+DWORD WINAPI VirtualQuery(LPCVOID,PMEMORY_BASIC_INFORMATION,DWORD);
1548+DWORD WINAPI VirtualQueryEx(HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,DWORD);
1549+BOOL WINAPI VirtualUnlock(PVOID,DWORD);
1550+BOOL WINAPI WaitCommEvent(HANDLE,PDWORD,LPOVERLAPPED);
1551+BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
1552+DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,BOOL,DWORD);
1553+DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL);
1554+DWORD WINAPI WaitForSingleObject(HANDLE,DWORD);
1555+DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
1556+BOOL WINAPI WaitNamedPipeA(LPCSTR,DWORD);
1557+BOOL WINAPI WaitNamedPipeW(LPCWSTR,DWORD);
1558+BOOL WINAPI WinLoadTrustProvider(GUID*);
1559+BOOL WINAPI WriteFile(HANDLE,PCVOID,DWORD,PDWORD,LPOVERLAPPED);
1560+BOOL WINAPI WriteFileEx(HANDLE,PCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1561+BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
1562+BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);
1563+BOOL WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
1564+BOOL WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
1565+BOOL WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,PVOID,UINT,LPCSTR);
1566+BOOL WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,PVOID,UINT,LPCWSTR);
1567+BOOL WINAPI WriteProcessMemory(HANDLE,PVOID,PVOID,DWORD,PDWORD);
1568+BOOL WINAPI WriteProfileSectionA(LPCSTR,LPCSTR);
1569+BOOL WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR);
1570+BOOL WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR);
1571+BOOL WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR);
1572+DWORD WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL);
1573+#define Yield()
1574+
1575+#ifdef UNICODE
1576+typedef STARTUPINFOW STARTUPINFO,*LPSTARTUPINFO;
1577+typedef WIN32_FIND_DATAW WIN32_FIND_DATA,*LPWIN32_FIND_DATA;
1578+typedef 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
1712+typedef STARTUPINFOA STARTUPINFO,*LPSTARTUPINFO;
1713+typedef WIN32_FIND_DATAA WIN32_FIND_DATA,*LPWIN32_FIND_DATA;
1714+typedef 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
9+extern "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+
55+typedef struct _CHAR_INFO {
56+ union {
57+ WCHAR UnicodeChar;
58+ CHAR AsciiChar;
59+ } Char;
60+ WORD Attributes;
61+} CHAR_INFO,*PCHAR_INFO;
62+typedef struct _SMALL_RECT {
63+ SHORT Left;
64+ SHORT Top;
65+ SHORT Right;
66+ SHORT Bottom;
67+} SMALL_RECT,*PSMALL_RECT;
68+typedef struct _CONSOLE_CURSOR_INFO {
69+ DWORD dwSize;
70+ BOOL bVisible;
71+} CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
72+typedef struct _COORD {
73+ SHORT X;
74+ SHORT Y;
75+} COORD;
76+typedef 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;
83+typedef BOOL(CALLBACK *PHANDLER_ROUTINE)(DWORD);
84+typedef 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
99+KEY_EVENT_RECORD;
100+
101+typedef struct _MOUSE_EVENT_RECORD {
102+ COORD dwMousePosition;
103+ DWORD dwButtonState;
104+ DWORD dwControlKeyState;
105+ DWORD dwEventFlags;
106+} MOUSE_EVENT_RECORD;
107+typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD;
108+typedef struct _MENU_EVENT_RECORD { UINT dwCommandId; } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
109+typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD;
110+typedef 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+
121+BOOL WINAPI AllocConsole(void);
122+HANDLE WINAPI CreateConsoleScreenBuffer(DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,PVOID);
123+BOOL WINAPI FillConsoleOutputAttribute(HANDLE,WORD,DWORD,COORD,PDWORD);
124+BOOL WINAPI FillConsoleOutputCharacterA(HANDLE,CHAR,DWORD,COORD,PDWORD);
125+BOOL WINAPI FillConsoleOutputCharacterW(HANDLE,WCHAR,DWORD,COORD,PDWORD);
126+BOOL WINAPI FlushConsoleInputBuffer(HANDLE);
127+BOOL WINAPI FreeConsole(void);
128+BOOL WINAPI GenerateConsoleCtrlEvent(DWORD,DWORD);
129+UINT WINAPI GetConsoleCP(void);
130+BOOL WINAPI GetConsoleCursorInfo(HANDLE,PCONSOLE_CURSOR_INFO);
131+BOOL WINAPI GetConsoleMode(HANDLE,PDWORD);
132+UINT WINAPI GetConsoleOutputCP(void);
133+BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE,PCONSOLE_SCREEN_BUFFER_INFO);
134+DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD);
135+DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD);
136+COORD WINAPI GetLargestConsoleWindowSize(HANDLE);
137+BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,PDWORD);
138+BOOL WINAPI GetNumberOfConsoleMouseButtons(PDWORD);
139+BOOL WINAPI PeekConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
140+BOOL WINAPI PeekConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
141+BOOL WINAPI ReadConsoleA(HANDLE,PVOID,DWORD,PDWORD,PVOID);
142+BOOL WINAPI ReadConsoleW(HANDLE,PVOID,DWORD,PDWORD,PVOID);
143+BOOL WINAPI ReadConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
144+BOOL WINAPI ReadConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
145+BOOL WINAPI ReadConsoleOutputAttribute(HANDLE,LPWORD,DWORD,COORD,LPDWORD);
146+BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,COORD,PDWORD);
147+BOOL WINAPI ReadConsoleOutputCharacterW(HANDLE,LPWSTR,DWORD,COORD,PDWORD);
148+BOOL WINAPI ReadConsoleOutputA(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT);
149+BOOL WINAPI ReadConsoleOutputW(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT);
150+BOOL WINAPI ScrollConsoleScreenBufferA(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*);
151+BOOL WINAPI ScrollConsoleScreenBufferW(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*);
152+BOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE);
153+BOOL WINAPI SetConsoleCP(UINT);
154+BOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE,BOOL);
155+BOOL WINAPI SetConsoleCursorInfo(HANDLE,const CONSOLE_CURSOR_INFO*);
156+BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD);
157+BOOL WINAPI SetConsoleMode(HANDLE,DWORD);
158+BOOL WINAPI SetConsoleOutputCP(UINT);
159+BOOL WINAPI SetConsoleScreenBufferSize(HANDLE,COORD);
160+BOOL WINAPI SetConsoleTextAttribute(HANDLE,WORD);
161+BOOL WINAPI SetConsoleTitleA(LPCSTR);
162+BOOL WINAPI SetConsoleTitleW(LPCWSTR);
163+BOOL WINAPI SetConsoleWindowInfo(HANDLE,BOOL,const SMALL_RECT*);
164+BOOL WINAPI WriteConsoleA(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
165+BOOL WINAPI WriteConsoleW(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
166+BOOL WINAPI WriteConsoleInputA(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
167+BOOL WINAPI WriteConsoleInputW(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
168+BOOL WINAPI WriteConsoleOutputA(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
169+BOOL WINAPI WriteConsoleOutputW(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
170+BOOL WINAPI WriteConsoleOutputAttribute(HANDLE,const WORD*,DWORD,COORD,PDWORD);
171+BOOL WINAPI WriteConsoleOutputCharacterA(HANDLE,LPCSTR,DWORD,COORD,PDWORD);
172+BOOL 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
8+extern "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+
130+typedef unsigned long DWORD;
131+typedef int WINBOOL,*PWINBOOL,*LPWINBOOL;
132+/* FIXME: Is there a good solution to this? */
133+#ifndef XFree86Server
134+#ifndef __OBJC__
135+typedef WINBOOL BOOL;
136+#else
137+#define BOOL WINBOOL
138+#endif
139+typedef unsigned char BYTE;
140+#endif /* ndef XFree86Server */
141+typedef BOOL *PBOOL,*LPBOOL;
142+typedef unsigned short WORD;
143+typedef float FLOAT;
144+typedef FLOAT *PFLOAT;
145+typedef BYTE *PBYTE,*LPBYTE;
146+typedef int *PINT,*LPINT;
147+typedef WORD *PWORD,*LPWORD;
148+typedef long *LPLONG;
149+typedef DWORD *PDWORD,*LPDWORD;
150+typedef void *PVOID,*LPVOID;
151+typedef CONST void *PCVOID,*LPCVOID;
152+typedef int INT;
153+typedef unsigned int UINT,*PUINT,*LPUINT;
154+
155+#include <winnt.h>
156+
157+typedef UINT WPARAM;
158+typedef LONG LPARAM;
159+typedef LONG LRESULT;
160+#ifndef _HRESULT_DEFINED
161+typedef LONG HRESULT;
162+#define _HRESULT_DEFINED
163+#endif
164+#ifndef XFree86Server
165+typedef WORD ATOM;
166+#endif /* XFree86Server */
167+typedef HANDLE HGLOBAL;
168+typedef HANDLE HLOCAL;
169+typedef HANDLE GLOBALHANDLE;
170+typedef HANDLE LOCALHANDLE;
171+typedef void *HGDIOBJ;
172+DECLARE_HANDLE(HACCEL);
173+DECLARE_HANDLE(HBITMAP);
174+DECLARE_HANDLE(HBRUSH);
175+DECLARE_HANDLE(HCOLORSPACE);
176+DECLARE_HANDLE(HDC);
177+DECLARE_HANDLE(HGLRC);
178+DECLARE_HANDLE(HDESK);
179+DECLARE_HANDLE(HENHMETAFILE);
180+DECLARE_HANDLE(HFONT);
181+DECLARE_HANDLE(HICON);
182+DECLARE_HANDLE(HKEY);
183+/* FIXME: How to handle these. SM_CMONITORS etc in winuser.h also. */
184+/* #if (WINVER >= 0x0500) */
185+DECLARE_HANDLE(HMONITOR);
186+#define HMONITOR_DECLARED 1
187+DECLARE_HANDLE(HTERMINAL);
188+DECLARE_HANDLE(HWINEVENTHOOK);
189+/* #endif */
190+typedef HKEY *PHKEY;
191+DECLARE_HANDLE(HMENU);
192+DECLARE_HANDLE(HMETAFILE);
193+DECLARE_HANDLE(HINSTANCE);
194+typedef HINSTANCE HMODULE;
195+DECLARE_HANDLE(HPALETTE);
196+DECLARE_HANDLE(HPEN);
197+DECLARE_HANDLE(HRGN);
198+DECLARE_HANDLE(HRSRC);
199+DECLARE_HANDLE(HSTR);
200+DECLARE_HANDLE(HTASK);
201+DECLARE_HANDLE(HWND);
202+DECLARE_HANDLE(HWINSTA);
203+DECLARE_HANDLE(HKL);
204+typedef int HFILE;
205+typedef HICON HCURSOR;
206+typedef DWORD COLORREF;
207+typedef int (WINAPI *FARPROC)();
208+typedef int (WINAPI *NEARPROC)();
209+typedef int (WINAPI *PROC)();
210+typedef struct tagRECT {
211+ LONG left;
212+ LONG top;
213+ LONG right;
214+ LONG bottom;
215+} RECT,*PRECT,*LPRECT;
216+typedef const RECT *LPCRECT;
217+typedef struct tagRECTL {
218+ LONG left;
219+ LONG top;
220+ LONG right;
221+ LONG bottom;
222+} RECTL,*PRECTL,*LPRECTL;
223+typedef const RECTL *LPCRECTL;
224+typedef struct tagPOINT {
225+ LONG x;
226+ LONG y;
227+} POINT,POINTL,*PPOINT,*LPPOINT,*PPOINTL,*LPPOINTL;
228+typedef struct tagSIZE {
229+ LONG cx;
230+ LONG cy;
231+} SIZE,SIZEL,*PSIZE,*LPSIZE,*PSIZEL,*LPSIZEL;
232+typedef 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
8+extern "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
1165+typedef struct _ABC {
1166+ int abcA;
1167+ UINT abcB;
1168+ int abcC;
1169+} ABC,*LPABC;
1170+typedef struct _ABCFLOAT {
1171+ FLOAT abcfA;
1172+ FLOAT abcfB;
1173+ FLOAT abcfC;
1174+} ABCFLOAT,*LPABCFLOAT;
1175+typedef 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;
1184+typedef 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)
1192+typedef struct tagRGBTRIPLE {
1193+ BYTE rgbtBlue;
1194+ BYTE rgbtGreen;
1195+ BYTE rgbtRed;
1196+} RGBTRIPLE;
1197+#pragma pack(pop)
1198+#pragma pack(push,2)
1199+typedef 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)
1207+typedef struct _BITMAPCOREINFO {
1208+ BITMAPCOREHEADER bmciHeader;
1209+ RGBTRIPLE bmciColors[1];
1210+} BITMAPCOREINFO,*LPBITMAPCOREINFO,*PBITMAPCOREINFO;
1211+typedef 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;
1224+typedef struct tagRGBQUAD {
1225+ BYTE rgbBlue;
1226+ BYTE rgbGreen;
1227+ BYTE rgbRed;
1228+ BYTE rgbReserved;
1229+} RGBQUAD;
1230+typedef struct tagBITMAPINFO {
1231+ BITMAPINFOHEADER bmiHeader;
1232+ RGBQUAD bmiColors[1];
1233+} BITMAPINFO,*LPBITMAPINFO,*PBITMAPINFO;
1234+typedef long FXPT16DOT16,*LPFXPT16DOT16;
1235+typedef long FXPT2DOT30,*LPFXPT2DOT30;
1236+typedef struct tagCIEXYZ {
1237+ FXPT2DOT30 ciexyzX;
1238+ FXPT2DOT30 ciexyzY;
1239+ FXPT2DOT30 ciexyzZ;
1240+} CIEXYZ,*LPCIEXYZ;
1241+typedef struct tagCIEXYZTRIPLE {
1242+ CIEXYZ ciexyzRed;
1243+ CIEXYZ ciexyzGreen;
1244+ CIEXYZ ciexyzBlue;
1245+} CIEXYZTRIPLE,*LPCIEXYZTRIPLE;
1246+typedef 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;
1268+typedef struct tagFONTSIGNATURE {
1269+ DWORD fsUsb[4];
1270+ DWORD fsCsb[2];
1271+} FONTSIGNATURE,*LPFONTSIGNATURE;
1272+typedef struct {
1273+ UINT ciCharset;
1274+ UINT ciACP;
1275+ FONTSIGNATURE fs;
1276+} CHARSETINFO,*LPCHARSETINFO;
1277+typedef 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;
1291+typedef 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;
1325+typedef 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;
1359+typedef struct tagDIBSECTION {
1360+ BITMAP dsBm;
1361+ BITMAPINFOHEADER dsBmih;
1362+ DWORD dsBitfields[3];
1363+ HANDLE dshSection;
1364+ DWORD dsOffset;
1365+} DIBSECTION;
1366+typedef struct _DOCINFOA {
1367+ int cbSize;
1368+ LPCTSTR lpszDocName;
1369+ LPCTSTR lpszOutput;
1370+ LPCTSTR lpszDatatype;
1371+ DWORD fwType;
1372+} DOCINFOA,*LPDOCINFOA;
1373+typedef struct _DOCINFOW {
1374+ int cbSize;
1375+ LPCWSTR lpszDocName;
1376+ LPCWSTR lpszOutput;
1377+ LPCWSTR lpszDatatype;
1378+ DWORD fwType;
1379+} DOCINFOW,*LPDOCINFOW;
1380+typedef struct tagEMR {
1381+ DWORD iType;
1382+ DWORD nSize;
1383+} EMR,*PEMR;
1384+typedef struct tagEMRANGLEARC {
1385+ EMR emr;
1386+ POINTL ptlCenter;
1387+ DWORD nRadius;
1388+ FLOAT eStartAngle;
1389+ FLOAT eSweepAngle;
1390+} EMRANGLEARC,*PEMRANGLEARC;
1391+typedef struct tagEMRARC {
1392+ EMR emr;
1393+ RECTL rclBox;
1394+ POINTL ptlStart;
1395+ POINTL ptlEnd;
1396+} EMRARC,*PEMRARC,EMRARCTO,*PEMRARCTO,EMRCHORD,*PEMRCHORD,EMRPIE,*PEMRPIE;
1397+typedef struct _XFORM {
1398+ FLOAT eM11;
1399+ FLOAT eM12;
1400+ FLOAT eM21;
1401+ FLOAT eM22;
1402+ FLOAT eDx;
1403+ FLOAT eDy;
1404+} XFORM,*LPXFORM;
1405+typedef 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;
1422+typedef struct tagLOGBRUSH {
1423+ UINT lbStyle;
1424+ COLORREF lbColor;
1425+ LONG lbHatch;
1426+} LOGBRUSH,*LPLOGBRUSH;
1427+typedef LOGBRUSH PATTERN,*PPATTERN,*LPPATTERN;
1428+typedef struct tagEMRCREATEBRUSHINDIRECT {
1429+ EMR emr;
1430+ DWORD ihBrush;
1431+ LOGBRUSH lb;
1432+} EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT;
1433+typedef LONG LCSCSTYPE;
1434+typedef LONG LCSGAMUTMATCH;
1435+typedef 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;
1447+typedef 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;
1459+typedef struct tagEMRCREATECOLORSPACE {
1460+ EMR emr;
1461+ DWORD ihCS;
1462+ LOGCOLORSPACEW lcs;
1463+} EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;
1464+typedef 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;
1473+typedef 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;
1482+typedef struct tagPALETTEENTRY {
1483+ BYTE peRed;
1484+ BYTE peGreen;
1485+ BYTE peBlue;
1486+ BYTE peFlags;
1487+} PALETTEENTRY,*LPPALETTEENTRY,*PPALETTEENTRY;
1488+typedef struct tagLOGPALETTE {
1489+ WORD palVersion;
1490+ WORD palNumEntries;
1491+ PALETTEENTRY palPalEntry[1];
1492+} LOGPALETTE,*NPLOGPALETTE,*PLOGPALETTE,*LPLOGPALETTE;
1493+typedef struct tagEMRCREATEPALETTE {
1494+ EMR emr;
1495+ DWORD ihPal;
1496+ LOGPALETTE lgpl;
1497+} EMRCREATEPALETTE,*PEMRCREATEPALETTE;
1498+typedef struct tagLOGPEN {
1499+ UINT lopnStyle;
1500+ POINT lopnWidth;
1501+ COLORREF lopnColor;
1502+} LOGPEN,*LPLOGPEN;
1503+typedef struct tagEMRCREATEPEN {
1504+ EMR emr;
1505+ DWORD ihPen;
1506+ LOGPEN lopn;
1507+} EMRCREATEPEN,*PEMRCREATEPEN;
1508+typedef struct tagEMRELLIPSE {
1509+ EMR emr;
1510+ RECTL rclBox;
1511+} EMRELLIPSE,*PEMRELLIPSE,EMRRECTANGLE,*PEMRRECTANGLE;
1512+typedef struct tagEMREOF {
1513+ EMR emr;
1514+ DWORD nPalEntries;
1515+ DWORD offPalEntries;
1516+ DWORD nSizeLast;
1517+} EMREOF,*PEMREOF;
1518+typedef struct tagEMREXCLUDECLIPRECT {
1519+ EMR emr;
1520+ RECTL rclClip;
1521+} EMREXCLUDECLIPRECT,*PEMREXCLUDECLIPRECT,EMRINTERSECTCLIPRECT,*PEMRINTERSECTCLIPRECT;
1522+typedef 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;
1534+typedef 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;
1550+typedef 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;
1566+typedef 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;
1578+typedef 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;
1590+typedef struct tagEMREXTCREATEFONTINDIRECTW {
1591+ EMR emr;
1592+ DWORD ihFont;
1593+ EXTLOGFONTW elfw;
1594+} EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW;
1595+typedef 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;
1604+typedef 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;
1613+typedef struct tagEMREXTFLOODFILL {
1614+ EMR emr;
1615+ POINTL ptlStart;
1616+ COLORREF crColor;
1617+ DWORD iMode;
1618+} EMREXTFLOODFILL,*PEMREXTFLOODFILL;
1619+typedef struct tagEMREXTSELECTCLIPRGN {
1620+ EMR emr;
1621+ DWORD cbRgnData;
1622+ DWORD iMode;
1623+ BYTE RgnData[1];
1624+} EMREXTSELECTCLIPRGN,*PEMREXTSELECTCLIPRGN;
1625+typedef struct tagEMRTEXT {
1626+ POINTL ptlReference;
1627+ DWORD nChars;
1628+ DWORD offString;
1629+ DWORD fOptions;
1630+ RECTL rcl;
1631+ DWORD offDx;
1632+} EMRTEXT,*PEMRTEXT;
1633+typedef 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;
1641+typedef struct tagEMRFILLPATH {
1642+ EMR emr;
1643+ RECTL rclBounds;
1644+} EMRFILLPATH,*PEMRFILLPATH,EMRSTROKEANDFILLPATH,*PEMRSTROKEANDFILLPATH,EMRSTROKEPATH,*PEMRSTROKEPATH;
1645+typedef struct tagEMRFILLRGN {
1646+ EMR emr;
1647+ RECTL rclBounds;
1648+ DWORD cbRgnData;
1649+ DWORD ihBrush;
1650+ BYTE RgnData[1];
1651+} EMRFILLRGN,*PEMRFILLRGN;
1652+typedef struct tagEMRFORMAT {
1653+ DWORD dSignature;
1654+ DWORD nVersion;
1655+ DWORD cbData;
1656+ DWORD offData;
1657+} EMRFORMAT;
1658+typedef struct tagEMRFRAMERGN {
1659+ EMR emr;
1660+ RECTL rclBounds;
1661+ DWORD cbRgnData;
1662+ DWORD ihBrush;
1663+ SIZEL szlStroke;
1664+ BYTE RgnData[1];
1665+} EMRFRAMERGN,*PEMRFRAMERGN;
1666+typedef struct tagEMRGDICOMMENT {
1667+ EMR emr;
1668+ DWORD cbData;
1669+ BYTE Data[1];
1670+} EMRGDICOMMENT,*PEMRGDICOMMENT;
1671+typedef struct tagEMRINVERTRGN {
1672+ EMR emr;
1673+ RECTL rclBounds;
1674+ DWORD cbRgnData;
1675+ BYTE RgnData[1];
1676+} EMRINVERTRGN,*PEMRINVERTRGN,EMRPAINTRGN,*PEMRPAINTRGN;
1677+typedef struct tagEMRLINETO {
1678+ EMR emr;
1679+ POINTL ptl;
1680+} EMRLINETO,*PEMRLINETO,EMRMOVETOEX,*PEMRMOVETOEX;
1681+typedef 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;
1706+typedef struct tagEMRMODIFYWORLDTRANSFORM {
1707+ EMR emr;
1708+ XFORM xform;
1709+ DWORD iMode;
1710+} EMRMODIFYWORLDTRANSFORM,*PEMRMODIFYWORLDTRANSFORM;
1711+typedef struct tagEMROFFSETCLIPRGN {
1712+ EMR emr;
1713+ POINTL ptlOffset;
1714+} EMROFFSETCLIPRGN,*PEMROFFSETCLIPRGN;
1715+typedef 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;
1738+typedef struct tagEMRPOLYDRAW {
1739+ EMR emr;
1740+ RECTL rclBounds;
1741+ DWORD cptl;
1742+ POINTL aptl[1];
1743+ BYTE abTypes[1];
1744+} EMRPOLYDRAW,*PEMRPOLYDRAW;
1745+typedef struct tagEMRPOLYDRAW16 {
1746+ EMR emr;
1747+ RECTL rclBounds;
1748+ DWORD cpts;
1749+ POINTS apts[1];
1750+ BYTE abTypes[1];
1751+} EMRPOLYDRAW16,*PEMRPOLYDRAW16;
1752+typedef 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;
1758+typedef 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;
1764+typedef 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;
1772+typedef 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;
1780+typedef 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;
1789+typedef struct tagEMRRESIZEPALETTE {
1790+ EMR emr;
1791+ DWORD ihPal;
1792+ DWORD cEntries;
1793+} EMRRESIZEPALETTE,*PEMRRESIZEPALETTE;
1794+typedef struct tagEMRRESTOREDC {
1795+ EMR emr;
1796+ LONG iRelative;
1797+} EMRRESTOREDC,*PEMRRESTOREDC;
1798+typedef struct tagEMRROUNDRECT {
1799+ EMR emr;
1800+ RECTL rclBox;
1801+ SIZEL szlCorner;
1802+} EMRROUNDRECT,*PEMRROUNDRECT;
1803+typedef struct tagEMRSCALEVIEWPORTEXTEX {
1804+ EMR emr;
1805+ LONG xNum;
1806+ LONG xDenom;
1807+ LONG yNum;
1808+ LONG yDenom;
1809+} EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX;
1810+typedef struct tagEMRSELECTCOLORSPACE {
1811+ EMR emr;
1812+ DWORD ihCS;
1813+} EMRSELECTCOLORSPACE,*PEMRSELECTCOLORSPACE,EMRDELETECOLORSPACE,*PEMRDELETECOLORSPACE;
1814+typedef struct tagEMRSELECTOBJECT {
1815+ EMR emr;
1816+ DWORD ihObject;
1817+} EMRSELECTOBJECT,*PEMRSELECTOBJECT,EMRDELETEOBJECT,*PEMRDELETEOBJECT;
1818+typedef struct tagEMRSELECTPALETTE {
1819+ EMR emr;
1820+ DWORD ihPal;
1821+} EMRSELECTPALETTE,*PEMRSELECTPALETTE;
1822+typedef struct tagEMRSETARCDIRECTION {
1823+ EMR emr;
1824+ DWORD iArcDirection;
1825+} EMRSETARCDIRECTION,*PEMRSETARCDIRECTION;
1826+typedef struct tagEMRSETTEXTCOLOR {
1827+ EMR emr;
1828+ COLORREF crColor;
1829+} EMRSETBKCOLOR,*PEMRSETBKCOLOR,EMRSETTEXTCOLOR,*PEMRSETTEXTCOLOR;
1830+typedef struct tagEMRSETCOLORADJUSTMENT {
1831+ EMR emr;
1832+ COLORADJUSTMENT ColorAdjustment;
1833+} EMRSETCOLORADJUSTMENT,*PEMRSETCOLORADJUSTMENT;
1834+typedef 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;
1851+typedef struct tagEMRSETMAPPERFLAGS {
1852+ EMR emr;
1853+ DWORD dwFlags;
1854+} EMRSETMAPPERFLAGS,*PEMRSETMAPPERFLAGS;
1855+typedef struct tagEMRSETMITERLIMIT {
1856+ EMR emr;
1857+ FLOAT eMiterLimit;
1858+} EMRSETMITERLIMIT,*PEMRSETMITERLIMIT;
1859+typedef struct tagEMRSETPALETTEENTRIES {
1860+ EMR emr;
1861+ DWORD ihPal;
1862+ DWORD iStart;
1863+ DWORD cEntries;
1864+ PALETTEENTRY aPalEntries[1];
1865+} EMRSETPALETTEENTRIES,*PEMRSETPALETTEENTRIES;
1866+typedef struct tagEMRSETPIXELV {
1867+ EMR emr;
1868+ POINTL ptlPixel;
1869+ COLORREF crColor;
1870+} EMRSETPIXELV,*PEMRSETPIXELV;
1871+typedef struct tagEMRSETVIEWPORTEXTEX {
1872+ EMR emr;
1873+ SIZEL szlExtent;
1874+} EMRSETVIEWPORTEXTEX,*PEMRSETVIEWPORTEXTEX,EMRSETWINDOWEXTEX,*PEMRSETWINDOWEXTEX;
1875+typedef struct tagEMRSETVIEWPORTORGEX {
1876+ EMR emr;
1877+ POINTL ptlOrigin;
1878+} EMRSETVIEWPORTORGEX,*PEMRSETVIEWPORTORGEX,EMRSETWINDOWORGEX,*PEMRSETWINDOWORGEX,EMRSETBRUSHORGEX,*PEMRSETBRUSHORGEX;
1879+typedef struct tagEMRSETWORLDTRANSFORM {
1880+ EMR emr;
1881+ XFORM xform;
1882+} EMRSETWORLDTRANSFORM,*PEMRSETWORLDTRANSFORM;
1883+typedef 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;
1903+typedef 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;
1921+typedef struct tagABORTPATH {
1922+ EMR emr;
1923+} EMRABORTPATH,*PEMRABORTPATH,EMRBEGINPATH,*PEMRBEGINPATH,EMRENDPATH,*PEMRENDPATH,EMRCLOSEFIGURE,*PEMRCLOSEFIGURE,EMRFLATTENPATH,*PEMRFLATTENPATH,EMRWIDENPATH,*PEMRWIDENPATH,EMRSETMETARGN,*PEMRSETMETARGN,EMRSAVEDC,*PEMRSAVEDC,EMRREALIZEPALETTE,*PEMRREALIZEPALETTE;
1924+typedef 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)
1929+typedef 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)
1939+typedef 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;
1956+typedef struct tagMETARECORD {
1957+ DWORD rdSize;
1958+ WORD rdFunction;
1959+ WORD rdParm[1];
1960+} METARECORD,*PMETARECORD,*LPMETARECORD;
1961+typedef struct tagENHMETARECORD {
1962+ DWORD iType;
1963+ DWORD nSize;
1964+ DWORD dParm[1];
1965+} ENHMETARECORD,*LPENHMETARECORD;
1966+typedef struct tagHANDLETABLE {
1967+ HGDIOBJ objectHandle[1];
1968+} HANDLETABLE,*LPHANDLETABLE;
1969+typedef 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;
1991+typedef 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;
2013+typedef struct _RGNDATAHEADER {
2014+ DWORD dwSize;
2015+ DWORD iType;
2016+ DWORD nCount;
2017+ DWORD nRgnSize;
2018+ RECT rcBound;
2019+} RGNDATAHEADER;
2020+typedef struct _RGNDATA {
2021+ RGNDATAHEADER rdh;
2022+ char Buffer[1];
2023+} RGNDATA,*LPRGNDATA;
2024+/* for GetRandomRgn */
2025+#define SYSRGN 4
2026+typedef 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;
2037+typedef 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;
2048+typedef struct _GLYPHMETRICS {
2049+ UINT gmBlackBoxX;
2050+ UINT gmBlackBoxY;
2051+ POINT gmptGlyphOrigin;
2052+ short gmCellIncX;
2053+ short gmCellIncY;
2054+} GLYPHMETRICS,*LPGLYPHMETRICS;
2055+typedef struct tagKERNINGPAIR {
2056+ WORD wFirst;
2057+ WORD wSecond;
2058+ int iKernAmount;
2059+} KERNINGPAIR,*LPKERNINGPAIR;
2060+typedef struct _FIXED {
2061+ WORD fract;
2062+ short value;
2063+} FIXED;
2064+typedef struct _MAT2 {
2065+ FIXED eM11;
2066+ FIXED eM12;
2067+ FIXED eM21;
2068+ FIXED eM22;
2069+} MAT2,*LPMAT2;
2070+typedef 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;
2104+typedef 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;
2138+typedef struct _RASTERIZER_STATUS {
2139+ short nSize;
2140+ short wFlags;
2141+ short nLanguageID;
2142+} RASTERIZER_STATUS,*LPRASTERIZER_STATUS;
2143+typedef 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;
2152+typedef 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;
2161+typedef 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;
2189+typedef struct tagMETAFILEPICT {
2190+ LONG mm;
2191+ LONG xExt;
2192+ LONG yExt;
2193+ HMETAFILE hMF;
2194+} METAFILEPICT,*LPMETAFILEPICT;
2195+typedef struct tagLOCALESIGNATURE {
2196+ DWORD lsUsb[4];
2197+ DWORD lsCsbDefault[2];
2198+ DWORD lsCsbSupported[2];
2199+} LOCALESIGNATURE,*PLOCALESIGNATURE,*LPLOCALESIGNATURE;
2200+typedef LONG LCSTYPE;
2201+#pragma pack(push,4)
2202+typedef 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;
2228+typedef 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)
2255+typedef struct tagNEWTEXTMETRICEXA {
2256+ NEWTEXTMETRICA ntmTm;
2257+ FONTSIGNATURE ntmFontSig;
2258+} NEWTEXTMETRICEXA;
2259+typedef struct tagNEWTEXTMETRICEXW {
2260+ NEWTEXTMETRICW ntmTm;
2261+ FONTSIGNATURE ntmFontSig;
2262+} NEWTEXTMETRICEXW;
2263+typedef struct tagPELARRAY {
2264+ LONG paXCount;
2265+ LONG paYCount;
2266+ LONG paXExt;
2267+ LONG paYExt;
2268+ BYTE paRGBs;
2269+} PELARRAY,*PPELARRAY,*LPPELARRAY;
2270+typedef struct tagENUMLOGFONTA {
2271+ LOGFONTA elfLogFont;
2272+ BYTE elfFullName[LF_FULLFACESIZE];
2273+ BYTE elfStyle[LF_FACESIZE];
2274+} ENUMLOGFONTA,*LPENUMLOGFONTA;
2275+typedef struct tagENUMLOGFONTW {
2276+ LOGFONTW elfLogFont;
2277+ WCHAR elfFullName[LF_FULLFACESIZE];
2278+ WCHAR elfStyle[LF_FACESIZE];
2279+} ENUMLOGFONTW,*LPENUMLOGFONTW;
2280+typedef struct tagENUMLOGFONTEXA {
2281+ LOGFONTA elfLogFont;
2282+ BYTE elfFullName[LF_FULLFACESIZE];
2283+ BYTE elfStyle[LF_FACESIZE];
2284+ BYTE elfScript[LF_FACESIZE];
2285+} ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
2286+typedef struct tagENUMLOGFONTEXW {
2287+ LOGFONTW elfLogFont;
2288+ WCHAR elfFullName[LF_FULLFACESIZE];
2289+ BYTE elfStyle[LF_FACESIZE];
2290+ BYTE elfScript[LF_FACESIZE];
2291+} ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
2292+typedef struct tagPOINTFX {
2293+ FIXED x;
2294+ FIXED y;
2295+} POINTFX,*LPPOINTFX;
2296+typedef struct tagTTPOLYCURVE {
2297+ WORD wType;
2298+ WORD cpfx;
2299+ POINTFX apfx[1];
2300+} TTPOLYCURVE,*LPTTPOLYCURVE;
2301+typedef struct tagTTPOLYGONHEADER {
2302+ DWORD cb;
2303+ DWORD dwType;
2304+ POINTFX pfxStart;
2305+} TTPOLYGONHEADER,*LPTTPOLYGONHEADER;
2306+typedef struct _POINTFLOAT {
2307+ FLOAT x;
2308+ FLOAT y;
2309+} POINTFLOAT,*PPOINTFLOAT;
2310+typedef struct _GLYPHMETRICSFLOAT {
2311+ FLOAT gmfBlackBoxX;
2312+ FLOAT gmfBlackBoxY;
2313+ POINTFLOAT gmfptGlyphOrigin;
2314+ FLOAT gmfCellIncX;
2315+ FLOAT gmfCellIncY;
2316+} GLYPHMETRICSFLOAT,*PGLYPHMETRICSFLOAT,*LPGLYPHMETRICSFLOAT;
2317+typedef 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;
2343+typedef struct _BLENDFUNCTION {
2344+ BYTE BlendOp;
2345+ BYTE BlendFlags;
2346+ BYTE SourceConstantAlpha;
2347+ BYTE AlphaFormat;
2348+} BLENDFUNCTION,*PBLENDFUNCTION,*LPBLENDFUNCTION;
2349+typedef BOOL (CALLBACK *ABORTPROC)(HDC,int);
2350+typedef int (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM);
2351+typedef int (CALLBACK *ENHMFENUMPROC)(HDC,HANDLETABLE*,ENHMETARECORD*,int,LPARAM);
2352+typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA*,const TEXTMETRICA*,DWORD,LPARAM);
2353+typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW*,const TEXTMETRICW*,DWORD,LPARAM);
2354+typedef OLDFONTENUMPROCA FONTENUMPROCA;
2355+typedef OLDFONTENUMPROCW FONTENUMPROCW;
2356+typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM);
2357+typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM);
2358+typedef void (CALLBACK *GOBJENUMPROC)(LPVOID,LPARAM);
2359+typedef void (CALLBACK *LINEDDAPROC)(int,int,LPARAM);
2360+typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,UINT);
2361+typedef 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))
2369+int WINAPI AbortDoc(HDC);
2370+BOOL WINAPI AbortPath(HDC);
2371+int WINAPI AddFontResourceA(LPCSTR);
2372+int WINAPI AddFontResourceW(LPCWSTR);
2373+BOOL WINAPI AngleArc(HDC,int,int,DWORD,FLOAT,FLOAT);
2374+BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
2375+BOOL WINAPI Arc(HDC,int,int,int,int,int,int,int,int);
2376+BOOL WINAPI ArcTo(HDC,int,int,int,int,int,int,int,int);
2377+BOOL WINAPI BeginPath(HDC);
2378+BOOL WINAPI BitBlt(HDC,int,int,int,int,HDC,int,int,DWORD);
2379+BOOL WINAPI CancelDC(HDC);
2380+BOOL WINAPI CheckColorsInGamut(HDC,PVOID,PVOID,DWORD);
2381+BOOL WINAPI Chord(HDC,int,int,int,int,int,int,int,int);
2382+int WINAPI ChoosePixelFormat(HDC,CONST PIXELFORMATDESCRIPTOR*);
2383+HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
2384+BOOL WINAPI CloseFigure(HDC);
2385+HMETAFILE WINAPI CloseMetaFile(HDC);
2386+BOOL WINAPI ColorMatchToTarget(HDC,HDC,DWORD);
2387+int WINAPI CombineRgn(HRGN,HRGN,HRGN,int);
2388+BOOL WINAPI CombineTransform(LPXFORM,const XFORM*,const XFORM*);
2389+HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
2390+HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
2391+HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
2392+HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
2393+HBITMAP WINAPI CreateBitmap(int,int,UINT,UINT,PCVOID);
2394+HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
2395+HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
2396+HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
2397+HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW);
2398+HBITMAP WINAPI CreateCompatibleBitmap(HDC,int,int);
2399+HDC WINAPI CreateCompatibleDC(HDC);
2400+HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2401+HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2402+HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,PCVOID,const BITMAPINFO*,UINT);
2403+HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
2404+HBRUSH WINAPI CreateDIBPatternBrushPt(PCVOID,UINT);
2405+HBITMAP WINAPI CreateDIBSection(HDC,const BITMAPINFO*,UINT,void**,HANDLE,DWORD);
2406+HBITMAP WINAPI CreateDiscardableBitmap(HDC,int,int);
2407+HRGN WINAPI CreateEllipticRgn(int,int,int,int);
2408+HRGN WINAPI CreateEllipticRgnIndirect(LPCRECT);
2409+HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,LPCRECT,LPCSTR);
2410+HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,LPCRECT,LPCWSTR);
2411+HFONT WINAPI CreateFontA(int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
2412+HFONT WINAPI CreateFontW(int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
2413+HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
2414+HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
2415+HPALETTE WINAPI CreateHalftonePalette(HDC);
2416+HBRUSH WINAPI CreateHatchBrush(int,COLORREF);
2417+HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
2418+HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
2419+HDC WINAPI CreateMetaFileA(LPCSTR);
2420+HDC WINAPI CreateMetaFileW(LPCWSTR);
2421+HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
2422+HBRUSH WINAPI CreatePatternBrush(HBITMAP);
2423+HPEN WINAPI CreatePen(int,int,COLORREF);
2424+HPEN WINAPI CreatePenIndirect(const LOGPEN*);
2425+HRGN WINAPI CreatePolygonRgn(const POINT*,int,int);
2426+HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,int,int);
2427+HRGN WINAPI CreateRectRgn(int,int,int,int);
2428+HRGN WINAPI CreateRectRgnIndirect(LPCRECT);
2429+HRGN WINAPI CreateRoundRectRgn(int,int,int,int,int,int);
2430+BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
2431+BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
2432+HBRUSH WINAPI CreateSolidBrush(COLORREF);
2433+BOOL WINAPI DeleteColorSpace(HCOLORSPACE);
2434+BOOL WINAPI DeleteDC(HDC);
2435+BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
2436+BOOL WINAPI DeleteMetaFile(HMETAFILE);
2437+BOOL WINAPI DeleteObject(HGDIOBJ);
2438+int WINAPI DescribePixelFormat(HDC,int,UINT,LPPIXELFORMATDESCRIPTOR);
2439+DWORD WINAPI DeviceCapabilitiesA(LPCSTR,LPCSTR,WORD,LPSTR,const DEVMODEA*);
2440+DWORD WINAPI DeviceCapabilitiesW(LPCWSTR,LPCWSTR,WORD,LPWSTR,const DEVMODEW*);
2441+BOOL WINAPI DPtoLP(HDC,LPPOINT,int);
2442+int WINAPI DrawEscape(HDC,int,int,LPCSTR);
2443+BOOL WINAPI Ellipse(HDC,int,int,int,int);
2444+int WINAPI EndDoc(HDC);
2445+int WINAPI EndPage(HDC);
2446+BOOL WINAPI EndPath(HDC);
2447+BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,PVOID,LPCRECT);
2448+int WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2449+int WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
2450+int WINAPI EnumFontFamiliesExA(HDC,PLOGFONTA,FONTENUMPROCA,LPARAM,DWORD);
2451+int WINAPI EnumFontFamiliesExW(HDC,PLOGFONTW,FONTENUMPROCW,LPARAM,DWORD);
2452+int WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
2453+int WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCA,LPARAM);
2454+int WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
2455+int WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
2456+BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
2457+int WINAPI EnumObjects(HDC,int,GOBJENUMPROC,LPARAM);
2458+BOOL WINAPI EqualRgn(HRGN,HRGN);
2459+int WINAPI Escape(HDC,int,int,LPCSTR,PVOID);
2460+int WINAPI ExcludeClipRect(HDC,int,int,int,int);
2461+int WINAPI ExcludeUpdateRgn(HDC,HWND);
2462+HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
2463+HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
2464+int WINAPI ExtEscape(HDC,int,int,LPCSTR,int,LPSTR);
2465+BOOL WINAPI ExtFloodFill(HDC,int,int,COLORREF,UINT);
2466+int WINAPI ExtSelectClipRgn(HDC,HRGN,int);
2467+BOOL WINAPI ExtTextOutA(HDC,int,int,UINT,LPCRECT,LPCSTR,UINT,const INT*);
2468+BOOL WINAPI ExtTextOutW(HDC,int,int,UINT,LPCRECT,LPCWSTR,UINT,const INT*);
2469+BOOL WINAPI FillPath(HDC);
2470+int WINAPI FillRect(HDC,LPCRECT,HBRUSH);
2471+int WINAPI FillRgn(HDC,HRGN,HBRUSH);
2472+BOOL WINAPI FixBrushOrgEx(HDC,int,int,LPPOINT);
2473+BOOL WINAPI FlattenPath(HDC);
2474+BOOL WINAPI FloodFill(HDC,int,int,COLORREF);
2475+BOOL WINAPI GdiComment(HDC,UINT,const BYTE*);
2476+BOOL WINAPI GdiFlush(void);
2477+DWORD WINAPI GdiGetBatchLimit(void);
2478+DWORD 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))
2487+int WINAPI GetArcDirection(HDC);
2488+BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
2489+LONG WINAPI GetBitmapBits(HBITMAP,LONG,PVOID);
2490+BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
2491+COLORREF WINAPI GetBkColor(HDC);
2492+int WINAPI GetBkMode(HDC);
2493+UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
2494+BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
2495+BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
2496+BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
2497+BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
2498+BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
2499+DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,int,int,LPGCP_RESULTSA,DWORD);
2500+DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,int,int,LPGCP_RESULTSW,DWORD);
2501+BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
2502+BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
2503+BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
2504+BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
2505+BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
2506+BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
2507+int WINAPI GetClipBox(HDC,LPRECT);
2508+int WINAPI GetClipRgn(HDC,HRGN);
2509+BOOL WINAPI GetColorAdjustment(HDC,LPCOLORADJUSTMENT);
2510+HANDLE WINAPI GetColorSpace(HDC);
2511+HGDIOBJ WINAPI GetCurrentObject(HDC,UINT);
2512+BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
2513+HCURSOR WINAPI GetCursor(void);
2514+BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
2515+int WINAPI GetDeviceCaps(HDC,int);
2516+BOOL WINAPI GetDeviceGammaRamp(HDC,PVOID);
2517+UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
2518+int WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,PVOID,LPBITMAPINFO,UINT);
2519+HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
2520+HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
2521+UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR);
2522+UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
2523+UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
2524+UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
2525+UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,DWORD,PIXELFORMATDESCRIPTOR*);
2526+DWORD WINAPI GetFontData(HDC,DWORD,DWORD,PVOID,DWORD);
2527+DWORD WINAPI GetFontLanguageInfo(HDC);
2528+DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*);
2529+DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*);
2530+int WINAPI GetGraphicsMode(HDC);
2531+BOOL WINAPI GetICMProfileA(HDC,DWORD,LPSTR);
2532+BOOL WINAPI GetICMProfileW(HDC,DWORD,LPWSTR);
2533+DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
2534+DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
2535+BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
2536+BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
2537+int WINAPI GetMapMode(HDC);
2538+HMETAFILE WINAPI GetMetaFileA(LPCSTR);
2539+HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
2540+UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,PVOID);
2541+int WINAPI GetMetaRgn(HDC,HRGN);
2542+BOOL WINAPI GetMiterLimit(HDC,PFLOAT);
2543+COLORREF WINAPI GetNearestColor(HDC,COLORREF);
2544+UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
2545+int WINAPI GetObjectA(HGDIOBJ,int,PVOID);
2546+int WINAPI GetObjectW(HGDIOBJ,int,PVOID);
2547+DWORD WINAPI GetObjectType(HGDIOBJ);
2548+UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
2549+UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
2550+UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
2551+int WINAPI GetPath(HDC,LPPOINT,PBYTE,int);
2552+COLORREF WINAPI GetPixel(HDC,int,int);
2553+int WINAPI GetPixelFormat(HDC);
2554+int WINAPI GetPolyFillMode(HDC);
2555+BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
2556+int WINAPI GetRandomRgn (HDC,HRGN,INT);
2557+DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
2558+int WINAPI GetRgnBox(HRGN,LPRECT);
2559+int WINAPI GetROP2(HDC);
2560+HGDIOBJ WINAPI GetStockObject(int);
2561+int WINAPI GetStretchBltMode(HDC);
2562+UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
2563+UINT WINAPI GetSystemPaletteUse(HDC);
2564+UINT WINAPI GetTextAlign(HDC);
2565+int WINAPI GetTextCharacterExtra(HDC);
2566+int WINAPI GetTextCharset(HDC);
2567+int WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
2568+COLORREF WINAPI GetTextColor(HDC);
2569+BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,int,int,LPINT,LPINT,LPSIZE);
2570+BOOL WINAPI GetTextExtentExPointW( HDC,LPCWSTR,int,int,LPINT,LPINT,LPSIZE );
2571+BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,int,LPSIZE);
2572+BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,int,LPSIZE);
2573+BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,int,LPSIZE);
2574+BOOL WINAPI GetTextExtentPoint32W( HDC,LPCWSTR,int,LPSIZE);
2575+int WINAPI GetTextFaceA(HDC,int,LPSTR);
2576+int WINAPI GetTextFaceW(HDC,int,LPWSTR);
2577+BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
2578+BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
2579+BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
2580+BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
2581+BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
2582+BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
2583+UINT WINAPI GetWinMetaFileBits(HENHMETAFILE,UINT,LPBYTE,INT,HDC);
2584+BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
2585+int WINAPI IntersectClipRect(HDC,int,int,int,int);
2586+BOOL WINAPI InvertRgn(HDC,HRGN);
2587+BOOL WINAPI LineDDA(int,int,int,int,LINEDDAPROC,LPARAM);
2588+BOOL WINAPI LineTo(HDC,int,int);
2589+BOOL WINAPI LPtoDP(HDC,LPPOINT,int);
2590+BOOL WINAPI MaskBlt(HDC,int,int,int,int,HDC,int,int,HBITMAP,int,int,DWORD);
2591+BOOL WINAPI ModifyWorldTransform(HDC,const XFORM*,DWORD);
2592+BOOL WINAPI MoveToEx(HDC,int,int,LPPOINT);
2593+int WINAPI OffsetClipRgn(HDC,int,int);
2594+int WINAPI OffsetRgn(HRGN,int,int);
2595+BOOL WINAPI OffsetViewportOrgEx(HDC,int,int,LPPOINT);
2596+BOOL WINAPI OffsetWindowOrgEx(HDC,int,int,LPPOINT);
2597+BOOL WINAPI PaintRgn(HDC,HRGN);
2598+BOOL WINAPI PatBlt(HDC,int,int,int,int,DWORD);
2599+HRGN WINAPI PathToRegion(HDC);
2600+BOOL WINAPI Pie(HDC,int,int,int,int,int,int,int,int);
2601+BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,LPCRECT);
2602+BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
2603+BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
2604+BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
2605+BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,int,int,int,int,HBITMAP,int,int);
2606+BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
2607+BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
2608+BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,int);
2609+BOOL WINAPI Polygon(HDC,const POINT*,int);
2610+BOOL WINAPI Polyline(HDC,const POINT*,int);
2611+BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
2612+BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,int);
2613+BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
2614+BOOL WINAPI PolyTextOutA(HDC,const POLYTEXTA*,int);
2615+BOOL WINAPI PolyTextOutW(HDC,const POLYTEXTW*,int);
2616+BOOL WINAPI PtInRegion(HRGN,int,int);
2617+BOOL WINAPI PtVisible(HDC,int,int);
2618+UINT WINAPI RealizePalette(HDC);
2619+BOOL WINAPI Rectangle(HDC,int,int,int,int);
2620+BOOL WINAPI RectInRegion(HRGN,LPCRECT);
2621+BOOL WINAPI RectVisible(HDC,LPCRECT);
2622+BOOL WINAPI RemoveFontResourceA(LPCSTR);
2623+BOOL WINAPI RemoveFontResourceW(LPCWSTR);
2624+HDC WINAPI ResetDCA(HDC,const DEVMODEA*);
2625+HDC WINAPI ResetDCW(HDC,const DEVMODEW*);
2626+BOOL WINAPI ResizePalette(HPALETTE,UINT);
2627+BOOL WINAPI RestoreDC(HDC,int);
2628+BOOL WINAPI RoundRect(HDC,int,int,int,int,int,int);
2629+int WINAPI SaveDC(HDC);
2630+BOOL WINAPI ScaleViewportExtEx(HDC,int,int,int,int,LPSIZE);
2631+BOOL WINAPI ScaleWindowExtEx(HDC,int,int,int,int,LPSIZE);
2632+BOOL WINAPI SelectClipPath(HDC,int);
2633+int WINAPI SelectClipRgn(HDC,HRGN);
2634+HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
2635+HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
2636+int WINAPI SetAbortProc(HDC,ABORTPROC);
2637+int WINAPI SetArcDirection(HDC,int);
2638+LONG WINAPI SetBitmapBits(HBITMAP,DWORD,PCVOID);
2639+BOOL WINAPI SetBitmapDimensionEx(HBITMAP,int,int,LPSIZE);
2640+COLORREF WINAPI SetBkColor(HDC,COLORREF);
2641+int WINAPI SetBkMode(HDC,int);
2642+UINT WINAPI SetBoundsRect(HDC,LPCRECT,UINT);
2643+BOOL WINAPI SetBrushOrgEx(HDC,int,int,LPPOINT);
2644+BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
2645+BOOL WINAPI SetColorSpace(HDC,HCOLORSPACE);
2646+BOOL WINAPI SetDeviceGammaRamp(HDC,PVOID);
2647+UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,const RGBQUAD*);
2648+int WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,PCVOID,const BITMAPINFO*,UINT);
2649+int WINAPI SetDIBitsToDevice(HDC,int,int,DWORD,DWORD,int,int,UINT,UINT,PCVOID,const BITMAPINFO*,UINT);
2650+HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE*);
2651+int WINAPI SetGraphicsMode(HDC,int);
2652+int WINAPI SetICMMode(HDC,int);
2653+BOOL WINAPI SetICMProfileA(HDC,LPSTR);
2654+BOOL WINAPI SetICMProfileW(HDC,LPWSTR);
2655+int WINAPI SetMapMode(HDC,int);
2656+DWORD WINAPI SetMapperFlags(HDC,DWORD);
2657+HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE *);
2658+int WINAPI SetMetaRgn(HDC);
2659+BOOL WINAPI SetMiterLimit(HDC,FLOAT,PFLOAT);
2660+UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,const PALETTEENTRY*);
2661+COLORREF WINAPI SetPixel(HDC,int,int,COLORREF);
2662+BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
2663+BOOL WINAPI SetPixelV(HDC,int,int,COLORREF);
2664+int WINAPI SetPolyFillMode(HDC,int);
2665+BOOL WINAPI SetRectRgn(HRGN,int,int,int,int);
2666+int WINAPI SetROP2(HDC,int);
2667+int WINAPI SetStretchBltMode(HDC,int);
2668+UINT WINAPI SetSystemPaletteUse(HDC,UINT);
2669+UINT WINAPI SetTextAlign(HDC,UINT);
2670+int WINAPI SetTextCharacterExtra(HDC,int);
2671+COLORREF WINAPI SetTextColor(HDC,COLORREF);
2672+BOOL WINAPI SetTextJustification(HDC,int,int);
2673+BOOL WINAPI SetViewportExtEx(HDC,int,int,LPSIZE);
2674+BOOL WINAPI SetViewportOrgEx(HDC,int,int,LPPOINT);
2675+BOOL WINAPI SetWindowExtEx(HDC,int,int,LPSIZE);
2676+BOOL WINAPI SetWindowOrgEx(HDC,int,int,LPPOINT);
2677+HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,const BYTE*,HDC,const METAFILEPICT*);
2678+BOOL WINAPI SetWorldTransform(HDC,const XFORM *);
2679+int WINAPI StartDocA(HDC,const DOCINFOA*);
2680+int WINAPI StartDocW(HDC,const DOCINFOW*);
2681+int WINAPI StartPage(HDC);
2682+BOOL WINAPI StretchBlt(HDC,int,int,int,int,HDC,int,int,int,int,DWORD);
2683+int WINAPI StretchDIBits(HDC,int,int,int,int,int,int,int,int,const VOID *,const BITMAPINFO *,UINT,DWORD);
2684+BOOL WINAPI StrokeAndFillPath(HDC);
2685+BOOL WINAPI StrokePath(HDC);
2686+BOOL WINAPI SwapBuffers(HDC);
2687+BOOL WINAPI TextOutA(HDC,int,int,LPCSTR,int);
2688+BOOL WINAPI TextOutW(HDC,int,int,LPCWSTR,int);
2689+BOOL WINAPI TranslateCharsetInfo(PDWORD,LPCHARSETINFO,DWORD);
2690+BOOL WINAPI UnrealizeObject(HGDIOBJ);
2691+BOOL WINAPI UpdateColors(HDC);
2692+BOOL WINAPI UpdateICMRegKeyA(DWORD,DWORD,LPSTR,UINT);
2693+BOOL WINAPI UpdateICMRegKeyW(DWORD,DWORD,LPWSTR,UINT);
2694+BOOL WINAPI WidenPath(HDC);
2695+BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
2696+HGLRC WINAPI wglCreateContext(HDC);
2697+HGLRC WINAPI wglCreateLayerContext(HDC,int);
2698+BOOL WINAPI wglDeleteContext(HGLRC);
2699+BOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);
2700+HGLRC WINAPI wglGetCurrentContext(void);
2701+HDC WINAPI wglGetCurrentDC(void);
2702+int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF*);
2703+PROC WINAPI wglGetProcAddress(LPCSTR);
2704+BOOL WINAPI wglMakeCurrent(HDC,HGLRC);
2705+BOOL WINAPI wglRealizeLayerPalette(HDC,int,BOOL);
2706+int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,const COLORREF*);
2707+BOOL WINAPI wglShareLists(HGLRC,HGLRC);
2708+BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
2709+BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
2710+BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
2711+BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
2712+BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
2713+
2714+#ifdef UNICODE
2715+typedef WCHAR BCHAR;
2716+typedef DOCINFOW DOCINFO, *LPDOCINFO;
2717+typedef LOGFONTW LOGFONT,*PLOGFONT,*LPLOGFONT;
2718+typedef TEXTMETRICW TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;
2719+#define ICMENUMPROC ICMENUMPROCW
2720+#define FONTENUMPROC FONTENUMPROCW
2721+typedef DEVMODEW DEVMODE,*PDEVMODE,*LPDEVMODE;
2722+typedef EXTLOGFONTW EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;
2723+typedef GCP_RESULTSW GCP_RESULTS,*LPGCP_RESULTS;
2724+typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;
2725+typedef POLYTEXTW POLYTEXT;
2726+typedef LOGCOLORSPACEW LOGCOLORSPACE,*LPLOGCOLORSPACE;
2727+typedef NEWTEXTMETRICW NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC;
2728+typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX;
2729+typedef ENUMLOGFONTW ENUMLOGFONT,*LPENUMLOGFONT;
2730+typedef 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
2777+typedef BYTE BCHAR;
2778+typedef DOCINFOA DOCINFO, *LPDOCINFO;
2779+typedef LOGFONTA LOGFONT,*PLOGFONT,*LPLOGFONT;
2780+typedef TEXTMETRICA TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;
2781+#define ICMENUMPROC ICMENUMPROCA
2782+#define FONTENUMPROC FONTENUMPROCA
2783+typedef DEVMODEA DEVMODE,*PDEVMODE,*LPDEVMODE;
2784+typedef EXTLOGFONTA EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;
2785+typedef GCP_RESULTSA GCP_RESULTS,*LPGCP_RESULTS;
2786+typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;
2787+typedef POLYTEXTA POLYTEXT;
2788+typedef LOGCOLORSPACEA LOGCOLORSPACE,*LPLOGCOLORSPACE;
2789+typedef NEWTEXTMETRICA NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC;
2790+typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
2791+typedef ENUMLOGFONTA ENUMLOGFONT,*LPENUMLOGFONT;
2792+typedef 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
8+extern "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
160+typedef 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;
170+typedef 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;
180+typedef struct _CONNECTDLGSTRUCTA{
181+ DWORD cbStructure;
182+ HWND hwndOwner;
183+ LPNETRESOURCEA lpConnRes;
184+ DWORD dwFlags;
185+ DWORD dwDevNum;
186+} CONNECTDLGSTRUCTA,*LPCONNECTDLGSTRUCTA;
187+typedef struct _CONNECTDLGSTRUCTW{
188+ DWORD cbStructure;
189+ HWND hwndOwner;
190+ LPNETRESOURCEW lpConnRes;
191+ DWORD dwFlags;
192+ DWORD dwDevNum;
193+} CONNECTDLGSTRUCTW,*LPCONNECTDLGSTRUCTW;
194+typedef struct _DISCDLGSTRUCTA{
195+ DWORD cbStructure;
196+ HWND hwndOwner;
197+ LPSTR lpLocalName;
198+ LPSTR lpRemoteName;
199+ DWORD dwFlags;
200+} DISCDLGSTRUCTA,*LPDISCDLGSTRUCTA;
201+typedef struct _DISCDLGSTRUCTW{
202+ DWORD cbStructure;
203+ HWND hwndOwner;
204+ LPWSTR lpLocalName;
205+ LPWSTR lpRemoteName;
206+ DWORD dwFlags;
207+} DISCDLGSTRUCTW,*LPDISCDLGSTRUCTW;
208+typedef struct _UNIVERSAL_NAME_INFOA { LPSTR lpUniversalName; }UNIVERSAL_NAME_INFOA,*LPUNIVERSAL_NAME_INFOA;
209+typedef struct _UNIVERSAL_NAME_INFOW { LPWSTR lpUniversalName; }UNIVERSAL_NAME_INFOW,*LPUNIVERSAL_NAME_INFOW;
210+typedef struct _REMOTE_NAME_INFOA {
211+ LPSTR lpUniversalName;
212+ LPSTR lpConnectionName;
213+ LPSTR lpRemainingPath;
214+}REMOTE_NAME_INFOA,*LPREMOTE_NAME_INFOA;
215+typedef struct _REMOTE_NAME_INFOW {
216+ LPWSTR lpUniversalName;
217+ LPWSTR lpConnectionName;
218+ LPWSTR lpRemainingPath;
219+}REMOTE_NAME_INFOW,*LPREMOTE_NAME_INFOW;
220+typedef 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;
230+typedef UINT(PASCAL *PFNGETPROFILEPATHA)(LPCSTR,LPSTR,UINT);
231+typedef UINT(PASCAL *PFNGETPROFILEPATHW)(LPCWSTR,LPWSTR,UINT);
232+typedef UINT(PASCAL *PFNRECONCILEPROFILEA)(LPCSTR,LPCSTR,DWORD);
233+typedef UINT(PASCAL *PFNRECONCILEPROFILEW)(LPCWSTR,LPCWSTR,DWORD);
234+typedef BOOL(PASCAL *PFNPROCESSPOLICIESA)(HWND,LPCSTR,LPCSTR,LPCSTR,DWORD);
235+typedef BOOL(PASCAL *PFNPROCESSPOLICIESW)(HWND,LPCWSTR,LPCWSTR,LPCWSTR,DWORD);
236+typedef struct _NETCONNECTINFOSTRUCT{
237+ DWORD cbStructure;
238+ DWORD dwFlags;
239+ DWORD dwSpeed;
240+ DWORD dwDelay;
241+ DWORD dwOptDataSize;
242+} NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT;
243+
244+DWORD APIENTRY WNetAddConnectionA(LPCSTR,LPCSTR,LPCSTR);
245+DWORD APIENTRY WNetAddConnectionW(LPCWSTR,LPCWSTR,LPCWSTR);
246+DWORD APIENTRY WNetAddConnection2A(LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
247+DWORD APIENTRY WNetAddConnection2W(LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
248+DWORD APIENTRY WNetAddConnection3A(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
249+DWORD APIENTRY WNetAddConnection3W(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
250+DWORD APIENTRY WNetCancelConnectionA(LPCSTR,BOOL);
251+DWORD APIENTRY WNetCancelConnectionW(LPCWSTR,BOOL);
252+DWORD APIENTRY WNetCancelConnection2A(LPCSTR,DWORD,BOOL);
253+DWORD APIENTRY WNetCancelConnection2W(LPCWSTR,DWORD,BOOL);
254+DWORD APIENTRY WNetGetConnectionA(LPCSTR,LPSTR,PDWORD);
255+DWORD APIENTRY WNetGetConnectionW(LPCWSTR,LPWSTR,PDWORD);
256+DWORD APIENTRY WNetUseConnectionA(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD,LPSTR,PDWORD,PDWORD);
257+DWORD APIENTRY WNetUseConnectionW(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD,LPWSTR,PDWORD,PDWORD);
258+DWORD APIENTRY WNetSetConnectionA(LPCSTR,DWORD,PVOID);
259+DWORD APIENTRY WNetSetConnectionW(LPCWSTR,DWORD,PVOID);
260+DWORD APIENTRY WNetConnectionDialog(HWND,DWORD);
261+DWORD APIENTRY WNetDisconnectDialog(HWND,DWORD);
262+DWORD APIENTRY WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA);
263+DWORD APIENTRY WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW);
264+DWORD APIENTRY WNetDisconnectDialog1A(LPDISCDLGSTRUCTA);
265+DWORD APIENTRY WNetDisconnectDialog1W(LPDISCDLGSTRUCTW);
266+DWORD APIENTRY WNetOpenEnumA(DWORD,DWORD,DWORD,LPNETRESOURCEA,LPHANDLE);
267+DWORD APIENTRY WNetOpenEnumW(DWORD,DWORD,DWORD,LPNETRESOURCEW,LPHANDLE);
268+DWORD APIENTRY WNetEnumResourceA(HANDLE,PDWORD,PVOID,PDWORD);
269+DWORD APIENTRY WNetEnumResourceW(HANDLE,PDWORD,PVOID,PDWORD);
270+DWORD APIENTRY WNetCloseEnum(HANDLE);
271+DWORD APIENTRY WNetGetUniversalNameA(LPCSTR,DWORD,PVOID,PDWORD);
272+DWORD APIENTRY WNetGetUniversalNameW(LPCWSTR,DWORD,PVOID,PDWORD);
273+DWORD APIENTRY WNetGetUserA(LPCSTR,LPSTR,PDWORD);
274+DWORD APIENTRY WNetGetUserW(LPCWSTR,LPWSTR,PDWORD);
275+DWORD APIENTRY WNetGetProviderNameA(DWORD,LPSTR,PDWORD);
276+DWORD APIENTRY WNetGetProviderNameW(DWORD,LPWSTR,PDWORD);
277+DWORD APIENTRY WNetGetNetworkInformationA(LPCSTR,LPNETINFOSTRUCT);
278+DWORD APIENTRY WNetGetNetworkInformationW(LPCWSTR,LPNETINFOSTRUCT);
279+DWORD APIENTRY WNetGetResourceInformationA(LPNETRESOURCEA,LPVOID,LPDWORD,LPCSTR*);
280+DWORD APIENTRY WNetGetResourceInformationW(LPNETRESOURCEA,LPVOID,LPDWORD,LPCWSTR*);
281+DWORD APIENTRY WNetGetLastErrorA(PDWORD,LPSTR,DWORD,LPSTR,DWORD);
282+DWORD APIENTRY WNetGetLastErrorW(PDWORD,LPWSTR,DWORD,LPWSTR,DWORD);
283+DWORD APIENTRY MultinetGetConnectionPerformanceA(LPNETRESOURCEA,LPNETCONNECTINFOSTRUCT);
284+DWORD APIENTRY MultinetGetConnectionPerformanceW(LPNETRESOURCEW,LPNETCONNECTINFOSTRUCT);
285+#ifdef UNICODE
286+#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESW
287+#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEW
288+#define PFNGETPROFILEPATH PFNGETPROFILEPATHW
289+typedef NETRESOURCEW NETRESOURCE,*LPNETRESOURCE;
290+typedef CONNECTDLGSTRUCTW CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT;
291+typedef DISCDLGSTRUCTW DISCDLGSTRUCT,*LPDISCDLGSTRUCT;
292+typedef REMOTE_NAME_INFOW REMOTE_NAME_INFO,*LPREMOTE_NAME_INFO;
293+typedef 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
317+typedef NETRESOURCEA NETRESOURCE,*LPNETRESOURCE;
318+typedef CONNECTDLGSTRUCTA CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT;
319+typedef DISCDLGSTRUCTA DISCDLGSTRUCT,*LPDISCDLGSTRUCT;
320+typedef UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO,*LPUNIVERSAL_NAME_INFO;
321+typedef 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
8+extern "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
415+typedef long LONG_PTR;
416+#endif
417+
418+#ifndef RC_INVOKED
419+typedef DWORD LCTYPE;
420+typedef DWORD CALTYPE;
421+typedef DWORD CALID;
422+typedef DWORD LGRPID;
423+typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)(LPSTR);
424+typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)(LPWSTR);
425+typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXA)(LPSTR, CALID);
426+typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXW)(LPWSTR, CALID);
427+typedef BOOL (CALLBACK* LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
428+typedef BOOL (CALLBACK* LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
429+typedef BOOL (CALLBACK* LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR);
430+typedef BOOL (CALLBACK* LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR);
431+typedef BOOL (CALLBACK* UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR);
432+typedef BOOL (CALLBACK* UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR);
433+typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR);
434+typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR);
435+typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA)(LPSTR);
436+typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW)(LPWSTR);
437+typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)(LPSTR);
438+typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)(LPWSTR);
439+typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXA)(LPSTR, CALID);
440+typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXW)(LPWSTR, CALID);
441+typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)(LPSTR);
442+typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)(LPWSTR);
443+
444+typedef struct _cpinfo {
445+ UINT MaxCharSize;
446+ BYTE DefaultChar[MAX_DEFAULTCHAR];
447+ BYTE LeadByte[MAX_LEADBYTES];
448+} CPINFO,*LPCPINFO;
449+typedef 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;
457+typedef 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;
465+typedef 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;
475+typedef 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;
485+typedef struct _numberfmtA {
486+ UINT NumDigits;
487+ UINT LeadingZero;
488+ UINT Grouping;
489+ LPSTR lpDecimalSep;
490+ LPSTR lpThousandSep;
491+ UINT NegativeOrder;
492+} NUMBERFMTA, *LPNUMBERFMTA;
493+typedef struct _numberfmtW {
494+ UINT NumDigits;
495+ UINT LeadingZero;
496+ UINT Grouping;
497+ LPWSTR lpDecimalSep;
498+ LPWSTR lpThousandSep;
499+ UINT NegativeOrder;
500+} NUMBERFMTW, *LPNUMBERFMTW;
501+
502+int WINAPI CompareStringA(LCID,DWORD,LPCSTR,int,LPCSTR,int);
503+int WINAPI CompareStringW(LCID,DWORD,LPCWSTR,int,LPCWSTR,int);
504+LCID WINAPI ConvertDefaultLocale(LCID);
505+BOOL WINAPI EnumCalendarInfoA(CALINFO_ENUMPROCA,LCID,CALID,CALTYPE);
506+BOOL WINAPI EnumCalendarInfoW(CALINFO_ENUMPROCW,LCID,CALID,CALTYPE);
507+BOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA,LCID,DWORD);
508+BOOL WINAPI EnumDateFormatsW(DATEFMT_ENUMPROCW,LCID,DWORD);
509+BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD);
510+BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD);
511+BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD);
512+BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD);
513+BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA,LCID,DWORD);
514+BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW,LCID,DWORD);
515+int WINAPI FoldStringA(DWORD,LPCSTR,int,LPSTR,int);
516+int WINAPI FoldStringW(DWORD,LPCWSTR,int,LPWSTR,int);
517+UINT WINAPI GetACP(void);
518+BOOL WINAPI GetCPInfo(UINT,LPCPINFO);
519+BOOL WINAPI GetCPInfoExA(UINT,DWORD,LPCPINFOEXA);
520+BOOL WINAPI GetCPInfoExW(UINT,DWORD,LPCPINFOEXW);
521+int WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,int);
522+int WINAPI GetCurrencyFormatW(LCID,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,int);
523+int WINAPI GetDateFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
524+int WINAPI GetDateFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
525+int WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,int);
526+int WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,int);
527+int WINAPI GetNumberFormatA(LCID,DWORD,LPCSTR,const NUMBERFMTA*,LPSTR,int);
528+int WINAPI GetNumberFormatW(LCID,DWORD,LPCWSTR,const NUMBERFMTW*,LPWSTR,int);
529+UINT WINAPI GetOEMCP(void);
530+BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,int,LPWORD);
531+BOOL WINAPI GetStringTypeW(DWORD,LPCWSTR,int,LPWORD);
532+BOOL WINAPI GetStringTypeExA(LCID,DWORD,LPCSTR,int,LPWORD);
533+BOOL WINAPI GetStringTypeExW(LCID,DWORD,LPCWSTR,int,LPWORD);
534+LANGID WINAPI GetSystemDefaultLangID(void);
535+LCID WINAPI GetSystemDefaultLCID(void);
536+LCID WINAPI GetThreadLocale(void);
537+int WINAPI GetTimeFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
538+int WINAPI GetTimeFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
539+LANGID WINAPI GetUserDefaultLangID(void);
540+LCID WINAPI GetUserDefaultLCID(void);
541+BOOL WINAPI IsDBCSLeadByte(BYTE);
542+BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE);
543+BOOL WINAPI IsValidCodePage(UINT);
544+BOOL WINAPI IsValidLocale(LCID,DWORD);
545+int WINAPI LCMapStringA(LCID,DWORD,LPCSTR,int,LPSTR,int);
546+int WINAPI LCMapStringW(LCID,DWORD,LPCWSTR,int,LPWSTR,int);
547+int WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,int,LPWSTR,int);
548+BOOL WINAPI SetLocaleInfoA(LCID,LCTYPE,LPCSTR);
549+BOOL WINAPI SetLocaleInfoW(LCID,LCTYPE,LPCWSTR);
550+BOOL WINAPI SetThreadLocale(LCID);
551+int WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,int,LPSTR,int,LPCSTR,LPBOOL);
552+#if (WINVER >= 0x0500)
553+BOOL WINAPI EnumCalendarInfoExA(CALINFO_ENUMPROCEXA,LCID,CALID,CALTYPE);
554+BOOL WINAPI EnumCalendarInfoExW(CALINFO_ENUMPROCEXW,LCID,CALID,CALTYPE);
555+BOOL WINAPI EnumDateFormatsExA(DATEFMT_ENUMPROCEXA,LCID,DWORD);
556+BOOL WINAPI EnumDateFormatsExW(DATEFMT_ENUMPROCEXW,LCID,DWORD);
557+BOOL WINAPI EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA,DWORD,LONG_PTR);
558+BOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW,DWORD,LONG_PTR);
559+BOOL WINAPI EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA,LGRPID,DWORD,LONG_PTR);
560+BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW,LGRPID,DWORD,LONG_PTR);
561+BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA,DWORD,LONG_PTR);
562+BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW,DWORD,LONG_PTR);
563+LANGID WINAPI GetSystemDefaultUILanguage(void);
564+LANGID WINAPI GetUserDefaultUILanguage(void);
565+BOOL 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
579+typedef CPINFOEXW CPINFOEX;
580+typedef LPCPINFOEXW LPCPINFOEX;
581+typedef CURRENCYFMTW CURRENCYFMT;
582+typedef LPCURRENCYFMTW LPCURRENCYFMT;
583+typedef NUMBERFMTW NUMBERFMT;
584+typedef 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
618+typedef CPINFOEXA CPINFOEX;
619+typedef LPCPINFOEXA LPCPINFOEX;
620+typedef CURRENCYFMTA CURRENCYFMT;
621+typedef LPCURRENCYFMTA LPCURRENCYFMT;
622+typedef NUMBERFMTA NUMBERFMT;
623+typedef 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
31+extern "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
49+typedef char CHAR;
50+typedef short SHORT;
51+typedef long LONG;
52+typedef CHAR CCHAR;
53+typedef unsigned char UCHAR,*PUCHAR;
54+typedef unsigned short USHORT,*PUSHORT;
55+typedef unsigned long ULONG,*PULONG;
56+typedef 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
64+typedef unsigned short wchar_t;
65+#endif
66+#endif
67+#endif
68+
69+typedef wchar_t WCHAR;
70+typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR;
71+typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR;
72+typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR;
73+typedef 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+ */
81+typedef WCHAR TCHAR;
82+typedef WCHAR _TCHAR;
83+#else
84+typedef CHAR TCHAR;
85+typedef CHAR _TCHAR;
86+#endif
87+#endif
88+typedef TCHAR TBYTE,*PTCH,*PTBYTE;
89+typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR;
90+typedef 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)
109+typedef SHORT *PSHORT;
110+typedef LONG *PLONG;
111+typedef void *HANDLE;
112+typedef 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
118+typedef DWORD LCID;
119+typedef PDWORD PLCID;
120+typedef 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)
130+typedef __int64 LONGLONG;
131+typedef unsigned __int64 DWORDLONG;
132+#else
133+typedef double LONGLONG,DWORDLONG;
134+#endif
135+typedef LONGLONG *PLONGLONG;
136+typedef DWORDLONG *PDWORDLONG;
137+typedef DWORDLONG ULONGLONG,*PULONGLONG;
138+typedef 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'
148+typedef 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
1112+typedef DWORD ACCESS_MASK, *PACCESS_MASK;
1113+#ifndef _GUID_DEFINED /* also defined in basetyps.h */
1114+#define _GUID_DEFINED
1115+typedef 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 */
1123+typedef struct _GENERIC_MAPPING {
1124+ ACCESS_MASK GenericRead;
1125+ ACCESS_MASK GenericWrite;
1126+ ACCESS_MASK GenericExecute;
1127+ ACCESS_MASK GenericAll;
1128+} GENERIC_MAPPING, *PGENERIC_MAPPING;
1129+typedef struct _ACE_HEADER {
1130+ BYTE AceType;
1131+ BYTE AceFlags;
1132+ WORD AceSize;
1133+} ACE_HEADER;
1134+typedef struct _ACCESS_ALLOWED_ACE {
1135+ ACE_HEADER Header;
1136+ ACCESS_MASK Mask;
1137+ DWORD SidStart;
1138+} ACCESS_ALLOWED_ACE;
1139+typedef struct _ACCESS_DENIED_ACE {
1140+ ACE_HEADER Header;
1141+ ACCESS_MASK Mask;
1142+ DWORD SidStart;
1143+} ACCESS_DENIED_ACE;
1144+typedef struct _SYSTEM_AUDIT_ACE {
1145+ ACE_HEADER Header;
1146+ ACCESS_MASK Mask;
1147+ DWORD SidStart;
1148+} SYSTEM_AUDIT_ACE;
1149+typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE;
1150+typedef struct _SYSTEM_ALARM_ACE {
1151+ ACE_HEADER Header;
1152+ ACCESS_MASK Mask;
1153+ DWORD SidStart;
1154+} SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE;
1155+typedef 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;
1163+typedef 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;
1171+typedef 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;
1179+typedef 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;
1187+typedef struct _ACL {
1188+ BYTE AclRevision;
1189+ BYTE Sbz1;
1190+ WORD AclSize;
1191+ WORD AceCount;
1192+ WORD Sbz2;
1193+} ACL,*PACL;
1194+typedef struct _ACL_REVISION_INFORMATION {
1195+ DWORD AclRevision;
1196+} ACL_REVISION_INFORMATION;
1197+typedef 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
1216+typedef 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;
1227+typedef 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)
1260+typedef 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)
1349+typedef 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 */
1424+typedef 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+
1462+typedef 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+
1558+typedef 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+
1691+typedef 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
1735+typedef CONTEXT *PCONTEXT,*LPCONTEXT;
1736+typedef 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;
1744+typedef struct _EXCEPTION_POINTERS {
1745+ PEXCEPTION_RECORD ExceptionRecord;
1746+ PCONTEXT ContextRecord;
1747+} EXCEPTION_POINTERS,*PEXCEPTION_POINTERS,*LPEXCEPTION_POINTERS;
1748+typedef 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;
1761+typedef 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;
1774+typedef LARGE_INTEGER LUID,*PLUID;
1775+#pragma pack(push,4)
1776+typedef struct _LUID_AND_ATTRIBUTES {
1777+ LUID Luid;
1778+ DWORD Attributes;
1779+} LUID_AND_ATTRIBUTES;
1780+#pragma pack(pop)
1781+typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
1782+typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
1783+typedef struct _PRIVILEGE_SET {
1784+ DWORD PrivilegeCount;
1785+ DWORD Control;
1786+ LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
1787+} PRIVILEGE_SET,*PPRIVILEGE_SET;
1788+typedef struct _SECURITY_ATTRIBUTES {
1789+ DWORD nLength;
1790+ LPVOID lpSecurityDescriptor;
1791+ BOOL bInheritHandle;
1792+} SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;
1793+typedef enum _SECURITY_IMPERSONATION_LEVEL {
1794+ SecurityAnonymous,
1795+ SecurityIdentification,
1796+ SecurityImpersonation,
1797+ SecurityDelegation
1798+} SECURITY_IMPERSONATION_LEVEL;
1799+typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,*PSECURITY_CONTEXT_TRACKING_MODE;
1800+typedef 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;
1806+typedef PVOID PACCESS_TOKEN;
1807+typedef 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;
1813+typedef struct _SID_IDENTIFIER_AUTHORITY {
1814+ BYTE Value[6];
1815+} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;
1816+typedef PVOID PSID;
1817+typedef struct _SID {
1818+ BYTE Revision;
1819+ BYTE SubAuthorityCount;
1820+ SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
1821+ DWORD SubAuthority[ANYSIZE_ARRAY];
1822+} SID, *PISID;
1823+typedef struct _SID_AND_ATTRIBUTES {
1824+ PSID Sid;
1825+ DWORD Attributes;
1826+} SID_AND_ATTRIBUTES;
1827+typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
1828+typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY;
1829+typedef struct _TOKEN_SOURCE {
1830+ CHAR SourceName[TOKEN_SOURCE_LENGTH];
1831+ LUID SourceIdentifier;
1832+} TOKEN_SOURCE,*PTOKEN_SOURCE;
1833+typedef struct _TOKEN_CONTROL {
1834+ LUID TokenId;
1835+ LUID AuthenticationId;
1836+ LUID ModifiedId;
1837+ TOKEN_SOURCE TokenSource;
1838+} TOKEN_CONTROL,*PTOKEN_CONTROL;
1839+typedef struct _TOKEN_DEFAULT_DACL {
1840+ PACL DefaultDacl;
1841+} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
1842+typedef struct _TOKEN_GROUPS {
1843+ DWORD GroupCount;
1844+ SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
1845+} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
1846+typedef struct _TOKEN_OWNER {
1847+ PSID Owner;
1848+} TOKEN_OWNER,*PTOKEN_OWNER;
1849+typedef struct _TOKEN_PRIMARY_GROUP {
1850+ PSID PrimaryGroup;
1851+} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
1852+typedef struct _TOKEN_PRIVILEGES {
1853+ DWORD PrivilegeCount;
1854+ LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
1855+} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
1856+typedef enum tagTOKEN_TYPE { TokenPrimary=1,TokenImpersonation }TOKEN_TYPE;
1857+typedef 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;
1869+typedef struct _TOKEN_USER {
1870+ SID_AND_ATTRIBUTES User;
1871+} TOKEN_USER, *PTOKEN_USER;
1872+typedef DWORD SECURITY_INFORMATION,*PSECURITY_INFORMATION;
1873+typedef WORD SECURITY_DESCRIPTOR_CONTROL,*PSECURITY_DESCRIPTOR_CONTROL;
1874+typedef 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;
1883+typedef 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;
1889+typedef enum _SID_NAME_USE {
1890+ SidTypeUser=1,SidTypeGroup,SidTypeDomain,SidTypeAlias,SidTypeWellKnownGroup,
1891+ SidTypeDeletedAccount,SidTypeInvalid,SidTypeUnknown
1892+} SID_NAME_USE,*PSID_NAME_USE;
1893+typedef 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;
1901+typedef 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;
1909+typedef struct _FILE_NOTIFY_INFORMATION {
1910+ DWORD NextEntryOffset;
1911+ DWORD Action;
1912+ DWORD FileNameLength;
1913+ WCHAR FileName[1];
1914+} FILE_NOTIFY_INFORMATION,*PFILE_NOTIFY_INFORMATION;
1915+typedef struct _TAPE_ERASE {
1916+ DWORD Type;
1917+ BOOLEAN Immediate;
1918+} TAPE_ERASE,*PTAPE_ERASE;
1919+typedef 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;
1932+typedef 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;
1939+typedef struct _TAPE_GET_POSITION {
1940+ ULONG Type;
1941+ ULONG Partition;
1942+ ULONG OffsetLow;
1943+ ULONG OffsetHigh;
1944+} TAPE_GET_POSITION,*PTAPE_GET_POSITION;
1945+typedef struct _TAPE_PREPARE {
1946+ DWORD Operation;
1947+ BOOLEAN Immediate;
1948+} TAPE_PREPARE,*PTAPE_PREPARE;
1949+typedef 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;
1956+typedef struct _TAPE_SET_MEDIA_PARAMETERS {
1957+ ULONG BlockSize;
1958+} TAPE_SET_MEDIA_PARAMETERS,*PTAPE_SET_MEDIA_PARAMETERS;
1959+typedef struct _TAPE_SET_POSITION {
1960+ DWORD Method;
1961+ DWORD Partition;
1962+ LARGE_INTEGER Offset;
1963+ BOOLEAN Immediate;
1964+} TAPE_SET_POSITION,*PTAPE_SET_POSITION;
1965+typedef struct _TAPE_WRITE_MARKS {
1966+ DWORD Type;
1967+ DWORD Count;
1968+ BOOLEAN Immediate;
1969+} TAPE_WRITE_MARKS,*PTAPE_WRITE_MARKS;
1970+typedef struct _TAPE_CREATE_PARTITION {
1971+ DWORD Method;
1972+ DWORD Count;
1973+ DWORD Size;
1974+} TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION;
1975+typedef 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;
1984+typedef struct _MESSAGE_RESOURCE_ENTRY {
1985+ WORD Length;
1986+ WORD Flags;
1987+ BYTE Text[1];
1988+} MESSAGE_RESOURCE_ENTRY,*PMESSAGE_RESOURCE_ENTRY;
1989+typedef struct _MESSAGE_RESOURCE_BLOCK {
1990+ DWORD LowId;
1991+ DWORD HighId;
1992+ DWORD OffsetToEntries;
1993+} MESSAGE_RESOURCE_BLOCK,*PMESSAGE_RESOURCE_BLOCK;
1994+typedef struct _MESSAGE_RESOURCE_DATA {
1995+ DWORD NumberOfBlocks;
1996+ MESSAGE_RESOURCE_BLOCK Blocks[1];
1997+} MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA;
1998+typedef struct _LIST_ENTRY {
1999+ struct _LIST_ENTRY *Flink;
2000+ struct _LIST_ENTRY *Blink;
2001+} LIST_ENTRY,*PLIST_ENTRY;
2002+typedef 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;
2011+typedef 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;
2019+typedef 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;
2037+typedef 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;
2045+typedef 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;
2053+typedef 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;
2066+typedef 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)
2080+typedef 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)
2135+typedef 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;
2144+typedef struct _IMAGE_DATA_DIRECTORY {
2145+ DWORD VirtualAddress;
2146+ DWORD Size;
2147+} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;
2148+typedef 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;
2181+typedef 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)
2198+typedef 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;
2219+typedef 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)
2253+typedef struct _IMAGE_NT_HEADERS {
2254+ DWORD Signature;
2255+ IMAGE_FILE_HEADER FileHeader;
2256+ IMAGE_OPTIONAL_HEADER OptionalHeader;
2257+} IMAGE_NT_HEADERS,*PIMAGE_NT_HEADERS;
2258+typedef struct _IMAGE_ROM_HEADERS {
2259+ IMAGE_FILE_HEADER FileHeader;
2260+ IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
2261+} IMAGE_ROM_HEADERS,*PIMAGE_ROM_HEADERS;
2262+typedef 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)
2279+typedef 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;
2294+typedef 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;
2327+typedef 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;
2337+typedef 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)
2347+typedef 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)
2353+typedef 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)
2362+typedef 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;
2371+typedef 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;
2384+typedef struct _IMAGE_IMPORT_BY_NAME {
2385+ WORD Hint;
2386+ BYTE Name[1];
2387+} IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME;
2388+typedef 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;
2396+typedef 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;
2406+typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR {
2407+ DWORD TimeDateStamp;
2408+ WORD OffsetModuleName;
2409+ WORD NumberOfModuleForwarderRefs;
2410+} IMAGE_BOUND_IMPORT_DESCRIPTOR,*PIMAGE_BOUND_IMPORT_DESCRIPTOR;
2411+typedef struct _IMAGE_BOUND_FORWARDER_REF {
2412+ DWORD TimeDateStamp;
2413+ WORD OffsetModuleName;
2414+ WORD Reserved;
2415+} IMAGE_BOUND_FORWARDER_REF,*PIMAGE_BOUND_FORWARDER_REF;
2416+typedef void(NTAPI *PIMAGE_TLS_CALLBACK)(PVOID,DWORD,PVOID);
2417+typedef 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;
2425+typedef 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;
2450+typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {
2451+ WORD Length;
2452+ CHAR NameString[1];
2453+} IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING;
2454+typedef struct _IMAGE_RESOURCE_DIR_STRING_U {
2455+ WORD Length;
2456+ WCHAR NameString[1];
2457+} IMAGE_RESOURCE_DIR_STRING_U,*PIMAGE_RESOURCE_DIR_STRING_U;
2458+typedef 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;
2464+typedef 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;
2480+typedef 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;
2487+typedef 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;
2497+typedef 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;
2509+typedef 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;
2516+typedef struct _IMAGE_FUNCTION_ENTRY {
2517+ DWORD StartingAddress;
2518+ DWORD EndingAddress;
2519+ DWORD EndOfPrologue;
2520+} IMAGE_FUNCTION_ENTRY,*PIMAGE_FUNCTION_ENTRY;
2521+typedef 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)
2536+typedef 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;
2544+typedef 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;
2551+typedef 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;
2557+typedef 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;
2569+typedef 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;
2593+typedef 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;
2602+typedef struct _REPARSE_POINT_INFORMATION {
2603+ WORD ReparseDataLength;
2604+ WORD UnparsedNameLength;
2605+} REPARSE_POINT_INFORMATION, *PREPARSE_POINT_INFORMATION;
2606+
2607+#ifdef UNICODE
2608+typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
2609+typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
2610+#else
2611+typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
2612+typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
2613+#endif
2614+
2615+#if defined(__GNUC__)
2616+
2617+PVOID GetCurrentFiber(void);
2618+PVOID GetFiberData(void);
2619+
2620+PVOID GetCurrentFiber(void);
2621+extern __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+
2632+PVOID GetFiberData(void);
2633+extern __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+
2647+extern PVOID GetCurrentFiber(void);
2648+#pragma aux GetCurrentFiber = \
2649+ "mov eax, dword ptr fs:0x10" \
2650+ value [eax] \
2651+ modify [eax];
2652+
2653+extern 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
8+extern "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
39+typedef ACCESS_MASK REGSAM;
40+typedef struct value_entA {
41+ LPSTR ve_valuename;
42+ DWORD ve_valuelen;
43+ DWORD ve_valueptr;
44+ DWORD ve_type;
45+} VALENTA,*PVALENTA;
46+typedef struct value_entW {
47+ LPWSTR ve_valuename;
48+ DWORD ve_valuelen;
49+ DWORD ve_valueptr;
50+ DWORD ve_type;
51+} VALENTW,*PVALENTW;
52+BOOL WINAPI AbortSystemShutdownA(LPCSTR);
53+BOOL WINAPI AbortSystemShutdownW(LPCWSTR);
54+BOOL WINAPI InitiateSystemShutdownA(LPSTR,LPSTR,DWORD,BOOL,BOOL);
55+BOOL WINAPI InitiateSystemShutdownW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL);
56+LONG WINAPI RegCloseKey(HKEY);
57+LONG WINAPI RegConnectRegistryA(LPSTR,HKEY,PHKEY);
58+LONG WINAPI RegConnectRegistryW(LPWSTR,HKEY,PHKEY);
59+LONG WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY);
60+LONG WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
61+LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
62+LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY);
63+LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR);
64+LONG WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
65+LONG WINAPI RegDeleteValueA (HKEY,LPCSTR);
66+LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR);
67+LONG WINAPI RegEnumKeyA (HKEY,DWORD,LPSTR,DWORD);
68+LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
69+LONG WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,LPSTR,PDWORD,PFILETIME);
70+LONG WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,LPWSTR,PDWORD,PFILETIME);
71+LONG WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
72+LONG WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
73+LONG WINAPI RegFlushKey(HKEY);
74+LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PDWORD);
75+LONG WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR);
76+LONG WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR);
77+LONG WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
78+LONG WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY);
79+LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY);
80+LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
81+LONG WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY);
82+LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
83+LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
84+LONG WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,PDWORD);
85+LONG WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,PDWORD);
86+LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,PLONG);
87+LONG WINAPI RegQueryValueExA (HKEY,LPCSTR,PDWORD,PDWORD,LPBYTE,PDWORD);
88+LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,PDWORD,PDWORD,LPBYTE,PDWORD);
89+LONG WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,PLONG);
90+LONG WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
91+LONG WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
92+LONG WINAPI RegRestoreKeyA (HKEY,LPCSTR,DWORD);
93+LONG WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD);
94+LONG WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
95+LONG WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
96+LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
97+LONG WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
98+LONG WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD);
99+LONG WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,const BYTE*,DWORD);
100+LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
101+LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR);
102+LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR);
103+
104+#ifdef UNICODE
105+typedef 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
130+typedef 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
8+extern "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+
70+typedef 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;
79+typedef 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;
90+typedef enum _SC_STATUS_TYPE {
91+ SC_STATUS_PROCESS_INFO = 0
92+} SC_STATUS_TYPE;
93+typedef enum _SC_ENUM_TYPE {
94+ SC_ENUM_PROCESS_INFO = 0
95+} SC_ENUM_TYPE;
96+typedef struct _ENUM_SERVICE_STATUSA {
97+ LPSTR lpServiceName;
98+ LPSTR lpDisplayName;
99+ SERVICE_STATUS ServiceStatus;
100+} ENUM_SERVICE_STATUSA,*LPENUM_SERVICE_STATUSA;
101+typedef struct _ENUM_SERVICE_STATUSW {
102+ LPWSTR lpServiceName;
103+ LPWSTR lpDisplayName;
104+ SERVICE_STATUS ServiceStatus;
105+} ENUM_SERVICE_STATUSW,*LPENUM_SERVICE_STATUSW;
106+typedef 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;
111+typedef 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;
116+typedef 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;
127+typedef 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;
138+typedef struct _QUERY_SERVICE_LOCK_STATUSA {
139+ DWORD fIsLocked;
140+ LPSTR lpLockOwner;
141+ DWORD dwLockDuration;
142+} QUERY_SERVICE_LOCK_STATUSA,*LPQUERY_SERVICE_LOCK_STATUSA;
143+typedef struct _QUERY_SERVICE_LOCK_STATUSW {
144+ DWORD fIsLocked;
145+ LPWSTR lpLockOwner;
146+ DWORD dwLockDuration;
147+} QUERY_SERVICE_LOCK_STATUSW,*LPQUERY_SERVICE_LOCK_STATUSW;
148+typedef void (WINAPI *LPSERVICE_MAIN_FUNCTIONA)(DWORD,LPSTR*);
149+typedef void (WINAPI *LPSERVICE_MAIN_FUNCTIONW)(DWORD,LPWSTR*);
150+typedef struct _SERVICE_TABLE_ENTRYA {
151+ LPSTR lpServiceName;
152+ LPSERVICE_MAIN_FUNCTIONA lpServiceProc;
153+} SERVICE_TABLE_ENTRYA,*LPSERVICE_TABLE_ENTRYA;
154+typedef struct _SERVICE_TABLE_ENTRYW {
155+ LPWSTR lpServiceName;
156+ LPSERVICE_MAIN_FUNCTIONW lpServiceProc;
157+} SERVICE_TABLE_ENTRYW,*LPSERVICE_TABLE_ENTRYW;
158+DECLARE_HANDLE(SC_HANDLE);
159+typedef SC_HANDLE *LPSC_HANDLE;
160+typedef PVOID SC_LOCK;
161+typedef DWORD SERVICE_STATUS_HANDLE;
162+typedef VOID(WINAPI *LPHANDLER_FUNCTION)(DWORD);
163+typedef DWORD (WINAPI *LPHANDLER_FUNCTION_EX)(DWORD,DWORD,LPVOID,LPVOID);
164+typedef struct _SERVICE_DESCRIPTIONA {
165+ LPSTR lpDescription;
166+} SERVICE_DESCRIPTIONA,*LPSERVICE_DESCRIPTIONA;
167+typedef struct _SERVICE_DESCRIPTIONW {
168+ LPWSTR lpDescription;
169+} SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW;
170+typedef 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;
176+typedef struct _SC_ACTION {
177+ SC_ACTION_TYPE Type;
178+ DWORD Delay;
179+} SC_ACTION,*LPSC_ACTION;
180+typedef 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;
187+typedef 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+
195+BOOL WINAPI ChangeServiceConfigA(SC_HANDLE,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,LPDWORD,LPCSTR,LPCSTR,LPCSTR,LPCSTR);
196+BOOL WINAPI ChangeServiceConfigW(SC_HANDLE,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,LPDWORD,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
197+BOOL WINAPI ChangeServiceConfig2A(SC_HANDLE,DWORD,LPVOID);
198+BOOL WINAPI ChangeServiceConfig2W(SC_HANDLE,DWORD,LPVOID);
199+BOOL WINAPI CloseServiceHandle(SC_HANDLE);
200+BOOL WINAPI ControlService(SC_HANDLE,DWORD,LPSERVICE_STATUS);
201+SC_HANDLE WINAPI CreateServiceA(SC_HANDLE,LPCSTR,LPCSTR,DWORD,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,PDWORD,LPCSTR,LPCSTR,LPCSTR);
202+SC_HANDLE WINAPI CreateServiceW(SC_HANDLE,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,PDWORD,LPCWSTR,LPCWSTR,LPCWSTR);
203+BOOL WINAPI DeleteService(SC_HANDLE);
204+BOOL WINAPI EnumDependentServicesA(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSA,DWORD,PDWORD,PDWORD);
205+BOOL WINAPI EnumDependentServicesW(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSW,DWORD,PDWORD,PDWORD);
206+BOOL WINAPI EnumServicesStatusA(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSA,DWORD,PDWORD,PDWORD,PDWORD);
207+BOOL WINAPI EnumServicesStatusW(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSW,DWORD,PDWORD,PDWORD,PDWORD);
208+BOOL WINAPI EnumServicesStatusExA(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCSTR);
209+BOOL WINAPI EnumServicesStatusExW(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCWSTR);
210+BOOL WINAPI GetServiceDisplayNameA(SC_HANDLE,LPCSTR,LPSTR,PDWORD);
211+BOOL WINAPI GetServiceDisplayNameW(SC_HANDLE,LPCWSTR,LPWSTR,PDWORD);
212+BOOL WINAPI GetServiceKeyNameA(SC_HANDLE,LPCSTR,LPSTR,PDWORD);
213+BOOL WINAPI GetServiceKeyNameW(SC_HANDLE,LPCWSTR,LPWSTR,PDWORD);
214+SC_LOCK WINAPI LockServiceDatabase(SC_HANDLE);
215+BOOL WINAPI NotifyBootConfigStatus(BOOL);
216+SC_HANDLE WINAPI OpenSCManagerA(LPCSTR,LPCSTR,DWORD);
217+SC_HANDLE WINAPI OpenSCManagerW(LPCWSTR,LPCWSTR,DWORD);
218+SC_HANDLE WINAPI OpenServiceA(SC_HANDLE,LPCSTR,DWORD);
219+SC_HANDLE WINAPI OpenServiceW(SC_HANDLE,LPCWSTR,DWORD);
220+BOOL WINAPI QueryServiceConfigA(SC_HANDLE,LPQUERY_SERVICE_CONFIGA,DWORD,PDWORD);
221+BOOL WINAPI QueryServiceConfigW(SC_HANDLE,LPQUERY_SERVICE_CONFIGW,DWORD,PDWORD);
222+BOOL WINAPI QueryServiceConfig2A(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
223+BOOL WINAPI QueryServiceConfig2W(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
224+BOOL WINAPI QueryServiceLockStatusA(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSA,DWORD,PDWORD);
225+BOOL WINAPI QueryServiceLockStatusW(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSW,DWORD,PDWORD);
226+BOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
227+BOOL WINAPI QueryServiceStatus(SC_HANDLE,LPSERVICE_STATUS);
228+BOOL WINAPI QueryServiceStatusEx(SC_HANDLE,SC_STATUS_TYPE,LPBYTE,DWORD,LPDWORD);
229+SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerA(LPCSTR,LPHANDLER_FUNCTION);
230+SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerW(LPCWSTR,LPHANDLER_FUNCTION);
231+SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExA(LPCSTR,LPHANDLER_FUNCTION_EX,LPVOID);
232+SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR,LPHANDLER_FUNCTION_EX,LPVOID);
233+BOOL WINAPI SetServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
234+BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE,LPSERVICE_STATUS);
235+BOOL WINAPI StartServiceA(SC_HANDLE,DWORD,LPCSTR*);
236+BOOL WINAPI StartServiceCtrlDispatcherA(LPSERVICE_TABLE_ENTRYA);
237+BOOL WINAPI StartServiceCtrlDispatcherW(LPSERVICE_TABLE_ENTRYW);
238+BOOL WINAPI StartServiceW(SC_HANDLE,DWORD,LPCWSTR);
239+BOOL WINAPI UnlockServiceDatabase(SC_LOCK);
240+
241+#ifdef UNICODE
242+typedef ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS,*LPENUM_SERVICE_STATUS;
243+typedef ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESS;
244+typedef LPENUM_SERVICE_STATUS_PROCESSW LPENUM_SERVICE_STATUS_PROCESS;
245+typedef QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIG,*LPQUERY_SERVICE_CONFIG;
246+typedef QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS;
247+typedef SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY;
248+typedef LPSERVICE_MAIN_FUNCTIONW LPSERVICE_MAIN_FUNCTION;
249+typedef SERVICE_DESCRIPTIONW SERVICE_DESCRIPTION;
250+typedef LPSERVICE_DESCRIPTIONW LPSERVICE_DESCRIPTION;
251+typedef SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONS;
252+typedef 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
274+typedef ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUS,*LPENUM_SERVICE_STATUS;
275+typedef ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESS;
276+typedef LPENUM_SERVICE_STATUS_PROCESSA LPENUM_SERVICE_STATUS_PROCESS;
277+typedef QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIG,*LPQUERY_SERVICE_CONFIG;
278+typedef QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS;
279+typedef SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY;
280+typedef LPSERVICE_MAIN_FUNCTIONA LPSERVICE_MAIN_FUNCTION;
281+typedef SERVICE_DESCRIPTIONA SERVICE_DESCRIPTION;
282+typedef LPSERVICE_DESCRIPTIONA LPSERVICE_DESCRIPTION;
283+typedef SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS;
284+typedef 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
8+extern "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
1901+typedef BOOL(CALLBACK *DLGPROC)(HWND,UINT,WPARAM,LPARAM);
1902+typedef VOID(CALLBACK *TIMERPROC)(HWND,UINT,UINT,DWORD);
1903+typedef BOOL(CALLBACK *GRAYSTRINGPROC)(HDC,LPARAM,int);
1904+typedef LRESULT(CALLBACK *HOOKPROC)(int,WPARAM,LPARAM);
1905+typedef BOOL(CALLBACK *PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
1906+typedef BOOL(CALLBACK *PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);
1907+typedef BOOL(CALLBACK *PROPENUMPROCEXA)(HWND,LPSTR,HANDLE,DWORD);
1908+typedef BOOL(CALLBACK *PROPENUMPROCEXW)(HWND,LPWSTR,HANDLE,DWORD);
1909+typedef int(CALLBACK *EDITWORDBREAKPROCA)(LPSTR,int,int,int);
1910+typedef int(CALLBACK *EDITWORDBREAKPROCW)(LPWSTR,int,int,int);
1911+typedef LRESULT(CALLBACK *WNDPROC)(HWND,UINT,WPARAM,LPARAM);
1912+typedef BOOL(CALLBACK *DRAWSTATEPROC)(HDC,LPARAM,WPARAM,int,int);
1913+typedef BOOL(CALLBACK *WNDENUMPROC)(HWND,LPARAM);
1914+typedef BOOL(CALLBACK *ENUMWINDOWSPROC)(HWND,LPARAM);
1915+typedef BOOL(CALLBACK* MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
1916+typedef BOOL(CALLBACK *NAMEENUMPROCA)(LPSTR,LPARAM);
1917+typedef BOOL(CALLBACK *NAMEENUMPROCW)(LPWSTR,LPARAM);
1918+typedef NAMEENUMPROCA DESKTOPENUMPROCA;
1919+typedef NAMEENUMPROCW DESKTOPENUMPROCW;
1920+typedef NAMEENUMPROCA WINSTAENUMPROCA;
1921+typedef NAMEENUMPROCW WINSTAENUMPROCW;
1922+typedef void(CALLBACK *SENDASYNCPROC)(HWND,UINT,DWORD,LRESULT);
1923+DECLARE_HANDLE(HHOOK);
1924+DECLARE_HANDLE(HDWP);
1925+typedef struct tagACCEL {
1926+ BYTE fVirt;
1927+ WORD key;
1928+ WORD cmd;
1929+} ACCEL,*LPACCEL;
1930+typedef struct tagACCESSTIMEOUT {
1931+ UINT cbSize;
1932+ DWORD dwFlags;
1933+ DWORD iTimeOutMSec;
1934+} ACCESSTIMEOUT, *LPACCESSTIMEOUT;
1935+typedef struct tagANIMATIONINFO {
1936+ UINT cbSize;
1937+ int iMinAnimate;
1938+} ANIMATIONINFO,*LPANIMATIONINFO;
1939+typedef 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;
1953+typedef 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;
1967+typedef struct tagCBT_CREATEWNDA {
1968+ LPCREATESTRUCTA lpcs;
1969+ HWND hwndInsertAfter;
1970+} CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
1971+typedef struct tagCBT_CREATEWNDW {
1972+ LPCREATESTRUCTW lpcs;
1973+ HWND hwndInsertAfter;
1974+} CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
1975+typedef struct tagCBTACTIVATESTRUCT {
1976+ BOOL fMouse;
1977+ HWND hWndActive;
1978+} CBTACTIVATESTRUCT,*LPCBTACTIVATESTRUCT;
1979+typedef struct tagCLIENTCREATESTRUCT {
1980+ HANDLE hWindowMenu;
1981+ UINT idFirstChild;
1982+} CLIENTCREATESTRUCT,*LPCLIENTCREATESTRUCT;
1983+typedef 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;
1993+typedef struct tagCOPYDATASTRUCT {
1994+ DWORD dwData;
1995+ DWORD cbData;
1996+ PVOID lpData;
1997+} COPYDATASTRUCT,*PCOPYDATASTRUCT;
1998+typedef 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;
2007+typedef struct tagCWPRETSTRUCT {
2008+ LRESULT lResult;
2009+ LPARAM lParam;
2010+ WPARAM wParam;
2011+ DWORD message;
2012+ HWND hwnd;
2013+} CWPRETSTRUCT;
2014+typedef struct tagCWPSTRUCT {
2015+ LPARAM lParam;
2016+ WPARAM wParam;
2017+ UINT message;
2018+ HWND hwnd;
2019+} CWPSTRUCT,*PCWPSTRUCT;
2020+typedef struct tagDEBUGHOOKINFO {
2021+ DWORD idThread;
2022+ DWORD idThreadInstaller;
2023+ LPARAM lParam;
2024+ WPARAM wParam;
2025+ int code;
2026+} DEBUGHOOKINFO,*PDEBUGHOOKINFO,*LPDEBUGHOOKINFO;
2027+typedef 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)
2035+typedef 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;
2044+typedef 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;
2053+typedef const DLGTEMPLATE *LPCDLGTEMPLATE;
2054+#pragma pack(pop)
2055+typedef 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;
2066+typedef struct {
2067+ UINT cbSize;
2068+ int iTabLength;
2069+ int iLeftMargin;
2070+ int iRightMargin;
2071+ UINT uiLengthDrawn;
2072+} DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
2073+typedef struct tagPAINTSTRUCT {
2074+ HDC hdc;
2075+ BOOL fErase;
2076+ RECT rcPaint;
2077+ BOOL fRestore;
2078+ BOOL fIncUpdate;
2079+ BYTE rgbReserved[32];
2080+} PAINTSTRUCT,*LPPAINTSTRUCT;
2081+typedef struct tagMSG {
2082+ HWND hwnd;
2083+ UINT message;
2084+ WPARAM wParam;
2085+ LPARAM lParam;
2086+ DWORD time;
2087+ POINT pt;
2088+} MSG,*LPMSG,*PMSG;
2089+typedef struct _ICONINFO {
2090+ BOOL fIcon;
2091+ DWORD xHotspot;
2092+ DWORD yHotspot;
2093+ HBITMAP hbmMask;
2094+ HBITMAP hbmColor;
2095+} ICONINFO,*PICONINFO;
2096+typedef struct tagNMHDR {
2097+ HWND hwndFrom;
2098+ UINT idFrom;
2099+ UINT code;
2100+} NMHDR,*LPNMHDR;
2101+typedef 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;
2113+typedef 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;
2125+typedef 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;
2139+typedef 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;
2153+typedef 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;
2169+typedef const MENUITEMINFOA *LPCMENUITEMINFOA;
2170+typedef 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;
2186+typedef const MENUITEMINFOW *LPCMENUITEMINFOW;
2187+typedef 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;
2196+typedef const SCROLLINFO *LPCSCROLLINFO;
2197+typedef struct _WINDOWPLACEMENT {
2198+ UINT length;
2199+ UINT flags;
2200+ UINT showCmd;
2201+ POINT ptMinPosition;
2202+ POINT ptMaxPosition;
2203+ RECT rcNormalPosition;
2204+} WINDOWPLACEMENT,*LPWINDOWPLACEMENT,*PWINDOWPLACEMENT;
2205+typedef struct {
2206+ WORD versionNumber;
2207+ WORD offset;
2208+} MENUITEMTEMPLATEHEADER;
2209+typedef struct {
2210+ WORD mtOption;
2211+ WORD mtID;
2212+ WCHAR mtString[1];
2213+} MENUITEMTEMPLATE;
2214+typedef void MENUTEMPLATE,MENUTEMPLATEA,MENUTEMPLATEW,*LPMENUTEMPLATEA,*LPMENUTEMPLATEW,*LPMENUTEMPLATE;
2215+typedef struct tagHELPINFO {
2216+ UINT cbSize;
2217+ int iContextType;
2218+ int iCtrlId;
2219+ HANDLE hItemHandle;
2220+ DWORD dwContextId;
2221+ POINT MousePos;
2222+} HELPINFO,*LPHELPINFO;
2223+typedef void(CALLBACK *MSGBOXCALLBACK)(LPHELPINFO);
2224+typedef 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;
2236+typedef 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;
2248+typedef struct tagUSEROBJECTFLAGS {
2249+ BOOL fInherit;
2250+ BOOL fReserved;
2251+ DWORD dwFlags;
2252+} USEROBJECTFLAGS;
2253+typedef struct tagFILTERKEYS {
2254+ UINT cbSize;
2255+ DWORD dwFlags;
2256+ DWORD iWaitMSec;
2257+ DWORD iDelayMSec;
2258+ DWORD iRepeatMSec;
2259+ DWORD iBounceMSec;
2260+} FILTERKEYS;
2261+typedef struct tagHIGHCONTRASTA {
2262+ UINT cbSize;
2263+ DWORD dwFlags;
2264+ LPSTR lpszDefaultScheme;
2265+} HIGHCONTRASTA,*LPHIGHCONTRASTA;
2266+typedef struct tagHIGHCONTRASTW {
2267+ UINT cbSize;
2268+ DWORD dwFlags;
2269+ LPWSTR lpszDefaultScheme;
2270+} HIGHCONTRASTW,*LPHIGHCONTRASTW;
2271+typedef struct tagICONMETRICSA {
2272+ UINT cbSize;
2273+ int iHorzSpacing;
2274+ int iVertSpacing;
2275+ int iTitleWrap;
2276+ LOGFONTA lfFont;
2277+} ICONMETRICSA,*LPICONMETRICSA;
2278+typedef struct tagICONMETRICSW {
2279+ UINT cbSize;
2280+ int iHorzSpacing;
2281+ int iVertSpacing;
2282+ int iTitleWrap;
2283+ LOGFONTW lfFont;
2284+} ICONMETRICSW,*LPICONMETRICSW;
2285+typedef struct tagMINIMIZEDMETRICS {
2286+ UINT cbSize;
2287+ int iWidth;
2288+ int iHorzGap;
2289+ int iVertGap;
2290+ int iArrange;
2291+} MINIMIZEDMETRICS,*LPMINIMIZEDMETRICS;
2292+typedef 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;
2301+typedef 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;
2318+typedef 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;
2335+typedef 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;
2344+typedef 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;
2353+typedef 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;
2367+typedef 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;
2381+typedef struct tagSTICKYKEYS {
2382+ DWORD cbSize;
2383+ DWORD dwFlags;
2384+} STICKYKEYS,*LPSTICKYKEYS;
2385+typedef struct tagTOGGLEKEYS {
2386+ DWORD cbSize;
2387+ DWORD dwFlags;
2388+} TOGGLEKEYS;
2389+typedef struct tagTRACKMOUSEEVENT {
2390+ DWORD cbSize;
2391+ DWORD dwFlags;
2392+ HWND hwndTrack;
2393+ DWORD dwHoverTime;
2394+} TRACKMOUSEEVENT,*LPTRACKMOUSEEVENT;
2395+typedef struct tagTPMPARAMS {
2396+ UINT cbSize;
2397+ RECT rcExclude;
2398+} TPMPARAMS,*LPTPMPARAMS;
2399+typedef struct tagEVENTMSG {
2400+ UINT message;
2401+ UINT paramL;
2402+ UINT paramH;
2403+ DWORD time;
2404+ HWND hwnd;
2405+} EVENTMSG,*PEVENTMSGMSG,*LPEVENTMSGMSG, *PEVENTMSG, *LPEVENTMSG;
2406+typedef 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;
2415+typedef 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