~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/include/winbase.h

Version: ~ [ wine-1.5.31 ] ~ [ wine-1.5.30 ] ~ [ wine-1.5.29 ] ~ [ wine-1.5.28 ] ~ [ wine-1.5.27 ] ~ [ wine-1.5.26 ] ~ [ wine-1.5.25 ] ~ [ wine-1.5.24 ] ~ [ wine-1.5.23 ] ~ [ wine-1.5.22 ] ~ [ wine-1.5.21 ] ~ [ wine-1.5.20 ] ~ [ wine-1.5.19 ] ~ [ wine-1.5.18 ] ~ [ wine-1.5.17 ] ~ [ wine-1.5.16 ] ~ [ wine-1.5.15 ] ~ [ wine-1.5.14 ] ~ [ wine-1.5.13 ] ~ [ wine-1.5.12 ] ~ [ wine-1.5.11 ] ~ [ wine-1.5.10 ] ~ [ wine-1.5.9 ] ~ [ wine-1.5.8 ] ~ [ wine-1.5.7 ] ~ [ wine-1.4.1 ] ~ [ wine-1.5.6 ] ~ [ wine-1.5.5 ] ~ [ wine-1.5.4 ] ~ [ wine-1.5.3 ] ~ [ wine-1.5.2 ] ~ [ wine-1.5.1 ] ~ [ wine-1.5.0 ] ~ [ wine-1.4 ] ~ [ wine-1.4-rc6 ] ~ [ wine-1.4-rc5 ] ~ [ wine-1.4-rc4 ] ~ [ wine-1.4-rc3 ] ~ [ wine-1.4-rc2 ] ~ [ wine-1.4-rc1 ] ~ [ wine-1.3.37 ] ~ [ wine-1.3.36 ] ~ [ wine-1.3.35 ] ~ [ wine-1.3.34 ] ~ [ wine-1.3.33 ] ~ [ wine-1.3.32 ] ~ [ wine-1.3.31 ] ~ [ wine-1.3.30 ] ~ [ wine-1.3.29 ] ~ [ wine-1.3.28 ] ~ [ wine-1.3.27 ] ~ [ wine-1.3.26 ] ~ [ wine-1.3.25 ] ~ [ wine-1.3.24 ] ~ [ wine-1.3.23 ] ~ [ wine-1.3.22 ] ~ [ wine-1.3.21 ] ~ [ wine-1.3.20 ] ~ [ wine-1.3.19 ] ~ [ wine-1.3.18 ] ~ [ wine-1.2.3 ] ~ [ wine-1.3.17 ] ~ [ wine-1.3.16 ] ~ [ wine-1.3.15 ] ~ [ wine-1.3.14 ] ~ [ wine-1.3.13 ] ~ [ wine-1.3.12 ] ~ [ wine-1.3.11 ] ~ [ wine-1.3.10 ] ~ [ wine-1.3.9 ] ~ [ wine-1.2.2 ] ~ [ wine-1.3.8 ] ~ [ wine-1.3.7 ] ~ [ wine-1.3.6 ] ~ [ wine-1.3.5 ] ~ [ wine-1.2.1 ] ~ [ wine-1.3.4 ] ~ [ wine-1.3.3 ] ~ [ wine-1.3.2 ] ~ [ wine-1.3.1 ] ~ [ wine-1.3.0 ] ~ [ wine-1.2 ] ~ [ wine-1.2-rc7 ] ~ [ wine-1.2-rc6 ] ~ [ wine-1.2-rc5 ] ~ [ wine-1.2-rc4 ] ~ [ wine-1.2-rc3 ] ~ [ wine-1.2-rc2 ] ~ [ wine-1.2-rc1 ] ~ [ wine-1.1.44 ] ~ [ wine-1.1.43 ] ~ [ wine-1.1.42 ] ~ [ wine-1.1.41 ] ~ [ wine-1.1.40 ] ~ [ wine-1.1.39 ] ~ [ wine-1.1.38 ] ~ [ wine-1.1.37 ] ~ [ wine-1.1.36 ] ~ [ wine-1.1.35 ] ~ [ wine-1.1.34 ] ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * Copyright (C) the Wine project
  3  *
  4  * This library is free software; you can redistribute it and/or
  5  * modify it under the terms of the GNU Lesser General Public
  6  * License as published by the Free Software Foundation; either
  7  * version 2.1 of the License, or (at your option) any later version.
  8  *
  9  * This library is distributed in the hope that it will be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12  * Lesser General Public License for more details.
 13  *
 14  * You should have received a copy of the GNU Lesser General Public
 15  * License along with this library; if not, write to the Free Software
 16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 17  */
 18 
 19 #ifndef __WINE_WINBASE_H
 20 #define __WINE_WINBASE_H
 21 
 22 #include <winerror.h>
 23 
 24 #ifdef __cplusplus
 25 extern "C" {
 26 #endif
 27 
 28 #ifdef _KERNEL32_
 29 #define WINBASEAPI
 30 #else
 31 #define WINBASEAPI DECLSPEC_IMPORT
 32 #endif
 33 
 34 #ifdef _ADVAPI32_
 35 #define WINADVAPI
 36 #else
 37 #define WINADVAPI DECLSPEC_IMPORT
 38 #endif
 39 
 40   /* Windows Exit Procedure flag values */
 41 #define WEP_FREE_DLL        0
 42 #define WEP_SYSTEM_EXIT     1
 43 
 44 typedef DWORD (CALLBACK *LPTHREAD_START_ROUTINE)(LPVOID);
 45 
 46 typedef VOID (WINAPI *PFIBER_START_ROUTINE)( LPVOID lpFiberParameter );
 47 typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
 48 
 49 #define FIBER_FLAG_FLOAT_SWITCH     1
 50 
 51 typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
 52 typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
 53 typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
 54 
 55 typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
 56 typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
 57 typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
 58 
 59 #define CRITICAL_SECTION_NO_DEBUG_INFO RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO
 60 
 61 typedef RTL_SRWLOCK SRWLOCK;
 62 typedef PRTL_SRWLOCK PSRWLOCK;
 63 
 64 typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
 65 
 66 #define CONDITION_VARIABLE_INIT RTL_CONDITION_VARIABLE_INIT
 67 #define CONDITION_VARIABLE_LOCKMODE_SHARED RTL_CONDITION_VARIABLE_LOCKMODE_SHARED
 68 typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE;
 69 
 70 #define EXCEPTION_DEBUG_EVENT       1
 71 #define CREATE_THREAD_DEBUG_EVENT   2
 72 #define CREATE_PROCESS_DEBUG_EVENT  3
 73 #define EXIT_THREAD_DEBUG_EVENT     4
 74 #define EXIT_PROCESS_DEBUG_EVENT    5
 75 #define LOAD_DLL_DEBUG_EVENT        6
 76 #define UNLOAD_DLL_DEBUG_EVENT      7
 77 #define OUTPUT_DEBUG_STRING_EVENT   8
 78 #define RIP_EVENT                   9
 79 
 80 typedef struct _EXCEPTION_DEBUG_INFO {
 81     EXCEPTION_RECORD ExceptionRecord;
 82     DWORD dwFirstChance;
 83 } EXCEPTION_DEBUG_INFO;
 84 
 85 typedef struct _CREATE_THREAD_DEBUG_INFO {
 86     HANDLE hThread;
 87     LPVOID lpThreadLocalBase;
 88     LPTHREAD_START_ROUTINE lpStartAddress;
 89 } CREATE_THREAD_DEBUG_INFO;
 90 
 91 typedef struct _CREATE_PROCESS_DEBUG_INFO {
 92     HANDLE hFile;
 93     HANDLE hProcess;
 94     HANDLE hThread;
 95     LPVOID lpBaseOfImage;
 96     DWORD dwDebugInfoFileOffset;
 97     DWORD nDebugInfoSize;
 98     LPVOID lpThreadLocalBase;
 99     LPTHREAD_START_ROUTINE lpStartAddress;
100     LPVOID lpImageName;
101     WORD fUnicode;
102 } CREATE_PROCESS_DEBUG_INFO;
103 
104 typedef struct _EXIT_THREAD_DEBUG_INFO {
105     DWORD dwExitCode;
106 } EXIT_THREAD_DEBUG_INFO;
107 
108 typedef struct _EXIT_PROCESS_DEBUG_INFO {
109     DWORD dwExitCode;
110 } EXIT_PROCESS_DEBUG_INFO;
111 
112 typedef struct _LOAD_DLL_DEBUG_INFO {
113     HANDLE hFile;
114     LPVOID   lpBaseOfDll;
115     DWORD    dwDebugInfoFileOffset;
116     DWORD    nDebugInfoSize;
117     LPVOID   lpImageName;
118     WORD     fUnicode;
119 } LOAD_DLL_DEBUG_INFO;
120 
121 typedef struct _UNLOAD_DLL_DEBUG_INFO {
122     LPVOID lpBaseOfDll;
123 } UNLOAD_DLL_DEBUG_INFO;
124 
125 typedef struct _OUTPUT_DEBUG_STRING_INFO {
126     LPSTR lpDebugStringData;
127     WORD  fUnicode;
128     WORD  nDebugStringLength;
129 } OUTPUT_DEBUG_STRING_INFO;
130 
131 typedef struct _RIP_INFO {
132     DWORD dwError;
133     DWORD dwType;
134 } RIP_INFO;
135 
136 typedef struct _DEBUG_EVENT {
137     DWORD dwDebugEventCode;
138     DWORD dwProcessId;
139     DWORD dwThreadId;
140     union {
141         EXCEPTION_DEBUG_INFO      Exception;
142         CREATE_THREAD_DEBUG_INFO  CreateThread;
143         CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
144         EXIT_THREAD_DEBUG_INFO    ExitThread;
145         EXIT_PROCESS_DEBUG_INFO   ExitProcess;
146         LOAD_DLL_DEBUG_INFO       LoadDll;
147         UNLOAD_DLL_DEBUG_INFO     UnloadDll;
148         OUTPUT_DEBUG_STRING_INFO  DebugString;
149         RIP_INFO                  RipInfo;
150     } u;
151 } DEBUG_EVENT, *LPDEBUG_EVENT;
152 
153 typedef PCONTEXT LPCONTEXT;
154 typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
155 typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
156 
157 typedef LONG (CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS);
158 typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
159 
160 #define OFS_MAXPATHNAME 128
161 typedef struct _OFSTRUCT
162 {
163     BYTE cBytes;
164     BYTE fFixedDisk;
165     WORD nErrCode;
166     WORD Reserved1;
167     WORD Reserved2;
168     CHAR szPathName[OFS_MAXPATHNAME];
169 } OFSTRUCT, *POFSTRUCT, *LPOFSTRUCT;
170 
171 #define OF_READ               0x0000
172 #define OF_WRITE              0x0001
173 #define OF_READWRITE          0x0002
174 #define OF_SHARE_COMPAT       0x0000
175 #define OF_SHARE_EXCLUSIVE    0x0010
176 #define OF_SHARE_DENY_WRITE   0x0020
177 #define OF_SHARE_DENY_READ    0x0030
178 #define OF_SHARE_DENY_NONE    0x0040
179 #define OF_PARSE              0x0100
180 #define OF_DELETE             0x0200
181 #define OF_VERIFY             0x0400   /* Used with OF_REOPEN */
182 #define OF_SEARCH             0x0400   /* Used without OF_REOPEN */
183 #define OF_CANCEL             0x0800
184 #define OF_CREATE             0x1000
185 #define OF_PROMPT             0x2000
186 #define OF_EXIST              0x4000
187 #define OF_REOPEN             0x8000
188 
189 /* SetErrorMode values */
190 #define SEM_FAILCRITICALERRORS      0x0001
191 #define SEM_NOGPFAULTERRORBOX       0x0002
192 #define SEM_NOALIGNMENTFAULTEXCEPT  0x0004
193 #define SEM_NOOPENFILEERRORBOX      0x8000
194 
195 /* CopyFileEx flags */
196 #define COPY_FILE_FAIL_IF_EXISTS        0x00000001
197 #define COPY_FILE_RESTARTABLE           0x00000002
198 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
199 #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION  0x00000008
200 #define COPY_FILE_COPY_SYMLINK          0x00000800
201 #define COPY_FILE_NO_BUFFERING          0x00001000
202 
203 /* return values for CopyProgressRoutine */
204 #define PROGRESS_CONTINUE   0
205 #define PROGRESS_CANCEL     1
206 #define PROGRESS_STOP       2
207 #define PROGRESS_QUIET      3
208 
209 /* reason codes for CopyProgressRoutine */
210 #define CALLBACK_CHUNK_FINISHED 0
211 #define CALLBACK_STREAM_SWITCH  1
212 
213 /* GetTempFileName() Flags */
214 #define TF_FORCEDRIVE           0x80
215 
216 #define DRIVE_UNKNOWN              0
217 #define DRIVE_NO_ROOT_DIR          1
218 #define DRIVE_REMOVABLE            2
219 #define DRIVE_FIXED                3
220 #define DRIVE_REMOTE               4
221 /* Win32 additions */
222 #define DRIVE_CDROM                5
223 #define DRIVE_RAMDISK              6
224 
225 #define MAX_COMPUTERNAME_LENGTH    15
226 
227 /* The security attributes structure */
228 typedef struct _SECURITY_ATTRIBUTES
229 {
230     DWORD   nLength;
231     LPVOID  lpSecurityDescriptor;
232     BOOL  bInheritHandle;
233 } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
234 
235 #ifndef _FILETIME_
236 #define _FILETIME_
237 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
238 typedef struct _FILETIME
239 {
240 #ifdef WORDS_BIGENDIAN
241   DWORD  dwHighDateTime;
242   DWORD  dwLowDateTime;
243 #else
244   DWORD  dwLowDateTime;
245   DWORD  dwHighDateTime;
246 #endif
247 } FILETIME, *PFILETIME, *LPFILETIME;
248 #endif /* _FILETIME_ */
249 
250 /* Find* structures */
251 typedef struct _WIN32_FIND_DATAA
252 {
253     DWORD     dwFileAttributes;
254     FILETIME  ftCreationTime;
255     FILETIME  ftLastAccessTime;
256     FILETIME  ftLastWriteTime;
257     DWORD     nFileSizeHigh;
258     DWORD     nFileSizeLow;
259     DWORD     dwReserved0;
260     DWORD     dwReserved1;
261     CHAR      cFileName[260];
262     CHAR      cAlternateFileName[14];
263 } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
264 
265 typedef struct _WIN32_FIND_DATAW
266 {
267     DWORD     dwFileAttributes;
268     FILETIME  ftCreationTime;
269     FILETIME  ftLastAccessTime;
270     FILETIME  ftLastWriteTime;
271     DWORD     nFileSizeHigh;
272     DWORD     nFileSizeLow;
273     DWORD     dwReserved0;
274     DWORD     dwReserved1;
275     WCHAR     cFileName[260];
276     WCHAR     cAlternateFileName[14];
277 } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
278 
279 DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA)
280 DECL_WINELIB_TYPE_AW(PWIN32_FIND_DATA)
281 DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA)
282 
283 typedef enum _FINDEX_INFO_LEVELS
284 {
285         FindExInfoStandard,
286         FindExInfoMaxInfoLevel
287 } FINDEX_INFO_LEVELS;
288 
289 typedef enum _FINDEX_SEARCH_OPS
290 {
291         FindExSearchNameMatch,
292         FindExSearchLimitToDirectories,
293         FindExSearchLimitToDevices,
294         FindExSearchMaxSearchOp
295 } FINDEX_SEARCH_OPS;
296 
297 typedef struct _PROCESS_HEAP_ENTRY
298 {
299     LPVOID lpData;
300     DWORD cbData;
301     BYTE cbOverhead;
302     BYTE iRegionIndex;
303     WORD wFlags;
304     union {
305         struct {
306             HANDLE hMem;
307             DWORD dwReserved[3];
308         } Block;
309         struct {
310             DWORD dwCommittedSize;
311             DWORD dwUnCommittedSize;
312             LPVOID lpFirstBlock;
313             LPVOID lpLastBlock;
314         } Region;
315     } DUMMYUNIONNAME;
316 } PROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY;
317 
318 #define PROCESS_HEAP_REGION                   0x0001
319 #define PROCESS_HEAP_UNCOMMITTED_RANGE        0x0002
320 #define PROCESS_HEAP_ENTRY_BUSY               0x0004
321 #define PROCESS_HEAP_ENTRY_MOVEABLE           0x0010
322 #define PROCESS_HEAP_ENTRY_DDESHARE           0x0020
323 
324 #define INVALID_HANDLE_VALUE     ((HANDLE)~(ULONG_PTR)0)
325 #define INVALID_FILE_SIZE        (~0u)
326 #define INVALID_SET_FILE_POINTER (~0u)
327 #define INVALID_FILE_ATTRIBUTES  (~0u)
328 
329 #define LOCKFILE_FAIL_IMMEDIATELY   1
330 #define LOCKFILE_EXCLUSIVE_LOCK     2
331 
332 #define FLS_OUT_OF_INDEXES (~0u)
333 #define TLS_OUT_OF_INDEXES (~0u)
334 
335 #define SHUTDOWN_NORETRY 1
336 
337 /* comm */
338 
339 #define CBR_110 0xFF10
340 #define CBR_300 0xFF11
341 #define CBR_600 0xFF12
342 #define CBR_1200        0xFF13
343 #define CBR_2400        0xFF14
344 #define CBR_4800        0xFF15
345 #define CBR_9600        0xFF16
346 #define CBR_14400       0xFF17
347 #define CBR_19200       0xFF18
348 #define CBR_38400       0xFF1B
349 #define CBR_56000       0xFF1F
350 #define CBR_57600       0xFF20
351 #define CBR_115200      0xFF21
352 #define CBR_128000      0xFF23
353 #define CBR_256000      0xFF27
354 
355 #define NOPARITY        0
356 #define ODDPARITY       1
357 #define EVENPARITY      2
358 #define MARKPARITY      3
359 #define SPACEPARITY     4
360 #define ONESTOPBIT      0
361 #define ONE5STOPBITS    1
362 #define TWOSTOPBITS     2
363 
364 #define IGNORE          0
365 #define INFINITE      0xFFFFFFFF
366 
367 #define CE_RXOVER       0x0001
368 #define CE_OVERRUN      0x0002
369 #define CE_RXPARITY     0x0004
370 #define CE_FRAME        0x0008
371 #define CE_BREAK        0x0010
372 #define CE_CTSTO        0x0020
373 #define CE_DSRTO        0x0040
374 #define CE_RLSDTO       0x0080
375 #define CE_TXFULL       0x0100
376 #define CE_PTO          0x0200
377 #define CE_IOE          0x0400
378 #define CE_DNS          0x0800
379 #define CE_OOP          0x1000
380 #define CE_MODE 0x8000
381 
382 #define IE_BADID        -1
383 #define IE_OPEN -2
384 #define IE_NOPEN        -3
385 #define IE_MEMORY       -4
386 #define IE_DEFAULT      -5
387 #define IE_HARDWARE     -10
388 #define IE_BYTESIZE     -11
389 #define IE_BAUDRATE     -12
390 
391 #define EV_RXCHAR    0x0001
392 #define EV_RXFLAG    0x0002
393 #define EV_TXEMPTY   0x0004
394 #define EV_CTS       0x0008
395 #define EV_DSR       0x0010
396 #define EV_RLSD      0x0020
397 #define EV_BREAK     0x0040
398 #define EV_ERR       0x0080
399 #define EV_RING      0x0100
400 #define EV_PERR      0x0200
401 #define EV_RX80FULL  0x0400
402 #define EV_EVENT1    0x0800
403 #define EV_EVENT2    0x1000
404 
405 #define SETXOFF 1
406 #define SETXON          2
407 #define SETRTS          3
408 #define CLRRTS          4
409 #define SETDTR          5
410 #define CLRDTR          6
411 #define RESETDEV        7
412 #define SETBREAK        8
413 #define CLRBREAK        9
414 
415 /* Purge functions for Comm Port */
416 #define PURGE_TXABORT       0x0001  /* Kill the pending/current writes to the
417                                        comm port */
418 #define PURGE_RXABORT       0x0002  /*Kill the pending/current reads to
419                                      the comm port */
420 #define PURGE_TXCLEAR       0x0004  /* Kill the transmit queue if there*/
421 #define PURGE_RXCLEAR       0x0008  /* Kill the typeahead buffer if there*/
422 
423 
424 /* Modem Status Flags */
425 #define MS_CTS_ON           ((DWORD)0x0010)
426 #define MS_DSR_ON           ((DWORD)0x0020)
427 #define MS_RING_ON          ((DWORD)0x0040)
428 #define MS_RLSD_ON          ((DWORD)0x0080)
429 
430 #define RTS_CONTROL_DISABLE     0
431 #define RTS_CONTROL_ENABLE      1
432 #define RTS_CONTROL_HANDSHAKE   2
433 #define RTS_CONTROL_TOGGLE      3
434 
435 #define DTR_CONTROL_DISABLE     0
436 #define DTR_CONTROL_ENABLE      1
437 #define DTR_CONTROL_HANDSHAKE   2
438 
439 
440 #define LMEM_FIXED          0
441 #define LMEM_MOVEABLE       0x0002
442 #define LMEM_NOCOMPACT      0x0010
443 #define LMEM_NODISCARD      0x0020
444 #define LMEM_ZEROINIT       0x0040
445 #define LMEM_MODIFY         0x0080
446 #define LMEM_DISCARDABLE    0x0F00
447 #define LMEM_DISCARDED      0x4000
448 #define LMEM_INVALID_HANDLE 0x8000
449 #define LMEM_LOCKCOUNT      0x00FF
450 
451 #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
452 #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
453 
454 #define NONZEROLHND         (LMEM_MOVEABLE)
455 #define NONZEROLPTR         (LMEM_FIXED)
456 
457 #define LocalDiscard(h)     (LocalReAlloc((h),0,LMEM_MOVEABLE))
458 
459 #define GMEM_FIXED          0x0000
460 #define GMEM_MOVEABLE       0x0002
461 #define GMEM_NOCOMPACT      0x0010
462 #define GMEM_NODISCARD      0x0020
463 #define GMEM_ZEROINIT       0x0040
464 #define GMEM_MODIFY         0x0080
465 #define GMEM_DISCARDABLE    0x0100
466 #define GMEM_NOT_BANKED     0x1000
467 #define GMEM_SHARE          0x2000
468 #define GMEM_DDESHARE       0x2000
469 #define GMEM_NOTIFY         0x4000
470 #define GMEM_LOWER          GMEM_NOT_BANKED
471 #define GMEM_DISCARDED      0x4000
472 #define GMEM_LOCKCOUNT      0x00ff
473 #define GMEM_INVALID_HANDLE 0x8000
474 
475 #define GHND                (GMEM_MOVEABLE | GMEM_ZEROINIT)
476 #define GPTR                (GMEM_FIXED | GMEM_ZEROINIT)
477 
478 #define GlobalLRUNewest(h)  ((HANDLE)(h))
479 #define GlobalLRUOldest(h)  ((HANDLE)(h))
480 #define GlobalDiscard(h)    (GlobalReAlloc((h),0,GMEM_MOVEABLE))
481 
482 #define INVALID_ATOM        ((ATOM)0)
483 #define MAXINTATOM          0xc000
484 #ifdef WINE_NO_UNICODE_MACROS /* force using a cast */
485 #define MAKEINTATOM(atom)   ((ULONG_PTR)((WORD)(atom)))
486 #else
487 #define MAKEINTATOM(atom)   ((LPTSTR)((ULONG_PTR)((WORD)(atom))))
488 #endif
489 
490 typedef struct tagMEMORYSTATUS
491 {
492     DWORD    dwLength;
493     DWORD    dwMemoryLoad;
494     SIZE_T   dwTotalPhys;
495     SIZE_T   dwAvailPhys;
496     SIZE_T   dwTotalPageFile;
497     SIZE_T   dwAvailPageFile;
498     SIZE_T   dwTotalVirtual;
499     SIZE_T   dwAvailVirtual;
500 } MEMORYSTATUS, *LPMEMORYSTATUS;
501 
502 #include <pshpack8.h>
503 typedef struct tagMEMORYSTATUSEX {
504   DWORD dwLength;
505   DWORD dwMemoryLoad;
506   DWORDLONG DECLSPEC_ALIGN(8) ullTotalPhys;
507   DWORDLONG DECLSPEC_ALIGN(8) ullAvailPhys;
508   DWORDLONG DECLSPEC_ALIGN(8) ullTotalPageFile;
509   DWORDLONG DECLSPEC_ALIGN(8) ullAvailPageFile;
510   DWORDLONG DECLSPEC_ALIGN(8) ullTotalVirtual;
511   DWORDLONG DECLSPEC_ALIGN(8) ullAvailVirtual;
512   DWORDLONG DECLSPEC_ALIGN(8) ullAvailExtendedVirtual;
513 } MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
514 #include <poppack.h>
515 
516 typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
517     LowMemoryResourceNotification,
518     HighMemoryResourceNotification
519 } MEMORY_RESOURCE_NOTIFICATION_TYPE;
520 
521 #ifndef _SYSTEMTIME_
522 #define _SYSTEMTIME_
523 typedef struct _SYSTEMTIME{
524         WORD wYear;
525         WORD wMonth;
526         WORD wDayOfWeek;
527         WORD wDay;
528         WORD wHour;
529         WORD wMinute;
530         WORD wSecond;
531         WORD wMilliseconds;
532 } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
533 #endif /* _SYSTEMTIME_ */
534 
535 /* The 'overlapped' data structure used by async I/O functions.
536  */
537 typedef struct _OVERLAPPED {
538 #ifdef WORDS_BIGENDIAN
539         ULONG_PTR InternalHigh;
540         ULONG_PTR Internal;
541 #else
542         ULONG_PTR Internal;
543         ULONG_PTR InternalHigh;
544 #endif
545         union {
546             struct {
547 #ifdef WORDS_BIGENDIAN
548                 DWORD OffsetHigh;
549                 DWORD Offset;
550 #else
551                 DWORD Offset;
552                 DWORD OffsetHigh;
553 #endif
554             } DUMMYSTRUCTNAME;
555             PVOID Pointer;
556         } DUMMYUNIONNAME;
557         HANDLE hEvent;
558 } OVERLAPPED, *LPOVERLAPPED;
559 
560 typedef VOID (CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
561 
562 /* Process startup information.
563  */
564 
565 /* STARTUPINFO.dwFlags */
566 #define STARTF_USESHOWWINDOW    0x00000001
567 #define STARTF_USESIZE          0x00000002
568 #define STARTF_USEPOSITION      0x00000004
569 #define STARTF_USECOUNTCHARS    0x00000008
570 #define STARTF_USEFILLATTRIBUTE 0x00000010
571 #define STARTF_RUNFULLSCREEN    0x00000020
572 #define STARTF_FORCEONFEEDBACK  0x00000040
573 #define STARTF_FORCEOFFFEEDBACK 0x00000080
574 #define STARTF_USESTDHANDLES    0x00000100
575 #define STARTF_USEHOTKEY        0x00000200
576 
577 typedef struct _STARTUPINFOA{
578         DWORD cb;               /* 00: size of struct */
579         LPSTR lpReserved;       /* 04: */
580         LPSTR lpDesktop;        /* 08: */
581         LPSTR lpTitle;          /* 0c: */
582         DWORD dwX;              /* 10: */
583         DWORD dwY;              /* 14: */
584         DWORD dwXSize;          /* 18: */
585         DWORD dwYSize;          /* 1c: */
586         DWORD dwXCountChars;    /* 20: */
587         DWORD dwYCountChars;    /* 24: */
588         DWORD dwFillAttribute;  /* 28: */
589         DWORD dwFlags;          /* 2c: */
590         WORD wShowWindow;       /* 30: */
591         WORD cbReserved2;       /* 32: */
592         BYTE *lpReserved2;      /* 34: */
593         HANDLE hStdInput;       /* 38: */
594         HANDLE hStdOutput;      /* 3c: */
595         HANDLE hStdError;       /* 40: */
596 } STARTUPINFOA, *LPSTARTUPINFOA;
597 
598 typedef struct _STARTUPINFOW{
599         DWORD cb;
600         LPWSTR lpReserved;
601         LPWSTR lpDesktop;
602         LPWSTR lpTitle;
603         DWORD dwX;
604         DWORD dwY;
605         DWORD dwXSize;
606         DWORD dwYSize;
607         DWORD dwXCountChars;
608         DWORD dwYCountChars;
609         DWORD dwFillAttribute;
610         DWORD dwFlags;
611         WORD wShowWindow;
612         WORD cbReserved2;
613         BYTE *lpReserved2;
614         HANDLE hStdInput;
615         HANDLE hStdOutput;
616         HANDLE hStdError;
617 } STARTUPINFOW, *LPSTARTUPINFOW;
618 
619 DECL_WINELIB_TYPE_AW(STARTUPINFO)
620 DECL_WINELIB_TYPE_AW(LPSTARTUPINFO)
621 
622 typedef struct _PROCESS_INFORMATION{
623         HANDLE  hProcess;
624         HANDLE  hThread;
625         DWORD           dwProcessId;
626         DWORD           dwThreadId;
627 } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
628 
629 typedef struct _TIME_DYNAMIC_ZONE_INFORMATION
630 {
631     LONG Bias;
632     WCHAR StandardName[32];
633     SYSTEMTIME StandardDate;
634     LONG StandardBias;
635     WCHAR DaylightName[32];
636     SYSTEMTIME DaylightDate;
637     LONG DaylightBias;
638     WCHAR TimeZoneKeyName[128];
639     BOOLEAN DynamicDaylightTimeDisabled;
640 } DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION;
641 
642 typedef struct _TIME_ZONE_INFORMATION{
643         LONG Bias;
644         WCHAR StandardName[32];
645         SYSTEMTIME StandardDate;
646         LONG StandardBias;
647         WCHAR DaylightName[32];
648         SYSTEMTIME DaylightDate;
649         LONG DaylightBias;
650 } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
651 
652 #define TIME_ZONE_ID_INVALID    ((DWORD)0xFFFFFFFF)
653 #define TIME_ZONE_ID_UNKNOWN    0
654 #define TIME_ZONE_ID_STANDARD   1
655 #define TIME_ZONE_ID_DAYLIGHT   2
656 
657 /* CreateProcess: dwCreationFlag values
658  */
659 #define DEBUG_PROCESS               0x00000001
660 #define DEBUG_ONLY_THIS_PROCESS     0x00000002
661 #define CREATE_SUSPENDED            0x00000004
662 #define DETACHED_PROCESS            0x00000008
663 #define CREATE_NEW_CONSOLE          0x00000010
664 #define NORMAL_PRIORITY_CLASS       0x00000020
665 #define IDLE_PRIORITY_CLASS         0x00000040
666 #define HIGH_PRIORITY_CLASS         0x00000080
667 #define REALTIME_PRIORITY_CLASS     0x00000100
668 #define BELOW_NORMAL_PRIORITY_CLASS 0x00004000
669 #define ABOVE_NORMAL_PRIORITY_CLASS 0x00008000
670 #define CREATE_NEW_PROCESS_GROUP    0x00000200
671 #define CREATE_UNICODE_ENVIRONMENT  0x00000400
672 #define CREATE_SEPARATE_WOW_VDM     0x00000800
673 #define CREATE_SHARED_WOW_VDM       0x00001000
674 #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
675 #define CREATE_DEFAULT_ERROR_MODE   0x04000000
676 #define CREATE_NO_WINDOW            0x08000000
677 #define PROFILE_USER                0x10000000
678 #define PROFILE_KERNEL              0x20000000
679 #define PROFILE_SERVER              0x40000000
680 
681 
682 /* File object type definitions
683  */
684 #define FILE_TYPE_UNKNOWN       0
685 #define FILE_TYPE_DISK          1
686 #define FILE_TYPE_CHAR          2
687 #define FILE_TYPE_PIPE          3
688 #define FILE_TYPE_REMOTE        32768
689 
690 /* File encryption status
691  */
692 #define FILE_ENCRYPTABLE         0
693 #define FILE_IS_ENCRYPTED        1
694 #define FILE_SYSTEM_ATTR         2
695 #define FILE_ROOT_DIR            3
696 #define FILE_SYSTEM_DIR          4
697 #define FILE_UNKNOWN             5
698 #define FILE_SYSTEM_NOT_SUPPORT  6
699 #define FILE_USER_DISALLOWED     7
700 #define FILE_READ_ONLY           8
701 #define FILE_DIR_DISALOWED       9
702 
703 /* File creation flags
704  */
705 #define FILE_FLAG_WRITE_THROUGH         0x80000000
706 #define FILE_FLAG_OVERLAPPED            0x40000000
707 #define FILE_FLAG_NO_BUFFERING          0x20000000
708 #define FILE_FLAG_RANDOM_ACCESS         0x10000000
709 #define FILE_FLAG_SEQUENTIAL_SCAN       0x08000000
710 #define FILE_FLAG_DELETE_ON_CLOSE       0x04000000
711 #define FILE_FLAG_BACKUP_SEMANTICS      0x02000000
712 #define FILE_FLAG_POSIX_SEMANTICS       0x01000000
713 #define FILE_FLAG_OPEN_REPARSE_POINT    0x00200000
714 #define FILE_FLAG_OPEN_NO_RECALL        0x00100000
715 #define FILE_FLAG_FIRST_PIPE_INSTANCE   0x00080000
716 
717 #define CREATE_NEW              1
718 #define CREATE_ALWAYS           2
719 #define OPEN_EXISTING           3
720 #define OPEN_ALWAYS             4
721 #define TRUNCATE_EXISTING       5
722 
723 /* Standard handle identifiers
724  */
725 #define STD_INPUT_HANDLE        ((DWORD) -10)
726 #define STD_OUTPUT_HANDLE       ((DWORD) -11)
727 #define STD_ERROR_HANDLE        ((DWORD) -12)
728 
729 typedef struct _BY_HANDLE_FILE_INFORMATION
730 {
731   DWORD dwFileAttributes;
732   FILETIME ftCreationTime;
733   FILETIME ftLastAccessTime;
734   FILETIME ftLastWriteTime;
735   DWORD dwVolumeSerialNumber;
736   DWORD nFileSizeHigh;
737   DWORD nFileSizeLow;
738   DWORD nNumberOfLinks;
739   DWORD nFileIndexHigh;
740   DWORD nFileIndexLow;
741 } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION ;
742 
743 typedef enum _FILE_ID_TYPE {
744     FileIdType,
745     ObjectIdType,
746     ExtendedFileIdType,
747     MaximumFileIdType
748 } FILE_ID_TYPE, *PFILE_ID_TYPE;
749 
750 typedef struct _FILE_ID_DESCRIPTOR {
751     DWORD        dwSize;
752     FILE_ID_TYPE Type;
753     union {
754         LARGE_INTEGER FileId;
755         GUID          ObjectId;
756     } DUMMYUNIONNAME;
757 } FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR;
758 
759 typedef enum _FILE_INFO_BY_HANDLE_CLASS {
760     FileBasicInfo,
761     FileStandardInfo,
762     FileNameInfo,
763     FileRenameInfo,
764     FileDispositionInfo,
765     FileAllocationInfo,
766     FileEndOfFileInfo,
767     FileStreamInfo,
768     FileCompressionInfo,
769     FileAttributeTagInfo,
770     FileIdBothDirectoryInfo,
771     FileIdBothDirectoryRestartInfo,
772     FileIoPriorityHintInfo,
773     FileRemoteProtocolInfo,
774     FileFullDirectoryInfo,
775     FileFullDirectoryRestartInfo,
776     FileStorageInfo,
777     FileAlignmentInfo,
778     FileIdInfo,
779     FileIdExtdDirectoryInfo,
780     FileIdExtdDirectoryRestartInfo,
781     MaximumFileInfoByHandlesClass
782 } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
783 
784 typedef struct _FILE_ID_BOTH_DIR_INFO {
785     DWORD         NextEntryOffset;
786     DWORD         FileIndex;
787     LARGE_INTEGER CreationTime;
788     LARGE_INTEGER LastAccessTime;
789     LARGE_INTEGER LastWriteTime;
790     LARGE_INTEGER ChangeTime;
791     LARGE_INTEGER EndOfFile;
792     LARGE_INTEGER AllocationSize;
793     DWORD         FileAttributes;
794     DWORD         FileNameLength;
795     DWORD         EaSize;
796     CCHAR         ShortNameLength;
797     WCHAR         ShortName[12];
798     LARGE_INTEGER FileId;
799     WCHAR         FileName[1];
800 } FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
801 
802 #define PIPE_ACCESS_INBOUND  1
803 #define PIPE_ACCESS_OUTBOUND 2
804 #define PIPE_ACCESS_DUPLEX   3
805 
806 #define PIPE_CLIENT_END       0
807 #define PIPE_SERVER_END       1
808 #define PIPE_READMODE_BYTE    0
809 #define PIPE_READMODE_MESSAGE 2
810 #define PIPE_TYPE_BYTE        0
811 #define PIPE_TYPE_MESSAGE     4
812 
813 #define PIPE_WAIT   0
814 #define PIPE_NOWAIT 1
815 
816 #define PIPE_UNLIMITED_INSTANCES 255
817 
818 #define NMPWAIT_WAIT_FOREVER            0xffffffff
819 #define NMPWAIT_NOWAIT                  0x00000001
820 #define NMPWAIT_USE_DEFAULT_WAIT        0x00000000
821 
822 /* Security flags for dwFlagsAndAttributes of CreateFile */
823 #define SECURITY_ANONYMOUS          (SecurityAnonymous << 16)
824 #define SECURITY_IDENTIFICATION     (SecurityIdentification << 16)
825 #define SECURITY_IMPERSONATION      (SecurityImpersonation << 16)
826 #define SECURITY_DELEGATION         (SecurityDelegation << 16)
827 
828 #define SECURITY_CONTEXT_TRACKING   0x00040000
829 #define SECURITY_EFFECTIVE_ONLY     0x00080000
830 
831 #define SECURITY_SQOS_PRESENT       0x00100000
832 #define SECURITY_VALID_SQOS_FLAGS   0x001f0000
833 
834 typedef struct _SYSTEM_POWER_STATUS
835 {
836   BYTE    ACLineStatus;
837   BYTE    BatteryFlag;
838   BYTE    BatteryLifePercent;
839   BYTE    Reserved1;
840   DWORD   BatteryLifeTime;
841   DWORD   BatteryFullLifeTime;
842 } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
843 
844 
845 typedef struct _SYSTEM_INFO
846 {
847     union {
848         DWORD   dwOemId; /* Obsolete field - do not use */
849         struct {
850                 WORD wProcessorArchitecture;
851                 WORD wReserved;
852         } DUMMYSTRUCTNAME;
853     } DUMMYUNIONNAME;
854     DWORD       dwPageSize;
855     LPVOID      lpMinimumApplicationAddress;
856     LPVOID      lpMaximumApplicationAddress;
857     DWORD_PTR   dwActiveProcessorMask;
858     DWORD       dwNumberOfProcessors;
859     DWORD       dwProcessorType;
860     DWORD       dwAllocationGranularity;
861     WORD        wProcessorLevel;
862     WORD        wProcessorRevision;
863 } SYSTEM_INFO, *LPSYSTEM_INFO;
864 
865 typedef BOOL (CALLBACK *ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG_PTR);
866 typedef BOOL (CALLBACK *ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG_PTR);
867 typedef BOOL (CALLBACK *ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG_PTR);
868 typedef BOOL (CALLBACK *ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG_PTR);
869 typedef BOOL (CALLBACK *ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG_PTR);
870 typedef BOOL (CALLBACK *ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG_PTR);
871 
872 DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC)
873 DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC)
874 DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC)
875 
876 /* flags that can be passed to LoadLibraryEx */
877 #define DONT_RESOLVE_DLL_REFERENCES         0x00000001
878 #define LOAD_LIBRARY_AS_DATAFILE            0x00000002
879 #define LOAD_WITH_ALTERED_SEARCH_PATH       0x00000008
880 #define LOAD_IGNORE_CODE_AUTHZ_LEVEL        0x00000010
881 #define LOAD_LIBRARY_AS_IMAGE_RESOURCE      0x00000020
882 #define LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE  0x00000040
883 #define LOAD_LIBRARY_REQUIRE_SIGNED_TARGET  0x00000080
884 
885 #define GET_MODULE_HANDLE_EX_FLAG_PIN                 1
886 #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT  2
887 #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS        4
888 
889 typedef PLDT_ENTRY LPLDT_ENTRY;
890 
891 typedef enum _GET_FILEEX_INFO_LEVELS {
892     GetFileExInfoStandard
893 } GET_FILEEX_INFO_LEVELS;
894 
895 typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
896     DWORD    dwFileAttributes;
897     FILETIME ftCreationTime;
898     FILETIME ftLastAccessTime;
899     FILETIME ftLastWriteTime;
900     DWORD    nFileSizeHigh;
901     DWORD    nFileSizeLow;
902 } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
903 
904 /*
905  * This one seems to be a Win32 only definition. It also is defined with
906  * WINAPI instead of CALLBACK in the windows headers.
907  */
908 typedef DWORD (CALLBACK *LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER,
909                                            LARGE_INTEGER, DWORD, DWORD, HANDLE,
910                                            HANDLE, LPVOID);
911 
912 typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK)(PVOID);
913 
914 #define CREATE_EVENT_MANUAL_RESET 1
915 #define CREATE_EVENT_INITIAL_SET  2
916 
917 #define CREATE_MUTEX_INITIAL_OWNER 1
918 
919 #define CREATE_WAITABLE_TIMER_MANUAL_RESET 1
920 
921 #define WAIT_FAILED             0xffffffff
922 #define WAIT_OBJECT_0           0
923 #define WAIT_ABANDONED          STATUS_ABANDONED_WAIT_0
924 #define WAIT_ABANDONED_0        STATUS_ABANDONED_WAIT_0
925 #define WAIT_IO_COMPLETION      STATUS_USER_APC
926 #define WAIT_TIMEOUT            STATUS_TIMEOUT
927 #define STILL_ACTIVE            STATUS_PENDING
928 
929 #define FILE_BEGIN              0
930 #define FILE_CURRENT            1
931 #define FILE_END                2
932 
933 #define FILE_MAP_COPY                   0x00000001
934 #define FILE_MAP_WRITE                  0x00000002
935 #define FILE_MAP_READ                   0x00000004
936 #define FILE_MAP_ALL_ACCESS             0x000f001f
937 #define FILE_MAP_EXECUTE                0x00000020
938 
939 #define MOVEFILE_REPLACE_EXISTING       0x00000001
940 #define MOVEFILE_COPY_ALLOWED           0x00000002
941 #define MOVEFILE_DELAY_UNTIL_REBOOT     0x00000004
942 #define MOVEFILE_WRITE_THROUGH          0x00000008
943 
944 #define REPLACEFILE_WRITE_THROUGH       0x00000001
945 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002
946 
947 #define FS_CASE_SENSITIVE               FILE_CASE_SENSITIVE_SEARCH
948 #define FS_CASE_IS_PRESERVED            FILE_CASE_PRESERVED_NAMES
949 #define FS_UNICODE_STORED_ON_DISK       FILE_UNICODE_ON_DISK
950 #define FS_PERSISTENT_ACLS              FILE_PERSISTENT_ACLS
951 #define FS_VOL_IS_COMPRESSED            FILE_VOLUME_IS_COMPRESSED
952 #define FS_FILE_COMPRESSION             FILE_FILE_COMPRESSION
953 
954 #define MUTEX_MODIFY_STATE              MUTANT_QUERY_STATE
955 #define MUTEX_ALL_ACCESS                MUTANT_ALL_ACCESS
956 
957 #define EXCEPTION_ACCESS_VIOLATION          STATUS_ACCESS_VIOLATION
958 #define EXCEPTION_DATATYPE_MISALIGNMENT     STATUS_DATATYPE_MISALIGNMENT
959 #define EXCEPTION_BREAKPOINT                STATUS_BREAKPOINT
960 #define EXCEPTION_SINGLE_STEP               STATUS_SINGLE_STEP
961 #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED     STATUS_ARRAY_BOUNDS_EXCEEDED
962 #define EXCEPTION_FLT_DENORMAL_OPERAND      STATUS_FLOAT_DENORMAL_OPERAND
963 #define EXCEPTION_FLT_DIVIDE_BY_ZERO        STATUS_FLOAT_DIVIDE_BY_ZERO
964 #define EXCEPTION_FLT_INEXACT_RESULT        STATUS_FLOAT_INEXACT_RESULT
965 #define EXCEPTION_FLT_INVALID_OPERATION     STATUS_FLOAT_INVALID_OPERATION
966 #define EXCEPTION_FLT_OVERFLOW              STATUS_FLOAT_OVERFLOW
967 #define EXCEPTION_FLT_STACK_CHECK           STATUS_FLOAT_STACK_CHECK
968 #define EXCEPTION_FLT_UNDERFLOW             STATUS_FLOAT_UNDERFLOW
969 #define EXCEPTION_INT_DIVIDE_BY_ZERO        STATUS_INTEGER_DIVIDE_BY_ZERO
970 #define EXCEPTION_INT_OVERFLOW              STATUS_INTEGER_OVERFLOW
971 #define EXCEPTION_PRIV_INSTRUCTION          STATUS_PRIVILEGED_INSTRUCTION
972 #define EXCEPTION_IN_PAGE_ERROR             STATUS_IN_PAGE_ERROR
973 #define EXCEPTION_ILLEGAL_INSTRUCTION       STATUS_ILLEGAL_INSTRUCTION
974 #define EXCEPTION_NONCONTINUABLE_EXCEPTION  STATUS_NONCONTINUABLE_EXCEPTION
975 #define EXCEPTION_STACK_OVERFLOW            STATUS_STACK_OVERFLOW
976 #define EXCEPTION_INVALID_DISPOSITION       STATUS_INVALID_DISPOSITION
977 #define EXCEPTION_GUARD_PAGE                STATUS_GUARD_PAGE_VIOLATION
978 #define EXCEPTION_INVALID_HANDLE            STATUS_INVALID_HANDLE
979 #define CONTROL_C_EXIT                      STATUS_CONTROL_C_EXIT
980 
981 #define HANDLE_FLAG_INHERIT             0x00000001
982 #define HANDLE_FLAG_PROTECT_FROM_CLOSE  0x00000002
983 
984 #define HINSTANCE_ERROR 32
985 
986 #define THREAD_PRIORITY_LOWEST          THREAD_BASE_PRIORITY_MIN
987 #define THREAD_PRIORITY_BELOW_NORMAL    (THREAD_PRIORITY_LOWEST+1)
988 #define THREAD_PRIORITY_NORMAL          0
989 #define THREAD_PRIORITY_HIGHEST         THREAD_BASE_PRIORITY_MAX
990 #define THREAD_PRIORITY_ABOVE_NORMAL    (THREAD_PRIORITY_HIGHEST-1)
991 #define THREAD_PRIORITY_ERROR_RETURN    (0x7fffffff)
992 #define THREAD_PRIORITY_TIME_CRITICAL   THREAD_BASE_PRIORITY_LOWRT
993 #define THREAD_PRIORITY_IDLE            THREAD_BASE_PRIORITY_IDLE
994 
995 /* flags to FormatMessage */
996 #define FORMAT_MESSAGE_ALLOCATE_BUFFER  0x00000100
997 #define FORMAT_MESSAGE_IGNORE_INSERTS   0x00000200
998 #define FORMAT_MESSAGE_FROM_STRING      0x00000400
999 #define FORMAT_MESSAGE_FROM_HMODULE     0x00000800
1000 #define FORMAT_MESSAGE_FROM_SYSTEM      0x00001000
1001 #define FORMAT_MESSAGE_ARGUMENT_ARRAY   0x00002000
1002 #define FORMAT_MESSAGE_MAX_WIDTH_MASK   0x000000FF
1003 
1004 /* flags to ACTCTX[AW] */
1005 #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID  (0x00000001)
1006 #define ACTCTX_FLAG_LANGID_VALID                  (0x00000002)
1007 #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID      (0x00000004)
1008 #define ACTCTX_FLAG_RESOURCE_NAME_VALID           (0x00000008)
1009 #define ACTCTX_FLAG_SET_PROCESS_DEFAULT           (0x00000010)
1010 #define ACTCTX_FLAG_APPLICATION_NAME_VALID        (0x00000020)
1011 #define ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF         (0x00000040)
1012 #define ACTCTX_FLAG_HMODULE_VALID                 (0x00000080)
1013 
1014 /* flags to DeactiveActCtx */
1015 #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION  (0x00000001)
1016 
1017 /* flags to FindActCtxSection{Guid,String[AW]} */
1018 #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX            (0x00000001)
1019 #define FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS              (0x00000002)
1020 #define FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA  (0x00000004)
1021 
1022 /* flags to QueryActCtxW */
1023 #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX  (0x00000004)
1024 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE  (0x00000008)
1025 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS  (0x00000010)
1026 #define QUERY_ACTCTX_FLAG_NO_ADDREF          (0x80000000)
1027 
1028 typedef struct tagACTCTXA {
1029     ULONG   cbSize;
1030     DWORD   dwFlags;
1031     LPCSTR  lpSource;
1032     USHORT  wProcessorArchitecture;
1033     LANGID  wLangId;
1034     LPCSTR  lpAssemblyDirectory;
1035     LPCSTR  lpResourceName;
1036     LPCSTR  lpApplicationName;
1037     HMODULE hModule;
1038 } ACTCTXA, *PACTCTXA;
1039 
1040 typedef struct tagACTCTXW {
1041     ULONG   cbSize;
1042     DWORD   dwFlags;
1043     LPCWSTR lpSource;
1044     USHORT  wProcessorArchitecture;
1045     LANGID  wLangId;
1046     LPCWSTR lpAssemblyDirectory;
1047     LPCWSTR lpResourceName;
1048     LPCWSTR lpApplicationName;
1049     HMODULE hModule;
1050 } ACTCTXW, *PACTCTXW;
1051 
1052 DECL_WINELIB_TYPE_AW(ACTCTX)
1053 DECL_WINELIB_TYPE_AW(PACTCTX)
1054 
1055 typedef const ACTCTXA *PCACTCTXA;
1056 typedef const ACTCTXW *PCACTCTXW;
1057 DECL_WINELIB_TYPE_AW(PCACTCTX)
1058 
1059 typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
1060     ULONG  cbSize;
1061     ULONG  ulDataFormatVersion;
1062     PVOID  lpData;
1063     ULONG  ulLength;
1064     PVOID  lpSectionGlobalData;
1065     ULONG  ulSectionGlobalDataLength;
1066     PVOID  lpSectionBase;
1067     ULONG  ulSectionTotalLength;
1068     HANDLE hActCtx;
1069     ULONG  ulAssemblyRosterIndex;
1070 } ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600;
1071 typedef const ACTCTX_SECTION_KEYED_DATA_2600 *PCACTCTX_SECTION_KEYED_DATA_2600;
1072 
1073 typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
1074     PVOID lpInformation;
1075     PVOID lpSectionBase;
1076     ULONG ulSectionLength;
1077     PVOID lpSectionGlobalDataBase;
1078     ULONG ulSectionGlobalDataLength;
1079 } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
1080 typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
1081 
1082 typedef struct tagACTCTX_SECTION_KEYED_DATA {
1083     ULONG  cbSize;
1084     ULONG  ulDataFormatVersion;
1085     PVOID  lpData;
1086     ULONG  ulLength;
1087     PVOID  lpSectionGlobalData;
1088     ULONG  ulSectionGlobalDataLength;
1089     PVOID  lpSectionBase;
1090     ULONG  ulSectionTotalLength;
1091     HANDLE hActCtx;
1092     ULONG  ulAssemblyRosterIndex;
1093 
1094     /* Non 2600 extra fields */
1095     ULONG ulFlags;
1096     ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
1097 } ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA;
1098 typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
1099 
1100 typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
1101     HANDLE hActCtx;
1102     DWORD  dwFlags;
1103 } ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION;
1104 
1105 typedef BOOL (WINAPI *PQUERYACTCTXW_FUNC)(DWORD,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T *);
1106 
1107 typedef struct tagCOMSTAT
1108 {
1109     DWORD fCtsHold : 1;
1110     DWORD fDsrHold : 1;
1111     DWORD fRlsdHold : 1;
1112     DWORD fXoffHold : 1;
1113     DWORD fXoffSent : 1;
1114     DWORD fEof : 1;
1115     DWORD fTxim : 1;
1116     DWORD fReserved : 25;
1117     DWORD cbInQue;
1118     DWORD cbOutQue;
1119 } COMSTAT, *LPCOMSTAT;
1120 
1121 typedef struct tagDCB
1122 {
1123     DWORD DCBlength;
1124     DWORD BaudRate;
1125     unsigned fBinary               :1;
1126     unsigned fParity               :1;
1127     unsigned fOutxCtsFlow          :1;
1128     unsigned fOutxDsrFlow          :1;
1129     unsigned fDtrControl           :2;
1130     unsigned fDsrSensitivity       :1;
1131     unsigned fTXContinueOnXoff     :1;
1132     unsigned fOutX                 :1;
1133     unsigned fInX                  :1;
1134     unsigned fErrorChar            :1;
1135     unsigned fNull                 :1;
1136     unsigned fRtsControl           :2;
1137     unsigned fAbortOnError         :1;
1138     unsigned fDummy2               :17;
1139     WORD wReserved;
1140     WORD XonLim;
1141     WORD XoffLim;
1142     BYTE ByteSize;
1143     BYTE Parity;
1144     BYTE StopBits;
1145     char XonChar;
1146     char XoffChar;
1147     char ErrorChar;
1148     char EofChar;
1149     char EvtChar;
1150     WORD wReserved1;
1151 } DCB, *LPDCB;
1152 
1153 typedef struct tagCOMMCONFIG {
1154         DWORD dwSize;
1155         WORD  wVersion;
1156         WORD  wReserved;
1157         DCB   dcb;
1158         DWORD dwProviderSubType;
1159         DWORD dwProviderOffset;
1160         DWORD dwProviderSize;
1161         DWORD wcProviderData[1];
1162 } COMMCONFIG, *LPCOMMCONFIG;
1163 
1164 typedef struct tagCOMMPROP {
1165         WORD  wPacketLength;
1166         WORD  wPacketVersion;
1167         DWORD dwServiceMask;
1168         DWORD dwReserved1;
1169         DWORD dwMaxTxQueue;
1170         DWORD dwMaxRxQueue;
1171         DWORD dwMaxBaud;
1172         DWORD dwProvSubType;
1173         DWORD dwProvCapabilities;
1174         DWORD dwSettableParams;
1175         DWORD dwSettableBaud;
1176         WORD  wSettableData;
1177         WORD  wSettableStopParity;
1178         DWORD dwCurrentTxQueue;
1179         DWORD dwCurrentRxQueue;
1180         DWORD dwProvSpec1;
1181         DWORD dwProvSpec2;
1182         WCHAR wcProvChar[1];
1183 } COMMPROP, *LPCOMMPROP;
1184 
1185 #define SP_SERIALCOMM ((DWORD)1)
1186 
1187 #define BAUD_075     ((DWORD)0x01)
1188 #define BAUD_110     ((DWORD)0x02)
1189 #define BAUD_134_5   ((DWORD)0x04)
1190 #define BAUD_150     ((DWORD)0x08)
1191 #define BAUD_300     ((DWORD)0x10)
1192 #define BAUD_600     ((DWORD)0x20)
1193 #define BAUD_1200    ((DWORD)0x40)
1194 #define BAUD_1800    ((DWORD)0x80)
1195 #define BAUD_2400    ((DWORD)0x100)
1196 #define BAUD_4800    ((DWORD)0x200)
1197 #define BAUD_7200    ((DWORD)0x400)
1198 #define BAUD_9600    ((DWORD)0x800)
1199 #define BAUD_14400   ((DWORD)0x1000)
1200 #define BAUD_19200   ((DWORD)0x2000)
1201 #define BAUD_38400   ((DWORD)0x4000)
1202 #define BAUD_56K     ((DWORD)0x8000)
1203 #define BAUD_57600   ((DWORD)0x40000)
1204 #define BAUD_115200  ((DWORD)0x20000)
1205 #define BAUD_128K    ((DWORD)0x10000)
1206 #define BAUD_USER    ((DWORD)0x10000000)
1207 
1208 #define PST_FAX            ((DWORD)0x21)
1209 #define PST_LAT            ((DWORD)0x101)
1210 #define PST_MODEM          ((DWORD)0x06)
1211 #define PST_NETWORK_BRIDGE ((DWORD)0x100)
1212 #define PST_PARALLELPORT   ((DWORD)0x02)
1213 #define PST_RS232          ((DWORD)0x01)
1214 #define PST_RS442          ((DWORD)0x03)
1215 #define PST_RS423          ((DWORD)0x04)
1216 #define PST_RS449          ((DWORD)0x06)
1217 #define PST_SCANNER        ((DWORD)0x22)
1218 #define PST_TCPIP_TELNET   ((DWORD)0x102)
1219 #define PST_UNSPECIFIED    ((DWORD)0x00)
1220 #define PST_X25            ((DWORD)0x103)
1221 
1222 #define PCF_16BITMODE     ((DWORD)0x200)
1223 #define PCF_DTRDSR        ((DWORD)0x01)
1224 #define PCF_INTTIMEOUTS   ((DWORD)0x80)
1225 #define PCF_PARITY_CHECK  ((DWORD)0x08)
1226 #define PCF_RLSD          ((DWORD)0x04)
1227 #define PCF_RTSCTS        ((DWORD)0x02)
1228 #define PCF_SETXCHAR      ((DWORD)0x20)
1229 #define PCF_SPECIALCHARS  ((DWORD)0x100)
1230 #define PCF_TOTALTIMEOUTS ((DWORD)0x40)
1231 #define PCF_XONXOFF       ((DWORD)0x10)
1232 
1233 #define SP_BAUD         ((DWORD)0x02)
1234 #define SP_DATABITS     ((DWORD)0x04)
1235 #define SP_HANDSHAKING  ((DWORD)0x10)
1236 #define SP_PARITY       ((DWORD)0x01)
1237 #define SP_PARITY_CHECK ((DWORD)0x20)
1238 #define SP_RLSD         ((DWORD)0x40)
1239 #define SP_STOPBITS     ((DWORD)0x08)
1240 
1241 #define DATABITS_5   ((DWORD)0x01)
1242 #define DATABITS_6   ((DWORD)0x02)
1243 #define DATABITS_7   ((DWORD)0x04)
1244 #define DATABITS_8   ((DWORD)0x08)
1245 #define DATABITS_16  ((DWORD)0x10)
1246 #define DATABITS_16X ((DWORD)0x20)
1247 
1248 #define STOPBITS_10 ((DWORD)1)
1249 #define STOPBITS_15 ((DWORD)2)
1250 #define STOPBITS_20 ((DWORD)4)
1251 
1252 #define PARITY_NONE  ((DWORD)0x100)
1253 #define PARITY_ODD   ((DWORD)0x200)
1254 #define PARITY_EVEN  ((DWORD)0x400)
1255 #define PARITY_MARK  ((DWORD)0x800)
1256 #define PARITY_SPACE ((DWORD)0x1000)
1257 
1258 typedef struct tagCOMMTIMEOUTS {
1259         DWORD   ReadIntervalTimeout;
1260         DWORD   ReadTotalTimeoutMultiplier;
1261         DWORD   ReadTotalTimeoutConstant;
1262         DWORD   WriteTotalTimeoutMultiplier;
1263         DWORD   WriteTotalTimeoutConstant;
1264 } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
1265 
1266 #define GET_TAPE_MEDIA_INFORMATION 0
1267 #define GET_TAPE_DRIVE_INFORMATION 1
1268 #define SET_TAPE_MEDIA_INFORMATION 0
1269 #define SET_TAPE_DRIVE_INFORMATION 1
1270 
1271 #define PROCESS_NAME_NATIVE        1
1272 
1273 typedef void (CALLBACK *PAPCFUNC)(ULONG_PTR);
1274 typedef void (CALLBACK *PTIMERAPCROUTINE)(LPVOID,DWORD,DWORD);
1275 
1276 typedef enum _COMPUTER_NAME_FORMAT
1277 {
1278         ComputerNameNetBIOS,
1279         ComputerNameDnsHostname,
1280         ComputerNameDnsDomain,
1281         ComputerNameDnsFullyQualified,
1282         ComputerNamePhysicalNetBIOS,
1283         ComputerNamePhysicalDnsHostname,
1284         ComputerNamePhysicalDnsDomain,
1285         ComputerNamePhysicalDnsFullyQualified,
1286         ComputerNameMax
1287 } COMPUTER_NAME_FORMAT;
1288 
1289 #define HW_PROFILE_GUIDLEN      39
1290 #define MAX_PROFILE_LEN         80
1291 
1292 #define DOCKINFO_UNDOCKED       0x1
1293 #define DOCKINFO_DOCKED         0x2
1294 #define DOCKINFO_USER_SUPPLIED  0x4
1295 #define DOCKINFO_USER_UNDOCKED  (DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED)
1296 #define DOCKINFO_USER_DOCKED    (DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED)
1297 
1298 typedef struct tagHW_PROFILE_INFOA {
1299     DWORD dwDockInfo;
1300     CHAR  szHwProfileGuid[HW_PROFILE_GUIDLEN];
1301     CHAR  szHwProfileName[MAX_PROFILE_LEN];
1302 } HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA;
1303 
1304 typedef struct tagHW_PROFILE_INFOW {
1305     DWORD dwDockInfo;
1306     WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
1307     WCHAR szHwProfileName[MAX_PROFILE_LEN];
1308 } HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW;
1309 
1310 DECL_WINELIB_TYPE_AW(HW_PROFILE_INFO)
1311 DECL_WINELIB_TYPE_AW(LPHW_PROFILE_INFO)
1312 
1313 typedef enum _DEP_SYSTEM_POLICY_TYPE {
1314     AlwaysOff = 0,
1315     AlwaysOn = 1,
1316     OptIn = 2,
1317     OptOut = 3
1318 } DEP_SYSTEM_POLICY_TYPE;
1319 
1320 /* Event Logging */
1321 
1322 #define EVENTLOG_FULL_INFO          0
1323 
1324 typedef struct _EVENTLOG_FULL_INFORMATION {
1325     DWORD dwFull;
1326 } EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION;
1327 
1328 
1329 /* Stream data structures and defines */
1330 /*the types of backup data -- WIN32_STREAM_ID.dwStreamId below*/
1331 #define BACKUP_INVALID        0
1332 #define BACKUP_DATA           1
1333 #define BACKUP_EA_DATA        2
1334 #define BACKUP_SECURITY_DATA  3
1335 #define BACKUP_ALTERNATE_DATA 4
1336 #define BACKUP_LINK           5
1337 #define BACKUP_PROPERTY_DATA  6
1338 #define BACKUP_OBJECT_ID      7
1339 #define BACKUP_REPARSE_DATA   8
1340 #define BACKUP_SPARSE_BLOCK   9
1341 
1342 /*flags for WIN32_STREAM_ID.dwStreamAttributes below*/
1343 #define STREAM_NORMAL_ATTRIBUTE    0
1344 #define STREAM_MODIFIED_WHEN_READ  1
1345 #define STREAM_CONTAINS_SECURITY   2
1346 #define STREAM_CONTAINS_PROPERTIES 4
1347 #define STREAM_SPARSE_ATTRIBUTE    8
1348 
1349 #include <pshpack8.h>
1350 typedef struct _WIN32_STREAM_ID {
1351         DWORD   dwStreamId;
1352         DWORD   dwStreamAttributes;
1353         LARGE_INTEGER DECLSPEC_ALIGN(8) Size;
1354         DWORD   dwStreamNameSize;
1355         WCHAR   cStreamName[ANYSIZE_ARRAY];
1356 } WIN32_STREAM_ID, *LPWIN32_STREAM_ID;
1357 #include <poppack.h>
1358 
1359 
1360 /* GetBinaryType return values.
1361  */
1362 
1363 #define SCS_32BIT_BINARY    0
1364 #define SCS_DOS_BINARY      1
1365 #define SCS_WOW_BINARY      2
1366 #define SCS_PIF_BINARY      3
1367 #define SCS_POSIX_BINARY    4
1368 #define SCS_OS216_BINARY    5
1369 #define SCS_64BIT_BINARY    6
1370 
1371 /* flags for DefineDosDevice */
1372 #define DDD_RAW_TARGET_PATH         0x00000001
1373 #define DDD_REMOVE_DEFINITION       0x00000002
1374 #define DDD_EXACT_MATCH_ON_REMOVE   0x00000004
1375 #define DDD_NO_BROADCAST_SYSTEM     0x00000008
1376 #define DDD_LUID_BROADCAST_DRIVE    0x00000010
1377 
1378 #define LOGON_WITH_PROFILE          0x00000001
1379 #define LOGON_NETCREDENTIALS_ONLY   0x00000002
1380 #define LOGON_ZERO_PASSWORD_BUFFER  0x80000000
1381 
1382 /* one-time initialisation API */
1383 typedef RTL_RUN_ONCE  INIT_ONCE;
1384 typedef PRTL_RUN_ONCE PINIT_ONCE;
1385 typedef PRTL_RUN_ONCE LPINIT_ONCE;
1386 #define INIT_ONCE_STATIC_INIT       RTL_RUN_ONCE_INIT
1387 #define INIT_ONCE_CHECK_ONLY        RTL_RUN_ONCE_CHECK_ONLY
1388 #define INIT_ONCE_ASYNC             RTL_RUN_ONCE_ASYNC
1389 #define INIT_ONCE_INIT_FAILED       RTL_RUN_ONCE_INIT_FAILED
1390 /* initialization callback prototype */
1391 typedef BOOL (WINAPI *PINIT_ONCE_FN)(PINIT_ONCE,PVOID,PVOID*);
1392 
1393 WINBASEAPI BOOL        WINAPI ActivateActCtx(HANDLE,ULONG_PTR *);
1394 WINADVAPI  BOOL        WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
1395 WINADVAPI  BOOL        WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
1396 WINADVAPI  BOOL        WINAPI AddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
1397 WINADVAPI  BOOL        WINAPI AddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
1398 WINADVAPI  BOOL        WINAPI AddAce(PACL,DWORD,DWORD,LPVOID,DWORD);
1399 WINBASEAPI ATOM        WINAPI AddAtomA(LPCSTR);
1400 WINBASEAPI ATOM        WINAPI AddAtomW(LPCWSTR);
1401 #define                       AddAtom WINELIB_NAME_AW(AddAtom)
1402 WINADVAPI  BOOL        WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
1403 WINADVAPI  BOOL        WINAPI AddAuditAccessAceEx(PACL,DWORD,DWORD,DWORD,PSID,BOOL,BOOL);
1404 WINBASEAPI VOID        WINAPI AddRefActCtx(HANDLE);
1405 WINBASEAPI PVOID       WINAPI AddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER);
1406 WINADVAPI  BOOL        WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD);
1407 WINADVAPI  BOOL        WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
1408 WINADVAPI  BOOL        WINAPI AccessCheckAndAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,LPDWORD,LPBOOL,LPBOOL);
1409 WINADVAPI  BOOL        WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,LPDWORD,LPBOOL,LPBOOL);
1410 #define                       AccessCheckAndAuditAlarm WINELIB_NAME_AW(AccessCheckAndAuditAlarm)
1411 WINADVAPI  BOOL        WINAPI AccessCheckByType(PSECURITY_DESCRIPTOR,PSID,HANDLE,DWORD,POBJECT_TYPE_LIST,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
1412 WINBASEAPI VOID        WINAPI AcquireSRWLockExclusive(PSRWLOCK);
1413 WINBASEAPI VOID        WINAPI AcquireSRWLockShared(PSRWLOCK);
1414 WINADVAPI  BOOL        WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
1415 WINADVAPI  BOOL        WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
1416 WINADVAPI  BOOL        WINAPI AllocateLocallyUniqueId(PLUID);
1417 WINADVAPI  BOOL        WINAPI AreAllAccessesGranted(DWORD,DWORD);
1418 WINADVAPI  BOOL        WINAPI AreAnyAccessesGranted(DWORD,DWORD);
1419 WINBASEAPI BOOL        WINAPI AreFileApisANSI(void);
1420 WINBASEAPI BOOL        WINAPI AssignProcessToJobObject(HANDLE,HANDLE);
1421 WINADVAPI  BOOL        WINAPI BackupEventLogA(HANDLE,LPCSTR);
1422 WINADVAPI  BOOL        WINAPI BackupEventLogW(HANDLE,LPCWSTR);
1423 #define                       BackupEventLog WINELIB_NAME_AW(BackupEventLog)
1424 WINBASEAPI BOOL        WINAPI BackupRead(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*);
1425 WINBASEAPI BOOL        WINAPI BackupSeek(HANDLE,DWORD,DWORD,LPDWORD,LPDWORD,LPVOID*);
1426 WINBASEAPI BOOL        WINAPI BackupWrite(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*);
1427 WINBASEAPI BOOL        WINAPI Beep(DWORD,DWORD);
1428 WINBASEAPI HANDLE      WINAPI BeginUpdateResourceA(LPCSTR,BOOL);
1429 WINBASEAPI HANDLE      WINAPI BeginUpdateResourceW(LPCWSTR,BOOL);
1430 #define                       BeginUpdateResource WINELIB_NAME_AW(BeginUpdateResource)
1431 WINBASEAPI BOOL        WINAPI BindIoCompletionCallback(HANDLE,LPOVERLAPPED_COMPLETION_ROUTINE,ULONG);
1432 WINBASEAPI BOOL        WINAPI BuildCommDCBA(LPCSTR,LPDCB);
1433 WINBASEAPI BOOL        WINAPI BuildCommDCBW(LPCWSTR,LPDCB);
1434 #define                       BuildCommDCB WINELIB_NAME_AW(BuildCommDCB)
1435 WINBASEAPI BOOL        WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS);
1436 WINBASEAPI BOOL        WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS);
1437 #define                       BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts)
1438 WINBASEAPI BOOL        WINAPI CallNamedPipeA(LPCSTR,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,DWORD);
1439 WINBASEAPI BOOL        WINAPI CallNamedPipeW(LPCWSTR,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,DWORD);
1440 #define                       CallNamedPipe WINELIB_NAME_AW(CallNamedPipe)
1441 WINBASEAPI BOOL        WINAPI CancelIo(HANDLE);
1442 WINBASEAPI BOOL        WINAPI CancelIoEx(HANDLE,LPOVERLAPPED);
1443 WINBASEAPI BOOL        WINAPI CancelTimerQueueTimer(HANDLE,HANDLE);
1444 WINBASEAPI BOOL        WINAPI CancelWaitableTimer(HANDLE);
1445 WINBASEAPI BOOL        WINAPI ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG);
1446 WINADVAPI  BOOL        WINAPI CheckTokenMembership(HANDLE,PSID,PBOOL);
1447 WINBASEAPI BOOL        WINAPI ClearCommBreak(HANDLE);
1448 WINBASEAPI BOOL        WINAPI ClearCommError(HANDLE,LPDWORD,LPCOMSTAT);
1449 WINADVAPI  BOOL        WINAPI ClearEventLogA(HANDLE,LPCSTR);
1450 WINADVAPI  BOOL        WINAPI ClearEventLogW(HANDLE,LPCWSTR);
1451 #define                       ClearEventLog WINELIB_NAME_AW(ClearEventLog)
1452 WINADVAPI  BOOL        WINAPI CloseEventLog(HANDLE);
1453 WINBASEAPI BOOL        WINAPI CloseHandle(HANDLE);
1454 WINBASEAPI BOOL        WINAPI CommConfigDialogA(LPCSTR,HWND,LPCOMMCONFIG);
1455 WINBASEAPI BOOL        WINAPI CommConfigDialogW(LPCWSTR,HWND,LPCOMMCONFIG);
1456 #define                       CommConfigDialog WINELIB_NAME_AW(CommConfigDialog)
1457 WINBASEAPI BOOL        WINAPI ConnectNamedPipe(HANDLE,LPOVERLAPPED);
1458 WINBASEAPI BOOL        WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD);
1459 WINBASEAPI HANDLE      WINAPI ConvertToGlobalHandle(HANDLE hSrc);
1460 WINBASEAPI BOOL        WINAPI CopyFileA(LPCSTR,LPCSTR,BOOL);
1461 WINBASEAPI BOOL        WINAPI CopyFileW(LPCWSTR,LPCWSTR,BOOL);
1462 #define                       CopyFile WINELIB_NAME_AW(CopyFile)
1463 WINBASEAPI BOOL        WINAPI CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1464 WINBASEAPI BOOL        WINAPI CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1465 #define                       CopyFileEx WINELIB_NAME_AW(CopyFileEx)
1466 WINADVAPI  BOOL        WINAPI CopySid(DWORD,PSID,PSID);
1467 WINBASEAPI INT         WINAPI CompareFileTime(const FILETIME*,const FILETIME*);
1468 WINBASEAPI BOOL        WINAPI ConvertFiberToThread(void);
1469 WINBASEAPI LPVOID      WINAPI ConvertThreadToFiber(LPVOID);
1470 WINBASEAPI LPVOID      WINAPI ConvertThreadToFiberEx(LPVOID,DWORD);
1471 WINADVAPI  BOOL        WINAPI ConvertToAutoInheritPrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,GUID*,BOOL,PGENERIC_MAPPING);
1472 WINBASEAPI HANDLE      WINAPI CreateActCtxA(PCACTCTXA);
1473 WINBASEAPI HANDLE      WINAPI CreateActCtxW(PCACTCTXW);
1474 #define                       CreateActCtx WINELIB_NAME_AW(CreateActCtx)
1475 WINBASEAPI BOOL        WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
1476 WINBASEAPI BOOL        WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);
1477 #define                       CreateDirectory WINELIB_NAME_AW(CreateDirectory)
1478 WINBASEAPI BOOL        WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1479 WINBASEAPI BOOL        WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1480 #define                       CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx)
1481 WINBASEAPI HANDLE      WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR);
1482 WINBASEAPI HANDLE      WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR);
1483 #define                       CreateEvent WINELIB_NAME_AW(CreateEvent)
1484 WINBASEAPI HANDLE      WINAPI CreateEventExA(SECURITY_ATTRIBUTES*,LPCSTR,DWORD,DWORD);
1485 WINBASEAPI HANDLE      WINAPI CreateEventExW(SECURITY_ATTRIBUTES*,LPCWSTR,DWORD,DWORD);
1486 #define                       CreateEventEx WINELIB_NAME_AW(CreateEventEx)
1487 WINBASEAPI LPVOID      WINAPI CreateFiber(SIZE_T,LPFIBER_START_ROUTINE,LPVOID);
1488 WINBASEAPI LPVOID      WINAPI CreateFiberEx(SIZE_T,SIZE_T,DWORD,LPFIBER_START_ROUTINE,LPVOID);
1489 WINBASEAPI HANDLE      WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1490 WINBASEAPI HANDLE      WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1491 #define                       CreateFile WINELIB_NAME_AW(CreateFile)
1492 WINBASEAPI HANDLE      WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR);
1493 WINBASEAPI HANDLE      WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR);
1494 #define                       CreateFileMapping WINELIB_NAME_AW(CreateFileMapping)
1495 WINBASEAPI HANDLE      WINAPI CreateIoCompletionPort(HANDLE,HANDLE,ULONG_PTR,DWORD);
1496 WINBASEAPI HANDLE      WINAPI CreateJobObjectA(LPSECURITY_ATTRIBUTES,LPCSTR);
1497 WINBASEAPI HANDLE      WINAPI CreateJobObjectW(LPSECURITY_ATTRIBUTES,LPCWSTR);
1498 #define                       CreateJobObject WINELIB_NAME_AW(CreateJobObject)
1499 WINBASEAPI HANDLE      WINAPI CreateMailslotA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1500 WINBASEAPI HANDLE      WINAPI CreateMailslotW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1501 #define                       CreateMailslot WINELIB_NAME_AW(CreateMailslot)
1502 WINBASEAPI HANDLE      WINAPI CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE);
1503 WINBASEAPI HANDLE      WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1504 WINBASEAPI HANDLE      WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1505 #define                       CreateMutex WINELIB_NAME_AW(CreateMutex)
1506 WINBASEAPI HANDLE      WINAPI CreateMutexExA(SECURITY_ATTRIBUTES*,LPCSTR,DWORD,DWORD);
1507 WINBASEAPI HANDLE      WINAPI CreateMutexExW(SECURITY_ATTRIBUTES*,LPCWSTR,DWORD,DWORD);
1508 #define                       CreateMutexEx WINELIB_NAME_AW(CreateMutexEx)
1509 WINBASEAPI HANDLE      WINAPI CreateNamedPipeA(LPCSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1510 WINBASEAPI HANDLE      WINAPI CreateNamedPipeW(LPCWSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1511 #define                       CreateNamedPipe WINELIB_NAME_AW(CreateNamedPipe)
1512 WINBASEAPI BOOL        WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
1513 WINADVAPI  BOOL        WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
1514 WINBASEAPI BOOL        WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1515 WINBASEAPI BOOL        WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1516 #define                       CreateProcess WINELIB_NAME_AW(CreateProcess)
1517 WINADVAPI  BOOL        WINAPI CreateProcessAsUserA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1518 WINADVAPI  BOOL        WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1519 #define                       CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
1520 WINADVAPI  BOOL        WINAPI CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1521 WINBASEAPI HANDLE      WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1522 WINADVAPI  BOOL        WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE);
1523 WINBASEAPI HANDLE      WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
1524 WINBASEAPI HANDLE      WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
1525 #define                       CreateSemaphore WINELIB_NAME_AW(CreateSemaphore)
1526 WINBASEAPI HANDLE      WINAPI CreateSemaphoreExA(SECURITY_ATTRIBUTES*,LONG,LONG,LPCSTR,DWORD,DWORD);
1527 WINBASEAPI HANDLE      WINAPI CreateSemaphoreExW(SECURITY_ATTRIBUTES*,LONG,LONG,LPCWSTR,DWORD,DWORD);
1528 #define                       CreateSemaphoreEx WINELIB_NAME_AW(CreateSemaphoreEx)
1529 WINBASEAPI DWORD       WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
1530 WINBASEAPI HANDLE      WINAPI CreateThread(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1531 WINBASEAPI HANDLE      WINAPI CreateTimerQueue(void);
1532 WINBASEAPI BOOL        WINAPI CreateTimerQueueTimer(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,ULONG);
1533 WINBASEAPI HANDLE      WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1534 WINBASEAPI HANDLE      WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1535 #define                       CreateWaitableTimer WINELIB_NAME_AW(CreateWaitableTimer)
1536 WINBASEAPI HANDLE      WINAPI CreateWaitableTimerExA(SECURITY_ATTRIBUTES*,LPCSTR,DWORD,DWORD);
1537 WINBASEAPI HANDLE      WINAPI CreateWaitableTimerExW(SECURITY_ATTRIBUTES*,LPCWSTR,DWORD,DWORD);
1538 #define                       CreateWaitableTimerEx WINELIB_NAME_AW(CreateWaitableTimerEx)
1539 WINADVAPI  BOOL        WINAPI CreateWellKnownSid(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*);
1540 WINBASEAPI BOOL        WINAPI DeactivateActCtx(DWORD,ULONG_PTR);
1541 WINBASEAPI BOOL        WINAPI DebugActiveProcess(DWORD);
1542 WINBASEAPI BOOL        WINAPI DebugActiveProcessStop(DWORD);
1543 WINBASEAPI void        WINAPI DebugBreak(void);
1544 WINBASEAPI BOOL        WINAPI DebugBreakProcess(HANDLE);
1545 WINBASEAPI BOOL        WINAPI DebugSetProcessKillOnExit(BOOL);
1546 WINBASEAPI PVOID       WINAPI DecodePointer(PVOID);
1547 WINADVAPI  BOOL        WINAPI DecryptFileA(LPCSTR,DWORD);
1548 WINADVAPI  BOOL        WINAPI DecryptFileW(LPCWSTR,DWORD);
1549 #define                       DecryptFile WINELIB_NAME_AW(DecryptFile)
1550 WINBASEAPI BOOL        WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR);
1551 WINBASEAPI BOOL        WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR);
1552 #define                       DefineDosDevice WINELIB_NAME_AW(DefineDosDevice)
1553 #define                       DefineHandleTable(w) ((w),TRUE)
1554 WINADVAPI  BOOL        WINAPI DeleteAce(PACL,DWORD);
1555 WINBASEAPI ATOM        WINAPI DeleteAtom(ATOM);
1556 WINBASEAPI void        WINAPI DeleteCriticalSection(CRITICAL_SECTION *lpCrit);
1557 WINBASEAPI void        WINAPI DeleteFiber(LPVOID);
1558 WINBASEAPI BOOL        WINAPI DeleteFileA(LPCSTR);
1559 WINBASEAPI BOOL        WINAPI DeleteFileW(LPCWSTR);
1560 #define                       DeleteFile WINELIB_NAME_AW(DeleteFile)
1561 WINBASEAPI BOOL        WINAPI DeleteTimerQueue(HANDLE);
1562 WINBASEAPI BOOL        WINAPI DeleteTimerQueueEx(HANDLE,HANDLE);
1563 WINBASEAPI BOOL        WINAPI DeleteTimerQueueTimer(HANDLE,HANDLE,HANDLE);
1564 WINBASEAPI BOOL        WINAPI DeleteVolumeMountPointA(LPCSTR);
1565 WINBASEAPI BOOL        WINAPI DeleteVolumeMountPointW(LPCWSTR);
1566 #define                       DeleteVolumeMountPoint WINELIB_NAME_AW(DeleteVolumeMountPoint)
1567 WINADVAPI  BOOL        WINAPI DeregisterEventSource(HANDLE);
1568 WINADVAPI  BOOL        WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
1569 WINBASEAPI BOOL        WINAPI DeviceIoControl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
1570 WINBASEAPI BOOL        WINAPI DisableThreadLibraryCalls(HMODULE);
1571 WINBASEAPI BOOL        WINAPI DisconnectNamedPipe(HANDLE);
1572 WINBASEAPI BOOL        WINAPI DnsHostnameToComputerNameA(LPCSTR,LPSTR,LPDWORD);
1573 WINBASEAPI BOOL        WINAPI DnsHostnameToComputerNameW(LPCWSTR,LPWSTR,LPDWORD);
1574 #define                       DnsHostnameToComputerName WINELIB_NAME_AW(DnsHostnameToComputerName)
1575 WINBASEAPI BOOL        WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
1576 WINBASEAPI BOOL        WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,HANDLE*,DWORD,BOOL,DWORD);
1577 WINADVAPI  BOOL        WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
1578 WINADVAPI  BOOL        WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
1579 WINBASEAPI BOOL        WINAPI EscapeCommFunction(HANDLE,UINT);
1580 WINBASEAPI PVOID       WINAPI EncodePointer(PVOID);
1581 WINADVAPI  BOOL        WINAPI EncryptFileA(LPCSTR);
1582 WINADVAPI  BOOL        WINAPI EncryptFileW(LPCWSTR);
1583 #define                       EncryptFile WINELIB_NAME_AW(EncryptFile)
1584 WINBASEAPI BOOL        WINAPI EndUpdateResourceA(HANDLE,BOOL);
1585 WINBASEAPI BOOL        WINAPI EndUpdateResourceW(HANDLE,BOOL);
1586 #define                       EndUpdateResource WINELIB_NAME_AW(EndUpdateResource)
1587 WINBASEAPI void        WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit);
1588 WINBASEAPI BOOL        WINAPI EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG_PTR);
1589 WINBASEAPI BOOL        WINAPI EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG_PTR);
1590 #define                       EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages)
1591 WINBASEAPI BOOL        WINAPI EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,LONG_PTR);
1592 WINBASEAPI BOOL        WINAPI EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,LONG_PTR);
1593 #define                       EnumResourceNames WINELIB_NAME_AW(EnumResourceNames)
1594 WINBASEAPI BOOL        WINAPI EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG_PTR);
1595 WINBASEAPI BOOL        WINAPI EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG_PTR);
1596 #define                       EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes)
1597 WINADVAPI  BOOL        WINAPI EqualSid(PSID, PSID);
1598 WINADVAPI  BOOL        WINAPI EqualPrefixSid(PSID,PSID);
1599 WINBASEAPI DWORD       WINAPI EraseTape(HANDLE,DWORD,BOOL);
1600 WINBASEAPI VOID DECLSPEC_NORETURN WINAPI ExitProcess(DWORD);
1601 WINBASEAPI VOID DECLSPEC_NORETURN WINAPI ExitThread(DWORD);
1602 WINBASEAPI DWORD       WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
1603 WINBASEAPI DWORD       WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
1604 #define                       ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings)
1605 WINBASEAPI void        WINAPI FatalAppExitA(UINT,LPCSTR);
1606 WINBASEAPI void        WINAPI FatalAppExitW(UINT,LPCWSTR);
1607 WINBASEAPI void        WINAPI FatalExit(int);
1608 #define                       FatalAppExit WINELIB_NAME_AW(FatalAppExit)
1609 WINADVAPI  BOOL        WINAPI FileEncryptionStatusA(LPCSTR,LPDWORD);
1610 WINADVAPI  BOOL        WINAPI FileEncryptionStatusW(LPCWSTR,LPDWORD);
1611 #define                       FileEncryptionStatus WINELIB_NAME_AW(FileEncryptionStatus)
1612 WINBASEAPI BOOL        WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD);
1613 WINBASEAPI BOOL        WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME);
1614 WINBASEAPI BOOL        WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME);
1615 WINBASEAPI BOOL        WINAPI FindActCtxSectionStringA(DWORD,const GUID *,ULONG,LPCSTR,PACTCTX_SECTION_KEYED_DATA);
1616 WINBASEAPI BOOL        WINAPI FindActCtxSectionStringW(DWORD,const GUID *,ULONG,LPCWSTR,PACTCTX_SECTION_KEYED_DATA);
1617 #define                       FindActCtxSectionString WINELIB_NAME_AW(FindActCtxSectionString)
1618 WINBASEAPI BOOL        WINAPI FindActCtxSectionGuid(DWORD,const GUID *,ULONG,const GUID *,PACTCTX_SECTION_KEYED_DATA);
1619 WINBASEAPI ATOM        WINAPI FindAtomA(LPCSTR);
1620 WINBASEAPI ATOM        WINAPI FindAtomW(LPCWSTR);
1621 #define                       FindAtom WINELIB_NAME_AW(FindAtom)
1622 WINBASEAPI BOOL        WINAPI FindClose(HANDLE);
1623 WINBASEAPI HANDLE      WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD);
1624 WINBASEAPI HANDLE      WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD);
1625 #define                       FindFirstChangeNotification WINELIB_NAME_AW(FindFirstChangeNotification)
1626 WINBASEAPI HANDLE      WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
1627 WINBASEAPI HANDLE      WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
1628 #define                       FindFirstFile WINELIB_NAME_AW(FindFirstFile)
1629 WINBASEAPI HANDLE      WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
1630 WINBASEAPI HANDLE      WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
1631 #define                       FindFirstFileEx WINELIB_NAME_AW(FindFirstFileEx)
1632 WINADVAPI  BOOL        WINAPI FindFirstFreeAce(PACL,LPVOID*);
1633 WINBASEAPI BOOL        WINAPI FindNextChangeNotification(HANDLE);
1634 WINBASEAPI BOOL        WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
1635 WINBASEAPI BOOL        WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
1636 #define                       FindNextFile WINELIB_NAME_AW(FindNextFile)
1637 WINBASEAPI BOOL        WINAPI FindCloseChangeNotification(HANDLE);
1638 WINBASEAPI HRSRC       WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR);
1639 WINBASEAPI HRSRC       WINAPI FindResourceW(HMODULE,LPCWSTR,LPCWSTR);
1640 #define                       FindResource WINELIB_NAME_AW(FindResource)
1641 WINBASEAPI HRSRC       WINAPI FindResourceExA(HMODULE,LPCSTR,LPCSTR,WORD);
1642 WINBASEAPI HRSRC       WINAPI FindResourceExW(HMODULE,LPCWSTR,LPCWSTR,WORD);
1643 #define                       FindResourceEx WINELIB_NAME_AW(FindResourceEx)
1644 WINBASEAPI HANDLE      WINAPI FindFirstVolumeA(LPSTR,DWORD);
1645 WINBASEAPI HANDLE      WINAPI FindFirstVolumeW(LPWSTR,DWORD);
1646 #define                       FindFirstVolume WINELIB_NAME_AW(FindFirstVolume)
1647 WINBASEAPI HANDLE      WINAPI FindFirstVolumeMountPointA(LPCSTR,LPSTR,DWORD);
1648 WINBASEAPI HANDLE      WINAPI FindFirstVolumeMountPointW(LPCWSTR,LPWSTR,DWORD);
1649 #define                       FindFirstVolumeMountPoint WINELIB_NAME_AW(FindFirstVolumeMountPoint)
1650 WINBASEAPI BOOL        WINAPI FindNextVolumeA(HANDLE,LPSTR,DWORD);
1651 WINBASEAPI BOOL        WINAPI FindNextVolumeW(HANDLE,LPWSTR,DWORD);
1652 #define                       FindNextVolume WINELIB_NAME_AW(FindNextVolume)
1653 WINBASEAPI BOOL        WINAPI FindNextVolumeMountPointA(HANDLE,LPSTR,DWORD);
1654 WINBASEAPI BOOL        WINAPI FindNextVolumeMountPointW(HANDLE,LPWSTR,DWORD);
1655 #define                       FindNextVolumeMountPoint WINELIB_NAME_AW(FindNextVolumeMountPoint)
1656 WINBASEAPI BOOL        WINAPI FindVolumeClose(HANDLE);
1657 WINBASEAPI BOOL        WINAPI FindVolumeMountPointClose(HANDLE);
1658 WINBASEAPI DWORD       WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION);
1659 WINBASEAPI BOOL        WINAPI FlsFree(DWORD);
1660 WINBASEAPI PVOID       WINAPI FlsGetValue(DWORD);
1661 WINBASEAPI BOOL        WINAPI FlsSetValue(DWORD,PVOID);
1662 WINBASEAPI BOOL        WINAPI FlushFileBuffers(HANDLE);
1663 WINBASEAPI BOOL        WINAPI FlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
1664 WINBASEAPI BOOL        WINAPI FlushViewOfFile(LPCVOID,SIZE_T);
1665 WINBASEAPI DWORD       WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,DWORD,__ms_va_list*);
1666 WINBASEAPI DWORD       WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,DWORD,__ms_va_list*);
1667 #define                       FormatMessage WINELIB_NAME_AW(FormatMessage)
1668 WINBASEAPI BOOL        WINAPI FreeEnvironmentStringsA(LPSTR);
1669 WINBASEAPI BOOL        WINAPI FreeEnvironmentStringsW(LPWSTR);
1670 #define                       FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings)
1671 WINBASEAPI BOOL        WINAPI FreeLibrary(HMODULE);
1672 WINBASEAPI VOID DECLSPEC_NORETURN WINAPI FreeLibraryAndExitThread(HINSTANCE,DWORD);
1673 #define                       FreeModule(handle) FreeLibrary(handle)
1674 #define                       FreeProcInstance(proc) /*nothing*/
1675 WINBASEAPI BOOL        WINAPI FreeResource(HGLOBAL);
1676 WINADVAPI  PVOID       WINAPI FreeSid(PSID);
1677 WINADVAPI  BOOL        WINAPI GetAce(PACL,DWORD,LPVOID*);
1678 WINADVAPI  BOOL        WINAPI GetAclInformation(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
1679 WINBASEAPI UINT        WINAPI GetAtomNameA(ATOM,LPSTR,INT);
1680 WINBASEAPI UINT        WINAPI GetAtomNameW(ATOM,LPWSTR,INT);
1681 #define                       GetAtomName WINELIB_NAME_AW(GetAtomName)
1682 WINBASEAPI BOOL        WINAPI GetBinaryTypeA( LPCSTR lpApplicationName, LPDWORD lpBinaryType );
1683 WINBASEAPI BOOL        WINAPI GetBinaryTypeW( LPCWSTR lpApplicationName, LPDWORD lpBinaryType );
1684 #define                       GetBinaryType WINELIB_NAME_AW(GetBinaryType)
1685 WINBASEAPI BOOL        WINAPI GetCurrentActCtx(HANDLE *);
1686 WINBASEAPI BOOL        WINAPI GetCommConfig(HANDLE,LPCOMMCONFIG,LPDWORD);
1687 WINBASEAPI BOOL        WINAPI GetCommMask(HANDLE,LPDWORD);
1688 WINBASEAPI BOOL        WINAPI GetCommModemStatus(HANDLE,LPDWORD);
1689 WINBASEAPI BOOL        WINAPI GetCommProperties(HANDLE,LPCOMMPROP);
1690 WINBASEAPI BOOL        WINAPI GetCommState(HANDLE,LPDCB);
1691 WINBASEAPI BOOL        WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1692 WINBASEAPI LPSTR       WINAPI GetCommandLineA(void);
1693 WINBASEAPI LPWSTR      WINAPI GetCommandLineW(void);
1694 #define                       GetCommandLine WINELIB_NAME_AW(GetCommandLine)
1695 WINBASEAPI DWORD       WINAPI GetCompressedFileSizeA(LPCSTR,LPDWORD);
1696 WINBASEAPI DWORD       WINAPI GetCompressedFileSizeW(LPCWSTR,LPDWORD);
1697 #define                       GetCompressedFileSize WINELIB_NAME_AW(GetCompressedFileSize)
1698 WINBASEAPI BOOL        WINAPI GetComputerNameA(LPSTR,LPDWORD);
1699 WINBASEAPI BOOL        WINAPI GetComputerNameW(LPWSTR,LPDWORD);
1700 #define                       GetComputerName WINELIB_NAME_AW(GetComputerName)
1701 WINBASEAPI BOOL        WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT,LPSTR,LPDWORD);
1702 WINBASEAPI BOOL        WINAPI GetComputerNameExW(COMPUTER_NAME_FORMAT,LPWSTR,LPDWORD);
1703 #define                       GetComputerNameEx WINELIB_NAME_AW(GetComputerNameEx)
1704 WINBASEAPI UINT        WINAPI GetCurrentDirectoryA(UINT,LPSTR);
1705 WINBASEAPI UINT        WINAPI GetCurrentDirectoryW(UINT,LPWSTR);
1706 #define                       GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory)
1707 WINADVAPI  BOOL        WINAPI GetCurrentHwProfileA(LPHW_PROFILE_INFOA);
1708 WINADVAPI  BOOL        WINAPI GetCurrentHwProfileW(LPHW_PROFILE_INFOW);
1709 #define                       GetCurrentHwProfile WINELIB_NAME_AW(GetCurrentHwProfile)
1710 WINBASEAPI HANDLE      WINAPI GetCurrentProcess(void);
1711 WINBASEAPI DWORD       WINAPI GetCurrentProcessorNumber(void);
1712 WINBASEAPI VOID        WINAPI GetCurrentProcessorNumberEx(PPROCESSOR_NUMBER);
1713 WINBASEAPI HANDLE      WINAPI GetCurrentThread(void);
1714 #define                       GetCurrentTime() GetTickCount()
1715 WINBASEAPI BOOL        WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,LPDWORD);
1716 WINBASEAPI BOOL        WINAPI GetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,LPDWORD);
1717 #define                       GetDefaultCommConfig WINELIB_NAME_AW(GetDefaultCommConfig)
1718 WINBASEAPI BOOL        WINAPI GetDevicePowerState(HANDLE,BOOL*);
1719 WINBASEAPI BOOL        WINAPI GetDiskFreeSpaceA(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
1720 WINBASEAPI BOOL        WINAPI GetDiskFreeSpaceW(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
1721 #define                       GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace)
1722 WINBASEAPI BOOL        WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1723 WINBASEAPI BOOL        WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1724 #define                       GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx)
1725 WINBASEAPI DWORD       WINAPI GetDllDirectoryA(DWORD,LPSTR);
1726 WINBASEAPI DWORD       WINAPI GetDllDirectoryW(DWORD,LPWSTR);
1727 #define                       GetDllDirectory WINELIB_NAME_AW(GetDllDirectory)
1728 WINBASEAPI UINT        WINAPI GetDriveTypeA(LPCSTR);
1729 WINBASEAPI UINT        WINAPI GetDriveTypeW(LPCWSTR);
1730 #define                       GetDriveType WINELIB_NAME_AW(GetDriveType)
1731 WINBASEAPI DWORD       WINAPI GetDynamicTimeZoneInformation(PDYNAMIC_TIME_ZONE_INFORMATION);
1732 WINBASEAPI LPSTR       WINAPI GetEnvironmentStringsA(void);
1733 WINBASEAPI LPWSTR      WINAPI GetEnvironmentStringsW(void);
1734 #define                       GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings)
1735 WINBASEAPI DWORD       WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
1736 WINBASEAPI DWORD       WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);
1737 #define                       GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable)
1738 WINBASEAPI UINT        WINAPI GetErrorMode(void);
1739 WINADVAPI  BOOL        WINAPI GetEventLogInformation(HANDLE,DWORD,LPVOID,DWORD,LPDWORD);
1740 WINBASEAPI BOOL        WINAPI GetExitCodeProcess(HANDLE,LPDWORD);
1741 WINBASEAPI BOOL        WINAPI GetExitCodeThread(HANDLE,LPDWORD);
1742 WINBASEAPI DWORD       WINAPI GetFileAttributesA(LPCSTR);
1743 WINBASEAPI DWORD       WINAPI GetFileAttributesW(LPCWSTR);
1744 #define                       GetFileAttributes WINELIB_NAME_AW(GetFileAttributes)
1745 WINBASEAPI BOOL        WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
1746 WINBASEAPI BOOL        WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
1747 #define                       GetFileAttributesEx WINELIB_NAME_AW(GetFileAttributesEx)
1748 WINBASEAPI BOOL        WINAPI GetFileInformationByHandle(HANDLE,BY_HANDLE_FILE_INFORMATION*);
1749 WINADVAPI  BOOL        WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
1750 WINADVAPI  BOOL        WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
1751 #define                       GetFileSecurity WINELIB_NAME_AW(GetFileSecurity)
1752 WINBASEAPI DWORD       WINAPI GetFileSize(HANDLE,LPDWORD);
1753 WINBASEAPI BOOL        WINAPI GetFileSizeEx(HANDLE,PLARGE_INTEGER);
1754 WINBASEAPI BOOL        WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
1755 WINBASEAPI DWORD       WINAPI GetFileType(HANDLE);
1756 #define                       GetFreeSpace(w) (__MSABI_LONG(0x100000))
1757 WINBASEAPI DWORD       WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
1758 WINBASEAPI DWORD       WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1759 #define                       GetFullPathName WINELIB_NAME_AW(GetFullPathName)
1760 WINBASEAPI BOOL        WINAPI GetHandleInformation(HANDLE,LPDWORD);
1761 WINADVAPI  BOOL        WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
1762 WINADVAPI  DWORD       WINAPI GetLengthSid(PSID);
1763 WINBASEAPI VOID        WINAPI GetLocalTime(LPSYSTEMTIME);
1764 WINBASEAPI DWORD       WINAPI GetLogicalDrives(void);
1765 WINBASEAPI UINT        WINAPI GetLogicalDriveStringsA(UINT,LPSTR);
1766 WINBASEAPI UINT        WINAPI GetLogicalDriveStringsW(UINT,LPWSTR);
1767 #define                       GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings)
1768 WINBASEAPI DWORD       WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
1769 WINBASEAPI DWORD       WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
1770 #define                       GetLongPathName WINELIB_NAME_AW(GetLongPathName)
1771 WINBASEAPI BOOL        WINAPI GetMailslotInfo(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
1772 WINBASEAPI DWORD       WINAPI GetModuleFileNameA(HMODULE,LPSTR,DWORD);
1773 WINBASEAPI DWORD       WINAPI GetModuleFileNameW(HMODULE,LPWSTR,DWORD);
1774 #define                       GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
1775 WINBASEAPI HMODULE     WINAPI GetModuleHandleA(LPCSTR);
1776 WINBASEAPI HMODULE     WINAPI GetModuleHandleW(LPCWSTR);
1777 #define                       GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
1778 WINBASEAPI BOOL        WINAPI GetModuleHandleExA(DWORD,LPCSTR,HMODULE*);
1779 WINBASEAPI BOOL        WINAPI GetModuleHandleExW(DWORD,LPCWSTR,HMODULE*);
1780 #define                       GetModuleHandleEx WINELIB_NAME_AW(GetModuleHandleEx)
1781 WINBASEAPI BOOL        WINAPI GetNamedPipeHandleStateA(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
1782 WINBASEAPI BOOL        WINAPI GetNamedPipeHandleStateW(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
1783 #define                       GetNamedPipeHandleState WINELIB_NAME_AW(GetNamedPipeHandleState)
1784 WINBASEAPI BOOL        WINAPI GetNamedPipeInfo(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
1785 WINBASEAPI VOID        WINAPI GetNativeSystemInfo(LPSYSTEM_INFO);
1786 WINADVAPI  BOOL        WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
1787 WINADVAPI  BOOL        WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
1788 WINBASEAPI BOOL        WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,LPDWORD,BOOL);
1789 WINBASEAPI DWORD       WINAPI GetPriorityClass(HANDLE);
1790 WINADVAPI  BOOL        WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1791 WINBASEAPI UINT        WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR);
1792 WINBASEAPI UINT        WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR);
1793 #define                       GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt)
1794 WINBASEAPI INT         WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR);
1795 WINBASEAPI INT         WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
1796 #define                       GetPrivateProfileSection WINELIB_NAME_AW(GetPrivateProfileSection)
1797 WINBASEAPI DWORD       WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR);
1798 WINBASEAPI DWORD       WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR);
1799 #define                       GetPrivateProfileSectionNames WINELIB_NAME_AW(GetPrivateProfileSectionNames)
1800 WINBASEAPI INT         WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT,LPCSTR);
1801 WINBASEAPI INT         WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT,LPCWSTR);
1802 #define                       GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString)
1803 WINBASEAPI BOOL        WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
1804 WINBASEAPI BOOL        WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);
1805 #define                       GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct)
1806 WINBASEAPI FARPROC     WINAPI GetProcAddress(HMODULE,LPCSTR);
1807 WINBASEAPI BOOL        WINAPI GetProcessAffinityMask(HANDLE,PDWORD_PTR,PDWORD_PTR);
1808 WINBASEAPI BOOL        WINAPI GetLogicalProcessorInformation(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,PDWORD);
1809 WINBASEAPI BOOL        WINAPI GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP,PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX,PDWORD);
1810 WINBASEAPI DWORD       WINAPI GetProcessHeaps(DWORD,PHANDLE);
1811 WINBASEAPI DWORD       WINAPI GetProcessId(HANDLE);
1812 WINBASEAPI BOOL        WINAPI GetProcessIoCounters(HANDLE,PIO_COUNTERS);
1813 WINBASEAPI BOOL        WINAPI GetProcessPriorityBoost(HANDLE,PBOOL);
1814 WINBASEAPI BOOL        WINAPI GetProcessShutdownParameters(LPDWORD,LPDWORD);
1815 WINBASEAPI BOOL        WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1816 WINBASEAPI DWORD       WINAPI GetProcessVersion(DWORD);
1817 WINBASEAPI BOOL        WINAPI GetProcessWorkingSetSize(HANDLE,PSIZE_T,PSIZE_T);
1818 WINBASEAPI BOOL        WINAPI GetProductInfo(DWORD,DWORD,DWORD,DWORD,PDWORD);
1819 WINBASEAPI UINT        WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT);
1820 WINBASEAPI UINT        WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT);
1821 #define                       GetProfileInt WINELIB_NAME_AW(GetProfileInt)
1822 WINBASEAPI INT         WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD);
1823 WINBASEAPI INT         WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD);
1824 #define                       GetProfileSection WINELIB_NAME_AW(GetProfileSection)
1825 WINBASEAPI INT         WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT);
1826 WINBASEAPI INT         WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT);
1827 #define                       GetProfileString WINELIB_NAME_AW(GetProfileString)
1828 WINBASEAPI BOOL        WINAPI GetQueuedCompletionStatus(HANDLE,LPDWORD,PULONG_PTR,LPOVERLAPPED*,DWORD);
1829 WINADVAPI  BOOL        WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
1830 WINADVAPI  BOOL        WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL *,LPBOOL);
1831 WINADVAPI  BOOL        WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID *,LPBOOL);
1832 WINADVAPI  DWORD       WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
1833 WINADVAPI  BOOL        WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID *,LPBOOL);
1834 WINADVAPI  BOOL        WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL *,LPBOOL);
1835 WINADVAPI  PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
1836 WINADVAPI  DWORD       WINAPI GetSidLengthRequired(BYTE);
1837 WINADVAPI  PDWORD      WINAPI GetSidSubAuthority(PSID,DWORD);
1838 WINADVAPI  PUCHAR      WINAPI GetSidSubAuthorityCount(PSID);
1839 WINBASEAPI DWORD       WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD);
1840 WINBASEAPI DWORD       WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);
1841 #define                       GetShortPathName WINELIB_NAME_AW(GetShortPathName)
1842 WINBASEAPI VOID        WINAPI GetStartupInfoA(LPSTARTUPINFOA);
1843 WINBASEAPI VOID        WINAPI GetStartupInfoW(LPSTARTUPINFOW);
1844 #define                       GetStartupInfo WINELIB_NAME_AW(GetStartupInfo)
1845 WINBASEAPI HANDLE      WINAPI GetStdHandle(DWORD);
1846 WINBASEAPI UINT        WINAPI GetSystemDirectoryA(LPSTR,UINT);
1847 WINBASEAPI UINT        WINAPI GetSystemDirectoryW(LPWSTR,UINT);
1848 #define                       GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
1849 WINBASEAPI VOID        WINAPI GetSystemInfo(LPSYSTEM_INFO);
1850 WINBASEAPI BOOL        WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
1851 WINBASEAPI BOOL        WINAPI GetSystemRegistryQuota(PDWORD,PDWORD);
1852 WINBASEAPI VOID        WINAPI GetSystemTime(LPSYSTEMTIME);
1853 WINBASEAPI BOOL        WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
1854 WINBASEAPI VOID        WINAPI GetSystemTimeAsFileTime(LPFILETIME);
1855 WINBASEAPI UINT        WINAPI GetSystemWindowsDirectoryA(LPSTR,UINT);
1856 WINBASEAPI UINT        WINAPI GetSystemWindowsDirectoryW(LPWSTR,UINT);
1857 #define                       GetSystemWindowsDirectory WINELIB_NAME_AW(GetSystemWindowsDirectory)
1858 WINBASEAPI UINT        WINAPI GetSystemWow64DirectoryA(LPSTR,UINT);
1859 WINBASEAPI UINT        WINAPI GetSystemWow64DirectoryW(LPWSTR,UINT);
1860 #define                       GetSystemWow64Directory WINELIB_NAME_AW(GetSystemWow64Directory)
1861 WINBASEAPI DWORD       WINAPI GetTapeParameters(HANDLE,DWORD,LPDWORD,LPVOID);
1862 WINBASEAPI DWORD       WINAPI GetTapePosition(HANDLE,DWORD,LPDWORD,LPDWORD,LPDWORD);
1863 WINBASEAPI DWORD       WINAPI GetTapeStatus(HANDLE);
1864 WINBASEAPI UINT        WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR);
1865 WINBASEAPI UINT        WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);
1866 #define                       GetTempFileName WINELIB_NAME_AW(GetTempFileName)
1867 WINBASEAPI DWORD       WINAPI GetTempPathA(DWORD,LPSTR);
1868 WINBASEAPI DWORD       WINAPI GetTempPathW(DWORD,LPWSTR);
1869 #define                       GetTempPath WINELIB_NAME_AW(GetTempPath)
1870 WINBASEAPI DWORD       WINAPI GetThreadId(HANDLE);
1871 WINBASEAPI BOOL        WINAPI GetThreadIOPendingFlag(HANDLE,PBOOL);
1872 WINBASEAPI DWORD       WINAPI GetTickCount(void);
1873 WINBASEAPI ULONGLONG   WINAPI GetTickCount64(void);
1874 WINBASEAPI DWORD       WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
1875 WINBASEAPI BOOL        WINAPI GetThreadContext(HANDLE,CONTEXT *);
1876 WINBASEAPI DWORD       WINAPI GetThreadErrorMode(void);
1877 WINBASEAPI INT         WINAPI GetThreadPriority(HANDLE);
1878 WINBASEAPI BOOL        WINAPI GetThreadPriorityBoost(HANDLE,PBOOL);
1879 WINBASEAPI BOOL        WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY);
1880 WINBASEAPI BOOL        WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1881 WINADVAPI  BOOL        WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD,LPDWORD);
1882 WINADVAPI  BOOL        WINAPI GetUserNameA(LPSTR,LPDWORD);
1883 WINADVAPI  BOOL        WINAPI GetUserNameW(LPWSTR,LPDWORD);
1884 #define                       GetUserName WINELIB_NAME_AW(GetUserName)
1885 WINBASEAPI DWORD       WINAPI GetVersion(void);
1886 WINBASEAPI BOOL        WINAPI GetVersionExA(OSVERSIONINFOA*);
1887 WINBASEAPI BOOL        WINAPI GetVersionExW(OSVERSIONINFOW*);
1888 #define                       GetVersionEx WINELIB_NAME_AW(GetVersionEx)
1889 WINBASEAPI BOOL        WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
1890 WINBASEAPI BOOL        WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
1891 #define                       GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation)
1892 WINBASEAPI BOOL        WINAPI GetVolumeNameForVolumeMountPointA(LPCSTR,LPSTR,DWORD);
1893 WINBASEAPI BOOL        WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR,LPWSTR,DWORD);
1894 #define                       GetVolumeNameForVolumeMountPoint WINELIB_NAME_AW(GetVolumeNameForVolumeMountPoint)
1895 WINBASEAPI BOOL        WINAPI GetVolumePathNameA(LPCSTR,LPSTR,DWORD);
1896 WINBASEAPI BOOL        WINAPI GetVolumePathNameW(LPCWSTR,LPWSTR,DWORD);
1897 #define                       GetVolumePathName WINELIB_NAME_AW(GetVolumePathName)
1898 WINBASEAPI BOOL        WINAPI GetVolumePathNamesForVolumeNameA(LPCSTR,LPSTR,DWORD,PDWORD);
1899 WINBASEAPI BOOL        WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR,LPWSTR,DWORD,PDWORD);
1900 #define                       GetVolumePathNamesForVolumeName WINELIB_NAME_AW(GetVolumePathNamesForVolumeName)
1901 WINBASEAPI UINT        WINAPI GetWindowsDirectoryA(LPSTR,UINT);
1902 WINBASEAPI UINT        WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
1903 #define                       GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory)
1904 WINBASEAPI UINT        WINAPI GetWriteWatch(DWORD,LPVOID,SIZE_T,LPVOID*,ULONG_PTR*,ULONG*);
1905 WINBASEAPI ATOM        WINAPI GlobalAddAtomA(LPCSTR);
1906 WINBASEAPI ATOM        WINAPI GlobalAddAtomW(LPCWSTR);
1907 #define                       GlobalAddAtom WINELIB_NAME_AW(GlobalAddAtom)
1908 WINBASEAPI HGLOBAL     WINAPI GlobalAlloc(UINT,SIZE_T) __WINE_ALLOC_SIZE(2);
1909 WINBASEAPI SIZE_T      WINAPI GlobalCompact(DWORD);
1910 WINBASEAPI ATOM        WINAPI GlobalDeleteAtom(ATOM);
1911 WINBASEAPI ATOM        WINAPI GlobalFindAtomA(LPCSTR);
1912 WINBASEAPI ATOM        WINAPI GlobalFindAtomW(LPCWSTR);
1913 #define                       GlobalFindAtom WINELIB_NAME_AW(GlobalFindAtom)
1914 WINBASEAPI VOID        WINAPI GlobalFix(HGLOBAL);
1915 WINBASEAPI UINT        WINAPI GlobalFlags(HGLOBAL);
1916 WINBASEAPI HGLOBAL     WINAPI GlobalFree(HGLOBAL);
1917 WINBASEAPI UINT        WINAPI GlobalGetAtomNameA(ATOM,LPSTR,INT);
1918 WINBASEAPI UINT        WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,INT);
1919 #define                       GlobalGetAtomName WINELIB_NAME_AW(GlobalGetAtomName)
1920 WINBASEAPI HGLOBAL     WINAPI GlobalHandle(LPCVOID);
1921 WINBASEAPI LPVOID      WINAPI GlobalLock(HGLOBAL);
1922 WINBASEAPI VOID        WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
1923 WINBASEAPI BOOL        WINAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX);
1924 WINBASEAPI HGLOBAL     WINAPI GlobalReAlloc(HGLOBAL,SIZE_T,UINT) __WINE_ALLOC_SIZE(3);
1925 WINBASEAPI SIZE_T      WINAPI GlobalSize(HGLOBAL);
1926 WINBASEAPI VOID        WINAPI GlobalUnfix(HGLOBAL);
1927 WINBASEAPI BOOL        WINAPI GlobalUnlock(HGLOBAL);
1928 WINBASEAPI BOOL        WINAPI GlobalUnWire(HGLOBAL);
1929 WINBASEAPI LPVOID      WINAPI GlobalWire(HGLOBAL);
1930 #define                       HasOverlappedCompleted(lpOverlapped) ((lpOverlapped)->Internal != STATUS_PENDING)
1931 WINBASEAPI LPVOID      WINAPI HeapAlloc(HANDLE,DWORD,SIZE_T) __WINE_ALLOC_SIZE(3);
1932 WINBASEAPI SIZE_T      WINAPI HeapCompact(HANDLE,DWORD);
1933 WINBASEAPI HANDLE      WINAPI HeapCreate(DWORD,SIZE_T,SIZE_T);
1934 WINBASEAPI BOOL        WINAPI HeapDestroy(HANDLE);
1935 WINBASEAPI BOOL        WINAPI HeapFree(HANDLE,DWORD,LPVOID);
1936 WINBASEAPI BOOL        WINAPI HeapLock(HANDLE);
1937 WINBASEAPI LPVOID      WINAPI HeapReAlloc(HANDLE,DWORD,LPVOID,SIZE_T) __WINE_ALLOC_SIZE(4);
1938 WINBASEAPI BOOL        WINAPI HeapQueryInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T,PSIZE_T);
1939 WINBASEAPI BOOL        WINAPI HeapSetInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T);
1940 WINBASEAPI SIZE_T      WINAPI HeapSize(HANDLE,DWORD,LPCVOID);
1941 WINBASEAPI BOOL        WINAPI HeapUnlock(HANDLE);
1942 WINBASEAPI BOOL        WINAPI HeapValidate(HANDLE,DWORD,LPCVOID);
1943 WINBASEAPI BOOL        WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
1944 WINBASEAPI BOOL        WINAPI InitAtomTable(DWORD);
1945 WINADVAPI  BOOL        WINAPI InitializeAcl(PACL,DWORD,DWORD);
1946 WINBASEAPI VOID        WINAPI InitializeConditionVariable(PCONDITION_VARIABLE);
1947 WINBASEAPI void        WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
1948 WINBASEAPI BOOL        WINAPI InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION *,DWORD);
1949 WINBASEAPI BOOL        WINAPI InitializeCriticalSectionEx(CRITICAL_SECTION *,DWORD,DWORD);
1950 WINADVAPI  BOOL        WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
1951 WINADVAPI  BOOL        WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
1952 WINBASEAPI VOID        WINAPI InitializeSListHead(PSLIST_HEADER);
1953 WINBASEAPI VOID        WINAPI InitializeSRWLock(PSRWLOCK);
1954 WINBASEAPI BOOL        WINAPI InitOnceBeginInitialize(PINIT_ONCE, DWORD, PBOOL, PVOID*);
1955 WINBASEAPI BOOL        WINAPI InitOnceComplete(PINIT_ONCE, DWORD, PVOID);
1956 WINBASEAPI BOOL        WINAPI InitOnceExecuteOnce(PINIT_ONCE,PINIT_ONCE_FN,PVOID,PVOID*);
1957 WINBASEAPI VOID        WINAPI InitOnceInitialize(PINIT_ONCE);
1958 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER);
1959 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER);
1960 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY);
1961 WINBASEAPI BOOL        WINAPI IsBadCodePtr(FARPROC);
1962 WINBASEAPI BOOL        WINAPI IsBadHugeReadPtr(LPCVOID,UINT);
1963 WINBASEAPI BOOL        WINAPI IsBadHugeWritePtr(LPVOID,UINT);
1964 WINBASEAPI BOOL        WINAPI IsBadReadPtr(LPCVOID,UINT);
1965 WINBASEAPI BOOL        WINAPI IsBadStringPtrA(LPCSTR,UINT);
1966 WINBASEAPI BOOL        WINAPI IsBadStringPtrW(LPCWSTR,UINT);
1967 #define                       IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr)
1968 WINBASEAPI BOOL        WINAPI IsBadWritePtr(LPVOID,UINT);
1969 WINBASEAPI BOOL        WINAPI IsDebuggerPresent(void);
1970 WINBASEAPI BOOL        WINAPI IsSystemResumeAutomatic(void);
1971 WINADVAPI  BOOL        WINAPI IsTextUnicode(LPCVOID,INT,LPINT);
1972 WINADVAPI  BOOL        WINAPI IsTokenRestricted(HANDLE);
1973 WINADVAPI  BOOL        WINAPI IsValidAcl(PACL);
1974 WINADVAPI  BOOL        WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
1975 WINADVAPI  BOOL        WINAPI IsValidSid(PSID);
1976 WINADVAPI  BOOL        WINAPI IsWellKnownSid(PSID,WELL_KNOWN_SID_TYPE);
1977 WINBASEAPI BOOL        WINAPI IsWow64Process(HANDLE,PBOOL);
1978 WINADVAPI  BOOL        WINAPI ImpersonateLoggedOnUser(HANDLE);
1979 WINADVAPI  BOOL        WINAPI ImpersonateNamedPipeClient(HANDLE);
1980 WINADVAPI  BOOL        WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
1981 WINBASEAPI BOOL        WINAPI IsProcessInJob(HANDLE,HANDLE,PBOOL);
1982 WINBASEAPI BOOL        WINAPI IsProcessorFeaturePresent(DWORD);
1983 WINBASEAPI void        WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
1984 WINBASEAPI HMODULE     WINAPI LoadLibraryA(LPCSTR);
1985 WINBASEAPI HMODULE     WINAPI LoadLibraryW(LPCWSTR);
1986 #define                       LoadLibrary WINELIB_NAME_AW(LoadLibrary)
1987 WINBASEAPI HMODULE     WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD);
1988 WINBASEAPI HMODULE     WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD);
1989 #define                       LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx)
1990 WINBASEAPI DWORD       WINAPI LoadModule(LPCSTR,LPVOID);
1991 WINBASEAPI HGLOBAL     WINAPI LoadResource(HMODULE,HRSRC);
1992 WINBASEAPI HLOCAL      WINAPI LocalAlloc(UINT,SIZE_T) __WINE_ALLOC_SIZE(2);
1993 WINBASEAPI SIZE_T      WINAPI LocalCompact(UINT);
1994 WINBASEAPI UINT        WINAPI LocalFlags(HLOCAL);
1995 WINBASEAPI HLOCAL      WINAPI LocalFree(HLOCAL);
1996 WINBASEAPI HLOCAL      WINAPI LocalHandle(LPCVOID);
1997 WINBASEAPI LPVOID      WINAPI LocalLock(HLOCAL);
1998 WINBASEAPI HLOCAL      WINAPI LocalReAlloc(HLOCAL,SIZE_T,UINT) __WINE_ALLOC_SIZE(3);
1999 WINBASEAPI SIZE_T      WINAPI LocalShrink(HGLOBAL,UINT);
2000 WINBASEAPI SIZE_T      WINAPI LocalSize(HLOCAL);
2001 WINBASEAPI BOOL        WINAPI LocalUnlock(HLOCAL);
2002 WINBASEAPI LPVOID      WINAPI LockResource(HGLOBAL);
2003 #define                       LockSegment(handle) GlobalFix((HANDLE)(handle))
2004 WINADVAPI  BOOL        WINAPI LookupAccountNameA(LPCSTR,LPCSTR,PSID,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE);
2005 WINADVAPI  BOOL        WINAPI LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE);
2006 #define                       LookupAccountName WINELIB_NAME_AW(LookupAccountName)
2007 WINADVAPI  BOOL        WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE);
2008 WINADVAPI  BOOL        WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE);
2009 #define                       LookupAccountSid WINELIB_NAME_AW(LookupAccountSid)
2010 WINBASEAPI BOOL        WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
2011 WINBASEAPI BOOL        WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
2012 WINBASEAPI BOOL        WINAPI LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);
2013 WINADVAPI  BOOL        WINAPI LogonUserA(LPCSTR,LPCSTR,LPCSTR,DWORD,DWORD,PHANDLE);
2014 WINADVAPI  BOOL        WINAPI LogonUserW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,PHANDLE);
2015 #define                       LogonUser WINELIB_NAME_AW(LogonUser)
2016 WINADVAPI  BOOL        WINAPI LookupPrivilegeDisplayNameA(LPCSTR,LPCSTR,LPSTR,LPDWORD,LPDWORD);
2017 WINADVAPI  BOOL        WINAPI LookupPrivilegeDisplayNameW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,LPDWORD);
2018 #define                       LookupPrivilegeDisplayName WINELIB_NAME_AW(LookupPrivilegeDisplayName)
2019 WINADVAPI  BOOL        WINAPI LookupPrivilegeNameA(LPCSTR,PLUID,LPSTR,LPDWORD);
2020 WINADVAPI  BOOL        WINAPI LookupPrivilegeNameW(LPCWSTR,PLUID,LPWSTR,LPDWORD);
2021 #define                       LookupPrivilegeName WINELIB_NAME_AW(LookupPrivilegeName)
2022 WINADVAPI  BOOL        WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,PLUID);
2023 WINADVAPI  BOOL        WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,PLUID);
2024 #define                       LookupPrivilegeValue WINELIB_NAME_AW(LookupPrivilegeValue)
2025 WINADVAPI  BOOL        WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD,PACL,LPDWORD,PACL,LPDWORD,PSID,LPDWORD,PSID,LPDWORD);
2026 WINBASEAPI void        WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit);
2027 #define                       MakeProcInstance(proc,inst) (proc)
2028 WINADVAPI  BOOL        WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD);
2029 WINADVAPI  VOID        WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING);
2030 WINBASEAPI HMODULE     WINAPI MapHModuleSL(WORD);
2031 WINBASEAPI WORD        WINAPI MapHModuleLS(HMODULE);
2032 WINBASEAPI LPVOID      WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,SIZE_T);
2033 WINBASEAPI LPVOID      WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,SIZE_T,LPVOID);
2034 WINBASEAPI BOOL        WINAPI MoveFileA(LPCSTR,LPCSTR);
2035 WINBASEAPI BOOL        WINAPI MoveFileW(LPCWSTR,LPCWSTR);
2036 #define                       MoveFile WINELIB_NAME_AW(MoveFile)
2037 WINBASEAPI BOOL        WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD);
2038 WINBASEAPI BOOL        WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD);
2039 #define                       MoveFileEx WINELIB_NAME_AW(MoveFileEx)
2040 WINBASEAPI BOOL        WINAPI MoveFileWithProgressA(LPCSTR,LPCSTR,LPPROGRESS_ROUTINE,LPVOID,DWORD);
2041 WINBASEAPI BOOL        WINAPI MoveFileWithProgressW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,DWORD);
2042 #define                       MoveFileWithProgress WINELIB_NAME_AW(MoveFileWithProgress)
2043 WINBASEAPI INT         WINAPI MulDiv(INT,INT,INT);
2044 WINBASEAPI BOOL        WINAPI NeedCurrentDirectoryForExePathA(LPCSTR);
2045 WINBASEAPI BOOL        WINAPI NeedCurrentDirectoryForExePathW(LPCWSTR);
2046 #define                       NeedCurrentDirectoryForExePath WINELIB_NAME_AW(NeedCurrentDirectoryForExePath)
2047 WINADVAPI  BOOL        WINAPI NotifyChangeEventLog(HANDLE,HANDLE);
2048 WINADVAPI  BOOL        WINAPI ObjectCloseAuditAlarmA(LPCSTR,LPVOID,BOOL);
2049 WINADVAPI  BOOL        WINAPI ObjectCloseAuditAlarmW(LPCWSTR,LPVOID,BOOL);
2050 #define                       ObjectCloseAuditAlarm WINELIB_NAME_AW(ObjectCloseAuditAlarm)
2051 WINADVAPI  BOOL        WINAPI ObjectDeleteAuditAlarmA(LPCSTR,LPVOID,BOOL);
2052 WINADVAPI  BOOL        WINAPI ObjectDeleteAuditAlarmW(LPCWSTR,LPVOID,BOOL);
2053 #define                       ObjectDeleteAuditAlarm WINELIB_NAME_AW(ObjectDeleteAuditAlarm)
2054 WINADVAPI  BOOL        WINAPI ObjectOpenAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,LPBOOL);
2055 WINADVAPI  BOOL        WINAPI ObjectOpenAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,LPBOOL);
2056 #define                       ObjectOpenAuditAlarm WINELIB_NAME_AW(ObjectOpenAuditAlarm)
2057 WINADVAPI  BOOL        WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR,LPVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
2058 WINADVAPI  BOOL        WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,LPVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
2059 #define                       ObjectPrivilegeAuditAlarm WINELIB_NAME_AW(ObjectPrivilegeAuditAlarm)
2060 WINADVAPI  HANDLE      WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR);
2061 WINADVAPI  HANDLE      WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR);
2062 #define                       OpenBackupEventLog WINELIB_NAME_AW(OpenBackupEventLog)
2063 WINBASEAPI HANDLE      WINAPI OpenEventA(DWORD,BOOL,LPCSTR);
2064 WINBASEAPI HANDLE      WINAPI OpenEventW(DWORD,BOOL,LPCWSTR);
2065 #define                       OpenEvent WINELIB_NAME_AW(OpenEvent)
2066 WINADVAPI  HANDLE      WINAPI OpenEventLogA(LPCSTR,LPCSTR);
2067 WINADVAPI  HANDLE      WINAPI OpenEventLogW(LPCWSTR,LPCWSTR);
2068 #define                       OpenEventLog WINELIB_NAME_AW(OpenEventLog)
2069 WINBASEAPI HFILE       WINAPI OpenFile(LPCSTR,OFSTRUCT*,UINT);
2070 WINBASEAPI HANDLE      WINAPI OpenFileMappingA(DWORD,BOOL,LPCSTR);
2071 WINBASEAPI HANDLE      WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR);
2072 #define                       OpenFileMapping WINELIB_NAME_AW(OpenFileMapping)
2073 WINBASEAPI HANDLE      WINAPI OpenJobObjectA(DWORD,BOOL,LPCSTR);
2074 WINBASEAPI HANDLE      WINAPI OpenJobObjectW(DWORD,BOOL,LPCWSTR);
2075 #define                       OpenJobObject WINELIB_NAME_AW(OpenJobObject)
2076 WINBASEAPI HANDLE      WINAPI OpenMutexA(DWORD,BOOL,LPCSTR);
2077 WINBASEAPI HANDLE      WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR);
2078 #define                       OpenMutex WINELIB_NAME_AW(OpenMutex)
2079 WINBASEAPI HANDLE      WINAPI OpenProcess(DWORD,BOOL,DWORD);
2080 WINADVAPI  BOOL        WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
2081 WINBASEAPI HANDLE      WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR);
2082 WINBASEAPI HANDLE      WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
2083 #define                       OpenSemaphore WINELIB_NAME_AW(OpenSemaphore)
2084 WINBASEAPI HANDLE      WINAPI OpenThread(DWORD,BOOL,DWORD);
2085 WINADVAPI  BOOL        WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
2086 WINBASEAPI HANDLE      WINAPI OpenWaitableTimerA(DWORD,BOOL,LPCSTR);
2087 WINBASEAPI HANDLE      WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
2088 #define                       OpenWaitableTimer WINELIB_NAME_AW(OpenWaitableTimer)
2089 WINBASEAPI VOID        WINAPI OutputDebugStringA(LPCSTR);
2090 WINBASEAPI VOID        WINAPI OutputDebugStringW(LPCWSTR);
2091 #define                       OutputDebugString WINELIB_NAME_AW(OutputDebugString)
2092 WINBASEAPI BOOL        WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD);
2093 WINBASEAPI BOOL        WINAPI PostQueuedCompletionStatus(HANDLE,DWORD,ULONG_PTR,LPOVERLAPPED);
2094 WINBASEAPI DWORD       WINAPI PrepareTape(HANDLE,DWORD,BOOL);
2095 WINBASEAPI BOOL        WINAPI ProcessIdToSessionId(DWORD,DWORD*);
2096 WINADVAPI  BOOL        WINAPI PrivilegeCheck(HANDLE,PPRIVILEGE_SET,LPBOOL);
2097 WINADVAPI  BOOL        WINAPI PrivilegedServiceAuditAlarmA(LPCSTR,LPCSTR,HANDLE,PPRIVILEGE_SET,BOOL);
2098 WINADVAPI  BOOL        WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL);
2099 #define                       PrivilegedServiceAuditAlarm WINELIB_NAME_AW(PrivilegedServiceAuditAlarm)
2100 WINBASEAPI BOOL        WINAPI PulseEvent(HANDLE);
2101 WINBASEAPI BOOL        WINAPI PurgeComm(HANDLE,DWORD);
2102 WINBASEAPI BOOL        WINAPI QueryActCtxW(DWORD,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T *);
2103 WINBASEAPI USHORT      WINAPI QueryDepthSList(PSLIST_HEADER);
2104 WINBASEAPI DWORD       WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD);
2105 WINBASEAPI DWORD       WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
2106 #define                       QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
2107 WINBASEAPI BOOL        WINAPI QueryFullProcessImageNameA(HANDLE,DWORD,LPSTR,PDWORD);
2108 WINBASEAPI BOOL        WINAPI QueryFullProcessImageNameW(HANDLE,DWORD,LPWSTR,PDWORD);
2109 #define                       QueryFullProcessImageName WINELIB_NAME_AW(QueryFullProcessImageName)
2110 WINBASEAPI BOOL        WINAPI QueryInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,LPVOID,DWORD,DWORD*);
2111 WINBASEAPI BOOL        WINAPI QueryMemoryResourceNotification(HANDLE,PBOOL);
2112 WINBASEAPI BOOL        WINAPI QueryPerformanceCounter(LARGE_INTEGER*);
2113 WINBASEAPI BOOL        WINAPI QueryPerformanceFrequency(LARGE_INTEGER*);
2114 WINBASEAPI DWORD       WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR);
2115 WINBASEAPI BOOL        WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG);
2116 WINBASEAPI void        WINAPI RaiseException(DWORD,DWORD,DWORD,const ULONG_PTR *);
2117 WINADVAPI  BOOL        WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
2118 WINADVAPI  BOOL        WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
2119 #define                       ReadEventLog WINELIB_NAME_AW(ReadEventLog)
2120 WINBASEAPI BOOL        WINAPI ReadDirectoryChangesW(HANDLE,LPVOID,DWORD,BOOL,DWORD,LPDWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
2121 WINBASEAPI BOOL        WINAPI ReadFile(HANDLE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
2122 WINBASEAPI BOOL        WINAPI ReadFileEx(HANDLE,LPVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
2123 WINBASEAPI BOOL        WINAPI ReadFileScatter(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
2124 WINBASEAPI BOOL        WINAPI ReadProcessMemory(HANDLE,LPCVOID,LPVOID,SIZE_T,SIZE_T*);
2125 WINADVAPI  HANDLE      WINAPI RegisterEventSourceA(LPCSTR,LPCSTR);
2126 WINADVAPI  HANDLE      WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR);
2127 #define                       RegisterEventSource WINELIB_NAME_AW(RegisterEventSource)
2128 WINBASEAPI BOOL        WINAPI RegisterWaitForSingleObject(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
2129 WINBASEAPI HANDLE      WINAPI RegisterWaitForSingleObjectEx(HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
2130 WINBASEAPI VOID        WINAPI ReleaseActCtx(HANDLE);
2131 WINBASEAPI BOOL        WINAPI ReleaseMutex(HANDLE);
2132 WINBASEAPI BOOL        WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
2133 WINBASEAPI VOID        WINAPI ReleaseSRWLockExclusive(PSRWLOCK);
2134 WINBASEAPI VOID        WINAPI ReleaseSRWLockShared(PSRWLOCK);
2135 WINBASEAPI ULONG       WINAPI RemoveVectoredExceptionHandler(PVOID);
2136 WINBASEAPI BOOL        WINAPI ReplaceFileA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPVOID,LPVOID);
2137 WINBASEAPI BOOL        WINAPI ReplaceFileW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPVOID,LPVOID);
2138 #define                       ReplaceFile WINELIB_NAME_AW(ReplaceFile)
2139 WINBASEAPI BOOL        WINAPI RemoveDirectoryA(LPCSTR);
2140 WINBASEAPI BOOL        WINAPI RemoveDirectoryW(LPCWSTR);
2141 #define                       RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
2142 WINADVAPI  BOOL        WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR *,LPVOID);
2143 WINADVAPI  BOOL        WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR *,LPVOID);
2144 WINBASEAPI BOOL        WINAPI RequestWakeupLatency(LATENCY_TIME latency);
2145 #define                       ReportEvent WINELIB_NAME_AW(ReportEvent)
2146 WINBASEAPI BOOL        WINAPI ResetEvent(HANDLE);
2147 WINBASEAPI UINT        WINAPI ResetWriteWatch(LPVOID,SIZE_T);
2148 WINBASEAPI DWORD       WINAPI ResumeThread(HANDLE);
2149 WINADVAPI  BOOL        WINAPI RevertToSelf(void);
2150 WINBASEAPI DWORD       WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
2151 WINBASEAPI DWORD       WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
2152 #define                       SearchPath WINELIB_NAME_AW(SearchPath)
2153 WINADVAPI  BOOL        WINAPI SetAclInformation(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
2154 WINBASEAPI BOOL        WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD);
2155 WINBASEAPI BOOL        WINAPI SetCommBreak(HANDLE);
2156 WINBASEAPI BOOL        WINAPI SetCommMask(HANDLE,DWORD);
2157 WINBASEAPI BOOL        WINAPI SetCommState(HANDLE,LPDCB);
2158 WINBASEAPI BOOL        WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
2159 WINBASEAPI BOOL        WINAPI SetComputerNameA(LPCSTR);
2160 WINBASEAPI BOOL        WINAPI SetComputerNameW(LPCWSTR);
2161 #define                       SetComputerName WINELIB_NAME_AW(SetComputerName)
2162 WINBASEAPI BOOL        WINAPI SetComputerNameExA(COMPUTER_NAME_FORMAT,LPCSTR);
2163 WINBASEAPI BOOL        WINAPI SetComputerNameExW(COMPUTER_NAME_FORMAT,LPCWSTR);
2164 #define                       SetComputerNameEx WINELIB_NAME_AW(SetComputerNameEx)
2165 WINBASEAPI DWORD       WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD);
2166 WINBASEAPI BOOL        WINAPI SetCurrentDirectoryA(LPCSTR);
2167 WINBASEAPI BOOL        WINAPI SetCurrentDirectoryW(LPCWSTR);
2168 #define                       SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory)
2169 WINBASEAPI BOOL        WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD);
2170 WINBASEAPI BOOL        WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD);
2171 #define                       SetDefaultCommConfig WINELIB_NAME_AW(SetDefaultCommConfig)
2172 WINBASEAPI BOOL        WINAPI SetDllDirectoryA(LPCSTR);
2173 WINBASEAPI BOOL        WINAPI SetDllDirectoryW(LPCWSTR);
2174 #define                       SetDllDirectory WINELIB_NAME_AW(SetDllDirectory)
2175 WINBASEAPI BOOL        WINAPI SetDynamicTimeZoneInformation(CONST DYNAMIC_TIME_ZONE_INFORMATION*);
2176 WINBASEAPI BOOL        WINAPI SetEndOfFile(HANDLE);
2177 WINBASEAPI BOOL        WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR);
2178 WINBASEAPI BOOL        WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
2179 #define                       SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
2180 WINBASEAPI UINT        WINAPI SetErrorMode(UINT);
2181 WINBASEAPI BOOL        WINAPI SetEvent(HANDLE);
2182 WINBASEAPI VOID        WINAPI SetFileApisToANSI(void);
2183 WINBASEAPI VOID        WINAPI SetFileApisToOEM(void);
2184 WINBASEAPI BOOL        WINAPI SetFileAttributesA(LPCSTR,DWORD);
2185 WINBASEAPI BOOL        WINAPI SetFileAttributesW(LPCWSTR,DWORD);
2186 #define                       SetFileAttributes WINELIB_NAME_AW(SetFileAttributes)
2187 WINBASEAPI DWORD       WINAPI SetFilePointer(HANDLE,LONG,LPLONG,DWORD);
2188 WINBASEAPI BOOL        WINAPI SetFilePointerEx(HANDLE,LARGE_INTEGER,LARGE_INTEGER*,DWORD);
2189 WINADVAPI  BOOL        WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
2190 WINADVAPI  BOOL        WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
2191 #define                       SetFileSecurity WINELIB_NAME_AW(SetFileSecurity)
2192 WINBASEAPI BOOL        WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
2193 WINBASEAPI BOOL        WINAPI SetFileValidData(HANDLE,LONGLONG);
2194 WINBASEAPI UINT        WINAPI SetHandleCount(UINT);
2195 WINBASEAPI BOOL        WINAPI SetHandleInformation(HANDLE,DWORD,DWORD);
2196 WINBASEAPI BOOL        WINAPI SetInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,LPVOID,DWORD);
2197 WINADVAPI  BOOL        WINAPI SetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
2198 WINBASEAPI BOOL        WINAPI SetLocalTime(const SYSTEMTIME*);
2199 WINBASEAPI BOOL        WINAPI SetMailslotInfo(HANDLE,DWORD);
2200 WINBASEAPI BOOL        WINAPI SetNamedPipeHandleState(HANDLE,LPDWORD,LPDWORD,LPDWORD);
2201 WINBASEAPI BOOL        WINAPI SetPriorityClass(HANDLE,DWORD);
2202 WINADVAPI  BOOL        WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,PGENERIC_MAPPING,HANDLE);
2203 WINBASEAPI BOOL        WINAPI SetProcessAffinityMask(HANDLE,DWORD_PTR);
2204 WINBASEAPI BOOL        WINAPI SetProcessPriorityBoost(HANDLE,BOOL);
2205 WINBASEAPI BOOL        WINAPI SetProcessShutdownParameters(DWORD,DWORD);
2206 WINBASEAPI BOOL        WINAPI SetProcessWorkingSetSize(HANDLE,SIZE_T,SIZE_T);
2207 WINADVAPI  BOOL        WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
2208 WINADVAPI  BOOL        WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
2209 WINADVAPI  BOOL        WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL);
2210 WINADVAPI  BOOL        WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL);
2211 WINADVAPI  BOOL        WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
2212 WINBASEAPI BOOL        WINAPI SetStdHandle(DWORD,HANDLE);
2213 #define                       SetSwapAreaSize(w) (w)
2214 WINBASEAPI BOOL        WINAPI SetSystemPowerState(BOOL,BOOL);
2215 WINBASEAPI BOOL        WINAPI SetSystemTime(const SYSTEMTIME*);
2216 WINBASEAPI BOOL        WINAPI SetSystemTimeAdjustment(DWORD,BOOL);
2217 WINBASEAPI DWORD       WINAPI SetTapeParameters(HANDLE,DWORD,LPVOID);
2218 WINBASEAPI DWORD       WINAPI SetTapePosition(HANDLE,DWORD,DWORD,DWORD,DWORD,BOOL);
2219 WINBASEAPI DWORD_PTR   WINAPI SetThreadAffinityMask(HANDLE,DWORD_PTR);
2220 WINBASEAPI BOOL        WINAPI SetThreadContext(HANDLE,const CONTEXT *);
2221 WINBASEAPI BOOL        WINAPI SetThreadErrorMode(DWORD,LPDWORD);
2222 WINBASEAPI DWORD       WINAPI SetThreadExecutionState(EXECUTION_STATE);
2223 WINBASEAPI DWORD       WINAPI SetThreadIdealProcessor(HANDLE,DWORD);
2224 WINBASEAPI BOOL        WINAPI SetThreadPriority(HANDLE,INT);
2225 WINBASEAPI BOOL        WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
2226 WINADVAPI  BOOL        WINAPI SetThreadToken(PHANDLE,HANDLE);
2227 WINBASEAPI HANDLE      WINAPI SetTimerQueueTimer(HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,BOOL);
2228 WINBASEAPI BOOL        WINAPI SetTimeZoneInformation(const TIME_ZONE_INFORMATION *);
2229 WINADVAPI  BOOL        WINAPI SetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD);
2230 WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
2231 WINBASEAPI BOOL        WINAPI SetVolumeLabelA(LPCSTR,LPCSTR);
2232 WINBASEAPI BOOL        WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR);
2233 #define                       SetVolumeLabel WINELIB_NAME_AW(SetVolumeLabel)
2234 WINBASEAPI BOOL        WINAPI SetVolumeMountPointA(LPCSTR,LPCSTR);
2235 WINBASEAPI BOOL        WINAPI SetVolumeMountPointW(LPCSTR,LPCSTR);
2236 #define                       SetVolumeMountPoint WINELIB_NAME_AW(SetVolumeMountPoint)
2237 WINBASEAPI BOOL        WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,BOOL);
2238 WINBASEAPI BOOL        WINAPI SetupComm(HANDLE,DWORD,DWORD);
2239 WINBASEAPI DWORD       WINAPI SignalObjectAndWait(HANDLE,HANDLE,DWORD,BOOL);
2240 WINBASEAPI DWORD       WINAPI SizeofResource(HMODULE,HRSRC);
2241 WINBASEAPI VOID        WINAPI Sleep(DWORD);
2242 WINBASEAPI BOOL        WINAPI SleepConditionVariableCS(PCONDITION_VARIABLE,PCRITICAL_SECTION,DWORD);
2243 WINBASEAPI DWORD       WINAPI SleepEx(DWORD,BOOL);
2244 WINBASEAPI DWORD       WINAPI SuspendThread(HANDLE);
2245 WINBASEAPI void        WINAPI SwitchToFiber(LPVOID);
2246 WINBASEAPI BOOL        WINAPI SwitchToThread(void);
2247 WINBASEAPI BOOL        WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
2248 WINBASEAPI BOOL        WINAPI SystemTimeToTzSpecificLocalTime(const TIME_ZONE_INFORMATION*,const SYSTEMTIME*,LPSYSTEMTIME);
2249 WINBASEAPI BOOL        WINAPI TerminateJobObject(HANDLE,UINT);
2250 WINBASEAPI BOOL        WINAPI TerminateProcess(HANDLE,DWORD);
2251 WINBASEAPI BOOL        WINAPI TerminateThread(HANDLE,DWORD);
2252 WINBASEAPI DWORD       WINAPI TlsAlloc(void);
2253 WINBASEAPI BOOL        WINAPI TlsFree(DWORD);
2254 WINBASEAPI LPVOID      WINAPI TlsGetValue(DWORD);
2255 WINBASEAPI BOOL        WINAPI TlsSetValue(DWORD,LPVOID);
2256 WINBASEAPI BOOL        WINAPI TransactNamedPipe(HANDLE,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
2257 WINBASEAPI BOOL        WINAPI TransmitCommChar(HANDLE,CHAR);
2258 WINBASEAPI BOOL        WINAPI TryAcquireSRWLockExclusive(PSRWLOCK);
2259 WINBASEAPI BOOL        WINAPI TryAcquireSRWLockShared(PSRWLOCK);
2260 WINBASEAPI BOOL        WINAPI TryEnterCriticalSection(CRITICAL_SECTION *lpCrit);
2261 WINBASEAPI BOOL        WINAPI TzSpecificLocalTimeToSystemTime(const TIME_ZONE_INFORMATION*,const SYSTEMTIME*,LPSYSTEMTIME);
2262 WINBASEAPI LONG        WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS);
2263 WINBASEAPI BOOL        WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
2264 WINBASEAPI BOOL        WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
2265 #define                       UnlockSegment(handle) GlobalUnfix((HANDLE)(handle))
2266 WINBASEAPI BOOL        WINAPI UnmapViewOfFile(LPCVOID);
2267 WINBASEAPI BOOL        WINAPI UnregisterWait(HANDLE);
2268 WINBASEAPI BOOL        WINAPI UnregisterWaitEx(HANDLE,HANDLE);
2269 WINBASEAPI BOOL        WINAPI UpdateResourceA(HANDLE,LPCSTR,LPCSTR,WORD,LPVOID,DWORD);
2270 WINBASEAPI BOOL        WINAPI UpdateResourceW(HANDLE,LPCWSTR,LPCWSTR,WORD,LPVOID,DWORD);
2271 #define                       UpdateResource WINELIB_NAME_AW(UpdateResource)
2272 WINBASEAPI BOOL        WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA,DWORD,DWORDLONG);
2273 WINBASEAPI BOOL        WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW,DWORD,DWORDLONG);
2274 #define                       VerifyVersionInfo WINELIB_NAME_AW(VerifyVersionInfo)
2275 WINBASEAPI LPVOID      WINAPI VirtualAlloc(LPVOID,SIZE_T,DWORD,DWORD);
2276 WINBASEAPI LPVOID      WINAPI VirtualAllocEx(HANDLE,LPVOID,SIZE_T,DWORD,DWORD);
2277 WINBASEAPI BOOL        WINAPI VirtualFree(LPVOID,SIZE_T,DWORD);
2278 WINBASEAPI BOOL        WINAPI VirtualFreeEx(HANDLE,LPVOID,SIZE_T,DWORD);
2279 WINBASEAPI BOOL        WINAPI VirtualLock(LPVOID,SIZE_T);
2280 WINBASEAPI BOOL        WINAPI VirtualProtect(LPVOID,SIZE_T,DWORD,LPDWORD);
2281 WINBASEAPI BOOL        WINAPI VirtualProtectEx(HANDLE,LPVOID,SIZE_T,DWORD,LPDWORD);
2282 WINBASEAPI SIZE_T      WINAPI VirtualQuery(LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T);
2283 WINBASEAPI SIZE_T      WINAPI VirtualQueryEx(HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T);
2284 WINBASEAPI BOOL        WINAPI VirtualUnlock(LPVOID,SIZE_T);
2285 WINBASEAPI DWORD       WINAPI WTSGetActiveConsoleSessionId(void);
2286 WINBASEAPI BOOL        WINAPI WaitCommEvent(HANDLE,LPDWORD,LPOVERLAPPED);
2287 WINBASEAPI BOOL        WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
2288 WINBASEAPI DWORD       WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,BOOL,DWORD);
2289 WINBASEAPI DWORD       WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL);
2290 WINBASEAPI DWORD       WINAPI WaitForSingleObject(HANDLE,DWORD);
2291 WINBASEAPI DWORD       WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
2292 WINBASEAPI BOOL        WINAPI WaitNamedPipeA(LPCSTR,DWORD);
2293 WINBASEAPI BOOL        WINAPI WaitNamedPipeW(LPCWSTR,DWORD);
2294 #define                       WaitNamedPipe WINELIB_NAME_AW(WaitNamedPipe)
2295 WINBASEAPI VOID        WINAPI WakeAllConditionVariable(PCONDITION_VARIABLE);
2296 WINBASEAPI VOID        WINAPI WakeConditionVariable(PCONDITION_VARIABLE);
2297 WINBASEAPI UINT        WINAPI WinExec(LPCSTR,UINT);
2298 WINBASEAPI BOOL        WINAPI Wow64DisableWow64FsRedirection(PVOID*);
2299 WINBASEAPI BOOLEAN     WINAPI Wow64EnableWow64FsRedirection(BOOLEAN);
2300 WINBASEAPI BOOL        WINAPI Wow64RevertWow64FsRedirection(PVOID);
2301 WINBASEAPI BOOL        WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
2302 WINBASEAPI BOOL        WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
2303 WINBASEAPI BOOL        WINAPI WriteFileGather(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
2304 WINBASEAPI BOOL        WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
2305 WINBASEAPI BOOL        WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);
2306 #define                       WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
2307 WINBASEAPI BOOL        WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
2308 WINBASEAPI BOOL        WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
2309 #define                       WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString)
2310 WINBASEAPI BOOL        WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
2311 WINBASEAPI BOOL        WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);
2312 #define                       WritePrivateProfileStruct WINELIB_NAME_AW(WritePrivateProfileStruct)
2313 WINBASEAPI BOOL        WINAPI WriteProcessMemory(HANDLE,LPVOID,LPCVOID,SIZE_T,SIZE_T*);
2314 WINBASEAPI BOOL        WINAPI WriteProfileSectionA(LPCSTR,LPCSTR);
2315 WINBASEAPI BOOL        WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR);
2316 #define                       WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
2317 WINBASEAPI BOOL        WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR);
2318 WINBASEAPI BOOL        WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR);
2319 #define                       WriteProfileString WINELIB_NAME_AW(WriteProfileString)
2320 WINBASEAPI DWORD       WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL);
2321 #define                       Yield()
2322 WINBASEAPI BOOL        WINAPI ZombifyActCtx(HANDLE);
2323 
2324 WINBASEAPI INT         WINAPI lstrcmpA(LPCSTR,LPCSTR);
2325 WINBASEAPI INT         WINAPI lstrcmpW(LPCWSTR,LPCWSTR);
2326 WINBASEAPI INT         WINAPI lstrcmpiA(LPCSTR,LPCSTR);
2327 WINBASEAPI INT         WINAPI lstrcmpiW(LPCWSTR,LPCWSTR);
2328 
2329 #if !defined(__WINESRC__) || defined(WINE_NO_INLINE_STRING)
2330 
2331 WINBASEAPI LPSTR       WINAPI lstrcatA(LPSTR,LPCSTR);
2332 WINBASEAPI LPWSTR      WINAPI lstrcatW(LPWSTR,LPCWSTR);
2333 WINBASEAPI LPSTR       WINAPI lstrcpyA(LPSTR,LPCSTR);
2334 WINBASEAPI LPWSTR      WINAPI lstrcpyW(LPWSTR,LPCWSTR);
2335 WINBASEAPI LPSTR       WINAPI lstrcpynA(LPSTR,LPCSTR,INT);
2336 WINBASEAPI LPWSTR      WINAPI lstrcpynW(LPWSTR,LPCWSTR,INT);
2337 WINBASEAPI INT         WINAPI lstrlenA(LPCSTR);
2338 WINBASEAPI INT         WINAPI lstrlenW(LPCWSTR);
2339 
2340 #else
2341 
2342 /* string functions without the exception handler */
2343 
2344 static inline LPWSTR WINAPI lstrcpynW( LPWSTR dst, LPCWSTR src, INT n )
2345 {
2346     LPWSTR d = dst;
2347     LPCWSTR s = src;
2348     UINT count = n;
2349 
2350     while ((count > 1) && *s)
2351     {
2352         count--;
2353         *d++ = *s++;
2354     }
2355     if (count) *d = 0;
2356     return dst;
2357 }
2358 
2359 static inline LPSTR WINAPI lstrcpynA( LPSTR dst, LPCSTR src, INT n )
2360 {
2361     LPSTR d = dst;
2362     LPCSTR s = src;
2363     UINT count = n;
2364 
2365     while ((count > 1) && *s)
2366     {
2367         count--;
2368         *d++ = *s++;
2369     }
2370     if (count) *d = 0;
2371     return dst;
2372 }
2373 
2374 static inline INT WINAPI lstrlenW( LPCWSTR str )
2375 {
2376     const WCHAR *s = str;
2377     while (*s) s++;
2378     return s - str;
2379 }
2380 
2381 static inline INT WINAPI lstrlenA( LPCSTR str )
2382 {
2383     return strlen( str );
2384 }
2385 
2386 static inline LPWSTR WINAPI lstrcpyW( LPWSTR dst, LPCWSTR src )
2387 {
2388     WCHAR *p = dst;
2389     while ((*p++ = *src++));
2390     return dst;
2391 }
2392 
2393 static inline LPSTR WINAPI lstrcpyA( LPSTR dst, LPCSTR src )
2394 {
2395     return strcpy( dst, src );
2396 }
2397 
2398 static inline LPWSTR WINAPI lstrcatW( LPWSTR dst, LPCWSTR src )
2399 {
2400     WCHAR *p = dst;
2401     while (*p) p++;
2402     while ((*p++ = *src++));
2403     return dst;
2404 }
2405 
2406 static inline LPSTR WINAPI lstrcatA( LPSTR dst, LPCSTR src )
2407 {
2408     return strcat( dst, src );
2409 }
2410 
2411 /* strncpy doesn't do what you think, don't use it */
2412 #undef strncpy
2413 #define strncpy(d,s,n) error do_not_use_strncpy_use_lstrcpynA_or_memcpy_instead
2414 
2415 #endif /* !defined(__WINESRC__) || defined(WINE_NO_INLINE_STRING) */
2416 
2417 #define     lstrcat WINELIB_NAME_AW(lstrcat)
2418 #define     lstrcmp WINELIB_NAME_AW(lstrcmp)
2419 #define     lstrcmpi WINELIB_NAME_AW(lstrcmpi)
2420 #define     lstrcpy WINELIB_NAME_AW(lstrcpy)
2421 #define     lstrcpyn WINELIB_NAME_AW(lstrcpyn)
2422 #define     lstrlen WINELIB_NAME_AW(lstrlen)
2423 
2424 WINBASEAPI LONG        WINAPI _hread(HFILE,LPVOID,LONG);
2425 WINBASEAPI LONG        WINAPI _hwrite(HFILE,LPCSTR,LONG);
2426 WINBASEAPI HFILE       WINAPI _lcreat(LPCSTR,INT);
2427 WINBASEAPI HFILE       WINAPI _lclose(HFILE);
2428 WINBASEAPI LONG        WINAPI _llseek(HFILE,LONG,INT);
2429 WINBASEAPI HFILE       WINAPI _lopen(LPCSTR,INT);
2430 WINBASEAPI UINT        WINAPI _lread(HFILE,LPVOID,UINT);
2431 WINBASEAPI UINT        WINAPI _lwrite(HFILE,LPCSTR,UINT);
2432 
2433 /* compatibility macros */
2434 #define     FillMemory RtlFillMemory
2435 #define     MoveMemory RtlMoveMemory
2436 #define     ZeroMemory RtlZeroMemory
2437 #define     CopyMemory RtlCopyMemory
2438 
2439 /* Wine internal functions */
2440 
2441 extern char * CDECL wine_get_unix_file_name( LPCWSTR dos );
2442 extern WCHAR * CDECL wine_get_dos_file_name( LPCSTR str );
2443 
2444 
2445 /* Interlocked functions */
2446 
2447 #ifdef __i386__
2448 # if defined(__GNUC__) && !defined(_NTSYSTEM_) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
2449 
2450 static FORCEINLINE LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare )
2451 {
2452     LONG ret;
2453     __asm__ __volatile__( "lock; cmpxchgl %2,(%1)"
2454                           : "=a" (ret) : "r" (dest), "r" (xchg), "" (compare) : "memory" );
2455     return ret;
2456 }
2457 
2458 static FORCEINLINE LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val )
2459 {
2460     LONG ret;
2461     __asm__ __volatile__( "lock; xchgl %0,(%1)"
2462                           : "=r" (ret) :"r" (dest), "" (val) : "memory" );
2463     return ret;
2464 }
2465 
2466 static FORCEINLINE LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr )
2467 {
2468     LONG ret;
2469     __asm__ __volatile__( "lock; xaddl %0,(%1)"
2470                           : "=r" (ret) : "r" (dest), "" (incr) : "memory" );
2471     return ret;
2472 }
2473 
2474 static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest )
2475 {
2476     return InterlockedExchangeAdd( dest, 1 ) + 1;
2477 }
2478 
2479 static FORCEINLINE LONG WINAPI InterlockedDecrement( LONG volatile *dest )
2480 {
2481     return InterlockedExchangeAdd( dest, -1 ) - 1;
2482 }
2483 
2484 # else  /* __GNUC__ */
2485 
2486 WINBASEAPI LONG WINAPI InterlockedCompareExchange(LONG volatile*,LONG,LONG);
2487 WINBASEAPI LONG WINAPI InterlockedDecrement(LONG volatile*);
2488 WINBASEAPI LONG WINAPI InterlockedExchange(LONG volatile*,LONG);
2489 WINBASEAPI LONG WINAPI InterlockedExchangeAdd(LONG volatile*,LONG);
2490 WINBASEAPI LONG WINAPI InterlockedIncrement(LONG volatile*);
2491 
2492 # endif  /* __GNUC__ */
2493 
2494 static FORCEINLINE PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare )
2495 {
2496     return (PVOID)InterlockedCompareExchange( (LONG volatile*)dest, (LONG)xchg, (LONG)compare );
2497 }
2498 
2499 static FORCEINLINE PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest, PVOID val )
2500 {
2501     return (PVOID)InterlockedExchange( (LONG volatile*)dest, (LONG)val );
2502 }
2503 
2504 WINBASEAPI LONGLONG WINAPI InterlockedCompareExchange64(LONGLONG volatile*,LONGLONG,LONGLONG);
2505 
2506 #elif defined(_MSC_VER)
2507 
2508 #pragma intrinsic(_InterlockedCompareExchange)
2509 #pragma intrinsic(_InterlockedCompareExchangePointer)
2510 #pragma intrinsic(_InterlockedCompareExchange64)
2511 #pragma intrinsic(_InterlockedExchange)
2512 #pragma intrinsic(_InterlockedExchangePointer)
2513 #pragma intrinsic(_InterlockedExchangeAdd)
2514 #pragma intrinsic(_InterlockedIncrement)
2515 #pragma intrinsic(_InterlockedDecrement)
2516 
2517 static FORCEINLINE LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare )
2518 {
2519     return _InterlockedCompareExchange( dest, xchg, compare );
2520 }
2521 
2522 static FORCEINLINE PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare )
2523 {
2524     return _InterlockedCompareExchangePointer( dest, xchg, compare );
2525 }
2526 
2527 static FORCEINLINE LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *dest, LONGLONG xchg, LONGLONG compare )
2528 {
2529     return _InterlockedCompareExchange64( dest, xchg, compare );
2530 }
2531 
2532 static FORCEINLINE LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val )
2533 {
2534     return _InterlockedExchange( dest, val );
2535 }
2536 
2537 static FORCEINLINE PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest, PVOID val )
2538 {
2539     return _InterlockedExchangePointer( dest, val );
2540 }
2541 
2542 static FORCEINLINE LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr )
2543 {
2544     return _InterlockedExchangeAdd( dest, incr );
2545 }
2546 
2547 static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest )
2548 {
2549     return _InterlockedIncrement( dest );
2550 }
2551 
2552 static FORCEINLINE LONG WINAPI InterlockedDecrement( LONG volatile *dest )
2553 {
2554     return _InterlockedDecrement( dest );
2555 }
2556 
2557 #elif defined(__GNUC__)
2558 
2559 static FORCEINLINE LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare )
2560 {
2561     return __sync_val_compare_and_swap( dest, compare, xchg );
2562 }
2563 
2564 static FORCEINLINE PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare )
2565 {
2566     return __sync_val_compare_and_swap( dest, compare, xchg );
2567 }
2568 
2569 static FORCEINLINE LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *dest, LONGLONG xchg, LONGLONG compare )
2570 {
2571     return __sync_val_compare_and_swap( dest, compare, xchg );
2572 }
2573 
2574 static FORCEINLINE LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val )
2575 {
2576     LONG ret;
2577 #ifdef __x86_64__
2578     __asm__ __volatile__( "lock; xchgl %0,(%1)" : "=r" (ret) :"r" (dest), "" (val) : "memory" );
2579 #else
2580     do ret = *dest; while (!__sync_bool_compare_and_swap( dest, ret, val ));
2581 #endif
2582     return ret;
2583 }
2584 
2585 static FORCEINLINE PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest, PVOID val )
2586 {
2587     PVOID ret;
2588 #ifdef __x86_64__
2589     __asm__ __volatile__( "lock; xchgq %0,(%1)" : "=r" (ret) :"r" (dest), "" (val) : "memory" );
2590 #else
2591     do ret = *dest; while (!__sync_bool_compare_and_swap( dest, ret, val ));
2592 #endif
2593     return ret;
2594 }
2595 
2596 static FORCEINLINE LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr )
2597 {
2598     return __sync_fetch_and_add( dest, incr );
2599 }
2600 
2601 static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest )
2602 {
2603     return __sync_add_and_fetch( dest, 1 );
2604 }
2605 
2606 static FORCEINLINE LONG WINAPI InterlockedDecrement( LONG volatile *dest )
2607 {
2608     return __sync_add_and_fetch( dest, -1 );
2609 }
2610 
2611 #endif  /* __i386__ */
2612 
2613 /* A few optimizations for gcc */
2614 
2615 #if defined(__GNUC__) && !defined(__MINGW32__) && (defined(__i386__) || defined(__x86_64__)) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
2616 
2617 static FORCEINLINE DWORD WINAPI GetLastError(void)
2618 {
2619     DWORD ret;
2620 #ifdef __x86_64__
2621     __asm__ __volatile__( ".byte 0x65\n\tmovl 0x68,%0" : "=r" (ret) );
2622 #else
2623     __asm__ __volatile__( ".byte 0x64\n\tmovl 0x34,%0" : "=r" (ret) );
2624 #endif
2625     return ret;
2626 }
2627 
2628 static FORCEINLINE DWORD WINAPI GetCurrentProcessId(void)
2629 {
2630     DWORD ret;
2631 #ifdef __x86_64__
2632     __asm__ __volatile__( ".byte 0x65\n\tmovl 0x40,%0" : "=r" (ret) );
2633 #else
2634     __asm__ __volatile__( ".byte 0x64\n\tmovl 0x20,%0" : "=r" (ret) );
2635 #endif
2636     return ret;
2637 }
2638 
2639 static FORCEINLINE DWORD WINAPI GetCurrentThreadId(void)
2640 {
2641     DWORD ret;
2642 #ifdef __x86_64__
2643     __asm__ __volatile__( ".byte 0x65\n\tmovl 0x48,%0" : "=r" (ret) );
2644 #else
2645     __asm__ __volatile__( ".byte 0x64\n\tmovl 0x24,%0" : "=r" (ret) );
2646 #endif
2647     return ret;
2648 }
2649 
2650 static FORCEINLINE void WINAPI SetLastError( DWORD err )
2651 {
2652 #ifdef __x86_64__
2653     __asm__ __volatile__( ".byte 0x65\n\tmovl %0,0x68" : : "r" (err) : "memory" );
2654 #else
2655     __asm__ __volatile__( ".byte 0x64\n\tmovl %0,0x34" : : "r" (err) : "memory" );
2656 #endif
2657 }
2658 
2659 static FORCEINLINE HANDLE WINAPI GetProcessHeap(void)
2660 {
2661     HANDLE *pdb;
2662 #ifdef __x86_64__
2663     __asm__ __volatile__( ".byte 0x65\n\tmovq 0x60,%0" : "=r" (pdb) );
2664     return pdb[0x30 / sizeof(HANDLE)];  /* get dword at offset 0x30 in pdb */
2665 #else
2666     __asm__ __volatile__( ".byte 0x64\n\tmovl 0x30,%0" : "=r" (pdb) );
2667     return pdb[0x18 / sizeof(HANDLE)];  /* get dword at offset 0x18 in pdb */
2668 #endif
2669 }
2670 
2671 #else  /* __GNUC__ */
2672 
2673 WINBASEAPI DWORD       WINAPI GetCurrentProcessId(void);
2674 WINBASEAPI DWORD       WINAPI GetCurrentThreadId(void);
2675 WINBASEAPI DWORD       WINAPI GetLastError(void);
2676 WINBASEAPI HANDLE      WINAPI GetProcessHeap(void);
2677 WINBASEAPI VOID        WINAPI SetLastError(DWORD);
2678 
2679 #endif  /* __GNUC__ */
2680 
2681 #ifdef __WINESRC__
2682 #define GetCurrentProcess() ((HANDLE)~(ULONG_PTR)0)
2683 #define GetCurrentThread()  ((HANDLE)~(ULONG_PTR)1)
2684 #endif
2685 
2686 /* WinMain(entry point) must be declared in winbase.h. */
2687 /* If this is not declared, we cannot compile many sources written with C++. */
2688 int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
2689 
2690 #ifdef __WINESRC__
2691 /* shouldn't be here, but is nice for type checking */
2692 BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved ) DECLSPEC_HIDDEN;
2693 #endif
2694 
2695 #ifdef __cplusplus
2696 }
2697 #endif
2698 
2699 #endif  /* __WINE_WINBASE_H */
2700 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.