Annotation of mstools/mfc/include/winbase.h, revision 1.1

1.1     ! root        1: /*++ BUILD Version: 0001    // Increment this if a change has global effects
        !             2: 
        !             3: Copyright (c) 1990  Microsoft Corporation
        !             4: 
        !             5: Module Name:
        !             6: 
        !             7:     winbase.h
        !             8: 
        !             9: Abstract:
        !            10: 
        !            11:     This module defines the 32-Bit Windows Base APIs
        !            12: 
        !            13: Created:
        !            14: 
        !            15:     18-Sep-1990
        !            16: 
        !            17: Revision History:
        !            18: 
        !            19: --*/
        !            20: 
        !            21: #ifndef _WINBASE_
        !            22: #define _WINBASE_
        !            23: 
        !            24: /*
        !            25:  * Compatability macros
        !            26:  */
        !            27: 
        !            28: #define DefineHandleTable(w)            ((w),TRUE)
        !            29: #define LimitEmsPages(dw)
        !            30: #define SetSwapAreaSize(w)              (w)
        !            31: #define LockSegment(w)                  GlobalFix((HANDLE)(w))
        !            32: #define UnlockSegment(w)                GlobalUnfix((HANDLE)(w))
        !            33: #define GetCurrentTime()                GetTickCount()
        !            34: 
        !            35: #define Yield()
        !            36: 
        !            37: #define INVALID_HANDLE_VALUE (HANDLE)-1
        !            38: #define FILE_BEGIN           0
        !            39: #define FILE_CURRENT         1
        !            40: #define FILE_END             2
        !            41: 
        !            42: #define WAIT_OBJECT_0       ((STATUS_WAIT_0 ) + 0 )
        !            43: 
        !            44: #define WAIT_ABANDONED         ((STATUS_ABANDONED_WAIT_0 ) + 0 )
        !            45: #define WAIT_ABANDONED_0       ((STATUS_ABANDONED_WAIT_0 ) + 0 )
        !            46: 
        !            47: #define WAIT_TIMEOUT                    STATUS_TIMEOUT
        !            48: #define WAIT_IO_COMPLETION              STATUS_USER_APC
        !            49: #define STILL_ACTIVE                    STATUS_PENDING
        !            50: #define EXCEPTION_ACCESS_VIOLATION      STATUS_ACCESS_VIOLATION
        !            51: #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
        !            52: #define EXCEPTION_BREAKPOINT            STATUS_BREAKPOINT
        !            53: #define EXCEPTION_SINGLE_STEP           STATUS_SINGLE_STEP
        !            54: #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
        !            55: #define EXCEPTION_FLT_DENORMAL_OPERAND  STATUS_FLOAT_DENORMAL_OPERAND
        !            56: #define EXCEPTION_FLT_DIVIDE_BY_ZERO    STATUS_FLOAT_DIVIDE_BY_ZERO
        !            57: #define EXCEPTION_FLT_INEXACT_RESULT    STATUS_FLOAT_INEXACT_RESULT
        !            58: #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
        !            59: #define EXCEPTION_FLT_OVERFLOW          STATUS_FLOAT_OVERFLOW
        !            60: #define EXCEPTION_FLT_STACK_CHECK       STATUS_FLOAT_STACK_CHECK
        !            61: #define EXCEPTION_FLT_UNDERFLOW         STATUS_FLOAT_UNDERFLOW
        !            62: #define EXCEPTION_INT_DIVIDE_BY_ZERO    STATUS_INTEGER_DIVIDE_BY_ZERO
        !            63: #define EXCEPTION_INT_OVERFLOW          STATUS_INTEGER_OVERFLOW
        !            64: #define EXCEPTION_PRIV_INSTRUCTION      STATUS_PRIVILEGED_INSTRUCTION
        !            65: #define CONTROL_C_EXIT                  STATUS_CONTROL_C_EXIT
        !            66: 
        !            67: //
        !            68: // File creation flags must start at the high end since they
        !            69: // are combined with the attributes
        !            70: //
        !            71: 
        !            72: #define FILE_FLAG_WRITE_THROUGH     0x80000000
        !            73: #define FILE_FLAG_OVERLAPPED        0x40000000
        !            74: #define FILE_FLAG_NO_BUFFERING      0x20000000
        !            75: #define FILE_FLAG_RANDOM_ACCESS     0x10000000
        !            76: #define FILE_FLAG_SEQUENTIAL_SCAN   0x08000000
        !            77: #define FILE_FLAG_DELETE_ON_CLOSE   0x04000000
        !            78: #define FILE_FLAG_BACKUP_SEMANTICS  0x02000000
        !            79: 
        !            80: #define CREATE_NEW          1
        !            81: #define CREATE_ALWAYS       2
        !            82: #define OPEN_EXISTING       3
        !            83: #define OPEN_ALWAYS         4
        !            84: #define TRUNCATE_EXISTING   5
        !            85: 
        !            86: //
        !            87: // Define the NamedPipe definitions
        !            88: //
        !            89: 
        !            90: 
        !            91: //
        !            92: // Define the dwOpenMode values for CreateNamedPipe
        !            93: //
        !            94: 
        !            95: #define PIPE_ACCESS_INBOUND         0x00000001
        !            96: #define PIPE_ACCESS_OUTBOUND        0x00000002
        !            97: #define PIPE_ACCESS_DUPLEX          0x00000003
        !            98: 
        !            99: //
        !           100: // Define the Named Pipe End flags for GetNamedPipeInfo
        !           101: //
        !           102: 
        !           103: #define PIPE_CLIENT_END             0x00000000
        !           104: #define PIPE_SERVER_END             0x00000001
        !           105: 
        !           106: //
        !           107: // Define the dwPipeMode values for CreateNamedPipe
        !           108: //
        !           109: 
        !           110: #define PIPE_WAIT                   0x00000000
        !           111: #define PIPE_NOWAIT                 0x00000001
        !           112: #define PIPE_READMODE_BYTE          0x00000000
        !           113: #define PIPE_READMODE_MESSAGE       0x00000002
        !           114: #define PIPE_TYPE_BYTE              0x00000000
        !           115: #define PIPE_TYPE_MESSAGE           0x00000004
        !           116: 
        !           117: //
        !           118: // Define the well known values for CreateNamedPipe nMaxInstances
        !           119: //
        !           120: 
        !           121: #define PIPE_UNLIMITED_INSTANCES    255
        !           122: 
        !           123: //
        !           124: // Define the Security Quality of Service bits to be passed
        !           125: // into CreateFile
        !           126: //
        !           127: 
        !           128: #define SECURITY_ANONYMOUS          ( SecurityAnonymous      << 16 )
        !           129: #define SECURITY_IDENTIFICATION     ( SecurityIdentification << 16 )
        !           130: #define SECURITY_IMPERSONATION      ( SecurityImpersonation  << 16 )
        !           131: #define SECURITY_DELEGATION         ( SecurityDelegation     << 16 )
        !           132: 
        !           133: #define SECURITY_CONTEXT_TRACKING  0x00040000
        !           134: #define SECURITY_EFFECTIVE_ONLY    0x00080000
        !           135: 
        !           136: #define SECURITY_SQOS_PRESENT      0x00100000
        !           137: #define SECURITY_VALID_SQOS_FLAGS  0x001F0000
        !           138: 
        !           139: 
        !           140: //
        !           141: // Special values for mailslot information.
        !           142: //
        !           143: 
        !           144: //
        !           145: // Special value for NextMessageSize to indicate that there is no next
        !           146: // message.
        !           147: //
        !           148: 
        !           149: #define MAILSLOT_NO_MESSAGE             ((ULONG)-1)
        !           150: 
        !           151: //
        !           152: // Special value for read timeout to indicate that mailslot reads should
        !           153: // never timeout.
        !           154: //
        !           155: 
        !           156: #define MAILSLOT_WAIT_FOREVER           ((ULONG)-1)
        !           157: 
        !           158: //
        !           159: //  File structures
        !           160: //
        !           161: 
        !           162: typedef struct _OVERLAPPED {
        !           163:     DWORD   Internal;
        !           164:     DWORD   InternalHigh;
        !           165:     DWORD   Offset;
        !           166:     DWORD   OffsetHigh;
        !           167:     HANDLE  hEvent;
        !           168: } OVERLAPPED, *LPOVERLAPPED;
        !           169: 
        !           170: typedef struct _SECURITY_ATTRIBUTES {
        !           171:     DWORD nLength;
        !           172:     LPVOID lpSecurityDescriptor;
        !           173:     BOOL bInheritHandle;
        !           174: } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
        !           175: 
        !           176: typedef struct _PROCESS_INFORMATION {
        !           177:     HANDLE hProcess;
        !           178:     HANDLE hThread;
        !           179:     DWORD dwProcessId;
        !           180:     DWORD dwThreadId;
        !           181: } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
        !           182: 
        !           183: //
        !           184: //  File System time stamps are represented with the following structure:
        !           185: //
        !           186: 
        !           187: typedef struct _FILETIME {
        !           188:     DWORD dwLowDateTime;
        !           189:     DWORD dwHighDateTime;
        !           190: } FILETIME, *PFILETIME, *LPFILETIME;
        !           191: 
        !           192: //
        !           193: // System time is represented with the following structure:
        !           194: //
        !           195: 
        !           196: typedef struct _SYSTEMTIME {
        !           197:     WORD wYear;
        !           198:     WORD wMonth;
        !           199:     WORD wDayOfWeek;
        !           200:     WORD wDay;
        !           201:     WORD wHour;
        !           202:     WORD wMinute;
        !           203:     WORD wSecond;
        !           204:     WORD wMilliseconds;
        !           205: } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
        !           206: 
        !           207: typedef DWORD (*PTHREAD_START_ROUTINE)(
        !           208:     LPVOID lpThreadParameter
        !           209:     );
        !           210: typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
        !           211: 
        !           212: typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
        !           213: typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
        !           214: typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
        !           215: 
        !           216: #ifdef i386
        !           217: typedef PLDT_ENTRY LPLDT_ENTRY;
        !           218: #else
        !           219: typedef LPVOID LPLDT_ENTRY;
        !           220: #endif
        !           221: 
        !           222: #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
        !           223: #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS
        !           224: 
        !           225: //
        !           226: // Serial provider type.
        !           227: //
        !           228: 
        !           229: #define SP_SERIALCOMM    ((DWORD)0x00000001)
        !           230: 
        !           231: //
        !           232: // Provider SubTypes
        !           233: //
        !           234: 
        !           235: #define PST_UNSPECIFIED      ((DWORD)0x00000000)
        !           236: #define PST_RS232            ((DWORD)0x00000001)
        !           237: #define PST_PARALLELPORT     ((DWORD)0x00000002)
        !           238: #define PST_RS422            ((DWORD)0x00000003)
        !           239: #define PST_RS423            ((DWORD)0x00000004)
        !           240: #define PST_RS449            ((DWORD)0x00000005)
        !           241: #define PST_FAX              ((DWORD)0x00000021)
        !           242: #define PST_SCANNER          ((DWORD)0x00000022)
        !           243: #define PST_NETWORK_BRIDGE   ((DWORD)0x00000100)
        !           244: #define PST_LAT              ((DWORD)0x00000101)
        !           245: #define PST_TCPIP_TELNET     ((DWORD)0x00000102)
        !           246: #define PST_X25              ((DWORD)0x00000103)
        !           247: 
        !           248: 
        !           249: //
        !           250: // Provider capabilities flags.
        !           251: //
        !           252: 
        !           253: #define PCF_DTRDSR        ((DWORD)0x0001)
        !           254: #define PCF_RTSCTS        ((DWORD)0x0002)
        !           255: #define PCF_RLSD          ((DWORD)0x0004)
        !           256: #define PCF_PARITY_CHECK  ((DWORD)0x0008)
        !           257: #define PCF_XONXOFF       ((DWORD)0x0010)
        !           258: #define PCF_SETXCHAR      ((DWORD)0x0020)
        !           259: #define PCF_TOTALTIMEOUTS ((DWORD)0x0040)
        !           260: #define PCF_INTTIMEOUTS   ((DWORD)0x0080)
        !           261: #define PCF_SPECIALCHARS  ((DWORD)0x0100)
        !           262: #define PCF_16BITMODE     ((DWORD)0x0200)
        !           263: 
        !           264: //
        !           265: // Comm provider settable parameters.
        !           266: //
        !           267: 
        !           268: #define SP_PARITY         ((DWORD)0x0001)
        !           269: #define SP_BAUD           ((DWORD)0x0002)
        !           270: #define SP_DATABITS       ((DWORD)0x0004)
        !           271: #define SP_STOPBITS       ((DWORD)0x0008)
        !           272: #define SP_HANDSHAKING    ((DWORD)0x0010)
        !           273: #define SP_PARITY_CHECK   ((DWORD)0x0020)
        !           274: #define SP_RLSD           ((DWORD)0x0040)
        !           275: 
        !           276: //
        !           277: // Settable baud rates in the provider.
        !           278: //
        !           279: 
        !           280: #define BAUD_075          ((DWORD)0x00000001)
        !           281: #define BAUD_110          ((DWORD)0x00000002)
        !           282: #define BAUD_134_5        ((DWORD)0x00000004)
        !           283: #define BAUD_150          ((DWORD)0x00000008)
        !           284: #define BAUD_300          ((DWORD)0x00000010)
        !           285: #define BAUD_600          ((DWORD)0x00000020)
        !           286: #define BAUD_1200         ((DWORD)0x00000040)
        !           287: #define BAUD_1800         ((DWORD)0x00000080)
        !           288: #define BAUD_2400         ((DWORD)0x00000100)
        !           289: #define BAUD_4800         ((DWORD)0x00000200)
        !           290: #define BAUD_7200         ((DWORD)0x00000400)
        !           291: #define BAUD_9600         ((DWORD)0x00000800)
        !           292: #define BAUD_14400        ((DWORD)0x00001000)
        !           293: #define BAUD_19200        ((DWORD)0x00002000)
        !           294: #define BAUD_38400        ((DWORD)0x00004000)
        !           295: #define BAUD_56K          ((DWORD)0x00008000)
        !           296: #define BAUD_128K         ((DWORD)0x00010000)
        !           297: #define BAUD_USER         ((DWORD)0x10000000)
        !           298: 
        !           299: //
        !           300: // Settable Data Bits
        !           301: //
        !           302: 
        !           303: #define DATABITS_5        ((WORD)0x0001)
        !           304: #define DATABITS_6        ((WORD)0x0002)
        !           305: #define DATABITS_7        ((WORD)0x0004)
        !           306: #define DATABITS_8        ((WORD)0x0008)
        !           307: #define DATABITS_16       ((WORD)0x0010)
        !           308: #define DATABITS_16X      ((WORD)0x0020)
        !           309: 
        !           310: //
        !           311: // Settable Stop and Parity bits.
        !           312: //
        !           313: 
        !           314: #define STOPBITS_10       ((WORD)0x0001)
        !           315: #define STOPBITS_15       ((WORD)0x0002)
        !           316: #define STOPBITS_20       ((WORD)0x0004)
        !           317: #define PARITY_NONE       ((WORD)0x0100)
        !           318: #define PARITY_ODD        ((WORD)0x0200)
        !           319: #define PARITY_EVEN       ((WORD)0x0400)
        !           320: #define PARITY_MARK       ((WORD)0x0800)
        !           321: #define PARITY_SPACE      ((WORD)0x1000)
        !           322: 
        !           323: typedef struct _COMMPROP {
        !           324:     WORD wPacketLength;
        !           325:     WORD wPacketVersion;
        !           326:     DWORD dwServiceMask;
        !           327:     DWORD dwReserved1;
        !           328:     DWORD dwMaxTxQueue;
        !           329:     DWORD dwMaxRxQueue;
        !           330:     DWORD dwMaxBaud;
        !           331:     DWORD dwProvSubType;
        !           332:     DWORD dwProvCapabilities;
        !           333:     DWORD dwSettableParams;
        !           334:     DWORD dwSettableBaud;
        !           335:     WORD wSettableData;
        !           336:     WORD wSettableStopParity;
        !           337:     DWORD dwCurrentTxQueue;
        !           338:     DWORD dwCurrentRxQueue;
        !           339:     DWORD dwProvSpec1;
        !           340:     DWORD dwProvSpec2;
        !           341:     WCHAR wcProvChar[1];
        !           342: } COMMPROP,*LPCOMMPROP;
        !           343: 
        !           344: typedef struct _COMSTAT {
        !           345:     DWORD fCtsHold : 1;
        !           346:     DWORD fDsrHold : 1;
        !           347:     DWORD fRlsdHold : 1;
        !           348:     DWORD fXoffHold : 1;
        !           349:     DWORD fXoffSent : 1;
        !           350:     DWORD fEof : 1;
        !           351:     DWORD fTxim : 1;
        !           352:     DWORD fReserved : 17;
        !           353:     DWORD cbInQue;
        !           354:     DWORD cbOutQue;
        !           355: } COMSTAT, *LPCOMSTAT;
        !           356: 
        !           357: //
        !           358: // DTR Control Flow Values.
        !           359: //
        !           360: #define DTR_CONTROL_DISABLE    0x00
        !           361: #define DTR_CONTROL_ENABLE     0x01
        !           362: #define DTR_CONTROL_HANDSHAKE  0x02
        !           363: 
        !           364: //
        !           365: // RTS Control Flow Values
        !           366: //
        !           367: #define RTS_CONTROL_DISABLE    0x00
        !           368: #define RTS_CONTROL_ENABLE     0x01
        !           369: #define RTS_CONTROL_HANDSHAKE  0x02
        !           370: #define RTS_CONTROL_TOGGLE     0x03
        !           371: 
        !           372: typedef struct _DCB {
        !           373:     DWORD DCBlength;      /* sizeof(DCB)                     */
        !           374:     DWORD BaudRate;       /* Baudrate at which running       */
        !           375:     DWORD fBinary: 1;     /* Binary Mode (skip EOF check)    */
        !           376:     DWORD fParity: 1;     /* Enable parity checking          */
        !           377:     DWORD fOutxCtsFlow:1; /* CTS handshaking on output       */
        !           378:     DWORD fOutxDsrFlow:1; /* DSR handshaking on output       */
        !           379:     DWORD fDtrControl:2;  /* DTR Flow control                */
        !           380:     DWORD fDsrSensitivity:1; /* DSR Sensitivity              */
        !           381:     DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */
        !           382:     DWORD fOutX: 1;       /* Enable output X-ON/X-OFF        */
        !           383:     DWORD fInX: 1;        /* Enable input X-ON/X-OFF         */
        !           384:     DWORD fErrorChar: 1;  /* Enable Err Replacement          */
        !           385:     DWORD fNull: 1;       /* Enable Null stripping           */
        !           386:     DWORD fRtsControl:2;  /* Rts Flow control                */
        !           387:     DWORD fAbortOnError:1; /* Abort all reads and writes on Error */
        !           388:     DWORD fDummy2:1;      /* Reserved                        */
        !           389:     WORD wReserved;       /* Not currently used              */
        !           390:     WORD XonLim;          /* Transmit X-ON threshold         */
        !           391:     WORD XoffLim;         /* Transmit X-OFF threshold        */
        !           392:     BYTE ByteSize;        /* Number of bits/byte, 4-8        */
        !           393:     BYTE Parity;          /* 0-4=None,Odd,Even,Mark,Space    */
        !           394:     BYTE StopBits;        /* 0,1,2 = 1, 1.5, 2               */
        !           395:     char XonChar;         /* Tx and Rx X-ON character        */
        !           396:     char XoffChar;        /* Tx and Rx X-OFF character       */
        !           397:     char ErrorChar;       /* Error replacement char          */
        !           398:     char EofChar;         /* End of Input character          */
        !           399:     char EvtChar;         /* Recieved Event character        */
        !           400: } DCB, *LPDCB;
        !           401: 
        !           402: typedef struct _COMMTIMEOUTS {
        !           403:     DWORD ReadIntervalTimeout;          /* Maximum time between read chars. */
        !           404:     DWORD ReadTotalTimeoutMultiplier;   /* Multiplier of characters.        */
        !           405:     DWORD ReadTotalTimeoutConstant;     /* Constant in milliseconds.        */
        !           406:     DWORD WriteTotalTimeoutMultiplier;  /* Multiplier of characters.        */
        !           407:     DWORD WriteTotalTimeoutConstant;    /* Constant in milliseconds.        */
        !           408: } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
        !           409: 
        !           410: typedef struct _SYSTEM_INFO {
        !           411:     DWORD dwOemId;
        !           412:     DWORD dwPageSize;
        !           413:     LPVOID lpMinimumApplicationAddress;
        !           414:     LPVOID lpMaximumApplicationAddress;
        !           415:     DWORD dwActiveProcessorMask;
        !           416:     DWORD dwNumberOfProcessors;
        !           417:     DWORD dwProcessorType;
        !           418:     DWORD dwProcessorRevision;
        !           419:     DWORD dwProcessorOptions;
        !           420: } SYSTEM_INFO, *LPSYSTEM_INFO;
        !           421: 
        !           422: #define FreeModule(hLibModule) FreeLibrary((hLibModule))
        !           423: #define MakeProcInstance(lpProc,hInstance) (lpProc)
        !           424: #define FreeProcInstance(lpProc)
        !           425: 
        !           426: /* Global Memory Flags */
        !           427: #define GMEM_FIXED          0x0000
        !           428: #define GMEM_MOVEABLE       0x0002
        !           429: #define GMEM_NOCOMPACT      0x0010
        !           430: #define GMEM_NODISCARD      0x0020
        !           431: #define GMEM_ZEROINIT       0x0040
        !           432: #define GMEM_MODIFY         0x0080
        !           433: #define GMEM_DISCARDABLE    0x0100
        !           434: #define GMEM_NOT_BANKED     0x1000
        !           435: #define GMEM_SHARE          0x2000
        !           436: #define GMEM_DDESHARE       0x2000
        !           437: #define GMEM_NOTIFY         0x4000
        !           438: #define GMEM_LOWER          GMEM_NOT_BANKED
        !           439: #define GMEM_VALID_FLAGS    0x7F72
        !           440: #define GMEM_INVALID_HANDLE 0x8000
        !           441: 
        !           442: #define GHND                (GMEM_MOVEABLE | GMEM_ZEROINIT)
        !           443: #define GPTR                (GMEM_FIXED | GMEM_ZEROINIT)
        !           444: 
        !           445: #define GlobalLRUNewest( h )    (HANDLE)(h)
        !           446: #define GlobalLRUOldest( h )    (HANDLE)(h)
        !           447: #define GlobalDiscard( h )      GlobalReAlloc( (h), 0, GMEM_MOVEABLE )
        !           448: 
        !           449: /* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */
        !           450: #define GMEM_DISCARDED      0x4000
        !           451: #define GMEM_LOCKCOUNT      0x00FF
        !           452: 
        !           453: typedef struct _MEMORYSTATUS {
        !           454:     DWORD dwLength;
        !           455:     DWORD dwMemoryLoad;
        !           456:     DWORD dwTotalPhys;
        !           457:     DWORD dwAvailPhys;
        !           458:     DWORD dwTotalPageFile;
        !           459:     DWORD dwAvailPageFile;
        !           460:     DWORD dwTotalVirtual;
        !           461:     DWORD dwAvailVirtual;
        !           462: } MEMORYSTATUS, *LPMEMORYSTATUS;
        !           463: 
        !           464: /* Local Memory Flags */
        !           465: #define LMEM_FIXED          0x0000
        !           466: #define LMEM_MOVEABLE       0x0002
        !           467: #define LMEM_NOCOMPACT      0x0010
        !           468: #define LMEM_NODISCARD      0x0020
        !           469: #define LMEM_ZEROINIT       0x0040
        !           470: #define LMEM_MODIFY         0x0080
        !           471: #define LMEM_DISCARDABLE    0x0F00
        !           472: #define LMEM_VALID_FLAGS    0x0F72
        !           473: #define LMEM_INVALID_HANDLE 0x8000
        !           474: 
        !           475: #define LHND                (LMEM_MOVEABLE | LMEM_ZEROINIT)
        !           476: #define LPTR                (LMEM_FIXED | LMEM_ZEROINIT)
        !           477: 
        !           478: #define NONZEROLHND         (LMEM_MOVEABLE)
        !           479: #define NONZEROLPTR         (LMEM_FIXED)
        !           480: 
        !           481: #define LocalDiscard( h )   LocalReAlloc( (h), 0, LMEM_MOVEABLE )
        !           482: 
        !           483: /* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */
        !           484: #define LMEM_DISCARDED      0x4000
        !           485: #define LMEM_LOCKCOUNT      0x00FF
        !           486: 
        !           487: //
        !           488: // dwCreationFlag values
        !           489: //
        !           490: 
        !           491: #define DEBUG_PROCESS               0x00000001
        !           492: #define DEBUG_ONLY_THIS_PROCESS     0x00000002
        !           493: 
        !           494: #define CREATE_SUSPENDED            0x00000004
        !           495: 
        !           496: #define DETACHED_PROCESS            0x00000008
        !           497: 
        !           498: #define CREATE_NEW_CONSOLE          0x00000010
        !           499: 
        !           500: #define NORMAL_PRIORITY_CLASS       0x00000020
        !           501: #define IDLE_PRIORITY_CLASS         0x00000040
        !           502: #define HIGH_PRIORITY_CLASS         0x00000080
        !           503: 
        !           504: #define CREATE_NO_WINDOW            0x08000000
        !           505: 
        !           506: #define PROFILE_USER                0x10000000
        !           507: #define PROFILE_KERNEL              0x20000000
        !           508: #define PROFILE_SERVER              0x40000000
        !           509: 
        !           510: #define THREAD_PRIORITY_LOWEST          THREAD_BASE_PRIORITY_MIN
        !           511: #define THREAD_PRIORITY_BELOW_NORMAL    (THREAD_PRIORITY_LOWEST+1)
        !           512: #define THREAD_PRIORITY_NORMAL          0
        !           513: #define THREAD_PRIORITY_HIGHEST         THREAD_BASE_PRIORITY_MAX
        !           514: #define THREAD_PRIORITY_ABOVE_NORMAL    (THREAD_PRIORITY_HIGHEST-1)
        !           515: #define THREAD_PRIORITY_ERROR_RETURN    (MAXLONG)
        !           516: 
        !           517: //
        !           518: // Debug APIs
        !           519: //
        !           520: #define EXCEPTION_DEBUG_EVENT       1
        !           521: #define CREATE_THREAD_DEBUG_EVENT   2
        !           522: #define CREATE_PROCESS_DEBUG_EVENT  3
        !           523: #define EXIT_THREAD_DEBUG_EVENT     4
        !           524: #define EXIT_PROCESS_DEBUG_EVENT    5
        !           525: #define LOAD_DLL_DEBUG_EVENT        6
        !           526: #define UNLOAD_DLL_DEBUG_EVENT      7
        !           527: #define OUTPUT_DEBUG_STRING_EVENT   8
        !           528: #define RIP_EVENT                   9
        !           529: 
        !           530: typedef struct _EXCEPTION_DEBUG_INFO {
        !           531:     EXCEPTION_RECORD ExceptionRecord;
        !           532:     DWORD dwFirstChance;
        !           533: } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
        !           534: 
        !           535: typedef struct _CREATE_THREAD_DEBUG_INFO {
        !           536:     HANDLE hThread;
        !           537:     LPTHREAD_START_ROUTINE lpStartAddress;
        !           538: } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
        !           539: 
        !           540: typedef struct _CREATE_PROCESS_DEBUG_INFO {
        !           541:     HANDLE hFile;
        !           542:     HANDLE hProcess;
        !           543:     HANDLE hThread;
        !           544:     LPVOID lpBaseOfImage;
        !           545:     DWORD dwDebugInfoFileOffset;
        !           546:     DWORD nDebugInfoSize;
        !           547:     LPTHREAD_START_ROUTINE lpStartAddress;
        !           548: } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
        !           549: 
        !           550: typedef struct _EXIT_THREAD_DEBUG_INFO {
        !           551:     DWORD dwExitCode;
        !           552: } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
        !           553: 
        !           554: typedef struct _EXIT_PROCESS_DEBUG_INFO {
        !           555:     DWORD dwExitCode;
        !           556: } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
        !           557: 
        !           558: typedef struct _LOAD_DLL_DEBUG_INFO {
        !           559:     HANDLE hFile;
        !           560:     LPVOID lpBaseOfDll;
        !           561:     DWORD dwDebugInfoFileOffset;
        !           562:     DWORD nDebugInfoSize;
        !           563: } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
        !           564: 
        !           565: typedef struct _UNLOAD_DLL_DEBUG_INFO {
        !           566:     LPVOID lpBaseOfDll;
        !           567: } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
        !           568: 
        !           569: typedef struct _OUTPUT_DEBUG_STRING_INFO {
        !           570:     LPSTR lpDebugStringData;
        !           571:     WORD fUnicode;
        !           572:     WORD nDebugStringLength;
        !           573: } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
        !           574: 
        !           575: typedef struct _RIP_INFO {
        !           576:     DWORD dwError;
        !           577:     DWORD dwType;
        !           578: } RIP_INFO, *LPRIP_INFO;
        !           579: 
        !           580: 
        !           581: typedef struct _DEBUG_EVENT {
        !           582:     DWORD dwDebugEventCode;
        !           583:     DWORD dwProcessId;
        !           584:     DWORD dwThreadId;
        !           585:     union {
        !           586:         EXCEPTION_DEBUG_INFO Exception;
        !           587:         CREATE_THREAD_DEBUG_INFO CreateThread;
        !           588:         CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
        !           589:         EXIT_THREAD_DEBUG_INFO ExitThread;
        !           590:         EXIT_THREAD_DEBUG_INFO ExitProcess;
        !           591:         LOAD_DLL_DEBUG_INFO LoadDll;
        !           592:         UNLOAD_DLL_DEBUG_INFO UnloadDll;
        !           593:         OUTPUT_DEBUG_STRING_INFO DebugString;
        !           594:         RIP_INFO RipInfo;
        !           595:     } u;
        !           596: } DEBUG_EVENT, *LPDEBUG_EVENT;
        !           597: 
        !           598: typedef PCONTEXT LPCONTEXT;
        !           599: typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
        !           600: typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
        !           601: 
        !           602: #define DRIVE_REMOVABLE 2
        !           603: #define DRIVE_FIXED     3
        !           604: #define DRIVE_REMOTE    4
        !           605: #define DRIVE_CDROM     5
        !           606: #define DRIVE_RAMDISK   6
        !           607: 
        !           608: 
        !           609: #define GetFreeSpace(w)                 (0x100000L)
        !           610: 
        !           611: 
        !           612: #define FILE_TYPE_UNKNOWN   0x0000
        !           613: #define FILE_TYPE_DISK      0x0001
        !           614: #define FILE_TYPE_CHAR      0x0002
        !           615: #define FILE_TYPE_PIPE      0x0003
        !           616: #define FILE_TYPE_REMOTE    0x8000
        !           617: 
        !           618: 
        !           619: #define STD_INPUT_HANDLE    (DWORD)-10
        !           620: #define STD_OUTPUT_HANDLE   (DWORD)-11
        !           621: #define STD_ERROR_HANDLE      (DWORD)-12
        !           622: 
        !           623: #define NOPARITY            0
        !           624: #define ODDPARITY           1
        !           625: #define EVENPARITY          2
        !           626: #define MARKPARITY          3
        !           627: #define SPACEPARITY         4
        !           628: 
        !           629: #define ONESTOPBIT          0
        !           630: #define ONE5STOPBITS        1
        !           631: #define TWOSTOPBITS         2
        !           632: 
        !           633: #define IGNORE              0       // Ignore signal
        !           634: #define INFINITE            0xFFFFFFFF  // Infinite timeout
        !           635: 
        !           636: //
        !           637: // Basud rates at which the communication device operates
        !           638: //
        !           639: 
        !           640: #define CBR_110             110
        !           641: #define CBR_300             300
        !           642: #define CBR_600             600
        !           643: #define CBR_1200            1200
        !           644: #define CBR_2400            2400
        !           645: #define CBR_4800            4800
        !           646: #define CBR_9600            9600
        !           647: #define CBR_14400           14400
        !           648: #define CBR_19200           19200
        !           649: #define CBR_38400           38400
        !           650: #define CBR_56000           56000
        !           651: #define CBR_128000          128000
        !           652: #define CBR_256000          256000
        !           653: 
        !           654: //
        !           655: // Error Flags
        !           656: //
        !           657: 
        !           658: #define CE_RXOVER           0x0001  // Receive Queue overflow
        !           659: #define CE_OVERRUN          0x0002  // Receive Overrun Error
        !           660: #define CE_RXPARITY         0x0004  // Receive Parity Error
        !           661: #define CE_FRAME            0x0008  // Receive Framing error
        !           662: #define CE_BREAK            0x0010  // Break Detected
        !           663: #define CE_TXFULL           0x0100  // TX Queue is full
        !           664: #define CE_PTO              0x0200  // LPTx Timeout
        !           665: #define CE_IOE              0x0400  // LPTx I/O Error
        !           666: #define CE_DNS              0x0800  // LPTx Device not selected
        !           667: #define CE_OOP              0x1000  // LPTx Out-Of-Paper
        !           668: #define CE_MODE             0x8000  // Requested mode unsupported
        !           669: 
        !           670: #define IE_BADID            (-1)    // Invalid or unsupported id
        !           671: #define IE_OPEN             (-2)    // Device Already Open
        !           672: #define IE_NOPEN            (-3)    // Device Not Open
        !           673: #define IE_MEMORY           (-4)    // Unable to allocate queues
        !           674: #define IE_DEFAULT          (-5)    // Error in default parameters
        !           675: #define IE_HARDWARE         (-10)   // Hardware Not Present
        !           676: #define IE_BYTESIZE         (-11)   // Illegal Byte Size
        !           677: #define IE_BAUDRATE         (-12)   // Unsupported BaudRate
        !           678: 
        !           679: //
        !           680: // Events
        !           681: //
        !           682: 
        !           683: #define EV_RXCHAR           0x0001  // Any Character received
        !           684: #define EV_RXFLAG           0x0002  // Received certain character
        !           685: #define EV_TXEMPTY          0x0004  // Transmitt Queue Empty
        !           686: #define EV_CTS              0x0008  // CTS changed state
        !           687: #define EV_DSR              0x0010  // DSR changed state
        !           688: #define EV_RLSD             0x0020  // RLSD changed state
        !           689: #define EV_BREAK            0x0040  // BREAK received
        !           690: #define EV_ERR              0x0080  // Line status error occurred
        !           691: #define EV_RING             0x0100  // Ring signal detected
        !           692: #define EV_PERR             0x0200  // Printer error occured
        !           693: #define EV_RX80FULL         0x0400  // Receive buffer is 80 percent full
        !           694: #define EV_EVENT1           0x0800  // Provider specific event 1
        !           695: #define EV_EVENT2           0x1000  // Provider specific event 2
        !           696: 
        !           697: //
        !           698: // Escape Functions
        !           699: //
        !           700: 
        !           701: #define SETXOFF             1       // Simulate XOFF received
        !           702: #define SETXON              2       // Simulate XON received
        !           703: #define SETRTS              3       // Set RTS high
        !           704: #define CLRRTS              4       // Set RTS low
        !           705: #define SETDTR              5       // Set DTR high
        !           706: #define CLRDTR              6       // Set DTR low
        !           707: #define RESETDEV            7       // Reset device if possible
        !           708: #define SETBREAK            8       // Set the device break line.
        !           709: #define CLRBREAK            9       // Clear the device break line.
        !           710: 
        !           711: //
        !           712: // PURGE function flags.
        !           713: //
        !           714: #define PURGE_TXABORT       0x0001  // Kill the pending/current writes to the comm port.
        !           715: #define PURGE_RXABORT       0x0002  // Kill the pending/current reads to the comm port.
        !           716: #define PURGE_TXCLEAR       0x0004  // Kill the transmit queue if there.
        !           717: #define PURGE_RXCLEAR       0x0008  // Kill the typeahead buffer if there.
        !           718: 
        !           719: #define LPTx                0x80    // Set if ID is for LPT device
        !           720: 
        !           721: //
        !           722: // Modem Status Flags
        !           723: //
        !           724: #define MS_CTS_ON           ((DWORD)0x0010)
        !           725: #define MS_DSR_ON           ((DWORD)0x0020)
        !           726: #define MS_RING_ON          ((DWORD)0x0040)
        !           727: #define MS_RLSD_ON          ((DWORD)0x0080)
        !           728: 
        !           729: //
        !           730: // WaitSoundState() Constants
        !           731: //
        !           732: 
        !           733: #define S_QUEUEEMPTY        0
        !           734: #define S_THRESHOLD         1
        !           735: #define S_ALLTHRESHOLD      2
        !           736: 
        !           737: //
        !           738: // Accent Modes
        !           739: //
        !           740: 
        !           741: #define S_NORMAL      0
        !           742: #define S_LEGATO      1
        !           743: #define S_STACCATO    2
        !           744: 
        !           745: //
        !           746: // SetSoundNoise() Sources
        !           747: //
        !           748: 
        !           749: #define S_PERIOD512   0     // Freq = N/512 high pitch, less coarse hiss
        !           750: #define S_PERIOD1024  1     // Freq = N/1024
        !           751: #define S_PERIOD2048  2     // Freq = N/2048 low pitch, more coarse hiss
        !           752: #define S_PERIODVOICE 3     // Source is frequency from voice channel (3)
        !           753: #define S_WHITE512    4     // Freq = N/512 high pitch, less coarse hiss
        !           754: #define S_WHITE1024   5     // Freq = N/1024
        !           755: #define S_WHITE2048   6     // Freq = N/2048 low pitch, more coarse hiss
        !           756: #define S_WHITEVOICE  7     // Source is frequency from voice channel (3)
        !           757: 
        !           758: #define S_SERDVNA     (-1)  // Device not available
        !           759: #define S_SEROFM      (-2)  // Out of memory
        !           760: #define S_SERMACT     (-3)  // Music active
        !           761: #define S_SERQFUL     (-4)  // Queue full
        !           762: #define S_SERBDNT     (-5)  // Invalid note
        !           763: #define S_SERDLN      (-6)  // Invalid note length
        !           764: #define S_SERDCC      (-7)  // Invalid note count
        !           765: #define S_SERDTP      (-8)  // Invalid tempo
        !           766: #define S_SERDVL      (-9)  // Invalid volume
        !           767: #define S_SERDMD      (-10) // Invalid mode
        !           768: #define S_SERDSH      (-11) // Invalid shape
        !           769: #define S_SERDPT      (-12) // Invalid pitch
        !           770: #define S_SERDFQ      (-13) // Invalid frequency
        !           771: #define S_SERDDR      (-14) // Invalid duration
        !           772: #define S_SERDSR      (-15) // Invalid source
        !           773: #define S_SERDST      (-16) // Invalid state
        !           774: 
        !           775: #define NMPWAIT_WAIT_FOREVER            0xffffffff
        !           776: #define NMPWAIT_NOWAIT                  0x00000001
        !           777: #define NMPWAIT_USE_DEFAULT_WAIT        0x00000000
        !           778: 
        !           779: #define FS_CASE_IS_PRESERVED            FILE_CASE_PRESERVED_NAMES
        !           780: #define FS_CASE_SENSITIVE               FILE_CASE_SENSITIVE_SEARCH
        !           781: #define FS_UNICODE_STORED_ON_DISK       FILE_UNICODE_ON_DISK
        !           782: 
        !           783: #define FILE_MAP_WRITE      SECTION_MAP_WRITE
        !           784: #define FILE_MAP_READ       SECTION_MAP_READ
        !           785: #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
        !           786: 
        !           787: #define OF_READ             0x00000000
        !           788: #define OF_WRITE            0x00000001
        !           789: #define OF_READWRITE        0x00000002
        !           790: #define OF_SHARE_COMPAT     0x00000000
        !           791: #define OF_SHARE_EXCLUSIVE  0x00000010
        !           792: #define OF_SHARE_DENY_WRITE 0x00000020
        !           793: #define OF_SHARE_DENY_READ  0x00000030
        !           794: #define OF_SHARE_DENY_NONE  0x00000040
        !           795: #define OF_PARSE            0x00000100
        !           796: #define OF_DELETE           0x00000200
        !           797: #define OF_VERIFY           0x00000400
        !           798: #define OF_CANCEL           0x00000800
        !           799: #define OF_CREATE           0x00001000
        !           800: #define OF_PROMPT           0x00002000
        !           801: #define OF_EXIST            0x00004000
        !           802: #define OF_REOPEN           0x00008000
        !           803: 
        !           804: #define OFS_MAXPATHNAME 128
        !           805: typedef struct _OFSTRUCT {
        !           806:     BYTE cBytes;
        !           807:     BYTE fFixedDisk;
        !           808:     WORD nErrCode;
        !           809:     WORD Reserved1;
        !           810:     WORD Reserved2;
        !           811:     BYTE szPathName[OFS_MAXPATHNAME];
        !           812: } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT;
        !           813: 
        !           814: LONG
        !           815: WINAPI
        !           816: InterlockedIncrement(
        !           817:     LPLONG lpAddend
        !           818:     );
        !           819: 
        !           820: LONG
        !           821: WINAPI
        !           822: InterlockedDecrement(
        !           823:     LPLONG lpAddend
        !           824:     );
        !           825: 
        !           826: BOOL
        !           827: WINAPI
        !           828: FreeResource(
        !           829:         HGLOBAL hResData
        !           830:         );
        !           831: 
        !           832: LPVOID
        !           833: WINAPI
        !           834: LockResource(
        !           835:         HGLOBAL hResData
        !           836:         );
        !           837: 
        !           838: #define UnlockResource(hResData) ((hResData), 0)
        !           839: #define MAXINTATOM 0xC000
        !           840: #define MAKEINTATOM(i)  (LPTSTR)((DWORD)((WORD)(i)))
        !           841: #define INVALID_ATOM ((ATOM)0)
        !           842: 
        !           843: int
        !           844: WINAPI
        !           845: WinMain(
        !           846:     HINSTANCE hInstance,
        !           847:     HINSTANCE hPrevInstance,
        !           848:     LPSTR lpCmdLine,
        !           849:     int nShowCmd
        !           850:     );
        !           851: 
        !           852: BOOL
        !           853: WINAPI
        !           854: FreeLibrary(
        !           855:     HINSTANCE hLibModule
        !           856:     );
        !           857: 
        !           858: FARPROC
        !           859: WINAPI
        !           860: GetProcAddress(
        !           861:     HINSTANCE hModule,
        !           862:     LPCSTR lpProcName
        !           863:     );
        !           864: 
        !           865: DWORD
        !           866: WINAPI
        !           867: GetVersion( VOID );
        !           868: 
        !           869: HGLOBAL
        !           870: WINAPI
        !           871: GlobalAlloc(
        !           872:     UINT uFlags,
        !           873:     DWORD dwBytes
        !           874:     );
        !           875: 
        !           876: HGLOBAL
        !           877: WINAPI
        !           878: GlobalReAlloc(
        !           879:     HGLOBAL hMem,
        !           880:     DWORD dwBytes,
        !           881:     UINT uFlags
        !           882:     );
        !           883: 
        !           884: DWORD
        !           885: WINAPI
        !           886: GlobalSize(
        !           887:     HGLOBAL hMem
        !           888:     );
        !           889: 
        !           890: UINT
        !           891: WINAPI
        !           892: GlobalFlags(
        !           893:     HGLOBAL hMem
        !           894:     );
        !           895: 
        !           896: 
        !           897: LPVOID
        !           898: WINAPI
        !           899: GlobalLock(
        !           900:     HGLOBAL hMem
        !           901:     );
        !           902: 
        !           903: //!!!MWH My version  win31 = DWORD WINAPI GlobalHandle(UINT)
        !           904: HGLOBAL
        !           905: WINAPI
        !           906: GlobalHandle(
        !           907:     LPVOID pMem
        !           908:     );
        !           909: 
        !           910: 
        !           911: BOOL
        !           912: WINAPI
        !           913: GlobalUnlock(
        !           914:     HGLOBAL hMem
        !           915:     );
        !           916: 
        !           917: 
        !           918: HGLOBAL
        !           919: WINAPI
        !           920: GlobalFree(
        !           921:     HGLOBAL hMem
        !           922:     );
        !           923: 
        !           924: UINT
        !           925: WINAPI
        !           926: GlobalCompact(
        !           927:     DWORD dwMinFree
        !           928:     );
        !           929: 
        !           930: VOID
        !           931: WINAPI
        !           932: GlobalFix(
        !           933:     HGLOBAL hMem
        !           934:     );
        !           935: 
        !           936: VOID
        !           937: WINAPI
        !           938: GlobalUnfix(
        !           939:     HGLOBAL hMem
        !           940:     );
        !           941: 
        !           942: LPVOID
        !           943: WINAPI
        !           944: GlobalWire(
        !           945:     HGLOBAL hMem
        !           946:     );
        !           947: 
        !           948: BOOL
        !           949: WINAPI
        !           950: GlobalUnWire(
        !           951:     HGLOBAL hMem
        !           952:     );
        !           953: 
        !           954: VOID
        !           955: WINAPI
        !           956: GlobalMemoryStatus(
        !           957:     LPMEMORYSTATUS lpBuffer
        !           958:     );
        !           959: 
        !           960: HLOCAL
        !           961: WINAPI
        !           962: LocalAlloc(
        !           963:     UINT uFlags,
        !           964:     UINT uBytes
        !           965:     );
        !           966: 
        !           967: HLOCAL
        !           968: WINAPI
        !           969: LocalReAlloc(
        !           970:     HLOCAL hMem,
        !           971:     UINT uBytes,
        !           972:     UINT uFlags
        !           973:     );
        !           974: 
        !           975: LPVOID
        !           976: WINAPI
        !           977: LocalLock(
        !           978:     HLOCAL hMem
        !           979:     );
        !           980: 
        !           981: HLOCAL
        !           982: WINAPI
        !           983: LocalHandle(
        !           984:     LPVOID pMem
        !           985:     );
        !           986: 
        !           987: BOOL
        !           988: WINAPI
        !           989: LocalUnlock(
        !           990:     HLOCAL hMem
        !           991:     );
        !           992: 
        !           993: UINT
        !           994: WINAPI
        !           995: LocalSize(
        !           996:     HLOCAL hMem
        !           997:     );
        !           998: 
        !           999: UINT
        !          1000: WINAPI
        !          1001: LocalFlags(
        !          1002:     HLOCAL hMem
        !          1003:     );
        !          1004: 
        !          1005: HLOCAL
        !          1006: WINAPI
        !          1007: LocalFree(
        !          1008:     HLOCAL hMem
        !          1009:     );
        !          1010: 
        !          1011: UINT
        !          1012: WINAPI
        !          1013: LocalShrink(
        !          1014:     HLOCAL hMem,
        !          1015:     UINT cbNewSize
        !          1016:     );
        !          1017: 
        !          1018: UINT
        !          1019: WINAPI
        !          1020: LocalCompact(
        !          1021:     UINT uMinFree
        !          1022:     );
        !          1023: 
        !          1024: BOOL
        !          1025: WINAPI
        !          1026: FlushInstructionCache(
        !          1027:     HANDLE hProcess,
        !          1028:     LPVOID lpBaseAddress,
        !          1029:     DWORD dwSize
        !          1030:     );
        !          1031: 
        !          1032: LPVOID
        !          1033: WINAPI
        !          1034: VirtualAlloc(
        !          1035:     LPVOID lpAddress,
        !          1036:     DWORD dwSize,
        !          1037:     DWORD flAllocationType,
        !          1038:     DWORD flProtect
        !          1039:     );
        !          1040: 
        !          1041: BOOL
        !          1042: WINAPI
        !          1043: VirtualFree(
        !          1044:     LPVOID lpAddress,
        !          1045:     DWORD dwSize,
        !          1046:     DWORD dwFreeType
        !          1047:     );
        !          1048: 
        !          1049: BOOL
        !          1050: WINAPI
        !          1051: VirtualProtect(
        !          1052:     LPVOID lpAddress,
        !          1053:     DWORD dwSize,
        !          1054:     DWORD flNewProtect,
        !          1055:     PDWORD lpflOldProtect
        !          1056:     );
        !          1057: 
        !          1058: DWORD
        !          1059: WINAPI
        !          1060: VirtualQuery(
        !          1061:     LPVOID lpAddress,
        !          1062:     PMEMORY_BASIC_INFORMATION lpBuffer,
        !          1063:     DWORD dwLength
        !          1064:     );
        !          1065: 
        !          1066: BOOL
        !          1067: WINAPI
        !          1068: VirtualProtectEx(
        !          1069:     HANDLE hProcess,
        !          1070:     LPVOID lpAddress,
        !          1071:     DWORD dwSize,
        !          1072:     DWORD flNewProtect,
        !          1073:     PDWORD lpflOldProtect
        !          1074:     );
        !          1075: 
        !          1076: DWORD
        !          1077: WINAPI
        !          1078: VirtualQueryEx(
        !          1079:     HANDLE hProcess,
        !          1080:     LPVOID lpAddress,
        !          1081:     PMEMORY_BASIC_INFORMATION lpBuffer,
        !          1082:     DWORD dwLength
        !          1083:     );
        !          1084: 
        !          1085: HANDLE
        !          1086: WINAPI
        !          1087: HeapCreate(
        !          1088:     DWORD flOptions,
        !          1089:     DWORD dwInitialSize,
        !          1090:     DWORD dwMaximumSize
        !          1091:     );
        !          1092: 
        !          1093: BOOL
        !          1094: WINAPI
        !          1095: HeapDestroy(
        !          1096:     HANDLE hHeap
        !          1097:     );
        !          1098: 
        !          1099: LPSTR
        !          1100: WINAPI
        !          1101: HeapAlloc(
        !          1102:     HANDLE hHeap,
        !          1103:     DWORD dwBytes
        !          1104:     );
        !          1105: 
        !          1106: BOOL
        !          1107: WINAPI
        !          1108: HeapFree(
        !          1109:     HANDLE hHeap,
        !          1110:     LPSTR lpMem
        !          1111:     );
        !          1112: 
        !          1113: DWORD
        !          1114: WINAPI
        !          1115: HeapSize(
        !          1116:     HANDLE hHeap,
        !          1117:     LPSTR lpMem
        !          1118:     );
        !          1119: 
        !          1120: 
        !          1121: HANDLE
        !          1122: WINAPI
        !          1123: OpenProcess(
        !          1124:     DWORD dwDesiredAccess,
        !          1125:     BOOL bInheritHandle,
        !          1126:     DWORD dwProcessId
        !          1127:     );
        !          1128: 
        !          1129: HANDLE
        !          1130: WINAPI
        !          1131: GetCurrentProcess(
        !          1132:     VOID
        !          1133:     );
        !          1134: 
        !          1135: DWORD
        !          1136: WINAPI
        !          1137: GetCurrentProcessId(
        !          1138:     VOID
        !          1139:     );
        !          1140: 
        !          1141: VOID
        !          1142: WINAPI
        !          1143: ExitProcess(
        !          1144:     UINT uExitCode
        !          1145:     );
        !          1146: 
        !          1147: BOOL
        !          1148: WINAPI
        !          1149: TerminateProcess(
        !          1150:     HANDLE hProcess,
        !          1151:     UINT uExitCode
        !          1152:     );
        !          1153: 
        !          1154: BOOL
        !          1155: WINAPI
        !          1156: GetExitCodeProcess(
        !          1157:     HANDLE hProcess,
        !          1158:     LPDWORD lpExitCode
        !          1159:     );
        !          1160: 
        !          1161: 
        !          1162: VOID
        !          1163: WINAPI
        !          1164: FatalExit(
        !          1165:     int ExitCode
        !          1166:     );
        !          1167: 
        !          1168: LPVOID
        !          1169: WINAPI
        !          1170: GetEnvironmentStrings(
        !          1171:     VOID
        !          1172:     );
        !          1173: 
        !          1174: VOID
        !          1175: WINAPI
        !          1176: RaiseException(
        !          1177:     DWORD dwExceptionCode,
        !          1178:     DWORD dwExceptionFlags,
        !          1179:     DWORD nNumberOfArguments,
        !          1180:     LPDWORD lpArguments
        !          1181:     );
        !          1182: 
        !          1183: EXCEPTION_DISPOSITION
        !          1184: WINAPI
        !          1185: UnhandledExceptionFilter(
        !          1186:     struct _EXCEPTION_POINTERS *ExceptionInfo
        !          1187:     );
        !          1188: 
        !          1189: HANDLE
        !          1190: WINAPI
        !          1191: CreateThread(
        !          1192:     LPSECURITY_ATTRIBUTES lpThreadAttributes,
        !          1193:     DWORD dwStackSize,
        !          1194:     LPTHREAD_START_ROUTINE lpStartAddress,
        !          1195:     LPVOID lpParameter,
        !          1196:     DWORD dwCreationFlags,
        !          1197:     LPDWORD lpThreadId
        !          1198:     );
        !          1199: 
        !          1200: HANDLE
        !          1201: WINAPI
        !          1202: CreateRemoteThread(
        !          1203:     HANDLE hProcess,
        !          1204:     LPSECURITY_ATTRIBUTES lpThreadAttributes,
        !          1205:     DWORD dwStackSize,
        !          1206:     LPTHREAD_START_ROUTINE lpStartAddress,
        !          1207:     LPVOID lpParameter,
        !          1208:     DWORD dwCreationFlags,
        !          1209:     LPDWORD lpThreadId
        !          1210:     );
        !          1211: 
        !          1212: HANDLE
        !          1213: WINAPI
        !          1214: GetCurrentThread(
        !          1215:     VOID
        !          1216:     );
        !          1217: 
        !          1218: DWORD
        !          1219: WINAPI
        !          1220: GetCurrentThreadId(
        !          1221:     VOID
        !          1222:     );
        !          1223: 
        !          1224: BOOL
        !          1225: WINAPI
        !          1226: SetThreadPriority(
        !          1227:     HANDLE hThread,
        !          1228:     int nPriority
        !          1229:     );
        !          1230: 
        !          1231: int
        !          1232: WINAPI
        !          1233: GetThreadPriority(
        !          1234:     HANDLE hThread
        !          1235:     );
        !          1236: 
        !          1237: VOID
        !          1238: WINAPI
        !          1239: ExitThread(
        !          1240:     DWORD dwExitCode
        !          1241:     );
        !          1242: 
        !          1243: BOOL
        !          1244: WINAPI
        !          1245: TerminateThread(
        !          1246:     HANDLE hThread,
        !          1247:     DWORD dwExitCode
        !          1248:     );
        !          1249: 
        !          1250: BOOL
        !          1251: WINAPI
        !          1252: GetExitCodeThread(
        !          1253:     HANDLE hThread,
        !          1254:     LPDWORD lpExitCode
        !          1255:     );
        !          1256: 
        !          1257: BOOL
        !          1258: WINAPI
        !          1259: GetThreadSelectorEntry(
        !          1260:     HANDLE hThread,
        !          1261:     DWORD dwSelector,
        !          1262:     LPLDT_ENTRY lpSelectorEntry
        !          1263:     );
        !          1264: 
        !          1265: DWORD
        !          1266: WINAPI
        !          1267: GetLastError(
        !          1268:     VOID
        !          1269:     );
        !          1270: 
        !          1271: VOID
        !          1272: WINAPI
        !          1273: SetLastError(
        !          1274:     DWORD dwErrCode
        !          1275:     );
        !          1276: 
        !          1277: //
        !          1278: // SetLastErrorEx() types.
        !          1279: //
        !          1280: #define SLE_ERROR       0x00000001
        !          1281: #define SLE_MINORERROR  0x00000002
        !          1282: #define SLE_WARNING     0x00000003
        !          1283: 
        !          1284: VOID
        !          1285: SetLastErrorEx(
        !          1286:     DWORD dwErrCode,
        !          1287:     DWORD dwType
        !          1288:     );
        !          1289: 
        !          1290: BOOL
        !          1291: WINAPI
        !          1292: GetOverlappedResult(
        !          1293:     HANDLE hFile,
        !          1294:     LPOVERLAPPED lpOverlapped,
        !          1295:     LPDWORD lpNumberOfBytesTransferred,
        !          1296:     BOOL bWait
        !          1297:     );
        !          1298: 
        !          1299: #define SEM_FAILCRITICALERRORS  0x0001
        !          1300: #define SEM_NOGPFAULTERRORBOX   0x0002
        !          1301: #define SEM_NOOPENFILEERRORBOX  0x8000
        !          1302: 
        !          1303: VOID
        !          1304: WINAPI
        !          1305: SetDebugErrorLevel(
        !          1306:     DWORD dwLevel
        !          1307:     );
        !          1308: 
        !          1309: UINT
        !          1310: WINAPI
        !          1311: SetErrorMode(
        !          1312:     UINT uMode
        !          1313:     );
        !          1314: 
        !          1315: 
        !          1316: BOOL
        !          1317: WINAPI
        !          1318: ReadProcessMemory(
        !          1319:     HANDLE hProcess,
        !          1320:     LPVOID lpBaseAddress,
        !          1321:     LPVOID lpBuffer,
        !          1322:     DWORD nSize,
        !          1323:     LPDWORD lpNumberOfBytesRead
        !          1324:     );
        !          1325: 
        !          1326: BOOL
        !          1327: WINAPI
        !          1328: WriteProcessMemory(
        !          1329:     HANDLE hProcess,
        !          1330:     LPVOID lpBaseAddress,
        !          1331:     LPVOID lpBuffer,
        !          1332:     DWORD nSize,
        !          1333:     LPDWORD lpNumberOfBytesWritten
        !          1334:     );
        !          1335: 
        !          1336: BOOL
        !          1337: WINAPI
        !          1338: GetThreadContext(
        !          1339:     HANDLE hThread,
        !          1340:     LPCONTEXT lpContext
        !          1341:     );
        !          1342: 
        !          1343: BOOL
        !          1344: WINAPI
        !          1345: SetThreadContext(
        !          1346:     HANDLE hThread,
        !          1347:     LPCONTEXT lpContext
        !          1348:     );
        !          1349: 
        !          1350: DWORD
        !          1351: WINAPI
        !          1352: SuspendThread(
        !          1353:     HANDLE hThread
        !          1354:     );
        !          1355: 
        !          1356: DWORD
        !          1357: WINAPI
        !          1358: ResumeThread(
        !          1359:     HANDLE hThread
        !          1360:     );
        !          1361: 
        !          1362: VOID
        !          1363: WINAPI
        !          1364: DebugBreak(
        !          1365:     VOID
        !          1366:     );
        !          1367: 
        !          1368: BOOL
        !          1369: WINAPI
        !          1370: WaitForDebugEvent(
        !          1371:     LPDEBUG_EVENT lpDebugEvent,
        !          1372:     DWORD dwMilliseconds
        !          1373:     );
        !          1374: 
        !          1375: BOOL
        !          1376: WINAPI
        !          1377: ContinueDebugEvent(
        !          1378:     DWORD dwProcessId,
        !          1379:     DWORD dwThreadId,
        !          1380:     DWORD dwContinueStatus
        !          1381:     );
        !          1382: 
        !          1383: BOOL
        !          1384: WINAPI
        !          1385: DebugActiveProcess(
        !          1386:     DWORD dwProcessId
        !          1387:     );
        !          1388: 
        !          1389: HANDLE
        !          1390: WINAPI
        !          1391: DebugSnapShotProcessHeaps(
        !          1392:     DWORD dwProcessId
        !          1393:     );
        !          1394: 
        !          1395: typedef struct _DEBUG_HEAP_BACKTRACE {
        !          1396:     DWORD Depth;
        !          1397:     DWORD ReturnAddresses[ 1 ];
        !          1398: } DEBUG_HEAP_BACKTRACE, *PDEBUG_HEAP_BACKTRACE;
        !          1399: 
        !          1400: typedef struct _DEBUG_HEAP_ALLOCATOR {
        !          1401:     DWORD TotalBytesAllocated;
        !          1402:     DWORD OffsetToBackTrace;
        !          1403: } DEBUG_HEAP_ALLOCATOR, *PDEBUG_HEAP_ALLOCATOR;
        !          1404: 
        !          1405: typedef struct _DEBUG_HEAP_ENTRY {
        !          1406:     DWORD Address;
        !          1407:     USHORT Size;
        !          1408:     USHORT Allocator;
        !          1409: } DEBUG_HEAP_ENTRY, *PDEBUG_HEAP_ENTRY;
        !          1410: 
        !          1411: #define DEBUG_HEAP_ENTRY_FREE (USHORT)-1
        !          1412: 
        !          1413: typedef struct _DEBUG_HEAP_INFO {
        !          1414:     USHORT Creator;
        !          1415:     USHORT HeaderSizeLog2;
        !          1416:     USHORT ReservedPages;
        !          1417:     USHORT CommittedPages;
        !          1418:     USHORT AllocatorReservedPages;
        !          1419:     USHORT AllocatorCommittedPages;
        !          1420:     DWORD NumberOfEntries;
        !          1421:     DEBUG_HEAP_ENTRY Entries[ 1 ];
        !          1422: } DEBUG_HEAP_INFO, *PDEBUG_HEAP_INFO;
        !          1423: 
        !          1424: typedef struct _DEBUG_HEAP_DUMP {
        !          1425:     DWORD OffsetToAllocatorTable;
        !          1426:     DWORD NumberOfHeaps;
        !          1427:     DEBUG_HEAP_INFO HeapInfo[ 1 ];
        !          1428: } DEBUG_HEAP_DUMP, *PDEBUG_HEAP_DUMP;
        !          1429: 
        !          1430: VOID
        !          1431: WINAPI
        !          1432: InitializeCriticalSection(
        !          1433:     LPCRITICAL_SECTION lpCriticalSection
        !          1434:     );
        !          1435: 
        !          1436: VOID
        !          1437: WINAPI
        !          1438: EnterCriticalSection(
        !          1439:     LPCRITICAL_SECTION lpCriticalSection
        !          1440:     );
        !          1441: 
        !          1442: VOID
        !          1443: WINAPI
        !          1444: LeaveCriticalSection(
        !          1445:     LPCRITICAL_SECTION lpCriticalSection
        !          1446:     );
        !          1447: 
        !          1448: VOID
        !          1449: WINAPI
        !          1450: DeleteCriticalSection(
        !          1451:     LPCRITICAL_SECTION lpCriticalSection
        !          1452:     );
        !          1453: 
        !          1454: BOOL
        !          1455: WINAPI
        !          1456: SetEvent(
        !          1457:     HANDLE hEvent
        !          1458:     );
        !          1459: 
        !          1460: BOOL
        !          1461: WINAPI
        !          1462: ResetEvent(
        !          1463:     HANDLE hEvent
        !          1464:     );
        !          1465: 
        !          1466: BOOL
        !          1467: WINAPI
        !          1468: PulseEvent(
        !          1469:     HANDLE hEvent
        !          1470:     );
        !          1471: 
        !          1472: BOOL
        !          1473: WINAPI
        !          1474: ReleaseSemaphore(
        !          1475:     HANDLE hSemaphore,
        !          1476:     LONG lReleaseCount,
        !          1477:     LPLONG lpPreviousCount
        !          1478:     );
        !          1479: 
        !          1480: BOOL
        !          1481: WINAPI
        !          1482: ReleaseMutex(
        !          1483:     HANDLE hMutex
        !          1484:     );
        !          1485: 
        !          1486: DWORD
        !          1487: WINAPI
        !          1488: WaitForSingleObject(
        !          1489:     HANDLE hHandle,
        !          1490:     DWORD dwMilliseconds
        !          1491:     );
        !          1492: 
        !          1493: DWORD
        !          1494: WINAPI
        !          1495: WaitForMultipleObjects(
        !          1496:     DWORD nCount,
        !          1497:     LPHANDLE lpHandles,
        !          1498:     BOOL bWaitAll,
        !          1499:     DWORD dwMilliseconds
        !          1500:     );
        !          1501: 
        !          1502: VOID
        !          1503: WINAPI
        !          1504: Sleep(
        !          1505:     DWORD dwMilliseconds
        !          1506:     );
        !          1507: 
        !          1508: HRSRC
        !          1509: WINAPI
        !          1510: LoadResource(
        !          1511:     HINSTANCE hModule,
        !          1512:     HRSRC hResInfo
        !          1513:     );
        !          1514: 
        !          1515: DWORD
        !          1516: WINAPI
        !          1517: SizeofResource(
        !          1518:     HINSTANCE hModule,
        !          1519:     HRSRC hResInfo
        !          1520:     );
        !          1521: 
        !          1522: ATOM
        !          1523: WINAPI
        !          1524: GlobalDeleteAtom(
        !          1525:     ATOM nAtom
        !          1526:     );
        !          1527: 
        !          1528: BOOL
        !          1529: WINAPI
        !          1530: InitAtomTable(
        !          1531:     DWORD nSize
        !          1532:     );
        !          1533: 
        !          1534: ATOM
        !          1535: WINAPI
        !          1536: DeleteAtom(
        !          1537:     ATOM nAtom
        !          1538:     );
        !          1539: 
        !          1540: UINT
        !          1541: WINAPI
        !          1542: SetHandleCount(
        !          1543:     UINT uNumber
        !          1544:     );
        !          1545: 
        !          1546: DWORD
        !          1547: WINAPI
        !          1548: GetLogicalDrives(
        !          1549:     VOID
        !          1550:     );
        !          1551: 
        !          1552: BOOL
        !          1553: WINAPI
        !          1554: LockFile(
        !          1555:     HANDLE hFile,
        !          1556:     DWORD dwFileOffsetLow,
        !          1557:     DWORD dwFileOffsetHigh,
        !          1558:     DWORD nNumberOfBytesToLockLow,
        !          1559:     DWORD nNumberOfBytesToLockHigh
        !          1560:     );
        !          1561: 
        !          1562: BOOL
        !          1563: WINAPI
        !          1564: UnlockFile(
        !          1565:     HANDLE hFile,
        !          1566:     DWORD dwFileOffsetLow,
        !          1567:     DWORD dwFileOffsetHigh,
        !          1568:     DWORD nNumberOfBytesToUnlockLow,
        !          1569:     DWORD nNumberOfBytesToUnlockHigh
        !          1570:     );
        !          1571: 
        !          1572: typedef struct _BY_HANDLE_FILE_INFORMATION {
        !          1573:     DWORD dwFileAttributes;
        !          1574:     FILETIME ftCreationTime;
        !          1575:     FILETIME ftLastAccessTime;
        !          1576:     FILETIME ftLastWriteTime;
        !          1577:     DWORD dwVolumeSerialNumber;
        !          1578:     DWORD nFileSizeHigh;
        !          1579:     DWORD nFileSizeLow;
        !          1580:     DWORD nNumberOfLinks;
        !          1581:     DWORD nFileIndexHigh;
        !          1582:     DWORD nFileIndexLow;
        !          1583: } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
        !          1584: 
        !          1585: BOOL
        !          1586: WINAPI
        !          1587: GetFileInformationByHandle(
        !          1588:     HANDLE hFile,
        !          1589:     LPBY_HANDLE_FILE_INFORMATION lpFileInformation
        !          1590:     );
        !          1591: 
        !          1592: DWORD
        !          1593: WINAPI
        !          1594: GetFileType(
        !          1595:     HANDLE hFile
        !          1596:     );
        !          1597: 
        !          1598: DWORD
        !          1599: WINAPI
        !          1600: GetFileSize(
        !          1601:     HANDLE hFile,
        !          1602:     LPDWORD lpFileSizeHigh
        !          1603:     );
        !          1604: 
        !          1605: HANDLE
        !          1606: WINAPI
        !          1607: GetStdHandle(
        !          1608:     DWORD nStdHandle
        !          1609:     );
        !          1610: 
        !          1611: BOOL
        !          1612: WINAPI
        !          1613: SetStdHandle(
        !          1614:     DWORD nStdHandle,
        !          1615:     HANDLE hHandle
        !          1616:     );
        !          1617: 
        !          1618: BOOL
        !          1619: WINAPI
        !          1620: WriteFile(
        !          1621:     HANDLE hFile,
        !          1622:     CONST VOID *lpBuffer,
        !          1623:     DWORD nNumberOfBytesToWrite,
        !          1624:     LPDWORD lpNumberOfBytesWritten,
        !          1625:     LPOVERLAPPED lpOverlapped
        !          1626:     );
        !          1627: 
        !          1628: BOOL
        !          1629: WINAPI
        !          1630: ReadFile(
        !          1631:     HANDLE hFile,
        !          1632:     LPVOID lpBuffer,
        !          1633:     DWORD nNumberOfBytesToRead,
        !          1634:     LPDWORD lpNumberOfBytesRead,
        !          1635:     LPOVERLAPPED lpOverlapped
        !          1636:     );
        !          1637: 
        !          1638: BOOL
        !          1639: WINAPI
        !          1640: FlushFileBuffers(
        !          1641:     HANDLE hFile
        !          1642:     );
        !          1643: 
        !          1644: BOOL
        !          1645: WINAPI
        !          1646: DeviceIoControl(
        !          1647:     HANDLE hDevice,
        !          1648:     DWORD dwIoControlCode,
        !          1649:     LPVOID lpInBuffer,
        !          1650:     DWORD nInBufferSize,
        !          1651:     LPVOID lpOutBuffer,
        !          1652:     DWORD nOutBufferSize,
        !          1653:     LPDWORD lpBytesReturned,
        !          1654:     LPOVERLAPPED lpOverlapped
        !          1655:     );
        !          1656: 
        !          1657: BOOL
        !          1658: WINAPI
        !          1659: SetEndOfFile(
        !          1660:     HANDLE hFile
        !          1661:     );
        !          1662: 
        !          1663: DWORD
        !          1664: WINAPI
        !          1665: SetFilePointer(
        !          1666:     HANDLE hFile,
        !          1667:     LONG lDistanceToMove,
        !          1668:     PLONG lpDistanceToMoveHigh,
        !          1669:     DWORD dwMoveMethod
        !          1670:     );
        !          1671: 
        !          1672: BOOL
        !          1673: WINAPI
        !          1674: FindClose(
        !          1675:     HANDLE hFindFile
        !          1676:     );
        !          1677: 
        !          1678: BOOL
        !          1679: WINAPI
        !          1680: GetFileTime(
        !          1681:     HANDLE hFile,
        !          1682:     LPFILETIME lpCreationTime,
        !          1683:     LPFILETIME lpLastAccessTime,
        !          1684:     LPFILETIME lpLastWriteTime
        !          1685:     );
        !          1686: 
        !          1687: BOOL
        !          1688: WINAPI
        !          1689: SetFileTime(
        !          1690:     HANDLE hFile,
        !          1691:     LPFILETIME lpCreationTime,
        !          1692:     LPFILETIME lpLastAccessTime,
        !          1693:     LPFILETIME lpLastWriteTime
        !          1694:     );
        !          1695: 
        !          1696: BOOL
        !          1697: WINAPI
        !          1698: CloseHandle(
        !          1699:     HANDLE hObject
        !          1700:     );
        !          1701: 
        !          1702: BOOL
        !          1703: WINAPI
        !          1704: DuplicateHandle(
        !          1705:     HANDLE hSourceProcessHandle,
        !          1706:     HANDLE hSourceHandle,
        !          1707:     HANDLE hTargetProcessHandle,
        !          1708:     LPHANDLE lpTargetHandle,
        !          1709:     DWORD dwDesiredAccess,
        !          1710:     BOOL bInheritHandle,
        !          1711:     DWORD dwOptions
        !          1712:     );
        !          1713: 
        !          1714: DWORD
        !          1715: WINAPI
        !          1716: LoadModule(
        !          1717:     LPCSTR lpModuleName,
        !          1718:     LPVOID lpParameterBlock
        !          1719:     );
        !          1720: 
        !          1721: UINT
        !          1722: WINAPI
        !          1723: WinExec(
        !          1724:     LPCSTR lpCmdLine,
        !          1725:     UINT uCmdShow
        !          1726:     );
        !          1727: 
        !          1728: BOOL
        !          1729: WINAPI
        !          1730: BuildCommDCB(
        !          1731:     LPSTR lpDef,
        !          1732:     LPDCB lpDCB
        !          1733:     );
        !          1734: 
        !          1735: BOOL
        !          1736: WINAPI
        !          1737: ClearCommBreak(
        !          1738:     HANDLE hFile
        !          1739:     );
        !          1740: 
        !          1741: BOOL
        !          1742: WINAPI
        !          1743: ClearCommError(
        !          1744:     HANDLE hFile,
        !          1745:     LPDWORD lpErrors,
        !          1746:     LPCOMSTAT lpStat
        !          1747:     );
        !          1748: 
        !          1749: BOOL
        !          1750: WINAPI
        !          1751: SetupComm(
        !          1752:     HANDLE hFile,
        !          1753:     DWORD dwInQueue,
        !          1754:     DWORD dwOutQueue
        !          1755:     );
        !          1756: 
        !          1757: BOOL
        !          1758: WINAPI
        !          1759: EscapeCommFunction(
        !          1760:     HANDLE hFile,
        !          1761:     DWORD dwFunc
        !          1762:     );
        !          1763: 
        !          1764: BOOL
        !          1765: WINAPI
        !          1766: GetCommMask(
        !          1767:     HANDLE hFile,
        !          1768:     LPDWORD lpEvtMask
        !          1769:     );
        !          1770: 
        !          1771: BOOL
        !          1772: WINAPI
        !          1773: GetCommProperties(
        !          1774:     HANDLE hFile,
        !          1775:     LPCOMMPROP lpCommProp
        !          1776:     );
        !          1777: 
        !          1778: BOOL
        !          1779: WINAPI
        !          1780: GetCommModemStatus(
        !          1781:     HANDLE hFile,
        !          1782:     LPDWORD lpModemStat
        !          1783:     );
        !          1784: 
        !          1785: BOOL
        !          1786: WINAPI
        !          1787: GetCommState(
        !          1788:     HANDLE hFile,
        !          1789:     LPDCB lpDCB
        !          1790:     );
        !          1791: 
        !          1792: BOOL
        !          1793: WINAPI
        !          1794: GetCommTimeouts(
        !          1795:     HANDLE hFile,
        !          1796:     LPCOMMTIMEOUTS lpCommTimeouts
        !          1797:     );
        !          1798: 
        !          1799: BOOL
        !          1800: WINAPI
        !          1801: PurgeComm(
        !          1802:     HANDLE hFile,
        !          1803:     DWORD dwFlags
        !          1804:     );
        !          1805: 
        !          1806: BOOL
        !          1807: WINAPI
        !          1808: SetCommBreak(
        !          1809:     HANDLE hFile
        !          1810:     );
        !          1811: 
        !          1812: BOOL
        !          1813: WINAPI
        !          1814: SetCommMask(
        !          1815:     HANDLE hFile,
        !          1816:     DWORD dwEvtMask
        !          1817:     );
        !          1818: 
        !          1819: BOOL
        !          1820: WINAPI
        !          1821: SetCommState(
        !          1822:     HANDLE hFile,
        !          1823:     LPDCB lpDCB
        !          1824:     );
        !          1825: 
        !          1826: BOOL
        !          1827: WINAPI
        !          1828: SetCommTimeouts(
        !          1829:     HANDLE hFile,
        !          1830:     LPCOMMTIMEOUTS lpCommTimeouts
        !          1831:     );
        !          1832: 
        !          1833: BOOL
        !          1834: WINAPI
        !          1835: TransmitCommChar(
        !          1836:     HANDLE hFile,
        !          1837:     char cChar
        !          1838:     );
        !          1839: 
        !          1840: BOOL
        !          1841: WINAPI
        !          1842: WaitCommEvent(
        !          1843:     HANDLE hFile,
        !          1844:     LPDWORD lpEvtMask,
        !          1845:     LPOVERLAPPED lpOverlapped
        !          1846:     );
        !          1847: 
        !          1848: 
        !          1849: DWORD
        !          1850: WINAPI
        !          1851: SetTapePosition(
        !          1852:     HANDLE hDevice,
        !          1853:     DWORD dwPositionMethod,
        !          1854:     DWORD dwPartition,
        !          1855:     DWORD dwOffset,
        !          1856:     LPDWORD lpdwOffsetHigh,
        !          1857:     LPOVERLAPPED lpOverlapped
        !          1858:     );
        !          1859: 
        !          1860: DWORD
        !          1861: WINAPI
        !          1862: GetTapePosition(
        !          1863:     HANDLE hDevice,
        !          1864:     DWORD dwPartition,
        !          1865:     LPDWORD lpdwOffsetHigh,
        !          1866:     LPOVERLAPPED lpOverlapped
        !          1867:     );
        !          1868: 
        !          1869: DWORD
        !          1870: WINAPI
        !          1871: PrepareTape(
        !          1872:     HANDLE hDevice,
        !          1873:     DWORD dwTapeOperation,
        !          1874:     LPOVERLAPPED lpOverlapped
        !          1875:     );
        !          1876: 
        !          1877: DWORD
        !          1878: WINAPI
        !          1879: EraseTape(
        !          1880:     HANDLE hDevice,
        !          1881:     DWORD dwPartition,
        !          1882:     DWORD dwEraseType,
        !          1883:     LPOVERLAPPED lpOverlapped
        !          1884:     );
        !          1885: 
        !          1886: DWORD
        !          1887: CreateTapePartition(
        !          1888:     HANDLE hDevice,
        !          1889:     DWORD dwSize,
        !          1890:     LPVOID lpPartitionParameters,
        !          1891:     LPOVERLAPPED lpOverlapped
        !          1892:     );
        !          1893: 
        !          1894: DWORD
        !          1895: WINAPI
        !          1896: WriteTapemark(
        !          1897:     HANDLE hDevice,
        !          1898:     DWORD dwTapemarkType,
        !          1899:     DWORD dwTapemarkCount,
        !          1900:     LPOVERLAPPED lpOverlapped
        !          1901:     );
        !          1902: 
        !          1903: DWORD
        !          1904: WINAPI
        !          1905: GetTapeStatus(
        !          1906:     HANDLE hDevice,
        !          1907:     LPVOID lpTapeStatus,
        !          1908:     LPOVERLAPPED lpOverlapped
        !          1909:     );
        !          1910: 
        !          1911: DWORD
        !          1912: WINAPI
        !          1913: GetTapeParameters(
        !          1914:     HANDLE hDevice,
        !          1915:     DWORD dwOperation,
        !          1916:     LPVOID lpTapeInformation,
        !          1917:     LPOVERLAPPED lpOverlapped
        !          1918:     );
        !          1919: 
        !          1920: #define GET_TAPE_MEDIA_INFORMATION 0
        !          1921: #define GET_TAPE_DRIVE_INFORMATION 1
        !          1922: 
        !          1923: DWORD
        !          1924: WINAPI
        !          1925: SetTapeParameters(
        !          1926:     HANDLE hDevice,
        !          1927:     DWORD dwOperation,
        !          1928:     LPVOID lpTapeInformation,
        !          1929:     LPOVERLAPPED lpOverlapped
        !          1930:     );
        !          1931: 
        !          1932: #define SET_TAPE_MEDIA_INFORMATION 0
        !          1933: #define SET_TAPE_DRIVE_INFORMATION 1
        !          1934: 
        !          1935: BOOL
        !          1936: WINAPI
        !          1937: Beep(
        !          1938:     DWORD dwFreq,
        !          1939:     DWORD dwDuration
        !          1940:     );
        !          1941: 
        !          1942: VOID
        !          1943: WINAPI
        !          1944: OpenSound(
        !          1945:     VOID
        !          1946:     );
        !          1947: 
        !          1948: VOID
        !          1949: WINAPI
        !          1950: CloseSound(
        !          1951:     VOID
        !          1952:     );
        !          1953: 
        !          1954: VOID
        !          1955: WINAPI
        !          1956: StartSound(
        !          1957:     VOID
        !          1958:     );
        !          1959: 
        !          1960: VOID
        !          1961: WINAPI
        !          1962: StopSound(
        !          1963:     VOID
        !          1964:     );
        !          1965: 
        !          1966: DWORD
        !          1967: WINAPI
        !          1968: WaitSoundState(
        !          1969:     DWORD nState
        !          1970:     );
        !          1971: 
        !          1972: DWORD
        !          1973: WINAPI
        !          1974: SyncAllVoices(
        !          1975:     VOID
        !          1976:     );
        !          1977: 
        !          1978: DWORD
        !          1979: WINAPI
        !          1980: CountVoiceNotes(
        !          1981:     DWORD nVoice
        !          1982:     );
        !          1983: 
        !          1984: LPDWORD
        !          1985: WINAPI
        !          1986: GetThresholdEvent(
        !          1987:     VOID
        !          1988:     );
        !          1989: 
        !          1990: DWORD
        !          1991: WINAPI
        !          1992: GetThresholdStatus(
        !          1993:     VOID
        !          1994:     );
        !          1995: 
        !          1996: DWORD
        !          1997: WINAPI
        !          1998: SetSoundNoise(
        !          1999:     DWORD nSource,
        !          2000:     DWORD nDuration
        !          2001:     );
        !          2002: 
        !          2003: DWORD
        !          2004: WINAPI
        !          2005: SetVoiceAccent(
        !          2006:     DWORD nVoice,
        !          2007:     DWORD nTempo,
        !          2008:     DWORD nVolume,
        !          2009:     DWORD nMode,
        !          2010:     DWORD nPitch
        !          2011:     );
        !          2012: 
        !          2013: DWORD
        !          2014: WINAPI
        !          2015: SetVoiceEnvelope(
        !          2016:     DWORD nVoice,
        !          2017:     DWORD nShape,
        !          2018:     DWORD nRepeat
        !          2019:     );
        !          2020: 
        !          2021: DWORD
        !          2022: WINAPI
        !          2023: SetVoiceNote(
        !          2024:     DWORD nVoice,
        !          2025:     DWORD nValue,
        !          2026:     DWORD nLength,
        !          2027:     DWORD nCdots
        !          2028:     );
        !          2029: 
        !          2030: DWORD
        !          2031: WINAPI
        !          2032: SetVoiceQueueSize(
        !          2033:     DWORD nVoice,
        !          2034:     DWORD nBytes
        !          2035:     );
        !          2036: 
        !          2037: DWORD
        !          2038: WINAPI
        !          2039: SetVoiceSound(
        !          2040:     DWORD nVoice,
        !          2041:     DWORD Frequency,
        !          2042:     DWORD nDuration
        !          2043:     );
        !          2044: 
        !          2045: DWORD
        !          2046: WINAPI
        !          2047: SetVoiceThreshold(
        !          2048:     DWORD nVoice,
        !          2049:     DWORD nNotes
        !          2050:     );
        !          2051: 
        !          2052: int
        !          2053: WINAPI
        !          2054: MulDiv(
        !          2055:     int nNumber,
        !          2056:     int nNumerator,
        !          2057:     int nDenominator
        !          2058:     );
        !          2059: 
        !          2060: VOID
        !          2061: WINAPI
        !          2062: GetSystemTime(
        !          2063:     LPSYSTEMTIME lpSystemTime
        !          2064:     );
        !          2065: 
        !          2066: BOOL
        !          2067: WINAPI
        !          2068: SetSystemTime(
        !          2069:     LPSYSTEMTIME lpSystemTime
        !          2070:     );
        !          2071: 
        !          2072: VOID
        !          2073: WINAPI
        !          2074: GetSystemInfo(
        !          2075:     LPSYSTEM_INFO lpSystemInfo
        !          2076:     );
        !          2077: 
        !          2078: 
        !          2079: //
        !          2080: // Routines to convert back and forth between system time and file time
        !          2081: //
        !          2082: 
        !          2083: BOOL
        !          2084: WINAPI
        !          2085: SystemTimeToFileTime(
        !          2086:     LPSYSTEMTIME lpSystemTime,
        !          2087:     LPFILETIME lpFileTime
        !          2088:     );
        !          2089: 
        !          2090: BOOL
        !          2091: WINAPI
        !          2092: FileTimeToSystemTime(
        !          2093:     LPFILETIME lpFileTime,
        !          2094:     LPSYSTEMTIME lpSystemTime
        !          2095:     );
        !          2096: 
        !          2097: LONG
        !          2098: WINAPI
        !          2099: CompareFileTime(
        !          2100:     LPFILETIME lpFileTime1,
        !          2101:     LPFILETIME lpFileTime2
        !          2102:     );
        !          2103: 
        !          2104: BOOL
        !          2105: WINAPI
        !          2106: FileTimeToDosDateTime(
        !          2107:     LPFILETIME lpFileTime,
        !          2108:     LPWORD lpFatDate,
        !          2109:     LPWORD lpFatTime
        !          2110:     );
        !          2111: 
        !          2112: BOOL
        !          2113: WINAPI
        !          2114: DosDateTimeToFileTime(
        !          2115:     WORD wFatDate,
        !          2116:     WORD wFatTime,
        !          2117:     LPFILETIME lpFileTime
        !          2118:     );
        !          2119: 
        !          2120: DWORD
        !          2121: WINAPI
        !          2122: GetTickCount(
        !          2123:     VOID
        !          2124:     );
        !          2125: 
        !          2126: DWORD
        !          2127: WINAPI
        !          2128: FormatMessage(
        !          2129:     DWORD dwFlags,
        !          2130:     LPVOID lpSource,
        !          2131:     DWORD dwMessageId,
        !          2132:     DWORD dwLanguageId,
        !          2133:     LPSTR lpBuffer,
        !          2134:     DWORD nSize,
        !          2135:     LPVOID lpArguments
        !          2136:     );
        !          2137: 
        !          2138: #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100
        !          2139: #define FORMAT_MESSAGE_IGNORE_INSERTS  0x00000200
        !          2140: #define FORMAT_MESSAGE_FROM_STRING     0x00000400
        !          2141: #define FORMAT_MESSAGE_FROM_HMODULE    0x00000800
        !          2142: #define FORMAT_MESSAGE_FROM_SYSTEM     0x00001000
        !          2143: #define FORMAT_MESSAGE_MAX_WIDTH_MASK  0x000000FF
        !          2144: 
        !          2145: 
        !          2146: BOOL
        !          2147: WINAPI
        !          2148: CreatePipe(
        !          2149:     PHANDLE hReadPipe,
        !          2150:     PHANDLE hWritePipe,
        !          2151:     LPSECURITY_ATTRIBUTES lpPipeAttributes,
        !          2152:     DWORD nSize
        !          2153:     );
        !          2154: 
        !          2155: BOOL
        !          2156: WINAPI
        !          2157: ConnectNamedPipe(
        !          2158:     HANDLE hNamedPipe,
        !          2159:     LPOVERLAPPED lpOverlapped
        !          2160:     );
        !          2161: 
        !          2162: BOOL
        !          2163: WINAPI
        !          2164: DisconnectNamedPipe(
        !          2165:     HANDLE hNamedPipe
        !          2166:     );
        !          2167: 
        !          2168: BOOL
        !          2169: WINAPI
        !          2170: SetNamedPipeHandleState(
        !          2171:     HANDLE hNamedPipe,
        !          2172:     LPDWORD lpMode,
        !          2173:     LPDWORD lpMaxCollectionCount,
        !          2174:     LPDWORD lpCollectDataTimeout
        !          2175:     );
        !          2176: 
        !          2177: BOOL
        !          2178: WINAPI
        !          2179: GetNamedPipeInfo(
        !          2180:     HANDLE hNamedPipe,
        !          2181:     LPDWORD lpFlags,
        !          2182:     LPDWORD lpOutBufferSize,
        !          2183:     LPDWORD lpInBufferSize,
        !          2184:     LPDWORD lpMaxInstances
        !          2185:     );
        !          2186: 
        !          2187: BOOL
        !          2188: WINAPI
        !          2189: PeekNamedPipe(
        !          2190:     HANDLE hNamedPipe,
        !          2191:     LPVOID lpBuffer,
        !          2192:     DWORD nBufferSize,
        !          2193:     LPDWORD lpBytesRead,
        !          2194:     LPDWORD lpTotalBytesAvail,
        !          2195:     LPDWORD lpBytesLeftThisMessage
        !          2196:     );
        !          2197: 
        !          2198: BOOL
        !          2199: WINAPI
        !          2200: TransactNamedPipe(
        !          2201:     HANDLE hNamedPipe,
        !          2202:     LPVOID lpInBuffer,
        !          2203:     DWORD nInBufferSize,
        !          2204:     LPVOID lpOutBuffer,
        !          2205:     DWORD nOutBufferSize,
        !          2206:     LPDWORD lpBytesRead,
        !          2207:     LPOVERLAPPED lpOverlapped
        !          2208:     );
        !          2209: 
        !          2210: HANDLE
        !          2211: WINAPI
        !          2212: CreateMailslotA(
        !          2213:     LPSTR lpName,
        !          2214:     DWORD nMaxMessageSize,
        !          2215:     DWORD lReadTimeout,
        !          2216:     LPSECURITY_ATTRIBUTES lpSecurityAttributes
        !          2217:     );
        !          2218: HANDLE
        !          2219: WINAPI
        !          2220: CreateMailslotW(
        !          2221:     LPWSTR lpName,
        !          2222:     DWORD nMaxMessageSize,
        !          2223:     DWORD lReadTimeout,
        !          2224:     LPSECURITY_ATTRIBUTES lpSecurityAttributes
        !          2225:     );
        !          2226: #ifdef UNICODE
        !          2227: #define CreateMailslot CreateMailslotW
        !          2228: #else
        !          2229: #define CreateMailslot CreateMailslotA
        !          2230: #endif // !UNICODE
        !          2231: 
        !          2232: BOOL
        !          2233: WINAPI
        !          2234: GetMailslotInfo(
        !          2235:     HANDLE hMailslot,
        !          2236:     LPDWORD lpMaxMessageSize,
        !          2237:     LPDWORD lpNextSize,
        !          2238:     LPDWORD lpMessageCount,
        !          2239:     LPDWORD lpReadTimeout
        !          2240:     );
        !          2241: 
        !          2242: BOOL
        !          2243: WINAPI
        !          2244: SetMailslotInfo(
        !          2245:     HANDLE hMailslot,
        !          2246:     DWORD lReadTimeout
        !          2247:     );
        !          2248: 
        !          2249: LPVOID
        !          2250: WINAPI
        !          2251: MapViewOfFile(
        !          2252:     HANDLE hFileMappingObject,
        !          2253:     DWORD dwDesiredAccess,
        !          2254:     DWORD dwFileOffsetHigh,
        !          2255:     DWORD dwFileOffsetLow,
        !          2256:     DWORD dwNumberOfBytesToMap
        !          2257:     );
        !          2258: 
        !          2259: BOOL
        !          2260: WINAPI
        !          2261: FlushViewOfFile(
        !          2262:     LPVOID lpBaseAddress,
        !          2263:     DWORD dwNumberOfBytesToFlush
        !          2264:     );
        !          2265: 
        !          2266: BOOL
        !          2267: WINAPI
        !          2268: UnmapViewOfFile(
        !          2269:     LPVOID lpBaseAddress
        !          2270:     );
        !          2271: 
        !          2272: //
        !          2273: // _l Compat Functions
        !          2274: //
        !          2275: 
        !          2276: int
        !          2277: WINAPI
        !          2278: lstrcmpA(
        !          2279:     LPCSTR lpString1,
        !          2280:     LPCSTR lpString2
        !          2281:     );
        !          2282: int
        !          2283: WINAPI
        !          2284: lstrcmpW(
        !          2285:     LPCWSTR lpString1,
        !          2286:     LPCWSTR lpString2
        !          2287:     );
        !          2288: #ifdef UNICODE
        !          2289: #define lstrcmp lstrcmpW
        !          2290: #else
        !          2291: #define lstrcmp lstrcmpA
        !          2292: #endif // !UNICODE
        !          2293: 
        !          2294: int
        !          2295: WINAPI
        !          2296: lstrcmpiA(
        !          2297:     LPCSTR lpString1,
        !          2298:     LPCSTR lpString2
        !          2299:     );
        !          2300: int
        !          2301: WINAPI
        !          2302: lstrcmpiW(
        !          2303:     LPCWSTR lpString1,
        !          2304:     LPCWSTR lpString2
        !          2305:     );
        !          2306: #ifdef UNICODE
        !          2307: #define lstrcmpi lstrcmpiW
        !          2308: #else
        !          2309: #define lstrcmpi lstrcmpiA
        !          2310: #endif // !UNICODE
        !          2311: 
        !          2312: LPSTR
        !          2313: WINAPI
        !          2314: lstrcpyA(
        !          2315:     LPSTR lpString1,
        !          2316:     LPCSTR lpString2
        !          2317:     );
        !          2318: LPWSTR
        !          2319: WINAPI
        !          2320: lstrcpyW(
        !          2321:     LPWSTR lpString1,
        !          2322:     LPCWSTR lpString2
        !          2323:     );
        !          2324: #ifdef UNICODE
        !          2325: #define lstrcpy lstrcpyW
        !          2326: #else
        !          2327: #define lstrcpy lstrcpyA
        !          2328: #endif // !UNICODE
        !          2329: 
        !          2330: LPSTR
        !          2331: WINAPI
        !          2332: lstrcatA(
        !          2333:     LPSTR lpString1,
        !          2334:     LPCSTR lpString2
        !          2335:     );
        !          2336: LPWSTR
        !          2337: WINAPI
        !          2338: lstrcatW(
        !          2339:     LPWSTR lpString1,
        !          2340:     LPCWSTR lpString2
        !          2341:     );
        !          2342: #ifdef UNICODE
        !          2343: #define lstrcat lstrcatW
        !          2344: #else
        !          2345: #define lstrcat lstrcatA
        !          2346: #endif // !UNICODE
        !          2347: 
        !          2348: int
        !          2349: WINAPI
        !          2350: lstrlenA(
        !          2351:     LPCSTR lpString
        !          2352:     );
        !          2353: int
        !          2354: WINAPI
        !          2355: lstrlenW(
        !          2356:     LPCWSTR lpString
        !          2357:     );
        !          2358: #ifdef UNICODE
        !          2359: #define lstrlen lstrlenW
        !          2360: #else
        !          2361: #define lstrlen lstrlenA
        !          2362: #endif // !UNICODE
        !          2363: 
        !          2364: HFILE
        !          2365: WINAPI
        !          2366: OpenFile(
        !          2367:     LPCSTR lpFileName,
        !          2368:     LPOFSTRUCT lpReOpenBuff,
        !          2369:     UINT uStyle
        !          2370:     );
        !          2371: 
        !          2372: HFILE
        !          2373: WINAPI
        !          2374: _lopen(
        !          2375:     LPCSTR lpPathName,
        !          2376:     int iReadWrite
        !          2377:     );
        !          2378: 
        !          2379: HFILE
        !          2380: WINAPI
        !          2381: _lcreat(
        !          2382:     LPCSTR lpPathName,
        !          2383:     int  iAttribute
        !          2384:     );
        !          2385: 
        !          2386: UINT
        !          2387: WINAPI
        !          2388: _lread(
        !          2389:     HFILE hFile,
        !          2390:     LPVOID lpBuffer,
        !          2391:     UINT uBytes
        !          2392:     );
        !          2393: 
        !          2394: UINT
        !          2395: WINAPI
        !          2396: _lwrite(
        !          2397:     HFILE hFile,
        !          2398:     LPCSTR lpBuffer,
        !          2399:     UINT uBytes
        !          2400:     );
        !          2401: 
        !          2402: HFILE
        !          2403: WINAPI
        !          2404: _lclose(
        !          2405:     HFILE hFile
        !          2406:     );
        !          2407: 
        !          2408: LONG
        !          2409: WINAPI
        !          2410: _llseek(
        !          2411:     HFILE hFile,
        !          2412:     LONG lOffset,
        !          2413:     int iOrigin
        !          2414:     );
        !          2415: 
        !          2416: DWORD
        !          2417: WINAPI
        !          2418: TlsAlloc(
        !          2419:     VOID
        !          2420:     );
        !          2421: 
        !          2422: LPVOID
        !          2423: WINAPI
        !          2424: TlsGetValue(
        !          2425:     DWORD dwTlsIndex
        !          2426:     );
        !          2427: 
        !          2428: BOOL
        !          2429: WINAPI
        !          2430: TlsSetValue(
        !          2431:     DWORD dwTlsIndex,
        !          2432:     LPVOID lpTlsValue
        !          2433:     );
        !          2434: 
        !          2435: BOOL
        !          2436: WINAPI
        !          2437: TlsFree(
        !          2438:     DWORD dwTlsIndex
        !          2439:     );
        !          2440: 
        !          2441: typedef
        !          2442: VOID
        !          2443: (*LPOVERLAPPED_COMPLETION_ROUTINE)(
        !          2444:     DWORD dwErrorCode,
        !          2445:     DWORD dwNumberOfBytesTransfered,
        !          2446:     LPOVERLAPPED lpOverlapped
        !          2447:     );
        !          2448: 
        !          2449: DWORD
        !          2450: WINAPI
        !          2451: SleepEx(
        !          2452:     DWORD dwMilliseconds,
        !          2453:     BOOL bAlertable
        !          2454:     );
        !          2455: 
        !          2456: DWORD
        !          2457: WINAPI
        !          2458: WaitForSingleObjectEx(
        !          2459:     HANDLE hHandle,
        !          2460:     DWORD dwMilliseconds,
        !          2461:     BOOL bAlertable
        !          2462:     );
        !          2463: 
        !          2464: DWORD
        !          2465: WINAPI
        !          2466: WaitForMultipleObjectsEx(
        !          2467:     DWORD nCount,
        !          2468:     LPHANDLE lpHandles,
        !          2469:     BOOL bWaitAll,
        !          2470:     DWORD dwMilliseconds,
        !          2471:     BOOL bAlertable
        !          2472:     );
        !          2473: 
        !          2474: BOOL
        !          2475: WINAPI
        !          2476: ReadFileEx(
        !          2477:     HANDLE hFile,
        !          2478:     LPVOID lpBuffer,
        !          2479:     DWORD nNumberOfBytesToRead,
        !          2480:     LPOVERLAPPED lpOverlapped,
        !          2481:     LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
        !          2482:     );
        !          2483: 
        !          2484: BOOL
        !          2485: WINAPI
        !          2486: WriteFileEx(
        !          2487:     HANDLE hFile,
        !          2488:     LPVOID lpBuffer,
        !          2489:     DWORD nNumberOfBytesToWrite,
        !          2490:     LPOVERLAPPED lpOverlapped,
        !          2491:     LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
        !          2492:     );
        !          2493: 
        !          2494: BOOL
        !          2495: WINAPI
        !          2496: BackupRead(
        !          2497:     HANDLE hFile,
        !          2498:     LPBYTE lpBuffer,
        !          2499:     DWORD nNumberOfBytesToRead,
        !          2500:     LPDWORD lpNumberOfBytesRead,
        !          2501:     BOOL fAbort ,
        !          2502:     LPVOID *lpContext
        !          2503:     );
        !          2504: 
        !          2505: BOOL
        !          2506: WINAPI
        !          2507: BackupWrite(
        !          2508:     HANDLE hFile,
        !          2509:     LPBYTE lpBuffer,
        !          2510:     DWORD nNumberOfBytesToWrite,
        !          2511:     LPDWORD lpNumberOfBytesWritten,
        !          2512:     BOOL fAbort ,
        !          2513:     LPVOID *lpContext
        !          2514:     );
        !          2515: 
        !          2516: //
        !          2517: // Dual Mode API below this line. Dual Mode Structures also included.
        !          2518: //
        !          2519: 
        !          2520: #define STARTF_USESHOWWINDOW    0x00000001
        !          2521: #define STARTF_USESIZE          0x00000002
        !          2522: #define STARTF_USEPOSITION      0x00000004
        !          2523: #define STARTF_USECOUNTCHARS    0x00000008
        !          2524: #define STARTF_USEFILLATTRIBUTE 0x00000010
        !          2525: #define STARTF_RUNFULLSCREEN    0x00000020  // ignored for non-x86 platforms
        !          2526: #define STARTF_FORCEONFEEDBACK  0x00000040
        !          2527: #define STARTF_FORCEOFFFEEDBACK 0x00000080
        !          2528: 
        !          2529: typedef struct _STARTUPINFOA {
        !          2530:     DWORD   cb;
        !          2531:     LPSTR   lpReserved;
        !          2532:     LPSTR   lpDesktop;
        !          2533:     LPSTR   lpTitle;
        !          2534:     DWORD   dwX;
        !          2535:     DWORD   dwY;
        !          2536:     DWORD   dwXSize;
        !          2537:     DWORD   dwYSize;
        !          2538:     DWORD   dwXCountChars;
        !          2539:     DWORD   dwYCountChars;
        !          2540:     DWORD   dwFillAttribute;
        !          2541:     DWORD   dwFlags;
        !          2542:     WORD    wShowWindow;
        !          2543:     WORD    cbReserved2;
        !          2544:     LPBYTE  lpReserved2;
        !          2545: } STARTUPINFOA, *LPSTARTUPINFOA;
        !          2546: typedef struct _STARTUPINFOW {
        !          2547:     DWORD   cb;
        !          2548:     LPWSTR  lpReserved;
        !          2549:     LPWSTR  lpDesktop;
        !          2550:     LPWSTR  lpTitle;
        !          2551:     DWORD   dwX;
        !          2552:     DWORD   dwY;
        !          2553:     DWORD   dwXSize;
        !          2554:     DWORD   dwYSize;
        !          2555:     DWORD   dwXCountChars;
        !          2556:     DWORD   dwYCountChars;
        !          2557:     DWORD   dwFillAttribute;
        !          2558:     DWORD   dwFlags;
        !          2559:     WORD    wShowWindow;
        !          2560:     WORD    cbReserved2;
        !          2561:     LPBYTE  lpReserved2;
        !          2562: } STARTUPINFOW, *LPSTARTUPINFOW;
        !          2563: #ifdef UNICODE
        !          2564: #define STARTUPINFO STARTUPINFOW
        !          2565: #define LPSTARTUPINFO LPSTARTUPINFOW
        !          2566: #else
        !          2567: #define STARTUPINFO STARTUPINFOA
        !          2568: #define LPSTARTUPINFO LPSTARTUPINFOA
        !          2569: #endif // UNICODE
        !          2570: 
        !          2571: typedef struct _WIN32_FIND_DATAA {
        !          2572:     DWORD dwFileAttributes;
        !          2573:     FILETIME ftCreationTime;
        !          2574:     FILETIME ftLastAccessTime;
        !          2575:     FILETIME ftLastWriteTime;
        !          2576:     DWORD nFileSizeHigh;
        !          2577:     DWORD nFileSizeLow;
        !          2578:     DWORD dwReserved0;
        !          2579:     DWORD dwReserved1;
        !          2580:     CHAR   cFileName[ MAX_PATH ];
        !          2581:     CHAR   cAlternateFileName[ 14 ];
        !          2582: } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
        !          2583: typedef struct _WIN32_FIND_DATAW {
        !          2584:     DWORD dwFileAttributes;
        !          2585:     FILETIME ftCreationTime;
        !          2586:     FILETIME ftLastAccessTime;
        !          2587:     FILETIME ftLastWriteTime;
        !          2588:     DWORD nFileSizeHigh;
        !          2589:     DWORD nFileSizeLow;
        !          2590:     DWORD dwReserved0;
        !          2591:     DWORD dwReserved1;
        !          2592:     WCHAR  cFileName[ MAX_PATH ];
        !          2593:     WCHAR  cAlternateFileName[ 14 ];
        !          2594: } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
        !          2595: #ifdef UNICODE
        !          2596: #define WIN32_FIND_DATA WIN32_FIND_DATAW
        !          2597: #define PWIN32_FIND_DATA PWIN32_FIND_DATAW
        !          2598: #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAW
        !          2599: #else
        !          2600: #define WIN32_FIND_DATA WIN32_FIND_DATAA
        !          2601: #define PWIN32_FIND_DATA PWIN32_FIND_DATAA
        !          2602: #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAA
        !          2603: #endif // UNICODE
        !          2604: 
        !          2605: 
        !          2606: 
        !          2607: HANDLE
        !          2608: WINAPI
        !          2609: CreateMutexA(
        !          2610:     LPSECURITY_ATTRIBUTES lpMutexAttributes,
        !          2611:     BOOL bInitialOwner,
        !          2612:     LPSTR lpName
        !          2613:     );
        !          2614: HANDLE
        !          2615: WINAPI
        !          2616: CreateMutexW(
        !          2617:     LPSECURITY_ATTRIBUTES lpMutexAttributes,
        !          2618:     BOOL bInitialOwner,
        !          2619:     LPWSTR lpName
        !          2620:     );
        !          2621: #ifdef UNICODE
        !          2622: #define CreateMutex CreateMutexW
        !          2623: #else
        !          2624: #define CreateMutex CreateMutexA
        !          2625: #endif // !UNICODE
        !          2626: 
        !          2627: HANDLE
        !          2628: WINAPI
        !          2629: OpenMutexA(
        !          2630:     DWORD dwDesiredAccess,
        !          2631:     BOOL bInheritHandle,
        !          2632:     LPSTR lpName
        !          2633:     );
        !          2634: HANDLE
        !          2635: WINAPI
        !          2636: OpenMutexW(
        !          2637:     DWORD dwDesiredAccess,
        !          2638:     BOOL bInheritHandle,
        !          2639:     LPWSTR lpName
        !          2640:     );
        !          2641: #ifdef UNICODE
        !          2642: #define OpenMutex OpenMutexW
        !          2643: #else
        !          2644: #define OpenMutex OpenMutexA
        !          2645: #endif // !UNICODE
        !          2646: 
        !          2647: HANDLE
        !          2648: WINAPI
        !          2649: CreateEventA(
        !          2650:     LPSECURITY_ATTRIBUTES lpEventAttributes,
        !          2651:     BOOL bManualReset,
        !          2652:     BOOL bInitialState,
        !          2653:     LPSTR lpName
        !          2654:     );
        !          2655: HANDLE
        !          2656: WINAPI
        !          2657: CreateEventW(
        !          2658:     LPSECURITY_ATTRIBUTES lpEventAttributes,
        !          2659:     BOOL bManualReset,
        !          2660:     BOOL bInitialState,
        !          2661:     LPWSTR lpName
        !          2662:     );
        !          2663: #ifdef UNICODE
        !          2664: #define CreateEvent CreateEventW
        !          2665: #else
        !          2666: #define CreateEvent CreateEventA
        !          2667: #endif // !UNICODE
        !          2668: 
        !          2669: HANDLE
        !          2670: WINAPI
        !          2671: OpenEventA(
        !          2672:     DWORD dwDesiredAccess,
        !          2673:     BOOL bInheritHandle,
        !          2674:     LPSTR lpName
        !          2675:     );
        !          2676: HANDLE
        !          2677: WINAPI
        !          2678: OpenEventW(
        !          2679:     DWORD dwDesiredAccess,
        !          2680:     BOOL bInheritHandle,
        !          2681:     LPWSTR lpName
        !          2682:     );
        !          2683: #ifdef UNICODE
        !          2684: #define OpenEvent OpenEventW
        !          2685: #else
        !          2686: #define OpenEvent OpenEventA
        !          2687: #endif // !UNICODE
        !          2688: 
        !          2689: HANDLE
        !          2690: WINAPI
        !          2691: CreateSemaphoreA(
        !          2692:     LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
        !          2693:     LONG lInitialCount,
        !          2694:     LONG lMaximumCount,
        !          2695:     LPSTR lpName
        !          2696:     );
        !          2697: HANDLE
        !          2698: WINAPI
        !          2699: CreateSemaphoreW(
        !          2700:     LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
        !          2701:     LONG lInitialCount,
        !          2702:     LONG lMaximumCount,
        !          2703:     LPWSTR lpName
        !          2704:     );
        !          2705: #ifdef UNICODE
        !          2706: #define CreateSemaphore CreateSemaphoreW
        !          2707: #else
        !          2708: #define CreateSemaphore CreateSemaphoreA
        !          2709: #endif // !UNICODE
        !          2710: 
        !          2711: HANDLE
        !          2712: WINAPI
        !          2713: OpenSemaphoreA(
        !          2714:     DWORD dwDesiredAccess,
        !          2715:     BOOL bInheritHandle,
        !          2716:     LPSTR lpName
        !          2717:     );
        !          2718: HANDLE
        !          2719: WINAPI
        !          2720: OpenSemaphoreW(
        !          2721:     DWORD dwDesiredAccess,
        !          2722:     BOOL bInheritHandle,
        !          2723:     LPWSTR lpName
        !          2724:     );
        !          2725: #ifdef UNICODE
        !          2726: #define OpenSemaphore OpenSemaphoreW
        !          2727: #else
        !          2728: #define OpenSemaphore OpenSemaphoreA
        !          2729: #endif // !UNICODE
        !          2730: 
        !          2731: HANDLE
        !          2732: WINAPI
        !          2733: CreateFileMappingA(
        !          2734:     HANDLE hFile,
        !          2735:     LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
        !          2736:     DWORD flProtect,
        !          2737:     DWORD dwMaximumSizeHigh,
        !          2738:     DWORD dwMaximumSizeLow,
        !          2739:     LPSTR lpName
        !          2740:     );
        !          2741: HANDLE
        !          2742: WINAPI
        !          2743: CreateFileMappingW(
        !          2744:     HANDLE hFile,
        !          2745:     LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
        !          2746:     DWORD flProtect,
        !          2747:     DWORD dwMaximumSizeHigh,
        !          2748:     DWORD dwMaximumSizeLow,
        !          2749:     LPWSTR lpName
        !          2750:     );
        !          2751: #ifdef UNICODE
        !          2752: #define CreateFileMapping CreateFileMappingW
        !          2753: #else
        !          2754: #define CreateFileMapping CreateFileMappingA
        !          2755: #endif // !UNICODE
        !          2756: 
        !          2757: HANDLE
        !          2758: WINAPI
        !          2759: OpenFileMappingA(
        !          2760:     DWORD dwDesiredAccess,
        !          2761:     BOOL bInheritHandle,
        !          2762:     LPSTR lpName
        !          2763:     );
        !          2764: HANDLE
        !          2765: WINAPI
        !          2766: OpenFileMappingW(
        !          2767:     DWORD dwDesiredAccess,
        !          2768:     BOOL bInheritHandle,
        !          2769:     LPWSTR lpName
        !          2770:     );
        !          2771: #ifdef UNICODE
        !          2772: #define OpenFileMapping OpenFileMappingW
        !          2773: #else
        !          2774: #define OpenFileMapping OpenFileMappingA
        !          2775: #endif // !UNICODE
        !          2776: 
        !          2777: DWORD
        !          2778: WINAPI
        !          2779: GetLogicalDriveStringsA(
        !          2780:     DWORD nBufferLength,
        !          2781:     LPSTR lpBuffer
        !          2782:     );
        !          2783: DWORD
        !          2784: WINAPI
        !          2785: GetLogicalDriveStringsW(
        !          2786:     DWORD nBufferLength,
        !          2787:     LPWSTR lpBuffer
        !          2788:     );
        !          2789: #ifdef UNICODE
        !          2790: #define GetLogicalDriveStrings GetLogicalDriveStringsW
        !          2791: #else
        !          2792: #define GetLogicalDriveStrings GetLogicalDriveStringsA
        !          2793: #endif // !UNICODE
        !          2794: 
        !          2795: HINSTANCE
        !          2796: WINAPI
        !          2797: LoadLibraryA(
        !          2798:     LPCSTR lpLibFileName
        !          2799:     );
        !          2800: HINSTANCE
        !          2801: WINAPI
        !          2802: LoadLibraryW(
        !          2803:     LPCWSTR lpLibFileName
        !          2804:     );
        !          2805: #ifdef UNICODE
        !          2806: #define LoadLibrary LoadLibraryW
        !          2807: #else
        !          2808: #define LoadLibrary LoadLibraryA
        !          2809: #endif // !UNICODE
        !          2810: 
        !          2811: DWORD
        !          2812: WINAPI
        !          2813: GetModuleFileNameA(
        !          2814:     HINSTANCE hModule,
        !          2815:     LPSTR lpFilename,
        !          2816:     DWORD nSize
        !          2817:     );
        !          2818: DWORD
        !          2819: WINAPI
        !          2820: GetModuleFileNameW(
        !          2821:     HINSTANCE hModule,
        !          2822:     LPWSTR lpFilename,
        !          2823:     DWORD nSize
        !          2824:     );
        !          2825: #ifdef UNICODE
        !          2826: #define GetModuleFileName GetModuleFileNameW
        !          2827: #else
        !          2828: #define GetModuleFileName GetModuleFileNameA
        !          2829: #endif // !UNICODE
        !          2830: 
        !          2831: HMODULE
        !          2832: WINAPI
        !          2833: GetModuleHandleA(
        !          2834:     LPCSTR lpModuleName
        !          2835:     );
        !          2836: HMODULE
        !          2837: WINAPI
        !          2838: GetModuleHandleW(
        !          2839:     LPCWSTR lpModuleName
        !          2840:     );
        !          2841: #ifdef UNICODE
        !          2842: #define GetModuleHandle GetModuleHandleW
        !          2843: #else
        !          2844: #define GetModuleHandle GetModuleHandleA
        !          2845: #endif // !UNICODE
        !          2846: 
        !          2847: BOOL
        !          2848: WINAPI
        !          2849: CreateProcessA(
        !          2850:     LPCSTR lpApplicationName,
        !          2851:     LPCSTR lpCommandLine,
        !          2852:     LPSECURITY_ATTRIBUTES lpProcessAttributes,
        !          2853:     LPSECURITY_ATTRIBUTES lpThreadAttributes,
        !          2854:     BOOL bInheritHandles,
        !          2855:     DWORD dwCreationFlags,
        !          2856:     LPVOID lpEnvironment,
        !          2857:     LPSTR lpCurrentDirectory,
        !          2858:     LPSTARTUPINFOA lpStartupInfo,
        !          2859:     LPPROCESS_INFORMATION lpProcessInformation
        !          2860:     );
        !          2861: BOOL
        !          2862: WINAPI
        !          2863: CreateProcessW(
        !          2864:     LPCWSTR lpApplicationName,
        !          2865:     LPCWSTR lpCommandLine,
        !          2866:     LPSECURITY_ATTRIBUTES lpProcessAttributes,
        !          2867:     LPSECURITY_ATTRIBUTES lpThreadAttributes,
        !          2868:     BOOL bInheritHandles,
        !          2869:     DWORD dwCreationFlags,
        !          2870:     LPVOID lpEnvironment,
        !          2871:     LPWSTR lpCurrentDirectory,
        !          2872:     LPSTARTUPINFOW lpStartupInfo,
        !          2873:     LPPROCESS_INFORMATION lpProcessInformation
        !          2874:     );
        !          2875: #ifdef UNICODE
        !          2876: #define CreateProcess CreateProcessW
        !          2877: #else
        !          2878: #define CreateProcess CreateProcessA
        !          2879: #endif // !UNICODE
        !          2880: 
        !          2881: VOID
        !          2882: WINAPI
        !          2883: FatalAppExitA(
        !          2884:     UINT uAction,
        !          2885:     LPCSTR lpMessageText
        !          2886:     );
        !          2887: VOID
        !          2888: WINAPI
        !          2889: FatalAppExitW(
        !          2890:     UINT uAction,
        !          2891:     LPCWSTR lpMessageText
        !          2892:     );
        !          2893: #ifdef UNICODE
        !          2894: #define FatalAppExit FatalAppExitW
        !          2895: #else
        !          2896: #define FatalAppExit FatalAppExitA
        !          2897: #endif // !UNICODE
        !          2898: 
        !          2899: VOID
        !          2900: WINAPI
        !          2901: GetStartupInfoA(
        !          2902:     LPSTARTUPINFOA lpStartupInfo
        !          2903:     );
        !          2904: VOID
        !          2905: WINAPI
        !          2906: GetStartupInfoW(
        !          2907:     LPSTARTUPINFOW lpStartupInfo
        !          2908:     );
        !          2909: #ifdef UNICODE
        !          2910: #define GetStartupInfo GetStartupInfoW
        !          2911: #else
        !          2912: #define GetStartupInfo GetStartupInfoA
        !          2913: #endif // !UNICODE
        !          2914: 
        !          2915: LPSTR
        !          2916: WINAPI
        !          2917: GetCommandLineA(
        !          2918:     VOID
        !          2919:     );
        !          2920: LPWSTR
        !          2921: WINAPI
        !          2922: GetCommandLineW(
        !          2923:     VOID
        !          2924:     );
        !          2925: #ifdef UNICODE
        !          2926: #define GetCommandLine GetCommandLineW
        !          2927: #else
        !          2928: #define GetCommandLine GetCommandLineA
        !          2929: #endif // !UNICODE
        !          2930: 
        !          2931: DWORD
        !          2932: WINAPI
        !          2933: GetEnvironmentVariableA(
        !          2934:     LPSTR lpName,
        !          2935:     LPSTR lpBuffer,
        !          2936:     DWORD nSize
        !          2937:     );
        !          2938: DWORD
        !          2939: WINAPI
        !          2940: GetEnvironmentVariableW(
        !          2941:     LPWSTR lpName,
        !          2942:     LPWSTR lpBuffer,
        !          2943:     DWORD nSize
        !          2944:     );
        !          2945: #ifdef UNICODE
        !          2946: #define GetEnvironmentVariable GetEnvironmentVariableW
        !          2947: #else
        !          2948: #define GetEnvironmentVariable GetEnvironmentVariableA
        !          2949: #endif // !UNICODE
        !          2950: 
        !          2951: BOOL
        !          2952: WINAPI
        !          2953: SetEnvironmentVariableA(
        !          2954:     LPSTR lpName,
        !          2955:     LPSTR lpValue
        !          2956:     );
        !          2957: BOOL
        !          2958: WINAPI
        !          2959: SetEnvironmentVariableW(
        !          2960:     LPWSTR lpName,
        !          2961:     LPWSTR lpValue
        !          2962:     );
        !          2963: #ifdef UNICODE
        !          2964: #define SetEnvironmentVariable SetEnvironmentVariableW
        !          2965: #else
        !          2966: #define SetEnvironmentVariable SetEnvironmentVariableA
        !          2967: #endif // !UNICODE
        !          2968: 
        !          2969: DWORD
        !          2970: WINAPI
        !          2971: ExpandEnvironmentStringsA(
        !          2972:     LPCSTR lpSrc,
        !          2973:     LPSTR lpDst,
        !          2974:     DWORD nSize
        !          2975:     );
        !          2976: DWORD
        !          2977: WINAPI
        !          2978: ExpandEnvironmentStringsW(
        !          2979:     LPCWSTR lpSrc,
        !          2980:     LPWSTR lpDst,
        !          2981:     DWORD nSize
        !          2982:     );
        !          2983: #ifdef UNICODE
        !          2984: #define ExpandEnvironmentStrings ExpandEnvironmentStringsW
        !          2985: #else
        !          2986: #define ExpandEnvironmentStrings ExpandEnvironmentStringsA
        !          2987: #endif // !UNICODE
        !          2988: 
        !          2989: VOID
        !          2990: WINAPI
        !          2991: OutputDebugStringA(
        !          2992:     LPCSTR lpOutputString
        !          2993:     );
        !          2994: VOID
        !          2995: WINAPI
        !          2996: OutputDebugStringW(
        !          2997:     LPCWSTR lpOutputString
        !          2998:     );
        !          2999: #ifdef UNICODE
        !          3000: #define OutputDebugString OutputDebugStringW
        !          3001: #else
        !          3002: #define OutputDebugString OutputDebugStringA
        !          3003: #endif // !UNICODE
        !          3004: 
        !          3005: HRSRC
        !          3006: WINAPI
        !          3007: FindResourceA(
        !          3008:     HINSTANCE hModule,
        !          3009:     LPCSTR lpName,
        !          3010:     LPCSTR lpType
        !          3011:     );
        !          3012: HRSRC
        !          3013: WINAPI
        !          3014: FindResourceW(
        !          3015:     HINSTANCE hModule,
        !          3016:     LPCWSTR lpName,
        !          3017:     LPCWSTR lpType
        !          3018:     );
        !          3019: #ifdef UNICODE
        !          3020: #define FindResource FindResourceW
        !          3021: #else
        !          3022: #define FindResource FindResourceA
        !          3023: #endif // !UNICODE
        !          3024: 
        !          3025: HRSRC
        !          3026: WINAPI
        !          3027: FindResourceExA(
        !          3028:     HINSTANCE hModule,
        !          3029:     LPCSTR lpType,
        !          3030:     LPCSTR lpName,
        !          3031:     WORD    wLanguage
        !          3032:     );
        !          3033: HRSRC
        !          3034: WINAPI
        !          3035: FindResourceExW(
        !          3036:     HINSTANCE hModule,
        !          3037:     LPCWSTR lpType,
        !          3038:     LPCWSTR lpName,
        !          3039:     WORD    wLanguage
        !          3040:     );
        !          3041: #ifdef UNICODE
        !          3042: #define FindResourceEx FindResourceExW
        !          3043: #else
        !          3044: #define FindResourceEx FindResourceExA
        !          3045: #endif // !UNICODE
        !          3046: 
        !          3047: #ifdef STRICT
        !          3048: typedef BOOL (CALLBACK* ENUMRESTYPEPROC)(HANDLE hModule, LPTSTR lpType,
        !          3049:         LONG lParam);
        !          3050: typedef BOOL (CALLBACK* ENUMRESNAMEPROC)(HANDLE hModule, LPCTSTR lpType,
        !          3051:         LPTSTR lpName, LONG lParam);
        !          3052: typedef BOOL (CALLBACK* ENUMRESLANGPROC)(HANDLE hModule, LPCTSTR lpType,
        !          3053:         LPCTSTR lpName, WORD  wLanguage, LONG lParam);
        !          3054: #else
        !          3055: typedef FARPROC ENUMRESTYPEPROC;
        !          3056: typedef FARPROC ENUMRESNAMEPROC;
        !          3057: typedef FARPROC ENUMRESLANGPROC;
        !          3058: #endif
        !          3059: 
        !          3060: BOOL
        !          3061: WINAPI
        !          3062: EnumResourceTypesA(
        !          3063:     HANDLE hModule,
        !          3064:     ENUMRESTYPEPROC lpEnumFunc,
        !          3065:     LONG lParam
        !          3066:     );
        !          3067: BOOL
        !          3068: WINAPI
        !          3069: EnumResourceTypesW(
        !          3070:     HANDLE hModule,
        !          3071:     ENUMRESTYPEPROC lpEnumFunc,
        !          3072:     LONG lParam
        !          3073:     );
        !          3074: #ifdef UNICODE
        !          3075: #define EnumResourceTypes EnumResourceTypesW
        !          3076: #else
        !          3077: #define EnumResourceTypes EnumResourceTypesA
        !          3078: #endif // !UNICODE
        !          3079: 
        !          3080: 
        !          3081: BOOL
        !          3082: WINAPI
        !          3083: EnumResourceNamesA(
        !          3084:     HANDLE hModule,
        !          3085:     LPCSTR lpType,
        !          3086:     ENUMRESNAMEPROC lpEnumFunc,
        !          3087:     LONG lParam
        !          3088:     );
        !          3089: BOOL
        !          3090: WINAPI
        !          3091: EnumResourceNamesW(
        !          3092:     HANDLE hModule,
        !          3093:     LPCWSTR lpType,
        !          3094:     ENUMRESNAMEPROC lpEnumFunc,
        !          3095:     LONG lParam
        !          3096:     );
        !          3097: #ifdef UNICODE
        !          3098: #define EnumResourceNames EnumResourceNamesW
        !          3099: #else
        !          3100: #define EnumResourceNames EnumResourceNamesA
        !          3101: #endif // !UNICODE
        !          3102: 
        !          3103: BOOL
        !          3104: WINAPI
        !          3105: EnumResourceLanguagesA(
        !          3106:     HANDLE hModule,
        !          3107:     LPCSTR lpType,
        !          3108:     LPCSTR lpName,
        !          3109:     ENUMRESLANGPROC lpEnumFunc,
        !          3110:     LONG lParam
        !          3111:     );
        !          3112: BOOL
        !          3113: WINAPI
        !          3114: EnumResourceLanguagesW(
        !          3115:     HANDLE hModule,
        !          3116:     LPCWSTR lpType,
        !          3117:     LPCWSTR lpName,
        !          3118:     ENUMRESLANGPROC lpEnumFunc,
        !          3119:     LONG lParam
        !          3120:     );
        !          3121: #ifdef UNICODE
        !          3122: #define EnumResourceLanguages EnumResourceLanguagesW
        !          3123: #else
        !          3124: #define EnumResourceLanguages EnumResourceLanguagesA
        !          3125: #endif // !UNICODE
        !          3126: 
        !          3127: HANDLE
        !          3128: WINAPI
        !          3129: BeginUpdateResourceA(
        !          3130:     LPSTR pFileName
        !          3131:     );
        !          3132: HANDLE
        !          3133: WINAPI
        !          3134: BeginUpdateResourceW(
        !          3135:     LPWSTR pFileName
        !          3136:     );
        !          3137: #ifdef UNICODE
        !          3138: #define BeginUpdateResource BeginUpdateResourceW
        !          3139: #else
        !          3140: #define BeginUpdateResource BeginUpdateResourceA
        !          3141: #endif // !UNICODE
        !          3142: 
        !          3143: BOOL
        !          3144: WINAPI
        !          3145: UpdateResourceA(
        !          3146:     HANDLE      hUpdate,
        !          3147:     LPSTR     lpType,
        !          3148:     LPSTR     lpName,
        !          3149:     WORD        wLanguage,
        !          3150:     LPVOID      lpData,
        !          3151:     DWORD       cbData
        !          3152:     );
        !          3153: BOOL
        !          3154: WINAPI
        !          3155: UpdateResourceW(
        !          3156:     HANDLE      hUpdate,
        !          3157:     LPWSTR     lpType,
        !          3158:     LPWSTR     lpName,
        !          3159:     WORD        wLanguage,
        !          3160:     LPVOID      lpData,
        !          3161:     DWORD       cbData
        !          3162:     );
        !          3163: #ifdef UNICODE
        !          3164: #define UpdateResource UpdateResourceW
        !          3165: #else
        !          3166: #define UpdateResource UpdateResourceA
        !          3167: #endif // !UNICODE
        !          3168: 
        !          3169: BOOL
        !          3170: WINAPI
        !          3171: EndUpdateResourceA(
        !          3172:     HANDLE      hUpdate,
        !          3173:     BOOL        fDiscard
        !          3174:     );
        !          3175: BOOL
        !          3176: WINAPI
        !          3177: EndUpdateResourceW(
        !          3178:     HANDLE      hUpdate,
        !          3179:     BOOL        fDiscard
        !          3180:     );
        !          3181: #ifdef UNICODE
        !          3182: #define EndUpdateResource EndUpdateResourceW
        !          3183: #else
        !          3184: #define EndUpdateResource EndUpdateResourceA
        !          3185: #endif // !UNICODE
        !          3186: 
        !          3187: ATOM
        !          3188: WINAPI
        !          3189: GlobalAddAtomA(
        !          3190:     LPCSTR lpString
        !          3191:     );
        !          3192: ATOM
        !          3193: WINAPI
        !          3194: GlobalAddAtomW(
        !          3195:     LPCWSTR lpString
        !          3196:     );
        !          3197: #ifdef UNICODE
        !          3198: #define GlobalAddAtom GlobalAddAtomW
        !          3199: #else
        !          3200: #define GlobalAddAtom GlobalAddAtomA
        !          3201: #endif // !UNICODE
        !          3202: 
        !          3203: ATOM
        !          3204: WINAPI
        !          3205: GlobalFindAtomA(
        !          3206:     LPCSTR lpString
        !          3207:     );
        !          3208: ATOM
        !          3209: WINAPI
        !          3210: GlobalFindAtomW(
        !          3211:     LPCWSTR lpString
        !          3212:     );
        !          3213: #ifdef UNICODE
        !          3214: #define GlobalFindAtom GlobalFindAtomW
        !          3215: #else
        !          3216: #define GlobalFindAtom GlobalFindAtomA
        !          3217: #endif // !UNICODE
        !          3218: 
        !          3219: UINT
        !          3220: WINAPI
        !          3221: GlobalGetAtomNameA(
        !          3222:     ATOM nAtom,
        !          3223:     LPSTR lpBuffer,
        !          3224:     int nSize
        !          3225:     );
        !          3226: UINT
        !          3227: WINAPI
        !          3228: GlobalGetAtomNameW(
        !          3229:     ATOM nAtom,
        !          3230:     LPWSTR lpBuffer,
        !          3231:     int nSize
        !          3232:     );
        !          3233: #ifdef UNICODE
        !          3234: #define GlobalGetAtomName GlobalGetAtomNameW
        !          3235: #else
        !          3236: #define GlobalGetAtomName GlobalGetAtomNameA
        !          3237: #endif // !UNICODE
        !          3238: 
        !          3239: ATOM
        !          3240: WINAPI
        !          3241: AddAtomA(
        !          3242:     LPCSTR lpString
        !          3243:     );
        !          3244: ATOM
        !          3245: WINAPI
        !          3246: AddAtomW(
        !          3247:     LPCWSTR lpString
        !          3248:     );
        !          3249: #ifdef UNICODE
        !          3250: #define AddAtom AddAtomW
        !          3251: #else
        !          3252: #define AddAtom AddAtomA
        !          3253: #endif // !UNICODE
        !          3254: 
        !          3255: ATOM
        !          3256: WINAPI
        !          3257: FindAtomA(
        !          3258:     LPCSTR lpString
        !          3259:     );
        !          3260: ATOM
        !          3261: WINAPI
        !          3262: FindAtomW(
        !          3263:     LPCWSTR lpString
        !          3264:     );
        !          3265: #ifdef UNICODE
        !          3266: #define FindAtom FindAtomW
        !          3267: #else
        !          3268: #define FindAtom FindAtomA
        !          3269: #endif // !UNICODE
        !          3270: 
        !          3271: UINT
        !          3272: WINAPI
        !          3273: GetAtomNameA(
        !          3274:     ATOM nAtom,
        !          3275:     LPSTR lpBuffer,
        !          3276:     int nSize
        !          3277:     );
        !          3278: UINT
        !          3279: WINAPI
        !          3280: GetAtomNameW(
        !          3281:     ATOM nAtom,
        !          3282:     LPWSTR lpBuffer,
        !          3283:     int nSize
        !          3284:     );
        !          3285: #ifdef UNICODE
        !          3286: #define GetAtomName GetAtomNameW
        !          3287: #else
        !          3288: #define GetAtomName GetAtomNameA
        !          3289: #endif // !UNICODE
        !          3290: 
        !          3291: UINT
        !          3292: WINAPI
        !          3293: GetProfileIntA(
        !          3294:     LPCSTR lpAppName,
        !          3295:     LPCSTR lpKeyName,
        !          3296:     DWORD nDefault
        !          3297:     );
        !          3298: UINT
        !          3299: WINAPI
        !          3300: GetProfileIntW(
        !          3301:     LPCWSTR lpAppName,
        !          3302:     LPCWSTR lpKeyName,
        !          3303:     DWORD nDefault
        !          3304:     );
        !          3305: #ifdef UNICODE
        !          3306: #define GetProfileInt GetProfileIntW
        !          3307: #else
        !          3308: #define GetProfileInt GetProfileIntA
        !          3309: #endif // !UNICODE
        !          3310: 
        !          3311: DWORD
        !          3312: WINAPI
        !          3313: GetProfileStringA(
        !          3314:     LPCSTR lpAppName,
        !          3315:     LPCSTR lpKeyName,
        !          3316:     LPCSTR lpDefault,
        !          3317:     LPSTR lpReturnedString,
        !          3318:     DWORD nSize
        !          3319:     );
        !          3320: DWORD
        !          3321: WINAPI
        !          3322: GetProfileStringW(
        !          3323:     LPCWSTR lpAppName,
        !          3324:     LPCWSTR lpKeyName,
        !          3325:     LPCWSTR lpDefault,
        !          3326:     LPWSTR lpReturnedString,
        !          3327:     DWORD nSize
        !          3328:     );
        !          3329: #ifdef UNICODE
        !          3330: #define GetProfileString GetProfileStringW
        !          3331: #else
        !          3332: #define GetProfileString GetProfileStringA
        !          3333: #endif // !UNICODE
        !          3334: 
        !          3335: BOOL
        !          3336: WINAPI
        !          3337: WriteProfileStringA(
        !          3338:     LPCSTR lpAppName,
        !          3339:     LPCSTR lpKeyName,
        !          3340:     LPCSTR lpString
        !          3341:     );
        !          3342: BOOL
        !          3343: WINAPI
        !          3344: WriteProfileStringW(
        !          3345:     LPCWSTR lpAppName,
        !          3346:     LPCWSTR lpKeyName,
        !          3347:     LPCWSTR lpString
        !          3348:     );
        !          3349: #ifdef UNICODE
        !          3350: #define WriteProfileString WriteProfileStringW
        !          3351: #else
        !          3352: #define WriteProfileString WriteProfileStringA
        !          3353: #endif // !UNICODE
        !          3354: 
        !          3355: DWORD
        !          3356: WINAPI
        !          3357: GetProfileSectionA(
        !          3358:     LPCSTR lpAppName,
        !          3359:     LPSTR lpReturnedString,
        !          3360:     DWORD nSize
        !          3361:     );
        !          3362: DWORD
        !          3363: WINAPI
        !          3364: GetProfileSectionW(
        !          3365:     LPCWSTR lpAppName,
        !          3366:     LPWSTR lpReturnedString,
        !          3367:     DWORD nSize
        !          3368:     );
        !          3369: #ifdef UNICODE
        !          3370: #define GetProfileSection GetProfileSectionW
        !          3371: #else
        !          3372: #define GetProfileSection GetProfileSectionA
        !          3373: #endif // !UNICODE
        !          3374: 
        !          3375: BOOL
        !          3376: WINAPI
        !          3377: WriteProfileSectionA(
        !          3378:     LPCSTR lpAppName,
        !          3379:     LPCSTR lpString
        !          3380:     );
        !          3381: BOOL
        !          3382: WINAPI
        !          3383: WriteProfileSectionW(
        !          3384:     LPCWSTR lpAppName,
        !          3385:     LPCWSTR lpString
        !          3386:     );
        !          3387: #ifdef UNICODE
        !          3388: #define WriteProfileSection WriteProfileSectionW
        !          3389: #else
        !          3390: #define WriteProfileSection WriteProfileSectionA
        !          3391: #endif // !UNICODE
        !          3392: 
        !          3393: UINT
        !          3394: WINAPI
        !          3395: GetPrivateProfileIntA(
        !          3396:     LPCSTR lpAppName,
        !          3397:     LPCSTR lpKeyName,
        !          3398:     DWORD nDefault,
        !          3399:     LPCSTR lpFileName
        !          3400:     );
        !          3401: UINT
        !          3402: WINAPI
        !          3403: GetPrivateProfileIntW(
        !          3404:     LPCWSTR lpAppName,
        !          3405:     LPCWSTR lpKeyName,
        !          3406:     DWORD nDefault,
        !          3407:     LPCWSTR lpFileName
        !          3408:     );
        !          3409: #ifdef UNICODE
        !          3410: #define GetPrivateProfileInt GetPrivateProfileIntW
        !          3411: #else
        !          3412: #define GetPrivateProfileInt GetPrivateProfileIntA
        !          3413: #endif // !UNICODE
        !          3414: 
        !          3415: DWORD
        !          3416: WINAPI
        !          3417: GetPrivateProfileStringA(
        !          3418:     LPCSTR lpAppName,
        !          3419:     LPCSTR lpKeyName,
        !          3420:     LPCSTR lpDefault,
        !          3421:     LPSTR lpReturnedString,
        !          3422:     DWORD nSize,
        !          3423:     LPCSTR lpFileName
        !          3424:     );
        !          3425: DWORD
        !          3426: WINAPI
        !          3427: GetPrivateProfileStringW(
        !          3428:     LPCWSTR lpAppName,
        !          3429:     LPCWSTR lpKeyName,
        !          3430:     LPCWSTR lpDefault,
        !          3431:     LPWSTR lpReturnedString,
        !          3432:     DWORD nSize,
        !          3433:     LPCWSTR lpFileName
        !          3434:     );
        !          3435: #ifdef UNICODE
        !          3436: #define GetPrivateProfileString GetPrivateProfileStringW
        !          3437: #else
        !          3438: #define GetPrivateProfileString GetPrivateProfileStringA
        !          3439: #endif // !UNICODE
        !          3440: 
        !          3441: BOOL
        !          3442: WINAPI
        !          3443: WritePrivateProfileStringA(
        !          3444:     LPCSTR lpAppName,
        !          3445:     LPCSTR lpKeyName,
        !          3446:     LPCSTR lpString,
        !          3447:     LPCSTR lpFileName
        !          3448:     );
        !          3449: BOOL
        !          3450: WINAPI
        !          3451: WritePrivateProfileStringW(
        !          3452:     LPCWSTR lpAppName,
        !          3453:     LPCWSTR lpKeyName,
        !          3454:     LPCWSTR lpString,
        !          3455:     LPCWSTR lpFileName
        !          3456:     );
        !          3457: #ifdef UNICODE
        !          3458: #define WritePrivateProfileString WritePrivateProfileStringW
        !          3459: #else
        !          3460: #define WritePrivateProfileString WritePrivateProfileStringA
        !          3461: #endif // !UNICODE
        !          3462: 
        !          3463: DWORD
        !          3464: WINAPI
        !          3465: GetPrivateProfileSectionA(
        !          3466:     LPCSTR lpAppName,
        !          3467:     LPSTR lpReturnedString,
        !          3468:     DWORD nSize,
        !          3469:     LPCSTR lpFileName
        !          3470:     );
        !          3471: DWORD
        !          3472: WINAPI
        !          3473: GetPrivateProfileSectionW(
        !          3474:     LPCWSTR lpAppName,
        !          3475:     LPWSTR lpReturnedString,
        !          3476:     DWORD nSize,
        !          3477:     LPCWSTR lpFileName
        !          3478:     );
        !          3479: #ifdef UNICODE
        !          3480: #define GetPrivateProfileSection GetPrivateProfileSectionW
        !          3481: #else
        !          3482: #define GetPrivateProfileSection GetPrivateProfileSectionA
        !          3483: #endif // !UNICODE
        !          3484: 
        !          3485: BOOL
        !          3486: WINAPI
        !          3487: WritePrivateProfileSectionA(
        !          3488:     LPCSTR lpAppName,
        !          3489:     LPCSTR lpString,
        !          3490:     LPCSTR lpFileName
        !          3491:     );
        !          3492: BOOL
        !          3493: WINAPI
        !          3494: WritePrivateProfileSectionW(
        !          3495:     LPCWSTR lpAppName,
        !          3496:     LPCWSTR lpString,
        !          3497:     LPCWSTR lpFileName
        !          3498:     );
        !          3499: #ifdef UNICODE
        !          3500: #define WritePrivateProfileSection WritePrivateProfileSectionW
        !          3501: #else
        !          3502: #define WritePrivateProfileSection WritePrivateProfileSectionA
        !          3503: #endif // !UNICODE
        !          3504: 
        !          3505: UINT
        !          3506: WINAPI
        !          3507: GetDriveTypeA(
        !          3508:     LPSTR lpRootPathName
        !          3509:     );
        !          3510: UINT
        !          3511: WINAPI
        !          3512: GetDriveTypeW(
        !          3513:     LPWSTR lpRootPathName
        !          3514:     );
        !          3515: #ifdef UNICODE
        !          3516: #define GetDriveType GetDriveTypeW
        !          3517: #else
        !          3518: #define GetDriveType GetDriveTypeA
        !          3519: #endif // !UNICODE
        !          3520: 
        !          3521: UINT
        !          3522: WINAPI
        !          3523: GetSystemDirectoryA(
        !          3524:     LPSTR lpBuffer,
        !          3525:     UINT uSize
        !          3526:     );
        !          3527: UINT
        !          3528: WINAPI
        !          3529: GetSystemDirectoryW(
        !          3530:     LPWSTR lpBuffer,
        !          3531:     UINT uSize
        !          3532:     );
        !          3533: #ifdef UNICODE
        !          3534: #define GetSystemDirectory GetSystemDirectoryW
        !          3535: #else
        !          3536: #define GetSystemDirectory GetSystemDirectoryA
        !          3537: #endif // !UNICODE
        !          3538: 
        !          3539: DWORD
        !          3540: WINAPI
        !          3541: GetTempPathA(
        !          3542:     DWORD nBufferLength,
        !          3543:     LPSTR lpBuffer
        !          3544:     );
        !          3545: DWORD
        !          3546: WINAPI
        !          3547: GetTempPathW(
        !          3548:     DWORD nBufferLength,
        !          3549:     LPWSTR lpBuffer
        !          3550:     );
        !          3551: #ifdef UNICODE
        !          3552: #define GetTempPath GetTempPathW
        !          3553: #else
        !          3554: #define GetTempPath GetTempPathA
        !          3555: #endif // !UNICODE
        !          3556: 
        !          3557: UINT
        !          3558: WINAPI
        !          3559: GetTempFileNameA(
        !          3560:     LPCSTR lpPathName,
        !          3561:     LPCSTR lpPrefixString,
        !          3562:     UINT uUnique,
        !          3563:     LPSTR lpTempFileName
        !          3564:     );
        !          3565: UINT
        !          3566: WINAPI
        !          3567: GetTempFileNameW(
        !          3568:     LPCWSTR lpPathName,
        !          3569:     LPCWSTR lpPrefixString,
        !          3570:     UINT uUnique,
        !          3571:     LPWSTR lpTempFileName
        !          3572:     );
        !          3573: #ifdef UNICODE
        !          3574: #define GetTempFileName GetTempFileNameW
        !          3575: #else
        !          3576: #define GetTempFileName GetTempFileNameA
        !          3577: #endif // !UNICODE
        !          3578: 
        !          3579: UINT
        !          3580: WINAPI
        !          3581: GetWindowsDirectoryA(
        !          3582:     LPSTR lpBuffer,
        !          3583:     UINT uSize
        !          3584:     );
        !          3585: UINT
        !          3586: WINAPI
        !          3587: GetWindowsDirectoryW(
        !          3588:     LPWSTR lpBuffer,
        !          3589:     UINT uSize
        !          3590:     );
        !          3591: #ifdef UNICODE
        !          3592: #define GetWindowsDirectory GetWindowsDirectoryW
        !          3593: #else
        !          3594: #define GetWindowsDirectory GetWindowsDirectoryA
        !          3595: #endif // !UNICODE
        !          3596: 
        !          3597: BOOL
        !          3598: WINAPI
        !          3599: SetCurrentDirectoryA(
        !          3600:     LPSTR lpPathName
        !          3601:     );
        !          3602: BOOL
        !          3603: WINAPI
        !          3604: SetCurrentDirectoryW(
        !          3605:     LPWSTR lpPathName
        !          3606:     );
        !          3607: #ifdef UNICODE
        !          3608: #define SetCurrentDirectory SetCurrentDirectoryW
        !          3609: #else
        !          3610: #define SetCurrentDirectory SetCurrentDirectoryA
        !          3611: #endif // !UNICODE
        !          3612: 
        !          3613: DWORD
        !          3614: WINAPI
        !          3615: GetCurrentDirectoryA(
        !          3616:     DWORD nBufferLength,
        !          3617:     LPSTR lpBuffer
        !          3618:     );
        !          3619: DWORD
        !          3620: WINAPI
        !          3621: GetCurrentDirectoryW(
        !          3622:     DWORD nBufferLength,
        !          3623:     LPWSTR lpBuffer
        !          3624:     );
        !          3625: #ifdef UNICODE
        !          3626: #define GetCurrentDirectory GetCurrentDirectoryW
        !          3627: #else
        !          3628: #define GetCurrentDirectory GetCurrentDirectoryA
        !          3629: #endif // !UNICODE
        !          3630: 
        !          3631: BOOL
        !          3632: WINAPI
        !          3633: GetDiskFreeSpaceA(
        !          3634:     LPSTR lpRootPathName,
        !          3635:     LPDWORD lpSectorsPerCluster,
        !          3636:     LPDWORD lpBytesPerSector,
        !          3637:     LPDWORD lpNumberOfFreeClusters,
        !          3638:     LPDWORD lpTotalNumberOfClusters
        !          3639:     );
        !          3640: BOOL
        !          3641: WINAPI
        !          3642: GetDiskFreeSpaceW(
        !          3643:     LPWSTR lpRootPathName,
        !          3644:     LPDWORD lpSectorsPerCluster,
        !          3645:     LPDWORD lpBytesPerSector,
        !          3646:     LPDWORD lpNumberOfFreeClusters,
        !          3647:     LPDWORD lpTotalNumberOfClusters
        !          3648:     );
        !          3649: #ifdef UNICODE
        !          3650: #define GetDiskFreeSpace GetDiskFreeSpaceW
        !          3651: #else
        !          3652: #define GetDiskFreeSpace GetDiskFreeSpaceA
        !          3653: #endif // !UNICODE
        !          3654: 
        !          3655: BOOL
        !          3656: WINAPI
        !          3657: CreateDirectoryA(
        !          3658:     LPSTR lpPathName,
        !          3659:     LPSECURITY_ATTRIBUTES lpSecurityAttributes
        !          3660:     );
        !          3661: BOOL
        !          3662: WINAPI
        !          3663: CreateDirectoryW(
        !          3664:     LPWSTR lpPathName,
        !          3665:     LPSECURITY_ATTRIBUTES lpSecurityAttributes
        !          3666:     );
        !          3667: #ifdef UNICODE
        !          3668: #define CreateDirectory CreateDirectoryW
        !          3669: #else
        !          3670: #define CreateDirectory CreateDirectoryA
        !          3671: #endif // !UNICODE
        !          3672: 
        !          3673: BOOL
        !          3674: WINAPI
        !          3675: RemoveDirectoryA(
        !          3676:     LPSTR lpPathName
        !          3677:     );
        !          3678: BOOL
        !          3679: WINAPI
        !          3680: RemoveDirectoryW(
        !          3681:     LPWSTR lpPathName
        !          3682:     );
        !          3683: #ifdef UNICODE
        !          3684: #define RemoveDirectory RemoveDirectoryW
        !          3685: #else
        !          3686: #define RemoveDirectory RemoveDirectoryA
        !          3687: #endif // !UNICODE
        !          3688: 
        !          3689: DWORD
        !          3690: WINAPI
        !          3691: GetFullPathNameA(
        !          3692:     LPCSTR lpFileName,
        !          3693:     DWORD nBufferLength,
        !          3694:     LPSTR lpBuffer,
        !          3695:     LPSTR *lpFilePart
        !          3696:     );
        !          3697: DWORD
        !          3698: WINAPI
        !          3699: GetFullPathNameW(
        !          3700:     LPCWSTR lpFileName,
        !          3701:     DWORD nBufferLength,
        !          3702:     LPWSTR lpBuffer,
        !          3703:     LPWSTR *lpFilePart
        !          3704:     );
        !          3705: #ifdef UNICODE
        !          3706: #define GetFullPathName GetFullPathNameW
        !          3707: #else
        !          3708: #define GetFullPathName GetFullPathNameA
        !          3709: #endif // !UNICODE
        !          3710: 
        !          3711: #define EXPAND_LOCAL_DRIVES
        !          3712: 
        !          3713: 
        !          3714: HANDLE
        !          3715: WINAPI
        !          3716: CreateFileA(
        !          3717:     LPCSTR lpFileName,
        !          3718:     DWORD dwDesiredAccess,
        !          3719:     DWORD dwShareMode,
        !          3720:     LPSECURITY_ATTRIBUTES lpSecurityAttributes,
        !          3721:     DWORD dwCreationDisposition,
        !          3722:     DWORD dwFlagsAndAttributes,
        !          3723:     HANDLE hTemplateFile
        !          3724:     );
        !          3725: HANDLE
        !          3726: WINAPI
        !          3727: CreateFileW(
        !          3728:     LPCWSTR lpFileName,
        !          3729:     DWORD dwDesiredAccess,
        !          3730:     DWORD dwShareMode,
        !          3731:     LPSECURITY_ATTRIBUTES lpSecurityAttributes,
        !          3732:     DWORD dwCreationDisposition,
        !          3733:     DWORD dwFlagsAndAttributes,
        !          3734:     HANDLE hTemplateFile
        !          3735:     );
        !          3736: #ifdef UNICODE
        !          3737: #define CreateFile CreateFileW
        !          3738: #else
        !          3739: #define CreateFile CreateFileA
        !          3740: #endif // !UNICODE
        !          3741: 
        !          3742: BOOL
        !          3743: WINAPI
        !          3744: SetFileAttributesA(
        !          3745:     LPSTR lpFileName,
        !          3746:     DWORD dwFileAttributes
        !          3747:     );
        !          3748: BOOL
        !          3749: WINAPI
        !          3750: SetFileAttributesW(
        !          3751:     LPWSTR lpFileName,
        !          3752:     DWORD dwFileAttributes
        !          3753:     );
        !          3754: #ifdef UNICODE
        !          3755: #define SetFileAttributes SetFileAttributesW
        !          3756: #else
        !          3757: #define SetFileAttributes SetFileAttributesA
        !          3758: #endif // !UNICODE
        !          3759: 
        !          3760: DWORD
        !          3761: WINAPI
        !          3762: GetFileAttributesA(
        !          3763:     LPSTR lpFileName
        !          3764:     );
        !          3765: DWORD
        !          3766: WINAPI
        !          3767: GetFileAttributesW(
        !          3768:     LPWSTR lpFileName
        !          3769:     );
        !          3770: #ifdef UNICODE
        !          3771: #define GetFileAttributes GetFileAttributesW
        !          3772: #else
        !          3773: #define GetFileAttributes GetFileAttributesA
        !          3774: #endif // !UNICODE
        !          3775: 
        !          3776: BOOL
        !          3777: WINAPI
        !          3778: DeleteFileA(
        !          3779:     LPSTR lpFileName
        !          3780:     );
        !          3781: BOOL
        !          3782: WINAPI
        !          3783: DeleteFileW(
        !          3784:     LPWSTR lpFileName
        !          3785:     );
        !          3786: #ifdef UNICODE
        !          3787: #define DeleteFile DeleteFileW
        !          3788: #else
        !          3789: #define DeleteFile DeleteFileA
        !          3790: #endif // !UNICODE
        !          3791: 
        !          3792: HANDLE
        !          3793: WINAPI
        !          3794: FindFirstFileA(
        !          3795:     LPSTR lpFileName,
        !          3796:     LPWIN32_FIND_DATAA lpFindFileData
        !          3797:     );
        !          3798: HANDLE
        !          3799: WINAPI
        !          3800: FindFirstFileW(
        !          3801:     LPWSTR lpFileName,
        !          3802:     LPWIN32_FIND_DATAW lpFindFileData
        !          3803:     );
        !          3804: #ifdef UNICODE
        !          3805: #define FindFirstFile FindFirstFileW
        !          3806: #else
        !          3807: #define FindFirstFile FindFirstFileA
        !          3808: #endif // !UNICODE
        !          3809: 
        !          3810: BOOL
        !          3811: WINAPI
        !          3812: FindNextFileA(
        !          3813:     HANDLE hFindFile,
        !          3814:     LPWIN32_FIND_DATAA lpFindFileData
        !          3815:     );
        !          3816: BOOL
        !          3817: WINAPI
        !          3818: FindNextFileW(
        !          3819:     HANDLE hFindFile,
        !          3820:     LPWIN32_FIND_DATAW lpFindFileData
        !          3821:     );
        !          3822: #ifdef UNICODE
        !          3823: #define FindNextFile FindNextFileW
        !          3824: #else
        !          3825: #define FindNextFile FindNextFileA
        !          3826: #endif // !UNICODE
        !          3827: 
        !          3828: DWORD
        !          3829: WINAPI
        !          3830: SearchPathA(
        !          3831:     LPCSTR lpPath,
        !          3832:     LPCSTR lpFileName,
        !          3833:     LPCSTR lpExtension,
        !          3834:     DWORD nBufferLength,
        !          3835:     LPSTR lpBuffer,
        !          3836:     LPSTR *lpFilePart
        !          3837:     );
        !          3838: DWORD
        !          3839: WINAPI
        !          3840: SearchPathW(
        !          3841:     LPCWSTR lpPath,
        !          3842:     LPCWSTR lpFileName,
        !          3843:     LPCWSTR lpExtension,
        !          3844:     DWORD nBufferLength,
        !          3845:     LPWSTR lpBuffer,
        !          3846:     LPWSTR *lpFilePart
        !          3847:     );
        !          3848: #ifdef UNICODE
        !          3849: #define SearchPath SearchPathW
        !          3850: #else
        !          3851: #define SearchPath SearchPathA
        !          3852: #endif // !UNICODE
        !          3853: 
        !          3854: BOOL
        !          3855: WINAPI
        !          3856: CopyFileA(
        !          3857:     LPSTR lpExistingFileName,
        !          3858:     LPSTR lpNewFileName,
        !          3859:     BOOL bFailIfExists
        !          3860:     );
        !          3861: BOOL
        !          3862: WINAPI
        !          3863: CopyFileW(
        !          3864:     LPWSTR lpExistingFileName,
        !          3865:     LPWSTR lpNewFileName,
        !          3866:     BOOL bFailIfExists
        !          3867:     );
        !          3868: #ifdef UNICODE
        !          3869: #define CopyFile CopyFileW
        !          3870: #else
        !          3871: #define CopyFile CopyFileA
        !          3872: #endif // !UNICODE
        !          3873: 
        !          3874: BOOL
        !          3875: WINAPI
        !          3876: MoveFileA(
        !          3877:     LPSTR lpExistingFileName,
        !          3878:     LPSTR lpNewFileName
        !          3879:     );
        !          3880: BOOL
        !          3881: WINAPI
        !          3882: MoveFileW(
        !          3883:     LPWSTR lpExistingFileName,
        !          3884:     LPWSTR lpNewFileName
        !          3885:     );
        !          3886: #ifdef UNICODE
        !          3887: #define MoveFile MoveFileW
        !          3888: #else
        !          3889: #define MoveFile MoveFileA
        !          3890: #endif // !UNICODE
        !          3891: 
        !          3892: HANDLE
        !          3893: WINAPI
        !          3894: CreateNamedPipeA(
        !          3895:     LPSTR lpName,
        !          3896:     DWORD dwOpenMode,
        !          3897:     DWORD dwPipeMode,
        !          3898:     DWORD nMaxInstances,
        !          3899:     DWORD nOutBufferSize,
        !          3900:     DWORD nInBufferSize,
        !          3901:     DWORD nDefaultTimeOut,
        !          3902:     LPSECURITY_ATTRIBUTES lpSecurityAttributes
        !          3903:     );
        !          3904: HANDLE
        !          3905: WINAPI
        !          3906: CreateNamedPipeW(
        !          3907:     LPWSTR lpName,
        !          3908:     DWORD dwOpenMode,
        !          3909:     DWORD dwPipeMode,
        !          3910:     DWORD nMaxInstances,
        !          3911:     DWORD nOutBufferSize,
        !          3912:     DWORD nInBufferSize,
        !          3913:     DWORD nDefaultTimeOut,
        !          3914:     LPSECURITY_ATTRIBUTES lpSecurityAttributes
        !          3915:     );
        !          3916: #ifdef UNICODE
        !          3917: #define CreateNamedPipe CreateNamedPipeW
        !          3918: #else
        !          3919: #define CreateNamedPipe CreateNamedPipeA
        !          3920: #endif // !UNICODE
        !          3921: 
        !          3922: BOOL
        !          3923: WINAPI
        !          3924: GetNamedPipeHandleStateA(
        !          3925:     HANDLE hNamedPipe,
        !          3926:     LPDWORD lpState,
        !          3927:     LPDWORD lpCurInstances,
        !          3928:     LPDWORD lpMaxCollectionCount,
        !          3929:     LPDWORD lpCollectDataTimeout,
        !          3930:     LPSTR lpUserName,
        !          3931:     DWORD nMaxUserNameSize
        !          3932:     );
        !          3933: BOOL
        !          3934: WINAPI
        !          3935: GetNamedPipeHandleStateW(
        !          3936:     HANDLE hNamedPipe,
        !          3937:     LPDWORD lpState,
        !          3938:     LPDWORD lpCurInstances,
        !          3939:     LPDWORD lpMaxCollectionCount,
        !          3940:     LPDWORD lpCollectDataTimeout,
        !          3941:     LPWSTR lpUserName,
        !          3942:     DWORD nMaxUserNameSize
        !          3943:     );
        !          3944: #ifdef UNICODE
        !          3945: #define GetNamedPipeHandleState GetNamedPipeHandleStateW
        !          3946: #else
        !          3947: #define GetNamedPipeHandleState GetNamedPipeHandleStateA
        !          3948: #endif // !UNICODE
        !          3949: 
        !          3950: BOOL
        !          3951: WINAPI
        !          3952: CallNamedPipeA(
        !          3953:     LPSTR lpNamedPipeName,
        !          3954:     LPVOID lpInBuffer,
        !          3955:     DWORD nInBufferSize,
        !          3956:     LPVOID lpOutBuffer,
        !          3957:     DWORD nOutBufferSize,
        !          3958:     LPDWORD lpBytesRead,
        !          3959:     DWORD nTimeOut
        !          3960:     );
        !          3961: BOOL
        !          3962: WINAPI
        !          3963: CallNamedPipeW(
        !          3964:     LPWSTR lpNamedPipeName,
        !          3965:     LPVOID lpInBuffer,
        !          3966:     DWORD nInBufferSize,
        !          3967:     LPVOID lpOutBuffer,
        !          3968:     DWORD nOutBufferSize,
        !          3969:     LPDWORD lpBytesRead,
        !          3970:     DWORD nTimeOut
        !          3971:     );
        !          3972: #ifdef UNICODE
        !          3973: #define CallNamedPipe CallNamedPipeW
        !          3974: #else
        !          3975: #define CallNamedPipe CallNamedPipeA
        !          3976: #endif // !UNICODE
        !          3977: 
        !          3978: BOOL
        !          3979: WINAPI
        !          3980: WaitNamedPipeA(
        !          3981:     LPSTR lpNamedPipeName,
        !          3982:     DWORD nTimeOut
        !          3983:     );
        !          3984: BOOL
        !          3985: WINAPI
        !          3986: WaitNamedPipeW(
        !          3987:     LPWSTR lpNamedPipeName,
        !          3988:     DWORD nTimeOut
        !          3989:     );
        !          3990: #ifdef UNICODE
        !          3991: #define WaitNamedPipe WaitNamedPipeW
        !          3992: #else
        !          3993: #define WaitNamedPipe WaitNamedPipeA
        !          3994: #endif // !UNICODE
        !          3995: 
        !          3996: BOOL
        !          3997: WINAPI
        !          3998: GetVolumeInformationA(
        !          3999:     LPSTR lpRootPathName,
        !          4000:     LPSTR lpVolumeNameBuffer,
        !          4001:     DWORD nVolumeNameSize,
        !          4002:     LPDWORD lpVolumeSerialNumber,
        !          4003:     LPDWORD lpMaximumComponentLength,
        !          4004:     LPDWORD lpFileSystemFlags,
        !          4005:     LPSTR lpFileSystemNameBuffer,
        !          4006:     DWORD nFileSystemNameSize
        !          4007:     );
        !          4008: BOOL
        !          4009: WINAPI
        !          4010: GetVolumeInformationW(
        !          4011:     LPWSTR lpRootPathName,
        !          4012:     LPWSTR lpVolumeNameBuffer,
        !          4013:     DWORD nVolumeNameSize,
        !          4014:     LPDWORD lpVolumeSerialNumber,
        !          4015:     LPDWORD lpMaximumComponentLength,
        !          4016:     LPDWORD lpFileSystemFlags,
        !          4017:     LPWSTR lpFileSystemNameBuffer,
        !          4018:     DWORD nFileSystemNameSize
        !          4019:     );
        !          4020: #ifdef UNICODE
        !          4021: #define GetVolumeInformation GetVolumeInformationW
        !          4022: #else
        !          4023: #define GetVolumeInformation GetVolumeInformationA
        !          4024: #endif // !UNICODE
        !          4025: 
        !          4026: //
        !          4027: // Event logging APIs
        !          4028: //
        !          4029: 
        !          4030: BOOL
        !          4031: WINAPI
        !          4032: ClearEventLogA (
        !          4033:     HANDLE hEventLog,
        !          4034:     LPSTR lpBackupFileName
        !          4035:     );
        !          4036: BOOL
        !          4037: WINAPI
        !          4038: ClearEventLogW (
        !          4039:     HANDLE hEventLog,
        !          4040:     LPWSTR lpBackupFileName
        !          4041:     );
        !          4042: #ifdef UNICODE
        !          4043: #define ClearEventLog ClearEventLogW
        !          4044: #else
        !          4045: #define ClearEventLog ClearEventLogA
        !          4046: #endif // !UNICODE
        !          4047: 
        !          4048: BOOL
        !          4049: WINAPI
        !          4050: BackupEventLogA (
        !          4051:     HANDLE hEventLog,
        !          4052:     LPSTR lpBackupFileName
        !          4053:     );
        !          4054: BOOL
        !          4055: WINAPI
        !          4056: BackupEventLogW (
        !          4057:     HANDLE hEventLog,
        !          4058:     LPWSTR lpBackupFileName
        !          4059:     );
        !          4060: #ifdef UNICODE
        !          4061: #define BackupEventLog BackupEventLogW
        !          4062: #else
        !          4063: #define BackupEventLog BackupEventLogA
        !          4064: #endif // !UNICODE
        !          4065: 
        !          4066: BOOL
        !          4067: WINAPI
        !          4068: CloseEventLog (
        !          4069:     HANDLE hEventLog
        !          4070:     );
        !          4071: 
        !          4072: BOOL
        !          4073: WINAPI
        !          4074: DeregisterEventSource (
        !          4075:     HANDLE hEventLog
        !          4076:     );
        !          4077: 
        !          4078: 
        !          4079: BOOL
        !          4080: WINAPI
        !          4081: GetNumberOfEventLogRecords (
        !          4082:     HANDLE hEventLog,
        !          4083:     PDWORD NumberOfRecords
        !          4084:     );
        !          4085: 
        !          4086: BOOL
        !          4087: WINAPI
        !          4088: GetOldestEventLogRecord (
        !          4089:     HANDLE hEventLog,
        !          4090:     PDWORD OldestRecord
        !          4091:     );
        !          4092: 
        !          4093: HANDLE
        !          4094: WINAPI
        !          4095: OpenEventLogA (
        !          4096:     LPSTR lpUNCServerName,
        !          4097:     LPSTR lpSourceName
        !          4098:     );
        !          4099: HANDLE
        !          4100: WINAPI
        !          4101: OpenEventLogW (
        !          4102:     LPWSTR lpUNCServerName,
        !          4103:     LPWSTR lpSourceName
        !          4104:     );
        !          4105: #ifdef UNICODE
        !          4106: #define OpenEventLog OpenEventLogW
        !          4107: #else
        !          4108: #define OpenEventLog OpenEventLogA
        !          4109: #endif // !UNICODE
        !          4110: 
        !          4111: HANDLE
        !          4112: WINAPI
        !          4113: RegisterEventSourceA (
        !          4114:     LPSTR lpUNCServerName,
        !          4115:     LPSTR lpSourceName
        !          4116:     );
        !          4117: HANDLE
        !          4118: WINAPI
        !          4119: RegisterEventSourceW (
        !          4120:     LPWSTR lpUNCServerName,
        !          4121:     LPWSTR lpSourceName
        !          4122:     );
        !          4123: #ifdef UNICODE
        !          4124: #define RegisterEventSource RegisterEventSourceW
        !          4125: #else
        !          4126: #define RegisterEventSource RegisterEventSourceA
        !          4127: #endif // !UNICODE
        !          4128: 
        !          4129: HANDLE
        !          4130: WINAPI
        !          4131: OpenBackupEventLogA (
        !          4132:     LPSTR lpUNCServerName,
        !          4133:     LPSTR lpFileName
        !          4134:     );
        !          4135: HANDLE
        !          4136: WINAPI
        !          4137: OpenBackupEventLogW (
        !          4138:     LPWSTR lpUNCServerName,
        !          4139:     LPWSTR lpFileName
        !          4140:     );
        !          4141: #ifdef UNICODE
        !          4142: #define OpenBackupEventLog OpenBackupEventLogW
        !          4143: #else
        !          4144: #define OpenBackupEventLog OpenBackupEventLogA
        !          4145: #endif // !UNICODE
        !          4146: 
        !          4147: BOOL
        !          4148: WINAPI
        !          4149: ReadEventLogA (
        !          4150:      HANDLE     hEventLog,
        !          4151:      DWORD      dwReadFlags,
        !          4152:      DWORD      dwRecordOffset,
        !          4153:      LPVOID     lpBuffer,
        !          4154:      DWORD      nNumberOfBytesToRead,
        !          4155:      DWORD      *pnBytesRead,
        !          4156:      DWORD      *pnMinNumberOfBytesNeeded
        !          4157:     );
        !          4158: BOOL
        !          4159: WINAPI
        !          4160: ReadEventLogW (
        !          4161:      HANDLE     hEventLog,
        !          4162:      DWORD      dwReadFlags,
        !          4163:      DWORD      dwRecordOffset,
        !          4164:      LPVOID     lpBuffer,
        !          4165:      DWORD      nNumberOfBytesToRead,
        !          4166:      DWORD      *pnBytesRead,
        !          4167:      DWORD      *pnMinNumberOfBytesNeeded
        !          4168:     );
        !          4169: #ifdef UNICODE
        !          4170: #define ReadEventLog ReadEventLogW
        !          4171: #else
        !          4172: #define ReadEventLog ReadEventLogA
        !          4173: #endif // !UNICODE
        !          4174: 
        !          4175: BOOL
        !          4176: WINAPI
        !          4177: ReportEventA (
        !          4178:      HANDLE     hEventLog,
        !          4179:      WORD       wType,
        !          4180:      WORD       wCategory,
        !          4181:      DWORD      dwEventID,
        !          4182:      PSID       lpUserSid,
        !          4183:      WORD       wNumStrings,
        !          4184:      DWORD      dwDataSize,
        !          4185:      LPSTR    *lpStrings,
        !          4186:      LPVOID     lpRawData
        !          4187:     );
        !          4188: BOOL
        !          4189: WINAPI
        !          4190: ReportEventW (
        !          4191:      HANDLE     hEventLog,
        !          4192:      WORD       wType,
        !          4193:      WORD       wCategory,
        !          4194:      DWORD      dwEventID,
        !          4195:      PSID       lpUserSid,
        !          4196:      WORD       wNumStrings,
        !          4197:      DWORD      dwDataSize,
        !          4198:      LPWSTR    *lpStrings,
        !          4199:      LPVOID     lpRawData
        !          4200:     );
        !          4201: #ifdef UNICODE
        !          4202: #define ReportEvent ReportEventW
        !          4203: #else
        !          4204: #define ReportEvent ReportEventA
        !          4205: #endif // !UNICODE
        !          4206: 
        !          4207: //
        !          4208: //
        !          4209: // Security APIs
        !          4210: //
        !          4211: 
        !          4212: 
        !          4213: BOOL
        !          4214: WINAPI
        !          4215: DuplicateToken(
        !          4216:     HANDLE ExistingTokenHandle,
        !          4217:     SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
        !          4218:     PHANDLE DuplicateTokenHandle
        !          4219:     );
        !          4220: 
        !          4221: BOOL
        !          4222: WINAPI
        !          4223: GetKernelObjectSecurity (
        !          4224:     HANDLE Handle,
        !          4225:     SECURITY_INFORMATION RequestedInformation,
        !          4226:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4227:     DWORD nLength,
        !          4228:     LPDWORD lpnLengthNeeded
        !          4229:     );
        !          4230: 
        !          4231: BOOL
        !          4232: WINAPI
        !          4233: ImpersonateNamedPipeClient(
        !          4234:     HANDLE hNamedPipe
        !          4235:     );
        !          4236: 
        !          4237: BOOL
        !          4238: WINAPI
        !          4239: ImpersonateSelf(
        !          4240:     SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
        !          4241:     );
        !          4242: 
        !          4243: 
        !          4244: BOOL
        !          4245: WINAPI
        !          4246: RevertToSelf (
        !          4247:     VOID
        !          4248:     );
        !          4249: 
        !          4250: 
        !          4251: BOOL
        !          4252: WINAPI
        !          4253: AccessCheck (
        !          4254:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4255:     HANDLE ClientToken,
        !          4256:     DWORD DesiredAccess,
        !          4257:     PGENERIC_MAPPING GenericMapping,
        !          4258:     PPRIVILEGE_SET PrivilegeSet,
        !          4259:     LPDWORD PrivilegeSetLength,
        !          4260:     LPDWORD GrantedAccess,
        !          4261:     LPBOOL AccessStatus
        !          4262:     );
        !          4263: 
        !          4264: 
        !          4265: BOOL
        !          4266: WINAPI
        !          4267: OpenProcessToken (
        !          4268:     HANDLE ProcessHandle,
        !          4269:     DWORD DesiredAccess,
        !          4270:     PHANDLE TokenHandle
        !          4271:     );
        !          4272: 
        !          4273: 
        !          4274: BOOL
        !          4275: WINAPI
        !          4276: OpenThreadToken (
        !          4277:     HANDLE ThreadHandle,
        !          4278:     DWORD DesiredAccess,
        !          4279:     BOOL OpenAsSelf,
        !          4280:     PHANDLE TokenHandle
        !          4281:     );
        !          4282: 
        !          4283: 
        !          4284: BOOL
        !          4285: WINAPI
        !          4286: GetTokenInformation (
        !          4287:     HANDLE TokenHandle,
        !          4288:     TOKEN_INFORMATION_CLASS TokenInformationClass,
        !          4289:     LPVOID TokenInformation,
        !          4290:     DWORD TokenInformationLength,
        !          4291:     PDWORD ReturnLength
        !          4292:     );
        !          4293: 
        !          4294: 
        !          4295: BOOL
        !          4296: WINAPI
        !          4297: SetTokenInformation (
        !          4298:     HANDLE TokenHandle,
        !          4299:     TOKEN_INFORMATION_CLASS TokenInformationClass,
        !          4300:     LPVOID TokenInformation,
        !          4301:     DWORD TokenInformationLength
        !          4302:     );
        !          4303: 
        !          4304: 
        !          4305: BOOL
        !          4306: WINAPI
        !          4307: AdjustTokenPrivileges (
        !          4308:     HANDLE TokenHandle,
        !          4309:     BOOL DisableAllPrivileges,
        !          4310:     PTOKEN_PRIVILEGES NewState,
        !          4311:     DWORD BufferLength,
        !          4312:     PTOKEN_PRIVILEGES PreviousState,
        !          4313:     PDWORD ReturnLength
        !          4314:     );
        !          4315: 
        !          4316: 
        !          4317: BOOL
        !          4318: WINAPI
        !          4319: AdjustTokenGroups (
        !          4320:     HANDLE TokenHandle,
        !          4321:     BOOL ResetToDefault,
        !          4322:     PTOKEN_GROUPS NewState,
        !          4323:     DWORD BufferLength,
        !          4324:     PTOKEN_GROUPS PreviousState,
        !          4325:     PDWORD ReturnLength
        !          4326:     );
        !          4327: 
        !          4328: 
        !          4329: BOOL
        !          4330: WINAPI
        !          4331: PrivilegeCheck (
        !          4332:     HANDLE ClientToken,
        !          4333:     PPRIVILEGE_SET RequiredPrivileges,
        !          4334:     LPBOOL pfResult
        !          4335:     );
        !          4336: 
        !          4337: 
        !          4338: BOOL
        !          4339: WINAPI
        !          4340: AccessCheckAndAuditAlarmA (
        !          4341:     LPSTR SubsystemName,
        !          4342:     LPVOID HandleId,
        !          4343:     LPSTR ObjectTypeName,
        !          4344:     LPSTR ObjectName,
        !          4345:     PSECURITY_DESCRIPTOR SecurityDescriptor,
        !          4346:     DWORD DesiredAccess,
        !          4347:     PGENERIC_MAPPING GenericMapping,
        !          4348:     BOOL ObjectCreation,
        !          4349:     LPDWORD GrantedAccess,
        !          4350:     LPBOOL AccessStatus,
        !          4351:     LPBOOL pfGenerateOnClose
        !          4352:     );
        !          4353: BOOL
        !          4354: WINAPI
        !          4355: AccessCheckAndAuditAlarmW (
        !          4356:     LPWSTR SubsystemName,
        !          4357:     LPVOID HandleId,
        !          4358:     LPWSTR ObjectTypeName,
        !          4359:     LPWSTR ObjectName,
        !          4360:     PSECURITY_DESCRIPTOR SecurityDescriptor,
        !          4361:     DWORD DesiredAccess,
        !          4362:     PGENERIC_MAPPING GenericMapping,
        !          4363:     BOOL ObjectCreation,
        !          4364:     LPDWORD GrantedAccess,
        !          4365:     LPBOOL AccessStatus,
        !          4366:     LPBOOL pfGenerateOnClose
        !          4367:     );
        !          4368: #ifdef UNICODE
        !          4369: #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
        !          4370: #else
        !          4371: #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
        !          4372: #endif // !UNICODE
        !          4373: 
        !          4374: 
        !          4375: BOOL
        !          4376: WINAPI
        !          4377: ObjectOpenAuditAlarmA (
        !          4378:     LPSTR SubsystemName,
        !          4379:     LPVOID HandleId,
        !          4380:     LPSTR ObjectTypeName,
        !          4381:     LPSTR ObjectName,
        !          4382:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4383:     HANDLE ClientToken,
        !          4384:     DWORD DesiredAccess,
        !          4385:     DWORD GrantedAccess,
        !          4386:     PPRIVILEGE_SET Privileges,
        !          4387:     BOOL ObjectCreation,
        !          4388:     BOOL AccessGranted,
        !          4389:     LPBOOL GenerateOnClose
        !          4390:     );
        !          4391: BOOL
        !          4392: WINAPI
        !          4393: ObjectOpenAuditAlarmW (
        !          4394:     LPWSTR SubsystemName,
        !          4395:     LPVOID HandleId,
        !          4396:     LPWSTR ObjectTypeName,
        !          4397:     LPWSTR ObjectName,
        !          4398:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4399:     HANDLE ClientToken,
        !          4400:     DWORD DesiredAccess,
        !          4401:     DWORD GrantedAccess,
        !          4402:     PPRIVILEGE_SET Privileges,
        !          4403:     BOOL ObjectCreation,
        !          4404:     BOOL AccessGranted,
        !          4405:     LPBOOL GenerateOnClose
        !          4406:     );
        !          4407: #ifdef UNICODE
        !          4408: #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
        !          4409: #else
        !          4410: #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
        !          4411: #endif // !UNICODE
        !          4412: 
        !          4413: 
        !          4414: BOOL
        !          4415: WINAPI
        !          4416: ObjectPrivilegeAuditAlarmA (
        !          4417:     LPSTR SubsystemName,
        !          4418:     LPVOID HandleId,
        !          4419:     HANDLE ClientToken,
        !          4420:     DWORD DesiredAccess,
        !          4421:     PPRIVILEGE_SET Privileges,
        !          4422:     BOOL AccessGranted
        !          4423:     );
        !          4424: BOOL
        !          4425: WINAPI
        !          4426: ObjectPrivilegeAuditAlarmW (
        !          4427:     LPWSTR SubsystemName,
        !          4428:     LPVOID HandleId,
        !          4429:     HANDLE ClientToken,
        !          4430:     DWORD DesiredAccess,
        !          4431:     PPRIVILEGE_SET Privileges,
        !          4432:     BOOL AccessGranted
        !          4433:     );
        !          4434: #ifdef UNICODE
        !          4435: #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
        !          4436: #else
        !          4437: #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
        !          4438: #endif // !UNICODE
        !          4439: 
        !          4440: 
        !          4441: BOOL
        !          4442: WINAPI
        !          4443: ObjectCloseAuditAlarmA (
        !          4444:     LPSTR SubsystemName,
        !          4445:     LPVOID HandleId,
        !          4446:     BOOL GenerateOnClose
        !          4447:     );
        !          4448: BOOL
        !          4449: WINAPI
        !          4450: ObjectCloseAuditAlarmW (
        !          4451:     LPWSTR SubsystemName,
        !          4452:     LPVOID HandleId,
        !          4453:     BOOL GenerateOnClose
        !          4454:     );
        !          4455: #ifdef UNICODE
        !          4456: #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
        !          4457: #else
        !          4458: #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
        !          4459: #endif // !UNICODE
        !          4460: 
        !          4461: 
        !          4462: BOOL
        !          4463: WINAPI
        !          4464: PrivilegedServiceAuditAlarmA (
        !          4465:     LPSTR SubsystemName,
        !          4466:     LPSTR ServiceName,
        !          4467:     HANDLE ClientToken,
        !          4468:     PPRIVILEGE_SET Privileges,
        !          4469:     BOOL AccessGranted
        !          4470:     );
        !          4471: BOOL
        !          4472: WINAPI
        !          4473: PrivilegedServiceAuditAlarmW (
        !          4474:     LPWSTR SubsystemName,
        !          4475:     LPWSTR ServiceName,
        !          4476:     HANDLE ClientToken,
        !          4477:     PPRIVILEGE_SET Privileges,
        !          4478:     BOOL AccessGranted
        !          4479:     );
        !          4480: #ifdef UNICODE
        !          4481: #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
        !          4482: #else
        !          4483: #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
        !          4484: #endif // !UNICODE
        !          4485: 
        !          4486: 
        !          4487: BOOL
        !          4488: WINAPI
        !          4489: IsValidSid (
        !          4490:     PSID pSid
        !          4491:     );
        !          4492: 
        !          4493: 
        !          4494: BOOL
        !          4495: WINAPI
        !          4496: EqualSid (
        !          4497:     PSID pSid1,
        !          4498:     PSID pSid2
        !          4499:     );
        !          4500: 
        !          4501: 
        !          4502: BOOL
        !          4503: WINAPI
        !          4504: EqualPrefixSid (
        !          4505:     PSID pSid1,
        !          4506:     PSID pSid2
        !          4507:     );
        !          4508: 
        !          4509: 
        !          4510: DWORD
        !          4511: WINAPI
        !          4512: GetSidLengthRequired (
        !          4513:     UCHAR nSubAuthorityCount
        !          4514:     );
        !          4515: 
        !          4516: 
        !          4517: BOOL
        !          4518: WINAPI
        !          4519: AllocateAndInitializeSid (
        !          4520:     PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
        !          4521:     BYTE nSubAuthorityCount,
        !          4522:     DWORD nSubAuthority0,
        !          4523:     DWORD nSubAuthority1,
        !          4524:     DWORD nSubAuthority2,
        !          4525:     DWORD nSubAuthority3,
        !          4526:     DWORD nSubAuthority4,
        !          4527:     DWORD nSubAuthority5,
        !          4528:     DWORD nSubAuthority6,
        !          4529:     DWORD nSubAuthority7,
        !          4530:     PSID *pSid
        !          4531:     );
        !          4532: 
        !          4533: PVOID
        !          4534: WINAPI
        !          4535: FreeSid(
        !          4536:     PSID pSid
        !          4537:     );
        !          4538: 
        !          4539: BOOL
        !          4540: WINAPI
        !          4541: InitializeSid (
        !          4542:     PSID Sid,
        !          4543:     PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
        !          4544:     BYTE nSubAuthorityCount
        !          4545:     );
        !          4546: 
        !          4547: 
        !          4548: PSID_IDENTIFIER_AUTHORITY
        !          4549: WINAPI
        !          4550: GetSidIdentifierAuthority (
        !          4551:     PSID pSid
        !          4552:     );
        !          4553: 
        !          4554: 
        !          4555: PDWORD
        !          4556: WINAPI
        !          4557: GetSidSubAuthority (
        !          4558:     PSID pSid,
        !          4559:     DWORD nSubAuthority
        !          4560:     );
        !          4561: 
        !          4562: 
        !          4563: PUCHAR
        !          4564: WINAPI
        !          4565: GetSidSubAuthorityCount (
        !          4566:     PSID pSid
        !          4567:     );
        !          4568: 
        !          4569: 
        !          4570: DWORD
        !          4571: WINAPI
        !          4572: GetLengthSid (
        !          4573:     PSID pSid
        !          4574:     );
        !          4575: 
        !          4576: 
        !          4577: BOOL
        !          4578: WINAPI
        !          4579: CopySid (
        !          4580:     DWORD nDestinationSidLength,
        !          4581:     PSID pDestinationSid,
        !          4582:     PSID pSourceSid
        !          4583:     );
        !          4584: 
        !          4585: 
        !          4586: BOOL
        !          4587: WINAPI
        !          4588: AreAllAccessesGranted (
        !          4589:     DWORD GrantedAccess,
        !          4590:     DWORD DesiredAccess
        !          4591:     );
        !          4592: 
        !          4593: 
        !          4594: BOOL
        !          4595: WINAPI
        !          4596: AreAnyAccessesGranted (
        !          4597:     DWORD GrantedAccess,
        !          4598:     DWORD DesiredAccess
        !          4599:     );
        !          4600: 
        !          4601: 
        !          4602: VOID
        !          4603: WINAPI
        !          4604: MapGenericMask (
        !          4605:     PDWORD AccessMask,
        !          4606:     PGENERIC_MAPPING GenericMapping
        !          4607:     );
        !          4608: 
        !          4609: 
        !          4610: BOOL
        !          4611: WINAPI
        !          4612: IsValidAcl (
        !          4613:     PACL pAcl
        !          4614:     );
        !          4615: 
        !          4616: 
        !          4617: BOOL
        !          4618: WINAPI
        !          4619: InitializeAcl (
        !          4620:     PACL pAcl,
        !          4621:     DWORD nAclLength,
        !          4622:     DWORD dwAclRevision
        !          4623:     );
        !          4624: 
        !          4625: 
        !          4626: BOOL
        !          4627: WINAPI
        !          4628: GetAclInformation (
        !          4629:     PACL pAcl,
        !          4630:     LPVOID pAclInformation,
        !          4631:     DWORD nAclInformationLength,
        !          4632:     ACL_INFORMATION_CLASS dwAclInformationClass
        !          4633:     );
        !          4634: 
        !          4635: 
        !          4636: BOOL
        !          4637: WINAPI
        !          4638: SetAclInformation (
        !          4639:     PACL pAcl,
        !          4640:     LPVOID pAclInformation,
        !          4641:     DWORD nAclInformationLength,
        !          4642:     ACL_INFORMATION_CLASS dwAclInformationClass
        !          4643:     );
        !          4644: 
        !          4645: 
        !          4646: BOOL
        !          4647: WINAPI
        !          4648: AddAce (
        !          4649:     PACL pAcl,
        !          4650:     DWORD dwAceRevision,
        !          4651:     DWORD dwStartingAceIndex,
        !          4652:     LPVOID pAceList,
        !          4653:     DWORD nAceListLength
        !          4654:     );
        !          4655: 
        !          4656: 
        !          4657: BOOL
        !          4658: WINAPI
        !          4659: DeleteAce (
        !          4660:     PACL pAcl,
        !          4661:     DWORD dwAceIndex
        !          4662:     );
        !          4663: 
        !          4664: 
        !          4665: BOOL
        !          4666: WINAPI
        !          4667: GetAce (
        !          4668:     PACL pAcl,
        !          4669:     DWORD dwAceIndex,
        !          4670:     LPVOID *pAce
        !          4671:     );
        !          4672: 
        !          4673: 
        !          4674: BOOL
        !          4675: WINAPI
        !          4676: AddAccessAllowedAce (
        !          4677:     PACL pAcl,
        !          4678:     DWORD dwAceRevision,
        !          4679:     DWORD AccessMask,
        !          4680:     PSID pSid
        !          4681:     );
        !          4682: 
        !          4683: 
        !          4684: BOOL
        !          4685: WINAPI
        !          4686: AddAccessDeniedAce (
        !          4687:     PACL pAcl,
        !          4688:     DWORD dwAceRevision,
        !          4689:     DWORD AccessMask,
        !          4690:     PSID pSid
        !          4691:     );
        !          4692: 
        !          4693: 
        !          4694: BOOL
        !          4695: WINAPI
        !          4696: AddAuditAccessAce(
        !          4697:     PACL pAcl,
        !          4698:     DWORD dwAceRevision,
        !          4699:     DWORD dwAccessMask,
        !          4700:     PSID pSid,
        !          4701:     BOOL bAuditSuccess,
        !          4702:     BOOL bAuditFailure
        !          4703:     );
        !          4704: 
        !          4705: 
        !          4706: BOOL
        !          4707: WINAPI
        !          4708: FindFirstFreeAce (
        !          4709:     PACL pAcl,
        !          4710:     LPVOID *pAce
        !          4711:     );
        !          4712: 
        !          4713: 
        !          4714: BOOL
        !          4715: WINAPI
        !          4716: InitializeSecurityDescriptor (
        !          4717:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4718:     DWORD dwRevision
        !          4719:     );
        !          4720: 
        !          4721: 
        !          4722: BOOL
        !          4723: WINAPI
        !          4724: IsValidSecurityDescriptor (
        !          4725:     PSECURITY_DESCRIPTOR pSecurityDescriptor
        !          4726:     );
        !          4727: 
        !          4728: 
        !          4729: DWORD
        !          4730: WINAPI
        !          4731: GetSecurityDescriptorLength (
        !          4732:     PSECURITY_DESCRIPTOR pSecurityDescriptor
        !          4733:     );
        !          4734: 
        !          4735: 
        !          4736: BOOL
        !          4737: WINAPI
        !          4738: GetSecurityDescriptorControl (
        !          4739:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4740:     PSECURITY_DESCRIPTOR_CONTROL pControl,
        !          4741:     LPDWORD lpdwRevision
        !          4742:     );
        !          4743: 
        !          4744: 
        !          4745: BOOL
        !          4746: WINAPI
        !          4747: SetSecurityDescriptorDacl (
        !          4748:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4749:     BOOL bDaclPresent,
        !          4750:     PACL pDacl,
        !          4751:     BOOL bDaclDefaulted
        !          4752:     );
        !          4753: 
        !          4754: 
        !          4755: BOOL
        !          4756: WINAPI
        !          4757: GetSecurityDescriptorDacl (
        !          4758:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4759:     LPBOOL lpbDaclPresent,
        !          4760:     PACL *pDacl,
        !          4761:     LPBOOL lpbDaclDefaulted
        !          4762:     );
        !          4763: 
        !          4764: 
        !          4765: BOOL
        !          4766: WINAPI
        !          4767: SetSecurityDescriptorSacl (
        !          4768:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4769:     BOOL bSaclPresent,
        !          4770:     PACL pSacl,
        !          4771:     BOOL bSaclDefaulted
        !          4772:     );
        !          4773: 
        !          4774: 
        !          4775: BOOL
        !          4776: WINAPI
        !          4777: GetSecurityDescriptorSacl (
        !          4778:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4779:     LPBOOL lpbSaclPresent,
        !          4780:     PACL *pSacl,
        !          4781:     LPBOOL lpbSaclDefaulted
        !          4782:     );
        !          4783: 
        !          4784: 
        !          4785: BOOL
        !          4786: WINAPI
        !          4787: SetSecurityDescriptorOwner (
        !          4788:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4789:     PSID pOwner,
        !          4790:     BOOL bOwnerDefaulted
        !          4791:     );
        !          4792: 
        !          4793: 
        !          4794: BOOL
        !          4795: WINAPI
        !          4796: GetSecurityDescriptorOwner (
        !          4797:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4798:     PSID *pOwner,
        !          4799:     LPBOOL lpbOwnerDefaulted
        !          4800:     );
        !          4801: 
        !          4802: 
        !          4803: BOOL
        !          4804: WINAPI
        !          4805: SetSecurityDescriptorGroup (
        !          4806:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4807:     PSID pGroup,
        !          4808:     BOOL bGroupDefaulted
        !          4809:     );
        !          4810: 
        !          4811: 
        !          4812: BOOL
        !          4813: WINAPI
        !          4814: GetSecurityDescriptorGroup (
        !          4815:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4816:     PSID *pGroup,
        !          4817:     LPBOOL lpbGroupDefaulted
        !          4818:     );
        !          4819: 
        !          4820: 
        !          4821: BOOL
        !          4822: WINAPI
        !          4823: CreatePrivateObjectSecurity (
        !          4824:     PSECURITY_DESCRIPTOR ParentDescriptor,
        !          4825:     PSECURITY_DESCRIPTOR CreatorDescriptor,
        !          4826:     PSECURITY_DESCRIPTOR * NewDescriptor,
        !          4827:     BOOL IsDirectoryObject,
        !          4828:     HANDLE Token,
        !          4829:     PGENERIC_MAPPING GenericMapping
        !          4830:     );
        !          4831: 
        !          4832: 
        !          4833: BOOL
        !          4834: WINAPI
        !          4835: SetPrivateObjectSecurity (
        !          4836:     SECURITY_INFORMATION SecurityInformation,
        !          4837:     PSECURITY_DESCRIPTOR ModificationDescriptor,
        !          4838:     PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
        !          4839:     PGENERIC_MAPPING GenericMapping,
        !          4840:     HANDLE Token
        !          4841:     );
        !          4842: 
        !          4843: 
        !          4844: BOOL
        !          4845: WINAPI
        !          4846: GetPrivateObjectSecurity (
        !          4847:     PSECURITY_DESCRIPTOR ObjectDescriptor,
        !          4848:     SECURITY_INFORMATION SecurityInformation,
        !          4849:     PSECURITY_DESCRIPTOR ResultantDescriptor,
        !          4850:     DWORD DescriptorLength,
        !          4851:     PDWORD ReturnLength
        !          4852:     );
        !          4853: 
        !          4854: 
        !          4855: BOOL
        !          4856: WINAPI
        !          4857: DestroyPrivateObjectSecurity (
        !          4858:     PSECURITY_DESCRIPTOR * ObjectDescriptor
        !          4859:     );
        !          4860: 
        !          4861: 
        !          4862: BOOL
        !          4863: WINAPI
        !          4864: MakeSelfRelativeSD (
        !          4865:     PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
        !          4866:     PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
        !          4867:     LPDWORD lpdwBufferLength
        !          4868:     );
        !          4869: 
        !          4870: 
        !          4871: BOOL
        !          4872: WINAPI
        !          4873: MakeAbsoluteSD (
        !          4874:     PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
        !          4875:     PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
        !          4876:     LPDWORD lpdwAbsoluteSecurityDescriptorSize,
        !          4877:     PACL pDacl,
        !          4878:     LPDWORD lpdwDaclSize,
        !          4879:     PACL pSacl,
        !          4880:     LPDWORD lpdwSaclSize,
        !          4881:     PSID pOwner,
        !          4882:     LPDWORD lpdwOwnerSize,
        !          4883:     PSID pPrimaryGroup,
        !          4884:     LPDWORD lpdwPrimaryGroupSize
        !          4885:     );
        !          4886: 
        !          4887: 
        !          4888: BOOL
        !          4889: WINAPI
        !          4890: SetFileSecurityA (
        !          4891:     LPSTR lpFileName,
        !          4892:     SECURITY_INFORMATION SecurityInformation,
        !          4893:     PSECURITY_DESCRIPTOR pSecurityDescriptor
        !          4894:     );
        !          4895: BOOL
        !          4896: WINAPI
        !          4897: SetFileSecurityW (
        !          4898:     LPWSTR lpFileName,
        !          4899:     SECURITY_INFORMATION SecurityInformation,
        !          4900:     PSECURITY_DESCRIPTOR pSecurityDescriptor
        !          4901:     );
        !          4902: #ifdef UNICODE
        !          4903: #define SetFileSecurity SetFileSecurityW
        !          4904: #else
        !          4905: #define SetFileSecurity SetFileSecurityA
        !          4906: #endif // !UNICODE
        !          4907: 
        !          4908: 
        !          4909: BOOL
        !          4910: WINAPI
        !          4911: GetFileSecurityA (
        !          4912:     LPSTR lpFileName,
        !          4913:     SECURITY_INFORMATION RequestedInformation,
        !          4914:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4915:     DWORD nLength,
        !          4916:     LPDWORD lpnLengthNeeded
        !          4917:     );
        !          4918: BOOL
        !          4919: WINAPI
        !          4920: GetFileSecurityW (
        !          4921:     LPWSTR lpFileName,
        !          4922:     SECURITY_INFORMATION RequestedInformation,
        !          4923:     PSECURITY_DESCRIPTOR pSecurityDescriptor,
        !          4924:     DWORD nLength,
        !          4925:     LPDWORD lpnLengthNeeded
        !          4926:     );
        !          4927: #ifdef UNICODE
        !          4928: #define GetFileSecurity GetFileSecurityW
        !          4929: #else
        !          4930: #define GetFileSecurity GetFileSecurityA
        !          4931: #endif // !UNICODE
        !          4932: 
        !          4933: 
        !          4934: BOOL
        !          4935: WINAPI
        !          4936: SetKernelObjectSecurity (
        !          4937:     HANDLE Handle,
        !          4938:     SECURITY_INFORMATION SecurityInformation,
        !          4939:     PSECURITY_DESCRIPTOR SecurityDescriptor
        !          4940:     );
        !          4941: 
        !          4942: 
        !          4943: 
        !          4944: HANDLE
        !          4945: WINAPI
        !          4946: FindFirstChangeNotificationA(
        !          4947:     LPSTR lpPathName,
        !          4948:     BOOL bWatchSubtree,
        !          4949:     DWORD dwNotifyFilter
        !          4950:     );
        !          4951: HANDLE
        !          4952: WINAPI
        !          4953: FindFirstChangeNotificationW(
        !          4954:     LPWSTR lpPathName,
        !          4955:     BOOL bWatchSubtree,
        !          4956:     DWORD dwNotifyFilter
        !          4957:     );
        !          4958: #ifdef UNICODE
        !          4959: #define FindFirstChangeNotification FindFirstChangeNotificationW
        !          4960: #else
        !          4961: #define FindFirstChangeNotification FindFirstChangeNotificationA
        !          4962: #endif // !UNICODE
        !          4963: BOOL
        !          4964: WINAPI
        !          4965: FindNextChangeNotification(
        !          4966:     HANDLE hChangeHandle
        !          4967:     );
        !          4968: 
        !          4969: BOOL
        !          4970: WINAPI
        !          4971: FindCloseChangeNotification(
        !          4972:     HANDLE hChangeHandle
        !          4973:     );
        !          4974: 
        !          4975: BOOL
        !          4976: WINAPI
        !          4977: VirtualLock(
        !          4978:     LPVOID lpAddress,
        !          4979:     DWORD dwSize
        !          4980:     );
        !          4981: 
        !          4982: BOOL
        !          4983: WINAPI
        !          4984: VirtualUnlock(
        !          4985:     LPVOID lpAddress,
        !          4986:     DWORD dwSize
        !          4987:     );
        !          4988: 
        !          4989: LPVOID
        !          4990: WINAPI
        !          4991: MapViewOfFileEx(
        !          4992:     HANDLE hFileMappingObject,
        !          4993:     DWORD dwDesiredAccess,
        !          4994:     DWORD dwFileOffsetHigh,
        !          4995:     DWORD dwFileOffsetLow,
        !          4996:     DWORD dwNumberOfBytesToMap,
        !          4997:     LPVOID lpBaseAddress
        !          4998:     );
        !          4999: 
        !          5000: BOOL
        !          5001: WINAPI
        !          5002: SetPriorityClass(
        !          5003:     HANDLE hProcess,
        !          5004:     DWORD dwPriorityClass
        !          5005:     );
        !          5006: 
        !          5007: DWORD
        !          5008: WINAPI
        !          5009: GetPriorityClass(
        !          5010:     HANDLE hProcess
        !          5011:     );
        !          5012: 
        !          5013: BOOL
        !          5014: WINAPI
        !          5015: IsBadReadPtr(
        !          5016:     CONST VOID *lp,
        !          5017:     UINT ucb
        !          5018:     );
        !          5019: 
        !          5020: BOOL
        !          5021: WINAPI
        !          5022: IsBadWritePtr(
        !          5023:     LPVOID lp,
        !          5024:     UINT ucb
        !          5025:     );
        !          5026: 
        !          5027: BOOL
        !          5028: WINAPI
        !          5029: IsBadHugeReadPtr(
        !          5030:     CONST VOID *lp,
        !          5031:     UINT ucb
        !          5032:     );
        !          5033: 
        !          5034: BOOL
        !          5035: WINAPI
        !          5036: IsBadHugeWritePtr(
        !          5037:     LPVOID lp,
        !          5038:     UINT ucb
        !          5039:     );
        !          5040: 
        !          5041: BOOL
        !          5042: WINAPI
        !          5043: IsBadCodePtr(
        !          5044:     FARPROC lpfn
        !          5045:     );
        !          5046: 
        !          5047: BOOL
        !          5048: WINAPI
        !          5049: IsBadStringPtrA(
        !          5050:     LPCSTR lpsz,
        !          5051:     UINT ucchMax
        !          5052:     );
        !          5053: BOOL
        !          5054: WINAPI
        !          5055: IsBadStringPtrW(
        !          5056:     LPCWSTR lpsz,
        !          5057:     UINT ucchMax
        !          5058:     );
        !          5059: #ifdef UNICODE
        !          5060: #define IsBadStringPtr IsBadStringPtrW
        !          5061: #else
        !          5062: #define IsBadStringPtr IsBadStringPtrA
        !          5063: #endif // !UNICODE
        !          5064: 
        !          5065: BOOL
        !          5066: WINAPI
        !          5067: LookupAccountSidA(
        !          5068:     LPSTR lpSystemName,
        !          5069:     PSID Sid,
        !          5070:     LPSTR Name,
        !          5071:     LPDWORD cbName,
        !          5072:     LPSTR ReferencedDomainName,
        !          5073:     LPDWORD cbReferencedDomainName,
        !          5074:     PSID_NAME_USE peUse
        !          5075:     );
        !          5076: BOOL
        !          5077: WINAPI
        !          5078: LookupAccountSidW(
        !          5079:     LPWSTR lpSystemName,
        !          5080:     PSID Sid,
        !          5081:     LPWSTR Name,
        !          5082:     LPDWORD cbName,
        !          5083:     LPWSTR ReferencedDomainName,
        !          5084:     LPDWORD cbReferencedDomainName,
        !          5085:     PSID_NAME_USE peUse
        !          5086:     );
        !          5087: #ifdef UNICODE
        !          5088: #define LookupAccountSid LookupAccountSidW
        !          5089: #else
        !          5090: #define LookupAccountSid LookupAccountSidA
        !          5091: #endif // !UNICODE
        !          5092: 
        !          5093: BOOL
        !          5094: WINAPI
        !          5095: LookupAccountNameA(
        !          5096:     LPSTR lpSystemName,
        !          5097:     LPSTR lpAccountName,
        !          5098:     PSID Sid,
        !          5099:     LPDWORD cbSid,
        !          5100:     LPSTR ReferencedDomainName,
        !          5101:     LPDWORD cbReferencedDomainName,
        !          5102:     PSID_NAME_USE peUse
        !          5103:     );
        !          5104: BOOL
        !          5105: WINAPI
        !          5106: LookupAccountNameW(
        !          5107:     LPWSTR lpSystemName,
        !          5108:     LPWSTR lpAccountName,
        !          5109:     PSID Sid,
        !          5110:     LPDWORD cbSid,
        !          5111:     LPWSTR ReferencedDomainName,
        !          5112:     LPDWORD cbReferencedDomainName,
        !          5113:     PSID_NAME_USE peUse
        !          5114:     );
        !          5115: #ifdef UNICODE
        !          5116: #define LookupAccountName LookupAccountNameW
        !          5117: #else
        !          5118: #define LookupAccountName LookupAccountNameA
        !          5119: #endif // !UNICODE
        !          5120: 
        !          5121: BOOL
        !          5122: WINAPI
        !          5123: LookupPrivilegeValueA(
        !          5124:     LPSTR lpSystemName,
        !          5125:     LPSTR lpName,
        !          5126:     PLUID   lpLuid
        !          5127:     );
        !          5128: BOOL
        !          5129: WINAPI
        !          5130: LookupPrivilegeValueW(
        !          5131:     LPWSTR lpSystemName,
        !          5132:     LPWSTR lpName,
        !          5133:     PLUID   lpLuid
        !          5134:     );
        !          5135: #ifdef UNICODE
        !          5136: #define LookupPrivilegeValue LookupPrivilegeValueW
        !          5137: #else
        !          5138: #define LookupPrivilegeValue LookupPrivilegeValueA
        !          5139: #endif // !UNICODE
        !          5140: 
        !          5141: BOOL
        !          5142: WINAPI
        !          5143: LookupPrivilegeNameA(
        !          5144:     LPSTR lpSystemName,
        !          5145:     PLUID   lpLuid,
        !          5146:     LPSTR lpName,
        !          5147:     LPDWORD cbName
        !          5148:     );
        !          5149: BOOL
        !          5150: WINAPI
        !          5151: LookupPrivilegeNameW(
        !          5152:     LPWSTR lpSystemName,
        !          5153:     PLUID   lpLuid,
        !          5154:     LPWSTR lpName,
        !          5155:     LPDWORD cbName
        !          5156:     );
        !          5157: #ifdef UNICODE
        !          5158: #define LookupPrivilegeName LookupPrivilegeNameW
        !          5159: #else
        !          5160: #define LookupPrivilegeName LookupPrivilegeNameA
        !          5161: #endif // !UNICODE
        !          5162: 
        !          5163: BOOL
        !          5164: WINAPI
        !          5165: LookupPrivilegeDisplayNameA(
        !          5166:     LPSTR lpSystemName,
        !          5167:     LPSTR lpName,
        !          5168:     LPSTR lpDisplayName,
        !          5169:     LPDWORD cbDisplayName,
        !          5170:     LPDWORD lpLanguageId
        !          5171:     );
        !          5172: BOOL
        !          5173: WINAPI
        !          5174: LookupPrivilegeDisplayNameW(
        !          5175:     LPWSTR lpSystemName,
        !          5176:     LPWSTR lpName,
        !          5177:     LPWSTR lpDisplayName,
        !          5178:     LPDWORD cbDisplayName,
        !          5179:     LPDWORD lpLanguageId
        !          5180:     );
        !          5181: #ifdef UNICODE
        !          5182: #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
        !          5183: #else
        !          5184: #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
        !          5185: #endif // !UNICODE
        !          5186: 
        !          5187: BOOL
        !          5188: WINAPI
        !          5189: AllocateLocallyUniqueId(
        !          5190:     PLUID Luid
        !          5191:     );
        !          5192: 
        !          5193: BOOL
        !          5194: WINAPI
        !          5195: BuildCommDCBA(
        !          5196:     LPSTR lpDef,
        !          5197:     LPDCB lpDCB
        !          5198:     );
        !          5199: BOOL
        !          5200: WINAPI
        !          5201: BuildCommDCBW(
        !          5202:     LPWSTR lpDef,
        !          5203:     LPDCB lpDCB
        !          5204:     );
        !          5205: #ifdef UNICODE
        !          5206: #define BuildCommDCB BuildCommDCBW
        !          5207: #else
        !          5208: #define BuildCommDCB BuildCommDCBA
        !          5209: #endif // !UNICODE
        !          5210: 
        !          5211: #define MAX_COMPUTERNAME_LENGTH 80
        !          5212: 
        !          5213: BOOL
        !          5214: WINAPI
        !          5215: GetComputerNameA (
        !          5216:     LPSTR lpBuffer,
        !          5217:     LPDWORD nSize
        !          5218:     );
        !          5219: BOOL
        !          5220: WINAPI
        !          5221: GetComputerNameW (
        !          5222:     LPWSTR lpBuffer,
        !          5223:     LPDWORD nSize
        !          5224:     );
        !          5225: #ifdef UNICODE
        !          5226: #define GetComputerName GetComputerNameW
        !          5227: #else
        !          5228: #define GetComputerName GetComputerNameA
        !          5229: #endif // !UNICODE
        !          5230: 
        !          5231: BOOL
        !          5232: WINAPI
        !          5233: SetComputerNameA (
        !          5234:     LPSTR lpComputerName
        !          5235:     );
        !          5236: BOOL
        !          5237: WINAPI
        !          5238: SetComputerNameW (
        !          5239:     LPWSTR lpComputerName
        !          5240:     );
        !          5241: #ifdef UNICODE
        !          5242: #define SetComputerName SetComputerNameW
        !          5243: #else
        !          5244: #define SetComputerName SetComputerNameA
        !          5245: #endif // !UNICODE
        !          5246: 
        !          5247: BOOL
        !          5248: WINAPI
        !          5249: GetUserNameA (
        !          5250:     LPSTR lpBuffer,
        !          5251:     LPDWORD nSize
        !          5252:     );
        !          5253: BOOL
        !          5254: WINAPI
        !          5255: GetUserNameW (
        !          5256:     LPWSTR lpBuffer,
        !          5257:     LPDWORD nSize
        !          5258:     );
        !          5259: #ifdef UNICODE
        !          5260: #define GetUserName GetUserNameW
        !          5261: #else
        !          5262: #define GetUserName GetUserNameA
        !          5263: #endif // !UNICODE
        !          5264: 
        !          5265: //
        !          5266: // Performance counter API's
        !          5267: //
        !          5268: 
        !          5269: BOOL
        !          5270: WINAPI
        !          5271: QueryPerformanceCounter(
        !          5272:     LARGE_INTEGER *lpPerformanceCount
        !          5273:     );
        !          5274: 
        !          5275: BOOL
        !          5276: WINAPI
        !          5277: QueryPerformanceFrequency(
        !          5278:     LARGE_INTEGER *lpFrequency
        !          5279:     );
        !          5280: 
        !          5281: 
        !          5282: 
        !          5283: // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base
        !          5284: // API functions.
        !          5285: //
        !          5286: 
        !          5287: #include <winerror.h>
        !          5288: 
        !          5289: /* Abnormal termination codes */
        !          5290: 
        !          5291: #define TC_NORMAL       0
        !          5292: #define TC_HARDERR      1
        !          5293: #define TC_GP_TRAP      2
        !          5294: #define TC_SIGNAL       3
        !          5295: 
        !          5296: #endif // _WINBASE_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.