fix(ast/parser): extern 无 body 形式消费本行 NewLine,修复 Phase1a-pre 7 文件扫描失败
extern def A(...) -> T(无 ': pass')解析完返回时 cur 停在 NewLine token, 模块级/类体语句循环只 _skip_nl(Nl)不跳 NewLine,下一轮把 NewLine 当 表达式解析(_parse_atom error_count++)→ parse_tokens 返回 None → Phase1a-pre 报 7 个文件扫描失败(w32 7 个 extern 文件全挂的根因)。
This commit is contained in:
1 parent
a641c7c8da
commit
451e7a0391
8 files changed
+211
-205
No files matched your search
@@ -2288,7 +2288,13 @@ def _parse_funcdef(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr:
|
||||
if is_extern_fd == 0 or _match_op(ps, TokOp.Colon):
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
_parse_suite_into_children(ps, node)
|
||||
# extern 无 ': pass' 形式(extern A(...) -> int):body 为空,仅声明
|
||||
else:
|
||||
# extern 无 ': pass' 形式(extern A(...) -> int):body 为空,仅声明。
|
||||
# 必须消费本行 NewLine:模块级/类体语句循环只 _skip_nl(Nl),
|
||||
# 残留 NewLine 会被下一轮当表达式解析(_parse_atom → error_count++)
|
||||
# → parse_tokens 返回 None(TPV 编译 extern 文件报 7 个扫描失败的根因)
|
||||
if _cur_type(ps) == TokenType.NewLine:
|
||||
_advance(ps)
|
||||
_set_pos(node, lineno, col, 0, 0)
|
||||
return node
|
||||
|
||||
|
||||
+20
-20
@@ -58,23 +58,23 @@ class LARGE_INTEGER():
|
||||
class ULARGE_INTEGER():
|
||||
QuadPart: ULONGLONG
|
||||
|
||||
extern def GetLastError() -> ULONG: pass
|
||||
extern def SetLastError(dwErrCode: ULONG): pass
|
||||
extern def CloseHandle(hObject: HANDLE) -> BOOL: pass
|
||||
extern def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR: pass
|
||||
extern def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE: pass
|
||||
extern def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE: pass
|
||||
extern def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE: pass
|
||||
extern def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE: pass
|
||||
extern def FreeLibrary(hLibModule: HANDLE) -> BOOL: pass
|
||||
extern def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr): pass
|
||||
extern def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr): pass
|
||||
extern def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL: pass
|
||||
extern def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL: pass
|
||||
extern def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL: pass
|
||||
extern def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL: pass
|
||||
extern def Sleep(dwMilliseconds: ULONG): pass
|
||||
extern def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG: pass
|
||||
extern def GetTickCount() -> ULONG: pass
|
||||
extern def GetTickCount64() -> ULONGLONG: pass
|
||||
extern def GetCommandLineA() -> CHARPTR: pass
|
||||
extern def GetLastError() -> ULONG
|
||||
extern def SetLastError(dwErrCode: ULONG)
|
||||
extern def CloseHandle(hObject: HANDLE) -> BOOL
|
||||
extern def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR
|
||||
extern def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE
|
||||
extern def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE
|
||||
extern def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE
|
||||
extern def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE
|
||||
extern def FreeLibrary(hLibModule: HANDLE) -> BOOL
|
||||
extern def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr)
|
||||
extern def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr)
|
||||
extern def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL
|
||||
extern def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL
|
||||
extern def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL
|
||||
extern def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL
|
||||
extern def Sleep(dwMilliseconds: ULONG)
|
||||
extern def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG
|
||||
extern def GetTickCount() -> ULONG
|
||||
extern def GetTickCount64() -> ULONGLONG
|
||||
extern def GetCommandLineA() -> CHARPTR
|
||||
@@ -78,34 +78,34 @@ class INPUT_RECORD():
|
||||
EventType: WORD
|
||||
Event: KEY_EVENT_RECORD
|
||||
|
||||
extern def SetConsoleOutputCP(codepage: UINT) -> BOOL: pass
|
||||
extern def SetConsoleCP(codepage: UINT) -> BOOL: pass
|
||||
extern def GetConsoleCP() -> UINT: pass
|
||||
extern def GetConsoleOutputCP() -> UINT: pass
|
||||
extern def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL: pass
|
||||
extern def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL: pass
|
||||
extern def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL: pass
|
||||
extern def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL: pass
|
||||
extern def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL: pass
|
||||
extern def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL: pass
|
||||
extern def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL: pass
|
||||
extern def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL: pass
|
||||
extern def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL: pass
|
||||
extern def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL: pass
|
||||
extern def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL: pass
|
||||
extern def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL: pass
|
||||
extern def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL: pass
|
||||
extern def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL: pass
|
||||
extern def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG: pass
|
||||
extern def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG: pass
|
||||
extern def AllocConsole() -> BOOL: pass
|
||||
extern def FreeConsole() -> BOOL: pass
|
||||
extern def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL: pass
|
||||
extern def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL: pass
|
||||
extern def SetConsoleOutputCP(codepage: UINT) -> BOOL
|
||||
extern def SetConsoleCP(codepage: UINT) -> BOOL
|
||||
extern def GetConsoleCP() -> UINT
|
||||
extern def GetConsoleOutputCP() -> UINT
|
||||
extern def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL
|
||||
extern def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL
|
||||
extern def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL
|
||||
extern def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL
|
||||
extern def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL
|
||||
extern def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL
|
||||
extern def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL
|
||||
extern def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL
|
||||
extern def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL
|
||||
extern def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL
|
||||
extern def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL
|
||||
extern def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL
|
||||
extern def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL
|
||||
extern def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL
|
||||
extern def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL
|
||||
extern def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL
|
||||
extern def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL
|
||||
extern def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL
|
||||
extern def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL
|
||||
extern def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL
|
||||
extern def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL
|
||||
extern def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG
|
||||
extern def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG
|
||||
extern def AllocConsole() -> BOOL
|
||||
extern def FreeConsole() -> BOOL
|
||||
extern def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL
|
||||
extern def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL
|
||||
+50
-50
@@ -85,59 +85,59 @@ class WIN32_FIND_DATAW():
|
||||
cFileName: t.CArray[t.CUInt16T, 260]
|
||||
cAlternateFileName: t.CArray[t.CUInt16T, 14]
|
||||
|
||||
extern def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE: pass
|
||||
extern def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE: pass
|
||||
extern def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL: pass
|
||||
extern def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL: pass
|
||||
extern def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG: pass
|
||||
extern def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL: pass
|
||||
extern def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG: pass
|
||||
extern def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL: pass
|
||||
extern def SetEndOfFile(hFile: HANDLE) -> BOOL: pass
|
||||
extern def FlushFileBuffers(hFile: HANDLE) -> BOOL: pass
|
||||
extern def GetFileType(hFile: HANDLE) -> ULONG: pass
|
||||
extern def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG: pass
|
||||
extern def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG: pass
|
||||
extern def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL: pass
|
||||
extern def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL: pass
|
||||
extern def DeleteFileA(lpFileName: LPCSTR) -> BOOL: pass
|
||||
extern def DeleteFileW(lpFileName: LPCWSTR) -> BOOL: pass
|
||||
extern def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL: pass
|
||||
extern def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL: pass
|
||||
extern def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL: pass
|
||||
extern def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL: pass
|
||||
extern def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL: pass
|
||||
extern def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL: pass
|
||||
extern def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL: pass
|
||||
extern def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL: pass
|
||||
extern def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL: pass
|
||||
extern def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL: pass
|
||||
extern def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE: pass
|
||||
extern def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE: pass
|
||||
extern def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL: pass
|
||||
extern def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL: pass
|
||||
extern def FindClose(hFindFile: HANDLE) -> BOOL: pass
|
||||
extern def GetStdHandle(nStdHandle: ULONG) -> HANDLE: pass
|
||||
extern def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL: pass
|
||||
extern def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL: pass
|
||||
extern def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL: pass
|
||||
extern def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL: pass
|
||||
extern def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG: pass
|
||||
extern def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG: pass
|
||||
extern def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT: pass
|
||||
extern def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT: pass
|
||||
extern def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG: pass
|
||||
extern def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG: pass
|
||||
extern def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL: pass
|
||||
extern def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL: pass
|
||||
extern def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG: pass
|
||||
extern def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG: pass
|
||||
extern def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE
|
||||
extern def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE
|
||||
extern def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL
|
||||
extern def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL
|
||||
extern def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG
|
||||
extern def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL
|
||||
extern def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG
|
||||
extern def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL
|
||||
extern def SetEndOfFile(hFile: HANDLE) -> BOOL
|
||||
extern def FlushFileBuffers(hFile: HANDLE) -> BOOL
|
||||
extern def GetFileType(hFile: HANDLE) -> ULONG
|
||||
extern def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG
|
||||
extern def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG
|
||||
extern def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL
|
||||
extern def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL
|
||||
extern def DeleteFileA(lpFileName: LPCSTR) -> BOOL
|
||||
extern def DeleteFileW(lpFileName: LPCWSTR) -> BOOL
|
||||
extern def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL
|
||||
extern def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL
|
||||
extern def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL
|
||||
extern def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL
|
||||
extern def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL
|
||||
extern def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL
|
||||
extern def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL
|
||||
extern def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL
|
||||
extern def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL
|
||||
extern def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL
|
||||
extern def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE
|
||||
extern def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE
|
||||
extern def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL
|
||||
extern def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL
|
||||
extern def FindClose(hFindFile: HANDLE) -> BOOL
|
||||
extern def GetStdHandle(nStdHandle: ULONG) -> HANDLE
|
||||
extern def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL
|
||||
extern def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL
|
||||
extern def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL
|
||||
extern def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL
|
||||
extern def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG
|
||||
extern def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG
|
||||
extern def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT
|
||||
extern def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT
|
||||
extern def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG
|
||||
extern def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG
|
||||
extern def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL
|
||||
extern def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL
|
||||
extern def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG
|
||||
extern def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG
|
||||
|
||||
HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001
|
||||
HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002
|
||||
|
||||
extern def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL: pass
|
||||
extern def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL: pass
|
||||
extern def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL: pass
|
||||
extern def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL
|
||||
extern def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL
|
||||
extern def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL
|
||||
|
||||
DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002
|
||||
+22
-22
@@ -40,25 +40,25 @@ class MEMORY_BASIC_INFORMATION():
|
||||
Protect: DWORD
|
||||
Type: DWORD
|
||||
|
||||
extern def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR: pass
|
||||
extern def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL: pass
|
||||
extern def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT: pass
|
||||
extern def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL: pass
|
||||
extern def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL: pass
|
||||
extern def GetProcessHeap() -> HANDLE: pass
|
||||
extern def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE: pass
|
||||
extern def HeapDestroy(hHeap: HANDLE) -> BOOL: pass
|
||||
extern def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR: pass
|
||||
extern def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR: pass
|
||||
extern def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL: pass
|
||||
extern def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT: pass
|
||||
extern def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL: pass
|
||||
extern def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT: pass
|
||||
extern def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR: pass
|
||||
extern def GlobalFree(hMem: VOIDPTR) -> VOIDPTR: pass
|
||||
extern def GlobalLock(hMem: VOIDPTR) -> VOIDPTR: pass
|
||||
extern def GlobalUnlock(hMem: VOIDPTR) -> BOOL: pass
|
||||
extern def GlobalSize(hMem: VOIDPTR) -> t.CSizeT: pass
|
||||
extern def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR: pass
|
||||
extern def LocalFree(hMem: VOIDPTR) -> VOIDPTR: pass
|
||||
extern def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR
|
||||
extern def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL
|
||||
extern def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL
|
||||
extern def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT
|
||||
extern def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL
|
||||
extern def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL
|
||||
extern def GetProcessHeap() -> HANDLE
|
||||
extern def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE
|
||||
extern def HeapDestroy(hHeap: HANDLE) -> BOOL
|
||||
extern def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR
|
||||
extern def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR
|
||||
extern def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL
|
||||
extern def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT
|
||||
extern def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL
|
||||
extern def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT
|
||||
extern def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR
|
||||
extern def GlobalFree(hMem: VOIDPTR) -> VOIDPTR
|
||||
extern def GlobalLock(hMem: VOIDPTR) -> VOIDPTR
|
||||
extern def GlobalUnlock(hMem: VOIDPTR) -> BOOL
|
||||
extern def GlobalSize(hMem: VOIDPTR) -> t.CSizeT
|
||||
extern def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR
|
||||
extern def LocalFree(hMem: VOIDPTR) -> VOIDPTR
|
||||
@@ -85,28 +85,28 @@ class PROCESS_INFORMATION():
|
||||
dwProcessId: DWORD
|
||||
dwThreadId: DWORD
|
||||
|
||||
extern def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL: pass
|
||||
extern def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL: pass
|
||||
extern def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL: pass
|
||||
extern def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL: pass
|
||||
extern def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE: pass
|
||||
extern def GetCurrentProcess() -> HANDLE: pass
|
||||
extern def GetCurrentProcessId() -> ULONG: pass
|
||||
extern def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE: pass
|
||||
extern def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE: pass
|
||||
extern def SuspendThread(hThread: HANDLE) -> ULONG: pass
|
||||
extern def ResumeThread(hThread: HANDLE) -> ULONG: pass
|
||||
extern def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL: pass
|
||||
extern def GetCurrentThread() -> HANDLE: pass
|
||||
extern def GetCurrentThreadId() -> ULONG: pass
|
||||
extern def GetThreadId(hThread: HANDLE) -> ULONG: pass
|
||||
extern def GetProcessId(hProcess: HANDLE) -> ULONG: pass
|
||||
extern def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL: pass
|
||||
extern def GetThreadPriority(hThread: HANDLE) -> INT: pass
|
||||
extern def ExitProcess(uExitCode: UINT) -> VOID: pass
|
||||
extern def ExitThread(dwExitCode: ULONG) -> VOID: pass
|
||||
extern def TlsAlloc() -> ULONG: pass
|
||||
extern def TlsFree(dwTlsIndex: ULONG) -> BOOL: pass
|
||||
extern def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR: pass
|
||||
extern def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL: pass
|
||||
extern def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL
|
||||
extern def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL
|
||||
extern def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL
|
||||
extern def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL
|
||||
extern def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL
|
||||
extern def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE
|
||||
extern def GetCurrentProcess() -> HANDLE
|
||||
extern def GetCurrentProcessId() -> ULONG
|
||||
extern def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE
|
||||
extern def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE
|
||||
extern def SuspendThread(hThread: HANDLE) -> ULONG
|
||||
extern def ResumeThread(hThread: HANDLE) -> ULONG
|
||||
extern def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL
|
||||
extern def GetCurrentThread() -> HANDLE
|
||||
extern def GetCurrentThreadId() -> ULONG
|
||||
extern def GetThreadId(hThread: HANDLE) -> ULONG
|
||||
extern def GetProcessId(hProcess: HANDLE) -> ULONG
|
||||
extern def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL
|
||||
extern def GetThreadPriority(hThread: HANDLE) -> INT
|
||||
extern def ExitProcess(uExitCode: UINT) -> VOID
|
||||
extern def ExitThread(dwExitCode: ULONG) -> VOID
|
||||
extern def TlsAlloc() -> ULONG
|
||||
extern def TlsFree(dwTlsIndex: ULONG) -> BOOL
|
||||
extern def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR
|
||||
extern def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL
|
||||
+39
-39
@@ -10,48 +10,48 @@ class CRITICAL_SECTION():
|
||||
LockSemaphore: HANDLE
|
||||
SpinCount: QWORD
|
||||
|
||||
extern def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID: pass
|
||||
extern def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID: pass
|
||||
extern def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID: pass
|
||||
extern def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID: pass
|
||||
extern def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL: pass
|
||||
extern def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG: pass
|
||||
extern def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL: pass
|
||||
extern def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE: pass
|
||||
extern def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE: pass
|
||||
extern def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE: pass
|
||||
extern def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE: pass
|
||||
extern def ReleaseMutex(hMutex: HANDLE) -> BOOL: pass
|
||||
extern def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE: pass
|
||||
extern def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE: pass
|
||||
extern def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE: pass
|
||||
extern def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE: pass
|
||||
extern def SetEvent(hEvent: HANDLE) -> BOOL: pass
|
||||
extern def ResetEvent(hEvent: HANDLE) -> BOOL: pass
|
||||
extern def PulseEvent(hEvent: HANDLE) -> BOOL: pass
|
||||
extern def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE: pass
|
||||
extern def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE: pass
|
||||
extern def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE: pass
|
||||
extern def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE: pass
|
||||
extern def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL: pass
|
||||
extern def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG: pass
|
||||
extern def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG: pass
|
||||
extern def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG: pass
|
||||
extern def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG: pass
|
||||
extern def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID: pass
|
||||
extern def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID: pass
|
||||
extern def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID: pass
|
||||
extern def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID: pass
|
||||
extern def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID: pass
|
||||
extern def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID
|
||||
extern def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID
|
||||
extern def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID
|
||||
extern def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID
|
||||
extern def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL
|
||||
extern def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG
|
||||
extern def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL
|
||||
extern def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE
|
||||
extern def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE
|
||||
extern def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE
|
||||
extern def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE
|
||||
extern def ReleaseMutex(hMutex: HANDLE) -> BOOL
|
||||
extern def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE
|
||||
extern def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE
|
||||
extern def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE
|
||||
extern def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE
|
||||
extern def SetEvent(hEvent: HANDLE) -> BOOL
|
||||
extern def ResetEvent(hEvent: HANDLE) -> BOOL
|
||||
extern def PulseEvent(hEvent: HANDLE) -> BOOL
|
||||
extern def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE
|
||||
extern def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE
|
||||
extern def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE
|
||||
extern def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE
|
||||
extern def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL
|
||||
extern def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG
|
||||
extern def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG
|
||||
extern def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG
|
||||
extern def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG
|
||||
extern def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID
|
||||
extern def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID
|
||||
extern def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID
|
||||
extern def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID
|
||||
extern def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID
|
||||
|
||||
# 条件变量 (Condition Variables) - Vista+
|
||||
CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1
|
||||
|
||||
extern def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID: pass
|
||||
extern def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL: pass
|
||||
extern def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL: pass
|
||||
extern def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID: pass
|
||||
extern def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID: pass
|
||||
extern def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID
|
||||
extern def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL
|
||||
extern def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL
|
||||
extern def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID
|
||||
extern def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID
|
||||
|
||||
# 一次性初始化 (One-Time Initialization) - Vista+
|
||||
INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001
|
||||
@@ -62,4 +62,4 @@ INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008
|
||||
class INIT_ONCE:
|
||||
Ptr: t.CPtr
|
||||
|
||||
extern def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL: pass
|
||||
extern def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL
|
||||
+17
-17
@@ -84,21 +84,21 @@ class WinTimeVal:
|
||||
# WinSock2 API 函数
|
||||
# ============================================================
|
||||
|
||||
extern def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT: pass
|
||||
extern def WSACleanup() -> INT: pass
|
||||
extern def WSAGetLastError() -> INT: pass
|
||||
extern def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT
|
||||
extern def WSACleanup() -> INT
|
||||
extern def WSAGetLastError() -> INT
|
||||
|
||||
extern def socket(family: INT, type: INT, protocol: INT) -> u64: pass
|
||||
extern def closesocket(s: u64) -> INT: pass
|
||||
extern def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT: pass
|
||||
extern def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT: pass
|
||||
extern def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT: pass
|
||||
extern def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT: pass
|
||||
extern def listen(s: u64, backlog: INT) -> INT: pass
|
||||
extern def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64: pass
|
||||
extern def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT: pass
|
||||
extern def shutdown(s: u64, how: INT) -> INT: pass
|
||||
extern def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr: pass
|
||||
extern def ntohs(netshort: u16) -> u16: pass
|
||||
extern def htons(hostshort: u16) -> u16: pass
|
||||
extern def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32: pass
|
||||
extern def socket(family: INT, type: INT, protocol: INT) -> u64
|
||||
extern def closesocket(s: u64) -> INT
|
||||
extern def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT
|
||||
extern def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT
|
||||
extern def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT
|
||||
extern def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT
|
||||
extern def listen(s: u64, backlog: INT) -> INT
|
||||
extern def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64
|
||||
extern def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT
|
||||
extern def shutdown(s: u64, how: INT) -> INT
|
||||
extern def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr
|
||||
extern def ntohs(netshort: u16) -> u16
|
||||
extern def htons(hostshort: u16) -> u16
|
||||
extern def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32
|
||||
Reference in new issue
Block a user