#link "kernel32.lib" DWORD :: U32 LPCSTR :: *char LPSTR :: *char LPCWSTR :: *U16 HWND :: *void HMENU :: *void HINSTANCE :: *void HBITMAP :: *void HDC :: *void LPVOID :: *void SIZE_T :: U64 BOOL :: int HMODULE :: HANDLE HANDLE :: *void VOID :: void HICON :: HANDLE HCURSOR :: HANDLE HBRUSH :: HANDLE LPDWORD :: *DWORD LRESULT :: S64 WPARAM :: U64 LPARAM :: S64 BYTE :: U8 // @todo? unsigned char WORD :: S16 // short LONG :: S32 // @todo long UINT :: U32 // @todo uint ATOM :: WORD LARGE_INTEGER :: S64 PLARGE_INTEGER :: *LARGE_INTEGER LPOVERLAPPED :: *OVERLAPPED LONG_PTR :: *S64 ULONG_PTR :: *U64 MEM_COMMIT :: 0x00001000 MEM_RESERVE :: 0x00002000 MEM_RESET :: 0x00080000 MEM_RESET_UNDO :: 0x1000000 MEM_DECOMMIT :: 0x00004000 MEM_RELEASE :: 0x00008000 PAGE_NOACCESS :: 1 PAGE_READONLY :: 2 PAGE_READWRITE :: 4 PAGE_WRITECOPY :: 8 PAGE_EXECUTE :: 0x10; PAGE_EXECUTE_READ :: 0x20; PAGE_EXECUTE_READWRITE :: 0x40; PAGE_EXECUTE_WRITECOPY :: 0x80 VirtualAlloc :: #foreign (lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD): LPVOID VirtualFree :: #foreign (lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD): BOOL HEAP_ZERO_MEMORY :: 0x8; HEAP_NO_SERIALIZE :: 0x1; HEAP_GENERATE_EXCEPTIONS :: 0x4 GetProcessHeap :: #foreign (): HANDLE HeapAlloc :: #foreign (hHeap: HANDLE, dwFlags: DWORD, dwByte: SIZE_T): LPVOID HeapFree :: #foreign (hHeap: HANDLE, dwFlags: DWORD, lpMe: LPVOID): BOOL STD_INPUT_HANDLE :: 4294967286//(-10)->DWORD STD_OUTPUT_HANDLE :: 4294967285//(-11)->DWORD //STD_ERROR_HANDLE :: (-12)->DWORD GetStdHandle :: #foreign (nStdHandle: DWORD): HANDLE WriteConsoleA :: #foreign (hConsoleOutput: HANDLE,lpBuffer: *VOID,nNumberOfCharsToWrite: DWORD,lpNumberOfCharsWritten: LPDWORD,lpReserve: LPVOID): BOOL WriteConsoleW :: #foreign (hConsoleOutput: HANDLE,lpBuffer: *VOID,nNumberOfCharsToWrite: DWORD,lpNumberOfCharsWritten: LPDWORD,lpReserve: LPVOID): BOOL __debugbreak :: #foreign () GetModuleHandleA :: #foreign (lpModuleName: LPCSTR): HMODULE ExitProcess :: #foreign (uExitCode: UINT) GetLastError :: #foreign (): DWORD QueryPerformanceFrequency :: #foreign (lpFrequency: *LARGE_INTEGER): BOOL QueryPerformanceCounter :: #foreign (lpFrequency: *LARGE_INTEGER): BOOL Sleep :: #foreign (dwMilliseconds: DWORD) OutputDebugStringA :: #foreign (lpOutputString: LPCSTR) CreateFileW :: #foreign (lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE): HANDLE ReadFile :: #foreign (hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpNumberOfBytesRead: LPDWORD, lpOverlapped: LPOVERLAPPED): BOOL CloseHandle :: #foreign (hObject: HANDLE): BOOL GetFileSizeEx :: #foreign (hFile: HANDLE, lpFileSize: PLARGE_INTEGER) OVERLAPPED :: struct Internal: ULONG_PTR InternalHigh: ULONG_PTR Pointer: PVOID hEvent: HANDLE LPSECURITY_ATTRIBUTES :: *SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES :: struct nLength: DWORD lpSecurityDescriptor: LPVOID bInheritHandle: BOOL GENERIC_READ :: 0x80000000 GENERIC_WRITE :: 0x40000000 GENERIC_EXECUTE :: 0x20000000 GENERIC_ALL :: 0x10000000 CREATE_NEW :: 1 CREATE_ALWAYS :: 2 OPEN_EXISTING :: 3 OPEN_ALWAYS :: 4 TRUNCATE_EXISTING :: 5 FILE_SHARE_READ :: 0x00000001 FILE_SHARE_WRITE :: 0x00000002 FILE_SHARE_DELETE :: 0x00000004 // INVALID_HANDLE_VALUE :: ((-1)->LONG_PTR)->HANDLE INVALID_HANDLE_VALUE :: (~(0->U64)) FILE_ATTRIBUTE_READONLY :: 0x00000001 FILE_ATTRIBUTE_HIDDEN :: 0x00000002 FILE_ATTRIBUTE_SYSTEM :: 0x00000004 FILE_ATTRIBUTE_DIRECTORY :: 0x00000010 FILE_ATTRIBUTE_ARCHIVE :: 0x00000020 FILE_ATTRIBUTE_DEVICE :: 0x00000040 FILE_ATTRIBUTE_NORMAL :: 0x00000080 FILE_ATTRIBUTE_TEMPORARY :: 0x00000100 FILE_ATTRIBUTE_SPARSE_FILE :: 0x00000200 FILE_ATTRIBUTE_REPARSE_POINT :: 0x00000400 FILE_ATTRIBUTE_COMPRESSED :: 0x00000800 FILE_ATTRIBUTE_OFFLINE :: 0x00001000 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED :: 0x00002000 FILE_ATTRIBUTE_ENCRYPTED :: 0x00004000 FILE_ATTRIBUTE_INTEGRITY_STREAM :: 0x00008000 FILE_ATTRIBUTE_VIRTUAL :: 0x00010000 FILE_ATTRIBUTE_NO_SCRUB_DATA :: 0x00020000 FILE_ATTRIBUTE_EA :: 0x00040000 FILE_ATTRIBUTE_PINNED :: 0x00080000 FILE_ATTRIBUTE_UNPINNED :: 0x00100000 FILE_ATTRIBUTE_RECALL_ON_OPEN :: 0x00040000 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS :: 0x00400000