diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2026-01-02 11:18:48 +0000 |
|---|---|---|
| committer | gingerBill <gingerBill@users.noreply.github.com> | 2026-01-02 11:18:48 +0000 |
| commit | 006681ec2240d46b977f04ab7d7c8e280ad2cb67 (patch) | |
| tree | ed90a4ddc56ffe415924e81fd0f04daddb8333a4 /core | |
| parent | b86627ba3725b5cdf4b7ac0a4cb7f17f2eab08fb (diff) | |
Improve formatting; fix types; add struct field tags
Diffstat (limited to 'core')
| -rw-r--r-- | core/sys/windows/key_codes.odin | 8 | ||||
| -rw-r--r-- | core/sys/windows/netapi32.odin | 30 | ||||
| -rw-r--r-- | core/sys/windows/ole32.odin | 32 | ||||
| -rw-r--r-- | core/sys/windows/shcore.odin | 10 | ||||
| -rw-r--r-- | core/sys/windows/shell32.odin | 26 | ||||
| -rw-r--r-- | core/sys/windows/tlhelp.odin | 102 | ||||
| -rw-r--r-- | core/sys/windows/types.odin | 2421 |
7 files changed, 1319 insertions, 1310 deletions
diff --git a/core/sys/windows/key_codes.odin b/core/sys/windows/key_codes.odin index 0991ca4b3..a2910ecd1 100644 --- a/core/sys/windows/key_codes.odin +++ b/core/sys/windows/key_codes.odin @@ -3,11 +3,11 @@ package sys_windows // https://docs.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input KF_EXTENDED :: 0x0100 -KF_DLGMODE :: 0x0800 +KF_DLGMODE :: 0x0800 KF_MENUMODE :: 0x1000 -KF_ALTDOWN :: 0x2000 -KF_REPEAT :: 0x4000 -KF_UP :: 0x8000 +KF_ALTDOWN :: 0x2000 +KF_REPEAT :: 0x4000 +KF_UP :: 0x8000 // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes // Virtual Keys, Standard Set diff --git a/core/sys/windows/netapi32.odin b/core/sys/windows/netapi32.odin index 9442193ca..759c5847a 100644 --- a/core/sys/windows/netapi32.odin +++ b/core/sys/windows/netapi32.odin @@ -7,32 +7,32 @@ foreign import netapi32 "system:Netapi32.lib" foreign netapi32 { NetUserAdd :: proc( servername: wstring, - level: DWORD, - user_info: ^USER_INFO_1, // Perhaps make this a #raw_union with USER_INFO1..4 when we need the other levels. - parm_err: ^DWORD, + level: DWORD, + user_info: ^USER_INFO_1, // Perhaps make this a #raw_union with USER_INFO1..4 when we need the other levels. + parm_err: ^DWORD, ) -> NET_API_STATUS --- NetUserDel :: proc( servername: wstring, - username: wstring, + username: wstring, ) -> NET_API_STATUS --- NetUserGetInfo :: proc( servername: wstring, - username: wstring, - level: DWORD, - user_info: ^USER_INFO_1, + username: wstring, + level: DWORD, + user_info: ^USER_INFO_1, ) -> NET_API_STATUS --- NetLocalGroupAddMembers :: proc( - servername: wstring, - groupname: wstring, - level: DWORD, + servername: wstring, + groupname: wstring, + level: DWORD, group_members_info: ^LOCALGROUP_MEMBERS_INFO_0, // Actually a variably sized array of these. - totalentries: DWORD, + totalentries: DWORD, ) -> NET_API_STATUS --- NetLocalGroupDelMembers :: proc( - servername: wstring, - groupname: wstring, - level: DWORD, + servername: wstring, + groupname: wstring, + level: DWORD, group_members_info: ^LOCALGROUP_MEMBERS_INFO_0, // Actually a variably sized array of these. - totalentries: DWORD, + totalentries: DWORD, ) -> NET_API_STATUS --- }
\ No newline at end of file diff --git a/core/sys/windows/ole32.odin b/core/sys/windows/ole32.odin index 32cb6fd60..12cf40b81 100644 --- a/core/sys/windows/ole32.odin +++ b/core/sys/windows/ole32.odin @@ -41,32 +41,32 @@ LPUNKNOWN :: ^IUnknown @(default_calling_convention="system") foreign Ole32 { - CoInitialize :: proc(reserved: rawptr = nil) -> HRESULT --- + CoInitialize :: proc(reserved: rawptr = nil) -> HRESULT --- CoInitializeEx :: proc(reserved: rawptr = nil, co_init: COINIT = .APARTMENTTHREADED) -> HRESULT --- CoUninitialize :: proc() --- CoCreateInstance :: proc( - rclsid: REFCLSID, - pUnkOuter: LPUNKNOWN, + rclsid: REFCLSID, + pUnkOuter: LPUNKNOWN, dwClsContext: DWORD, - riid: REFIID, - ppv: ^LPVOID, + riid: REFIID, + ppv: ^LPVOID, ) -> HRESULT --- - CoTaskMemAlloc :: proc(cb: SIZE_T) -> rawptr --- + CoTaskMemAlloc :: proc(cb: SIZE_T) -> rawptr --- CoTaskMemRealloc :: proc(pv: rawptr, cb: SIZE_T) -> rawptr --- - CoTaskMemFree :: proc(pv: rawptr) --- + CoTaskMemFree :: proc(pv: rawptr) --- - CLSIDFromProgID :: proc(lpszProgID: LPCOLESTR, lpclsid: LPCLSID) -> HRESULT --- + CLSIDFromProgID :: proc(lpszProgID: LPCOLESTR, lpclsid: LPCLSID) -> HRESULT --- CLSIDFromProgIDEx :: proc(lpszProgID: LPCOLESTR, lpclsid: LPCLSID) -> HRESULT --- - CLSIDFromString :: proc(lpsz: LPOLESTR, pclsid: LPCLSID) -> HRESULT --- - IIDFromString :: proc(lpsz: LPOLESTR, lpiid: LPIID) -> HRESULT --- - ProgIDFromCLSID :: proc(clsid: REFCLSID, lplpszProgID: ^LPOLESTR) -> HRESULT --- - StringFromCLSID :: proc(rclsid: REFCLSID, lplpsz: ^LPOLESTR) -> HRESULT --- - StringFromGUID2 :: proc(rclsid: REFCLSID, lplpsz: LPOLESTR, cchMax: INT) -> INT --- - StringFromIID :: proc(rclsid: REFIID, lplpsz: ^LPOLESTR) -> HRESULT --- + CLSIDFromString :: proc(lpsz: LPOLESTR, pclsid: LPCLSID) -> HRESULT --- + IIDFromString :: proc(lpsz: LPOLESTR, lpiid: LPIID) -> HRESULT --- + ProgIDFromCLSID :: proc(clsid: REFCLSID, lplpszProgID: ^LPOLESTR) -> HRESULT --- + StringFromCLSID :: proc(rclsid: REFCLSID, lplpsz: ^LPOLESTR) -> HRESULT --- + StringFromGUID2 :: proc(rclsid: REFCLSID, lplpsz: LPOLESTR, cchMax: INT) -> INT --- + StringFromIID :: proc(rclsid: REFIID, lplpsz: ^LPOLESTR) -> HRESULT --- - PropVariantClear :: proc(pvar: ^PROPVARIANT) -> HRESULT --- - PropVariantCopy :: proc(pvarDest: ^PROPVARIANT, pvarSrc: ^PROPVARIANT) -> HRESULT --- + PropVariantClear :: proc(pvar: ^PROPVARIANT) -> HRESULT --- + PropVariantCopy :: proc(pvarDest: ^PROPVARIANT, pvarSrc: ^PROPVARIANT) -> HRESULT --- FreePropVariantArray :: proc(cVariants: ULONG, rgvars: ^PROPVARIANT) -> HRESULT --- } diff --git a/core/sys/windows/shcore.odin b/core/sys/windows/shcore.odin index 08a76ebe6..c7d784fe8 100644 --- a/core/sys/windows/shcore.odin +++ b/core/sys/windows/shcore.odin @@ -8,18 +8,18 @@ foreign import shcore "system:Shcore.lib" foreign shcore { GetProcessDpiAwareness :: proc(hprocess: HANDLE, value: ^PROCESS_DPI_AWARENESS) -> HRESULT --- SetProcessDpiAwareness :: proc(value: PROCESS_DPI_AWARENESS) -> HRESULT --- - GetDpiForMonitor :: proc(hmonitor: HMONITOR, dpiType: MONITOR_DPI_TYPE, dpiX: ^UINT, dpiY: ^UINT) -> HRESULT --- + GetDpiForMonitor :: proc(hmonitor: HMONITOR, dpiType: MONITOR_DPI_TYPE, dpiX: ^UINT, dpiY: ^UINT) -> HRESULT --- } PROCESS_DPI_AWARENESS :: enum DWORD { - PROCESS_DPI_UNAWARE = 0, - PROCESS_SYSTEM_DPI_AWARE = 1, + PROCESS_DPI_UNAWARE = 0, + PROCESS_SYSTEM_DPI_AWARE = 1, PROCESS_PER_MONITOR_DPI_AWARE = 2, } MONITOR_DPI_TYPE :: enum DWORD { MDT_EFFECTIVE_DPI = 0, - MDT_ANGULAR_DPI = 1, - MDT_RAW_DPI = 2, + MDT_ANGULAR_DPI = 1, + MDT_RAW_DPI = 2, MDT_DEFAULT, } diff --git a/core/sys/windows/shell32.odin b/core/sys/windows/shell32.odin index 54cee718c..c7d83f9f6 100644 --- a/core/sys/windows/shell32.odin +++ b/core/sys/windows/shell32.odin @@ -22,29 +22,29 @@ foreign shell32 { ) -> c_int --- SHFileOperationW :: proc(lpFileOp: LPSHFILEOPSTRUCTW) -> c_int --- SHGetFolderPathW :: proc(hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPWSTR) -> HRESULT --- - SHAppBarMessage :: proc(dwMessage: DWORD, pData: PAPPBARDATA) -> UINT_PTR --- + SHAppBarMessage :: proc(dwMessage: DWORD, pData: PAPPBARDATA) -> UINT_PTR --- Shell_NotifyIconW :: proc(dwMessage: DWORD, lpData: ^NOTIFYICONDATAW) -> BOOL --- - SHChangeNotify :: proc(wEventId: LONG, uFlags: UINT, dwItem1: LPCVOID, dwItem2: LPCVOID) --- + SHChangeNotify :: proc(wEventId: LONG, uFlags: UINT, dwItem1: LPCVOID, dwItem2: LPCVOID) --- SHGetKnownFolderIDList :: proc(rfid: REFKNOWNFOLDERID, dwFlags: /* KNOWN_FOLDER_FLAG */ DWORD, hToken: HANDLE, ppidl: rawptr) -> HRESULT --- - SHSetKnownFolderPath :: proc(rfid: REFKNOWNFOLDERID, dwFlags: /* KNOWN_FOLDER_FLAG */ DWORD, hToken: HANDLE, pszPath: PCWSTR ) -> HRESULT --- - SHGetKnownFolderPath :: proc(rfid: REFKNOWNFOLDERID, dwFlags: /* KNOWN_FOLDER_FLAG */ DWORD, hToken: HANDLE, ppszPath: ^LPWSTR) -> HRESULT --- + SHSetKnownFolderPath :: proc(rfid: REFKNOWNFOLDERID, dwFlags: /* KNOWN_FOLDER_FLAG */ DWORD, hToken: HANDLE, pszPath: PCWSTR ) -> HRESULT --- + SHGetKnownFolderPath :: proc(rfid: REFKNOWNFOLDERID, dwFlags: /* KNOWN_FOLDER_FLAG */ DWORD, hToken: HANDLE, ppszPath: ^LPWSTR) -> HRESULT --- - ExtractIconExW :: proc(pszFile: LPCWSTR, nIconIndex: INT, phiconLarge: ^HICON, phiconSmall: ^HICON, nIcons: UINT) -> UINT --- + ExtractIconExW :: proc(pszFile: LPCWSTR, nIconIndex: INT, phiconLarge: ^HICON, phiconSmall: ^HICON, nIcons: UINT) -> UINT --- DragAcceptFiles :: proc(hWnd: HWND, fAccept: BOOL) --- - DragQueryPoint :: proc(hDrop: HDROP, ppt: ^POINT) -> BOOL --- - DragQueryFileW :: proc(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT) -> UINT --- - DragFinish :: proc(hDrop: HDROP) --- // @New + DragQueryPoint :: proc(hDrop: HDROP, ppt: ^POINT) -> BOOL --- + DragQueryFileW :: proc(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT) -> UINT --- + DragFinish :: proc(hDrop: HDROP) --- // @New } APPBARDATA :: struct { - cbSize: DWORD, - hWnd: HWND, + cbSize: DWORD, + hWnd: HWND, uCallbackMessage: UINT, - uEdge: UINT, - rc: RECT, - lParam: LPARAM, + uEdge: UINT, + rc: RECT, + lParam: LPARAM, } PAPPBARDATA :: ^APPBARDATA diff --git a/core/sys/windows/tlhelp.odin b/core/sys/windows/tlhelp.odin index 006c9c330..b23b4b06a 100644 --- a/core/sys/windows/tlhelp.odin +++ b/core/sys/windows/tlhelp.odin @@ -5,22 +5,22 @@ foreign import kernel32 "system:Kernel32.lib" @(default_calling_convention="system") foreign kernel32 { - CreateToolhelp32Snapshot :: proc (dwFlags: DWORD, th32ProcessID: DWORD) -> HANDLE --- - Process32FirstW :: proc (hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W) -> BOOL --- - Process32NextW :: proc (hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W) -> BOOL --- - Thread32First :: proc (hSnapshot: HANDLE, lpte: LPTHREADENTRY32) -> BOOL --- - Thread32Next :: proc (hSnapshot: HANDLE, lpte: LPTHREADENTRY32) -> BOOL --- - Module32FirstW :: proc (hSnapshot: HANDLE, lpme: LPMODULEENTRY32W) -> BOOL --- - Module32NextW :: proc (hSnapshot: HANDLE, lpme: LPMODULEENTRY32W) -> BOOL --- - Heap32ListFirst :: proc (hSnapshot: HANDLE, lphl: LPHEAPLIST32) -> BOOL --- - Heap32ListNext :: proc (hSnapshot: HANDLE, lphl: LPHEAPLIST32) -> BOOL --- - Heap32First :: proc (lphe: LPHEAPENTRY32, th32ProcessID: DWORD, th32HeapID: ULONG_PTR) -> BOOL --- - Heap32Next :: proc (lphe: LPHEAPENTRY32) -> BOOL --- - Toolhelp32ReadProcessMemory :: proc ( - th32ProcessID: DWORD, - lpBaseAddress: LPCVOID, - lpBuffer: LPVOID, - cbRead: SIZE_T, + CreateToolhelp32Snapshot :: proc(dwFlags: DWORD, th32ProcessID: DWORD) -> HANDLE --- + Process32FirstW :: proc(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W) -> BOOL --- + Process32NextW :: proc(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W) -> BOOL --- + Thread32First :: proc(hSnapshot: HANDLE, lpte: LPTHREADENTRY32) -> BOOL --- + Thread32Next :: proc(hSnapshot: HANDLE, lpte: LPTHREADENTRY32) -> BOOL --- + Module32FirstW :: proc(hSnapshot: HANDLE, lpme: LPMODULEENTRY32W) -> BOOL --- + Module32NextW :: proc(hSnapshot: HANDLE, lpme: LPMODULEENTRY32W) -> BOOL --- + Heap32ListFirst :: proc(hSnapshot: HANDLE, lphl: LPHEAPLIST32) -> BOOL --- + Heap32ListNext :: proc(hSnapshot: HANDLE, lphl: LPHEAPLIST32) -> BOOL --- + Heap32First :: proc(lphe: LPHEAPENTRY32, th32ProcessID: DWORD, th32HeapID: ULONG_PTR) -> BOOL --- + Heap32Next :: proc(lphe: LPHEAPENTRY32) -> BOOL --- + Toolhelp32ReadProcessMemory :: proc( + th32ProcessID: DWORD, + lpBaseAddress: LPCVOID, + lpBuffer: LPVOID, + cbRead: SIZE_T, lpNumberOfBytesRead: ^SIZE_T, ) -> BOOL --- } @@ -36,66 +36,66 @@ TH32CS_SNAPMODULE32 :: 0x00000010 TH32CS_SNAPALL :: TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE PROCESSENTRY32W :: struct { - dwSize: DWORD, - cntUsage: DWORD, - th32ProcessID: DWORD, - th32DefaultHeapID: ULONG_PTR, - th32ModuleID: DWORD, - cntThreads: DWORD, + dwSize: DWORD, + cntUsage: DWORD, + th32ProcessID: DWORD, + th32DefaultHeapID: ULONG_PTR, + th32ModuleID: DWORD, + cntThreads: DWORD, th32ParentProcessID: DWORD, - pcPriClassBase: LONG, - dwFlags: DWORD, - szExeFile: [MAX_PATH]WCHAR, + pcPriClassBase: LONG, + dwFlags: DWORD, + szExeFile: [MAX_PATH]WCHAR, } LPPROCESSENTRY32W :: ^PROCESSENTRY32W THREADENTRY32 :: struct { - dwSize: DWORD, - cntUsage: DWORD, - th32ThreadID: DWORD, + dwSize: DWORD, + cntUsage: DWORD, + th32ThreadID: DWORD, th32OwnerProcessID: DWORD, - tpBasePri: LONG, - tpDeltaPri: LONG, - dwFlags: DWORD, + tpBasePri: LONG, + tpDeltaPri: LONG, + dwFlags: DWORD, } LPTHREADENTRY32 :: ^THREADENTRY32 MODULEENTRY32W :: struct { - dwSize: DWORD, - th32ModuleID: DWORD, + dwSize: DWORD, + th32ModuleID: DWORD, th32ProcessID: DWORD, - GlblcntUsage: DWORD, - ProccntUsage: DWORD, - modBaseAddr: ^BYTE, - modBaseSize: DWORD, - hModule: HMODULE, - szModule: [MAX_MODULE_NAME32 + 1]WCHAR, - szExePath: [MAX_PATH]WCHAR, + GlblcntUsage: DWORD, + ProccntUsage: DWORD, + modBaseAddr: ^BYTE, + modBaseSize: DWORD, + hModule: HMODULE, + szModule: [MAX_MODULE_NAME32 + 1]WCHAR, + szExePath: [MAX_PATH]WCHAR, } LPMODULEENTRY32W :: ^MODULEENTRY32W HEAPLIST32 :: struct { - dwSize: SIZE_T, + dwSize: SIZE_T, th32ProcessID: DWORD, - th32HeapID: ULONG_PTR, - dwFlags: DWORD, + th32HeapID: ULONG_PTR, + dwFlags: DWORD, } LPHEAPLIST32 :: ^HEAPLIST32 HEAPENTRY32 :: struct { - dwSize: SIZE_T, - hHandle: HANDLE, - dwAddress: ULONG_PTR, - dwBlockSize: SIZE_T, - dwFlags: DWORD, - dwLockCount: DWORD, - dwResvd: DWORD, + dwSize: SIZE_T, + hHandle: HANDLE, + dwAddress: ULONG_PTR, + dwBlockSize: SIZE_T, + dwFlags: DWORD, + dwLockCount: DWORD, + dwResvd: DWORD, th32ProcessID: DWORD, - th32HeapID: ULONG_PTR, + th32HeapID: ULONG_PTR, } LPHEAPENTRY32 :: ^HEAPENTRY32 diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index 75e9fc695..21bb2c5c1 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -15,75 +15,75 @@ c_ushort :: c.ushort size_t :: c.size_t wchar_t :: c.wchar_t -DWORD :: c_ulong -DWORDLONG :: c.ulonglong -QWORD :: c.ulonglong -HANDLE :: distinct LPVOID -PHANDLE :: ^HANDLE -HINSTANCE :: HANDLE -HMODULE :: distinct HINSTANCE -HRESULT :: distinct LONG -HWND :: distinct HANDLE -HDC :: distinct HANDLE -HMONITOR :: distinct HANDLE -HICON :: distinct HANDLE -HCURSOR :: distinct HANDLE -HMENU :: distinct HANDLE -HBRUSH :: distinct HANDLE -HPEN :: distinct HANDLE -HGDIOBJ :: distinct HANDLE -HBITMAP :: distinct HANDLE -HPALETTE :: distinct HANDLE -HGLOBAL :: distinct HANDLE -HHOOK :: distinct HANDLE -HWINEVENTHOOK :: distinct HANDLE -HKEY :: distinct HANDLE -HDESK :: distinct HANDLE -HFONT :: distinct HANDLE -HRGN :: distinct HANDLE -HRSRC :: distinct HANDLE -HWINSTA :: distinct HANDLE -HACCEL :: distinct HANDLE -BOOL :: distinct b32 -BYTE :: distinct u8 -BOOLEAN :: distinct b8 -GROUP :: distinct c_uint -LARGE_INTEGER :: distinct c_longlong -ULARGE_INTEGER :: distinct c_ulonglong +DWORD :: c_ulong +DWORDLONG :: c.ulonglong +QWORD :: c.ulonglong +HANDLE :: distinct LPVOID +PHANDLE :: ^HANDLE +HINSTANCE :: HANDLE +HMODULE :: distinct HINSTANCE +HRESULT :: distinct LONG +HWND :: distinct HANDLE +HDC :: distinct HANDLE +HMONITOR :: distinct HANDLE +HICON :: distinct HANDLE +HCURSOR :: distinct HANDLE +HMENU :: distinct HANDLE +HBRUSH :: distinct HANDLE +HPEN :: distinct HANDLE +HGDIOBJ :: distinct HANDLE +HBITMAP :: distinct HANDLE +HPALETTE :: distinct HANDLE +HGLOBAL :: distinct HANDLE +HHOOK :: distinct HANDLE +HWINEVENTHOOK :: distinct HANDLE +HKEY :: distinct HANDLE +HDESK :: distinct HANDLE +HFONT :: distinct HANDLE +HRGN :: distinct HANDLE +HRSRC :: distinct HANDLE +HWINSTA :: distinct HANDLE +HACCEL :: distinct HANDLE +BOOL :: distinct b32 +BYTE :: distinct u8 +BOOLEAN :: distinct b8 +GROUP :: distinct c_uint +LARGE_INTEGER :: distinct c_longlong +ULARGE_INTEGER :: distinct c_ulonglong PULARGE_INTEGER :: ^ULARGE_INTEGER -LONG :: c_long -UINT :: c_uint -INT :: c_int -SHORT :: c_short -USHORT :: c_ushort -WCHAR :: wchar_t -SIZE_T :: uint -PSIZE_T :: ^SIZE_T -WORD :: u16 -CHAR :: c_char -ULONG_PTR :: uint -PULONG_PTR :: ^ULONG_PTR -LPULONG_PTR :: ^ULONG_PTR -DWORD_PTR :: ULONG_PTR -LONG_PTR :: int -INT_PTR :: int -UINT_PTR :: uintptr -ULONG :: c_ulong -ULONGLONG :: c_ulonglong -LONGLONG :: c_longlong -UCHAR :: BYTE -NTSTATUS :: c.long -COLORREF :: DWORD -LPCOLORREF :: ^COLORREF -LPARAM :: LONG_PTR -WPARAM :: UINT_PTR -LRESULT :: LONG_PTR -LPRECT :: ^RECT -LPPOINT :: ^POINT -LSTATUS :: LONG -PHKEY :: ^HKEY -PUSHORT :: ^USHORT -PCHAR :: ^CHAR +LONG :: c_long +UINT :: c_uint +INT :: c_int +SHORT :: c_short +USHORT :: c_ushort +WCHAR :: wchar_t +SIZE_T :: uint +PSIZE_T :: ^SIZE_T +WORD :: u16 +CHAR :: c_char +ULONG_PTR :: uint +PULONG_PTR :: ^ULONG_PTR +LPULONG_PTR :: ^ULONG_PTR +DWORD_PTR :: ULONG_PTR +LONG_PTR :: int +INT_PTR :: int +UINT_PTR :: uintptr +ULONG :: c_ulong +ULONGLONG :: c_ulonglong +LONGLONG :: c_longlong +UCHAR :: BYTE +NTSTATUS :: c.long +COLORREF :: DWORD +LPCOLORREF :: ^COLORREF +LPARAM :: LONG_PTR +WPARAM :: UINT_PTR +LRESULT :: LONG_PTR +LPRECT :: ^RECT +LPPOINT :: ^POINT +LSTATUS :: LONG +PHKEY :: ^HKEY +PUSHORT :: ^USHORT +PCHAR :: ^CHAR UINT8 :: u8 UINT16 :: u16 @@ -101,68 +101,71 @@ LONG32 :: i32 ULONG64 :: u64 LONG64 :: i64 -DWORD64 :: u64 +DWORD64 :: u64 PDWORD64 :: ^DWORD64 PDWORD_PTR :: ^DWORD_PTR -ATOM :: distinct WORD +ATOM :: distinct WORD wstring :: cstring16 PWSTR :: cstring16 -PBYTE :: ^BYTE -LPBYTE :: ^BYTE -PBOOL :: ^BOOL -LPBOOL :: ^BOOL -LPCSTR :: cstring -LPCWSTR :: wstring -LPCTSTR :: wstring -LPDWORD :: ^DWORD -PCSTR :: cstring -PCWSTR :: wstring -PDWORD :: ^DWORD -LPHANDLE :: ^HANDLE -LPOVERLAPPED :: ^OVERLAPPED +PBYTE :: ^BYTE +LPBYTE :: ^BYTE +PBOOL :: ^BOOL +LPBOOL :: ^BOOL +LPCSTR :: cstring +LPCWSTR :: wstring +LPCTSTR :: wstring +LPDWORD :: ^DWORD +PCSTR :: cstring +PCWSTR :: wstring +PDWORD :: ^DWORD +LPHANDLE :: ^HANDLE +LPOVERLAPPED :: ^OVERLAPPED LPPROCESS_INFORMATION :: ^PROCESS_INFORMATION -PSECURITY_ATTRIBUTES :: ^SECURITY_ATTRIBUTES +PSECURITY_ATTRIBUTES :: ^SECURITY_ATTRIBUTES LPSECURITY_ATTRIBUTES :: ^SECURITY_ATTRIBUTES -LPSTARTUPINFOW :: ^STARTUPINFOW -LPTRACKMOUSEEVENT :: ^TRACKMOUSEEVENT -VOID :: rawptr -PVOID :: rawptr -LPVOID :: rawptr -PINT :: ^INT -LPINT :: ^INT -PUINT :: ^UINT -LPUINT :: ^UINT -LPWCH :: ^WCHAR -LPWORD :: ^WORD -PULONG :: ^ULONG -LPWIN32_FIND_DATAW :: ^WIN32_FIND_DATAW -LPWSADATA :: ^WSADATA -LPWSAPROTOCOL_INFO :: ^WSAPROTOCOL_INFO -LPSTR :: ^CHAR -LPWSTR :: ^WCHAR -OLECHAR :: WCHAR -BSTR :: ^OLECHAR -LPOLESTR :: cstring16 -LPCOLESTR :: LPCSTR +LPSTARTUPINFOW :: ^STARTUPINFOW +LPTRACKMOUSEEVENT :: ^TRACKMOUSEEVENT +VOID :: rawptr +PVOID :: rawptr +LPVOID :: rawptr +PINT :: ^INT +LPINT :: ^INT +PUINT :: ^UINT +LPUINT :: ^UINT +LPWCH :: ^WCHAR +LPWORD :: ^WORD +PULONG :: ^ULONG +LPWIN32_FIND_DATAW :: ^WIN32_FIND_DATAW +LPWSADATA :: ^WSADATA +LPWSAPROTOCOL_INFO :: ^WSAPROTOCOL_INFO +LPSTR :: ^CHAR +LPWSTR :: ^WCHAR +OLECHAR :: WCHAR +BSTR :: ^OLECHAR + +LPOLESTR :: cstring16 +LPCOLESTR :: LPCSTR LPFILETIME :: ^FILETIME -LPWSABUF :: ^WSABUF +LPWSABUF :: ^WSABUF + LPWSAOVERLAPPED :: distinct rawptr LPWSAOVERLAPPED_COMPLETION_ROUTINE :: distinct rawptr + LPCVOID :: rawptr -SCODE :: LONG -PSCODE :: ^SCODE +SCODE :: LONG +PSCODE :: ^SCODE -PACCESS_TOKEN :: PVOID +PACCESS_TOKEN :: PVOID PSECURITY_DESCRIPTOR :: PVOID -PSID :: PVOID -PCLAIMS_BLOB :: PVOID +PSID :: PVOID +PCLAIMS_BLOB :: PVOID PCONDITION_VARIABLE :: ^CONDITION_VARIABLE -PLARGE_INTEGER :: ^LARGE_INTEGER -PSRWLOCK :: ^SRWLOCK +PLARGE_INTEGER :: ^LARGE_INTEGER +PSRWLOCK :: ^SRWLOCK CREATE_WAITABLE_TIMER_MANUAL_RESET :: 0x00000001 CREATE_WAITABLE_TIMER_HIGH_RESOLUTION :: 0x00000002 @@ -183,28 +186,28 @@ LPSIZE :: ^SIZE MAXLONG :: 0x7fffffff -FILE_ATTRIBUTE_READONLY: DWORD : 0x00000001 -FILE_ATTRIBUTE_HIDDEN: DWORD : 0x00000002 -FILE_ATTRIBUTE_SYSTEM: DWORD : 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: DWORD : 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: DWORD : 0x00000020 -FILE_ATTRIBUTE_DEVICE: DWORD : 0x00000040 -FILE_ATTRIBUTE_NORMAL: DWORD : 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: DWORD : 0x00000100 -FILE_ATTRIBUTE_SPARSE_FILE: DWORD : 0x00000200 -FILE_ATTRIBUTE_REPARSE_Point: DWORD : 0x00000400 -FILE_ATTRIBUTE_REPARSE_POINT: DWORD : 0x00000400 -FILE_ATTRIBUTE_COMPRESSED: DWORD : 0x00000800 -FILE_ATTRIBUTE_OFFLINE: DWORD : 0x00001000 -FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: DWORD : 0x00002000 -FILE_ATTRIBUTE_ENCRYPTED: DWORD : 0x00004000 - -FILE_SHARE_READ: DWORD : 0x00000001 -FILE_SHARE_WRITE: DWORD : 0x00000002 -FILE_SHARE_DELETE: DWORD : 0x00000004 -FILE_GENERIC_ALL: DWORD : 0x10000000 -FILE_GENERIC_EXECUTE: DWORD : 0x20000000 -FILE_GENERIC_READ: DWORD : 0x80000000 +FILE_ATTRIBUTE_READONLY : DWORD : 0x00000001 +FILE_ATTRIBUTE_HIDDEN : DWORD : 0x00000002 +FILE_ATTRIBUTE_SYSTEM : DWORD : 0x00000004 +FILE_ATTRIBUTE_DIRECTORY : DWORD : 0x00000010 +FILE_ATTRIBUTE_ARCHIVE : DWORD : 0x00000020 +FILE_ATTRIBUTE_DEVICE : DWORD : 0x00000040 +FILE_ATTRIBUTE_NORMAL : DWORD : 0x00000080 +FILE_ATTRIBUTE_TEMPORARY : DWORD : 0x00000100 +FILE_ATTRIBUTE_SPARSE_FILE : DWORD : 0x00000200 +FILE_ATTRIBUTE_REPARSE_Point : DWORD : 0x00000400 +FILE_ATTRIBUTE_REPARSE_POINT : DWORD : 0x00000400 +FILE_ATTRIBUTE_COMPRESSED : DWORD : 0x00000800 +FILE_ATTRIBUTE_OFFLINE : DWORD : 0x00001000 +FILE_ATTRIBUTE_NOT_CONTENT_INDEXED : DWORD : 0x00002000 +FILE_ATTRIBUTE_ENCRYPTED : DWORD : 0x00004000 + +FILE_SHARE_READ : DWORD : 0x00000001 +FILE_SHARE_WRITE : DWORD : 0x00000002 +FILE_SHARE_DELETE : DWORD : 0x00000004 +FILE_GENERIC_ALL : DWORD : 0x10000000 +FILE_GENERIC_EXECUTE : DWORD : 0x20000000 +FILE_GENERIC_READ : DWORD : 0x80000000 FILE_ALL_ACCESS :: STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF FILE_ACTION_ADDED :: 0x00000001 @@ -222,11 +225,11 @@ FILE_NOTIFY_CHANGE_LAST_ACCESS :: 0x00000020 FILE_NOTIFY_CHANGE_CREATION :: 0x00000040 FILE_NOTIFY_CHANGE_SECURITY :: 0x00000100 -CREATE_NEW: DWORD : 1 -CREATE_ALWAYS: DWORD : 2 -OPEN_ALWAYS: DWORD : 4 -OPEN_EXISTING: DWORD : 3 -TRUNCATE_EXISTING: DWORD : 5 +CREATE_NEW : DWORD : 1 +CREATE_ALWAYS : DWORD : 2 +OPEN_ALWAYS : DWORD : 4 +OPEN_EXISTING : DWORD : 3 +TRUNCATE_EXISTING : DWORD : 5 FILE_READ_DATA : DWORD : 0x00000001 FILE_LIST_DIRECTORY : DWORD : 0x00000001 @@ -248,11 +251,12 @@ GENERIC_WRITE : DWORD : 0x40000000 GENERIC_EXECUTE : DWORD : 0x20000000 GENERIC_ALL : DWORD : 0x10000000 -FILE_GENERIC_WRITE: DWORD : STANDARD_RIGHTS_WRITE | - FILE_WRITE_DATA | +FILE_GENERIC_WRITE : DWORD : \ + STANDARD_RIGHTS_WRITE | + FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | - FILE_WRITE_EA | - FILE_APPEND_DATA | + FILE_WRITE_EA | + FILE_APPEND_DATA | SYNCHRONIZE SECURITY_SQOS_PRESENT: DWORD : 0x00100000 @@ -297,13 +301,13 @@ POWER_REQUEST_CONTEXT_DETAILED_STRING :: DIAGNOSTIC_REASON_DETAILED_STRING REASON_CONTEXT :: struct { Version: ULONG, - Flags: DWORD, + Flags: DWORD, Reason: struct #raw_union { Detailed: struct { LocalizedReasonModule: HMODULE, - LocalizedReasonId: ULONG, - ReasonStringCount: ULONG, - ReasonStrings: ^LPWSTR, + LocalizedReasonId: ULONG, + ReasonStringCount: ULONG, + ReasonStrings: [^]LPWSTR `fmt:"v,ReasonStringCount"`, }, SimpleReasonString: LPWSTR, }, @@ -324,9 +328,9 @@ RRF_RT_ANY :: 0x0000ffff RRF_NOEXPAND :: 0x10000000 RRF_ZEROONFAILURE :: 0x20000000 -ACCESS_MASK :: DWORD +ACCESS_MASK :: DWORD PACCESS_MASK :: ^ACCESS_MASK -REGSAM :: ACCESS_MASK +REGSAM :: ACCESS_MASK // Reserved Key Handles. HKEY_CLASSES_ROOT :: HKEY(uintptr(0x80000000)) @@ -368,12 +372,13 @@ KEY_WOW64_RES :: 0x0300 KEY_READ :: (STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY) & (~SYNCHRONIZE) KEY_WRITE :: (STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY) & (~SYNCHRONIZE) KEY_EXECUTE :: (KEY_READ) & (~SYNCHRONIZE) -KEY_ALL_ACCESS :: (STANDARD_RIGHTS_ALL | - KEY_QUERY_VALUE | - KEY_SET_VALUE | - KEY_CREATE_SUB_KEY | +KEY_ALL_ACCESS :: ( + STANDARD_RIGHTS_ALL | + KEY_QUERY_VALUE | + KEY_SET_VALUE | + KEY_CREATE_SUB_KEY | KEY_ENUMERATE_SUB_KEYS | - KEY_NOTIFY | + KEY_NOTIFY | KEY_CREATE_LINK) & (~SYNCHRONIZE) // Open/Create Options @@ -385,17 +390,19 @@ REG_OPTION_BACKUP_RESTORE :: 0x00000004 REG_OPTION_OPEN_LINK :: 0x00000008 REG_OPTION_DONT_VIRTUALIZE :: 0x00000010 -REG_LEGAL_OPTION :: REG_OPTION_RESERVED | - REG_OPTION_NON_VOLATILE | - REG_OPTION_VOLATILE | - REG_OPTION_CREATE_LINK | +REG_LEGAL_OPTION :: \ + REG_OPTION_RESERVED | + REG_OPTION_NON_VOLATILE | + REG_OPTION_VOLATILE | + REG_OPTION_CREATE_LINK | REG_OPTION_BACKUP_RESTORE | - REG_OPTION_OPEN_LINK | + REG_OPTION_OPEN_LINK | REG_OPTION_DONT_VIRTUALIZE -REG_OPEN_LEGAL_OPTION :: REG_OPTION_RESERVED | +REG_OPEN_LEGAL_OPTION :: \ + REG_OPTION_RESERVED | REG_OPTION_BACKUP_RESTORE | - REG_OPTION_OPEN_LINK | + REG_OPTION_OPEN_LINK | REG_OPTION_DONT_VIRTUALIZE // Key creation/open disposition @@ -437,10 +444,11 @@ REG_NOTIFY_CHANGE_LAST_SET :: 0x00000004 REG_NOTIFY_CHANGE_SECURITY :: 0x00000008 REG_NOTIFY_THREAD_AGNOSTIC :: 0x10000000 -REG_LEGAL_CHANGE_FILTER :: REG_NOTIFY_CHANGE_NAME | +REG_LEGAL_CHANGE_FILTER :: \ + REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_ATTRIBUTES | - REG_NOTIFY_CHANGE_LAST_SET | - REG_NOTIFY_CHANGE_SECURITY | + REG_NOTIFY_CHANGE_LAST_SET | + REG_NOTIFY_CHANGE_SECURITY | REG_NOTIFY_THREAD_AGNOSTIC // Predefined Value Types. @@ -461,9 +469,9 @@ REG_QWORD_LITTLE_ENDIAN :: 11 BSMINFO :: struct { cbSize: UINT, - hdesk: HDESK, - hwnd: HWND, - luid: LUID, + hdesk: HDESK, + hwnd: HWND, + luid: LUID, } PBSMINFO :: ^BSMINFO @@ -545,37 +553,37 @@ COLOR_BTNHILIGHT :: COLOR_BTNHIGHLIGHT // Common Control Notification Code Ranges NM_FIRST :: 0 -NM_LAST :: ~DWORD(99 - 1) -LVN_FIRST :: ~DWORD(100 - 1) -LVN_LAST :: ~DWORD(199 - 1) -HDN_FIRST :: ~DWORD(300 - 1) -HDN_LAST :: ~DWORD(399 - 1) -TVN_FIRST :: ~DWORD(400 - 1) -TVN_LAST :: ~DWORD(499 - 1) -TTN_FIRST :: ~DWORD(520 - 1) -TTN_LAST :: ~DWORD(549 - 1) -TCN_FIRST :: ~DWORD(550 - 1) -TCN_LAST :: ~DWORD(580 - 1) -CDN_FIRST :: ~DWORD(601 - 1) -CDN_LAST :: ~DWORD(699 - 1) -TBN_FIRST :: ~DWORD(700 - 1) -TBN_LAST :: ~DWORD(720 - 1) -UDN_FIRST :: ~DWORD(721 - 1) -UDN_LAST :: ~DWORD(740 - 1) -MCN_FIRST :: ~DWORD(750 - 1) -MCN_LAST :: ~DWORD(759 - 1) -DTN_FIRST :: ~DWORD(760 - 1) -DTN_LAST :: ~DWORD(799 - 1) -CBEN_FIRST :: ~DWORD(800 - 1) -CBEN_LAST :: ~DWORD(830 - 1) -RBN_FIRST :: ~DWORD(831 - 1) -RBN_LAST :: ~DWORD(859 - 1) -IPN_FIRST :: ~DWORD(860 - 1) -IPN_LAST :: ~DWORD(879 - 1) -SBN_FIRST :: ~DWORD(880 - 1) -SBN_LAST :: ~DWORD(899 - 1) -PGN_FIRST :: ~DWORD(900 - 1) -PGN_LAST :: ~DWORD(950 - 1) +NM_LAST :: ~DWORD( 99 - 1) +LVN_FIRST :: ~DWORD( 100 - 1) +LVN_LAST :: ~DWORD( 199 - 1) +HDN_FIRST :: ~DWORD( 300 - 1) +HDN_LAST :: ~DWORD( 399 - 1) +TVN_FIRST :: ~DWORD( 400 - 1) +TVN_LAST :: ~DWORD( 499 - 1) +TTN_FIRST :: ~DWORD( 520 - 1) +TTN_LAST :: ~DWORD( 549 - 1) +TCN_FIRST :: ~DWORD( 550 - 1) +TCN_LAST :: ~DWORD( 580 - 1) +CDN_FIRST :: ~DWORD( 601 - 1) +CDN_LAST :: ~DWORD( 699 - 1) +TBN_FIRST :: ~DWORD( 700 - 1) +TBN_LAST :: ~DWORD( 720 - 1) +UDN_FIRST :: ~DWORD( 721 - 1) +UDN_LAST :: ~DWORD( 740 - 1) +MCN_FIRST :: ~DWORD( 750 - 1) +MCN_LAST :: ~DWORD( 759 - 1) +DTN_FIRST :: ~DWORD( 760 - 1) +DTN_LAST :: ~DWORD( 799 - 1) +CBEN_FIRST :: ~DWORD( 800 - 1) +CBEN_LAST :: ~DWORD( 830 - 1) +RBN_FIRST :: ~DWORD( 831 - 1) +RBN_LAST :: ~DWORD( 859 - 1) +IPN_FIRST :: ~DWORD( 860 - 1) +IPN_LAST :: ~DWORD( 879 - 1) +SBN_FIRST :: ~DWORD( 880 - 1) +SBN_LAST :: ~DWORD( 899 - 1) +PGN_FIRST :: ~DWORD( 900 - 1) +PGN_LAST :: ~DWORD( 950 - 1) WMN_FIRST :: ~DWORD(1000 - 1) WMN_LAST :: ~DWORD(1200 - 1) BCN_FIRST :: ~DWORD(1250 - 1) @@ -1255,61 +1263,61 @@ HOOKPROC :: #type proc "system" (code: c_int, wParam: WPARAM, lParam: LPARAM) -> WINEVENTPROC :: #type proc "system" ( hWinEventHook: HWINEVENTHOOK, - event: DWORD, - hwnd: HWND, - idObject, idChild: LONG, + event: DWORD, + hwnd: HWND, + idObject, idChild: LONG, idEventThread, dwmsEventTime: DWORD, ) CWPRETSTRUCT :: struct { lResult: LRESULT, - lParam: LPARAM, - wParam: WPARAM, + lParam: LPARAM, + wParam: WPARAM, message: UINT, - hwnd: HWND, + hwnd: HWND, } MSLLHOOKSTRUCT :: struct { - pt: POINT, - mouseData: DWORD, - flags: DWORD, - time: DWORD, + pt: POINT, + mouseData: DWORD, + flags: DWORD, + time: DWORD, dwExtraInfo: ULONG_PTR, } KBDLLHOOKSTRUCT :: struct { - vkCode: DWORD, - scanCode: DWORD, - flags: DWORD, - time: DWORD, + vkCode: DWORD, + scanCode: DWORD, + flags: DWORD, + time: DWORD, dwExtraInfo: ULONG_PTR, } MOUSEINPUT :: struct { - dx: LONG, - dy: LONG, - mouseData: DWORD, - dwFlags: DWORD, - time: DWORD, + dx: LONG, + dy: LONG, + mouseData: DWORD, + dwFlags: DWORD, + time: DWORD, dwExtraInfo: ULONG_PTR, } KEYBDINPUT :: struct { - wVk: WORD, - wScan: WORD, - dwFlags: DWORD, - time: DWORD, + wVk: WORD, + wScan: WORD, + dwFlags: DWORD, + time: DWORD, dwExtraInfo: ULONG_PTR, } HARDWAREINPUT :: struct { - uMsg: DWORD, + uMsg: DWORD, wParamL: WORD, wParamH: WORD, } INPUT_TYPE :: enum DWORD { - MOUSE = 0, + MOUSE = 0, KEYBOARD = 1, HARDWARE = 2, } @@ -1317,128 +1325,128 @@ INPUT_TYPE :: enum DWORD { INPUT :: struct { type: INPUT_TYPE, using _: struct #raw_union { - mi: MOUSEINPUT, - ki: KEYBDINPUT, - hi: HARDWAREINPUT, + mi: MOUSEINPUT `raw_union_tag:"type=MOUSE"`, + ki: KEYBDINPUT `raw_union_tag:"type=KEYBOARD"`, + hi: HARDWAREINPUT `raw_union_tag:"type=HARDWARE"`, }, } -MOUSEEVENTF_MOVE :: 0x0001 -MOUSEEVENTF_LEFTDOWN :: 0x0002 -MOUSEEVENTF_LEFTUP :: 0x0004 -MOUSEEVENTF_RIGHTDOWN :: 0x0008 -MOUSEEVENTF_RIGHTUP :: 0x0010 -MOUSEEVENTF_MIDDLEDOWN :: 0x0020 -MOUSEEVENTF_MIDDLEUP :: 0x0040 -MOUSEEVENTF_XDOWN :: 0x0080 -MOUSEEVENTF_XUP :: 0x0100 -MOUSEEVENTF_WHEEL :: 0x0800 -MOUSEEVENTF_HWHEEL :: 0x1000 +MOUSEEVENTF_MOVE :: 0x0001 +MOUSEEVENTF_LEFTDOWN :: 0x0002 +MOUSEEVENTF_LEFTUP :: 0x0004 +MOUSEEVENTF_RIGHTDOWN :: 0x0008 +MOUSEEVENTF_RIGHTUP :: 0x0010 +MOUSEEVENTF_MIDDLEDOWN :: 0x0020 +MOUSEEVENTF_MIDDLEUP :: 0x0040 +MOUSEEVENTF_XDOWN :: 0x0080 +MOUSEEVENTF_XUP :: 0x0100 +MOUSEEVENTF_WHEEL :: 0x0800 +MOUSEEVENTF_HWHEEL :: 0x1000 MOUSEEVENTF_MOVE_NOCOALESCE :: 0x2000 -MOUSEEVENTF_VIRTUALDESK :: 0x4000 -MOUSEEVENTF_ABSOLUTE :: 0x8000 +MOUSEEVENTF_VIRTUALDESK :: 0x4000 +MOUSEEVENTF_ABSOLUTE :: 0x8000 WNDCLASSA :: struct { - style: UINT, - lpfnWndProc: WNDPROC, - cbClsExtra: c_int, - cbWndExtra: c_int, - hInstance: HINSTANCE, - hIcon: HICON, - hCursor: HCURSOR, + style: UINT, + lpfnWndProc: WNDPROC, + cbClsExtra: c_int, + cbWndExtra: c_int, + hInstance: HINSTANCE, + hIcon: HICON, + hCursor: HCURSOR, hbrBackground: HBRUSH, - lpszMenuName: LPCSTR, + lpszMenuName: LPCSTR, lpszClassName: LPCSTR, } WNDCLASSW :: struct { - style: UINT, - lpfnWndProc: WNDPROC, - cbClsExtra: c_int, - cbWndExtra: c_int, - hInstance: HINSTANCE, - hIcon: HICON, - hCursor: HCURSOR, + style: UINT, + lpfnWndProc: WNDPROC, + cbClsExtra: c_int, + cbWndExtra: c_int, + hInstance: HINSTANCE, + hIcon: HICON, + hCursor: HCURSOR, hbrBackground: HBRUSH, - lpszMenuName: LPCWSTR, + lpszMenuName: LPCWSTR, lpszClassName: LPCWSTR, } WNDCLASSEXA :: struct { - cbSize: UINT, - style: UINT, - lpfnWndProc: WNDPROC, - cbClsExtra: c_int, - cbWndExtra: c_int, - hInstance: HINSTANCE, - hIcon: HICON, - hCursor: HCURSOR, + cbSize: UINT, + style: UINT, + lpfnWndProc: WNDPROC, + cbClsExtra: c_int, + cbWndExtra: c_int, + hInstance: HINSTANCE, + hIcon: HICON, + hCursor: HCURSOR, hbrBackground: HBRUSH, - lpszMenuName: LPCSTR, + lpszMenuName: LPCSTR, lpszClassName: LPCSTR, - hIconSm: HICON, + hIconSm: HICON, } WNDCLASSEXW :: struct { - cbSize: UINT, - style: UINT, - lpfnWndProc: WNDPROC, - cbClsExtra: c_int, - cbWndExtra: c_int, - hInstance: HINSTANCE, - hIcon: HICON, - hCursor: HCURSOR, + cbSize: UINT, + style: UINT, + lpfnWndProc: WNDPROC, + cbClsExtra: c_int, + cbWndExtra: c_int, + hInstance: HINSTANCE, + hIcon: HICON, + hCursor: HCURSOR, hbrBackground: HBRUSH, - lpszMenuName: LPCWSTR, + lpszMenuName: LPCWSTR, lpszClassName: LPCWSTR, - hIconSm: HICON, + hIconSm: HICON, } MSG :: struct { - hwnd: HWND, + hwnd: HWND, message: UINT, - wParam: WPARAM, - lParam: LPARAM, - time: DWORD, - pt: POINT, + wParam: WPARAM, + lParam: LPARAM, + time: DWORD, + pt: POINT, } LPMSG :: ^MSG NOTIFYICONDATAW :: struct { - cbSize: DWORD, - hWnd: HWND, - uID: UINT, - uFlags: UINT, + cbSize: DWORD, + hWnd: HWND, + uID: UINT, + uFlags: UINT, uCallbackMessage: UINT, - hIcon: HICON, - szTip: [128]WCHAR, - dwState: DWORD, - dwStateMask: DWORD, - szInfo: [256]WCHAR, + hIcon: HICON, + szTip: [128]WCHAR, + dwState: DWORD, + dwStateMask: DWORD, + szInfo: [256]WCHAR, using _: struct #raw_union { uTimeout: UINT, uVersion: UINT, }, - szInfoTitle: [64]WCHAR, - dwInfoFlags: DWORD, - guidItem: GUID, + szInfoTitle: [64]WCHAR, + dwInfoFlags: DWORD, + guidItem: GUID, hBalloonIcon: HICON, } -NIF_MESSAGE :: 0x00000001 -NIF_ICON :: 0x00000002 -NIF_TIP :: 0x00000004 -NIF_STATE :: 0x00000008 -NIF_INFO :: 0x00000010 -NIF_GUID :: 0x00000020 +NIF_MESSAGE :: 0x00000001 +NIF_ICON :: 0x00000002 +NIF_TIP :: 0x00000004 +NIF_STATE :: 0x00000008 +NIF_INFO :: 0x00000010 +NIF_GUID :: 0x00000020 NIF_REALTIME :: 0x00000040 -NIF_SHOWTIP :: 0x00000080 +NIF_SHOWTIP :: 0x00000080 -NIM_ADD :: 0x00000000 -NIM_MODIFY :: 0x00000001 -NIM_DELETE :: 0x00000002 -NIM_SETFOCUS :: 0x00000003 +NIM_ADD :: 0x00000000 +NIM_MODIFY :: 0x00000001 +NIM_DELETE :: 0x00000002 +NIM_SETFOCUS :: 0x00000003 NIM_SETVERSION :: 0x00000004 // Menu flags for Add/Check/EnableMenuItem() @@ -1448,37 +1456,37 @@ MF_APPEND :: 0x00000100 MF_DELETE :: 0x00000200 MF_REMOVE :: 0x00001000 -MF_BYCOMMAND :: 0x00000000 +MF_BYCOMMAND :: 0x00000000 MF_BYPOSITION :: 0x00000400 MF_SEPARATOR :: 0x00000800 -MF_ENABLED :: 0x00000000 -MF_GRAYED :: 0x00000001 +MF_ENABLED :: 0x00000000 +MF_GRAYED :: 0x00000001 MF_DISABLED :: 0x00000002 -MF_UNCHECKED :: 0x00000000 -MF_CHECKED :: 0x00000008 +MF_UNCHECKED :: 0x00000000 +MF_CHECKED :: 0x00000008 MF_USECHECKBITMAPS :: 0x00000200 -MF_STRING :: 0x00000000 -MF_BITMAP :: 0x00000004 +MF_STRING :: 0x00000000 +MF_BITMAP :: 0x00000004 MF_OWNERDRAW :: 0x00000100 -MF_POPUP :: 0x00000010 +MF_POPUP :: 0x00000010 MF_MENUBARBREAK :: 0x00000020 -MF_MENUBREAK :: 0x00000040 +MF_MENUBREAK :: 0x00000040 MF_UNHILITE :: 0x00000000 -MF_HILITE :: 0x00000080 +MF_HILITE :: 0x00000080 -MF_DEFAULT :: 0x00001000 -MF_SYSMENU :: 0x00002000 -MF_HELP :: 0x00004000 +MF_DEFAULT :: 0x00001000 +MF_SYSMENU :: 0x00002000 +MF_HELP :: 0x00004000 MF_RIGHTJUSTIFY :: 0x00004000 MF_MOUSESELECT :: 0x00008000 -MF_END :: 0x00000080 // Obsolete -- only used by old RES files +MF_END :: 0x00000080 // Obsolete -- only used by old RES files // Menu flags for Add/Check/EnableMenuItem() MFS_GRAYED :: 0x00000003 @@ -1491,27 +1499,27 @@ MFS_UNHILITE :: MF_UNHILITE MFS_DEFAULT :: MF_DEFAULT // Flags for TrackPopupMenu -TPM_LEFTBUTTON :: 0x0000 -TPM_RIGHTBUTTON :: 0x0002 -TPM_LEFTALIGN :: 0x0000 -TPM_CENTERALIGN :: 0x0004 -TPM_RIGHTALIGN :: 0x0008 -TPM_TOPALIGN :: 0x0000 +TPM_LEFTBUTTON :: 0x0000 +TPM_RIGHTBUTTON :: 0x0002 +TPM_LEFTALIGN :: 0x0000 +TPM_CENTERALIGN :: 0x0004 +TPM_RIGHTALIGN :: 0x0008 +TPM_TOPALIGN :: 0x0000 TPM_VCENTERALIGN :: 0x0010 -TPM_BOTTOMALIGN :: 0x0020 +TPM_BOTTOMALIGN :: 0x0020 -TPM_HORIZONTAL :: 0x0000 /* Horz alignment matters more */ -TPM_VERTICAL :: 0x0040 /* Vert alignment matters more */ -TPM_NONOTIFY :: 0x0080 /* Don't send any notification msgs */ -TPM_RETURNCMD :: 0x0100 -TPM_RECURSE :: 0x0001 +TPM_HORIZONTAL :: 0x0000 /* Horz alignment matters more */ +TPM_VERTICAL :: 0x0040 /* Vert alignment matters more */ +TPM_NONOTIFY :: 0x0080 /* Don't send any notification msgs */ +TPM_RETURNCMD :: 0x0100 +TPM_RECURSE :: 0x0001 TPM_HORPOSANIMATION :: 0x0400 TPM_HORNEGANIMATION :: 0x0800 TPM_VERPOSANIMATION :: 0x1000 TPM_VERNEGANIMATION :: 0x2000 -TPM_NOANIMATION :: 0x4000 -TPM_LAYOUTRTL :: 0x8000 -TPM_WORKAREA :: 0x10000 +TPM_NOANIMATION :: 0x4000 +TPM_LAYOUTRTL :: 0x8000 +TPM_WORKAREA :: 0x10000 // WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes HTERROR :: -2 @@ -1545,42 +1553,42 @@ HTCLOSE :: 20 HTHELP :: 21 TEXTMETRICW :: struct { - tmHeight: LONG, - tmAscent: LONG, - tmDescent: LONG, - tmInternalLeading: LONG, - tmExternalLeading: LONG, - tmAveCharWidth: LONG, - tmMaxCharWidth: LONG, - tmWeight: LONG, - tmOverhang: LONG, + tmHeight: LONG, + tmAscent: LONG, + tmDescent: LONG, + tmInternalLeading: LONG, + tmExternalLeading: LONG, + tmAveCharWidth: LONG, + tmMaxCharWidth: LONG, + tmWeight: LONG, + tmOverhang: LONG, tmDigitizedAspectX: LONG, tmDigitizedAspectY: LONG, - tmFirstChar: WCHAR, - tmLastChar: WCHAR, - tmDefaultChar: WCHAR, - tmBreakChar: WCHAR, - tmItalic: BYTE, - tmUnderlined: BYTE, - tmStruckOut: BYTE, - tmPitchAndFamily: BYTE, - tmCharSet: BYTE, + tmFirstChar: WCHAR, + tmLastChar: WCHAR, + tmDefaultChar: WCHAR, + tmBreakChar: WCHAR, + tmItalic: BYTE, + tmUnderlined: BYTE, + tmStruckOut: BYTE, + tmPitchAndFamily: BYTE, + tmCharSet: BYTE, } LPTEXTMETRICW :: ^TEXTMETRICW PAINTSTRUCT :: struct { - hdc: HDC, - fErase: BOOL, - rcPaint: RECT, - fRestore: BOOL, - fIncUpdate: BOOL, + hdc: HDC, + fErase: BOOL, + rcPaint: RECT, + fRestore: BOOL, + fIncUpdate: BOOL, rgbReserved: [32]BYTE, } TRACKMOUSEEVENT :: struct { - cbSize: DWORD, - dwFlags: DWORD, - hwndTrack: HWND, + cbSize: DWORD, + dwFlags: DWORD, + hwndTrack: HWND, dwHoverTime: DWORD, } @@ -1640,16 +1648,16 @@ MAX_LINKID_TEXT :: 48 L_MAX_URL_LENGTH :: 2048 + 32 + len("://") LITEM :: struct { - mask: UINT, - iLink: c_int, - state: UINT, + mask: UINT, + iLink: c_int, + state: UINT, stateMask: UINT, - szID: [MAX_LINKID_TEXT]WCHAR, - szUrl: [L_MAX_URL_LENGTH]WCHAR, + szID: [MAX_LINKID_TEXT]WCHAR, + szUrl: [L_MAX_URL_LENGTH]WCHAR, } NMLINK :: struct { - hdr: NMHDR, + hdr: NMHDR, item: LITEM, } @@ -1660,12 +1668,12 @@ NMHDR :: struct { } NMCUSTOMDRAW :: struct { - hdr: NMHDR, + hdr: NMHDR, dwDrawStage: DWORD, - hdc: HDC, - rc: RECT, - dwItemSpec: DWORD_PTR, - uItemState: UINT, + hdc: HDC, + rc: RECT, + dwItemSpec: DWORD_PTR, + uItemState: UINT, lItemlParam: LPARAM, } @@ -1701,14 +1709,14 @@ NM_TVSTATEIMAGECHANGING :: NM_OUTOFMEMORY-23 // uses NMTVSTATEIMAGECHANGING stru PCZZWSTR :: cstring16 SHFILEOPSTRUCTW :: struct { - hwnd: HWND, - wFunc: UINT, - pFrom: PCZZWSTR, - pTo: PCZZWSTR, - fFlags: FILEOP_FLAGS, + hwnd: HWND, + wFunc: UINT, + pFrom: PCZZWSTR, + pTo: PCZZWSTR, + fFlags: FILEOP_FLAGS, fAnyOperationsAborted: BOOL, - hNameMappings: LPVOID, - lpszProgressTitle: PCWSTR, // only used if FOF_SIMPLEPROGRESS + hNameMappings: LPVOID, + lpszProgressTitle: PCWSTR, // only used if FOF_SIMPLEPROGRESS } LPSHFILEOPSTRUCTW :: ^SHFILEOPSTRUCTW @@ -1741,7 +1749,7 @@ FOF_NO_UI :: (FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FILEOP_FLAGS :: WORD DEVMODEW :: struct { - dmDeviceName: [32]wchar_t, + dmDeviceName: [32]wchar_t, dmSpecVersion: WORD, dmDriverVersion: WORD, dmSize: WORD, @@ -1887,7 +1895,7 @@ WS_MINIMIZE : UINT : 0x2000_0000 WS_MINIMIZEBOX : UINT : 0x0002_0000 WS_OVERLAPPED : UINT : 0x0000_0000 WS_OVERLAPPEDWINDOW : UINT : WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX -WS_POPUP : UINT : 0x8000_0000 +WS_POPUP : UINT : 0x8000_0000 WS_POPUPWINDOW : UINT : WS_POPUP | WS_BORDER | WS_SYSMENU WS_SIZEBOX : UINT : 0x0004_0000 WS_SYSMENU : UINT : 0x0008_0000 @@ -2227,24 +2235,24 @@ SEE_MASK_FLAG_LOG_USAGE :: 0x04000000 SEE_MASK_FLAG_HINST_IS_SITE :: 0x08000000 SHELLEXECUTEINFOW :: struct { - cbSize: DWORD, // in, required, sizeof of this structure - fMask: ULONG, // in, SEE_MASK_XXX values - hwnd: HWND, // in, optional - lpVerb: LPCWSTR, // in, optional when unspecified the default verb is choosen - lpFile: LPCWSTR, // in, either this value or lpIDList must be specified - lpParameters: LPCWSTR, // in, optional - lpDirectory: LPCWSTR, // in, optional - nShow: c_int, // in, required - hInstApp: HINSTANCE, // out when SEE_MASK_NOCLOSEPROCESS is specified - lpIDList: rawptr, // in, valid when SEE_MASK_IDLIST is specified, PCIDLIST_ABSOLUTE, for use with SEE_MASK_IDLIST & SEE_MASK_INVOKEIDLIST - lpClass: LPCWSTR, // in, valid when SEE_MASK_CLASSNAME is specified - hkeyClass: HKEY, // in, valid when SEE_MASK_CLASSKEY is specified - dwHotKey: DWORD, // in, valid when SEE_MASK_HOTKEY is specified - DUMMYUNIONNAME: struct #raw_union { - hIcon: HANDLE, // not used - hMonitor: HANDLE, // in, valid when SEE_MASK_HMONITOR specified + cbSize: DWORD, // in, required, sizeof of this structure + fMask: ULONG, // in, SEE_MASK_XXX values + hwnd: HWND, // in, optional + lpVerb: LPCWSTR, // in, optional when unspecified the default verb is choosen + lpFile: LPCWSTR, // in, either this value or lpIDList must be specified + lpParameters: LPCWSTR, // in, optional + lpDirectory: LPCWSTR, // in, optional + nShow: c_int, // in, required + hInstApp: HINSTANCE, // out when SEE_MASK_NOCLOSEPROCESS is specified + lpIDList: rawptr, // in, valid when SEE_MASK_IDLIST is specified, PCIDLIST_ABSOLUTE, for use with SEE_MASK_IDLIST & SEE_MASK_INVOKEIDLIST + lpClass: LPCWSTR, // in, valid when SEE_MASK_CLASSNAME is specified + hkeyClass: HKEY, // in, valid when SEE_MASK_CLASSKEY is specified + dwHotKey: DWORD, // in, valid when SEE_MASK_HOTKEY is specified + using DUMMYUNIONNAME: struct #raw_union { + hIcon: HANDLE, // not used + hMonitor: HANDLE, // in, valid when SEE_MASK_HMONITOR specified }, - hProcess: HANDLE, // out, valid when SEE_MASK_NOCLOSEPROCESS specified + hProcess: HANDLE, // out, valid when SEE_MASK_NOCLOSEPROCESS specified } LPSHELLEXECUTEINFOW :: ^SHELLEXECUTEINFOW @@ -2291,9 +2299,9 @@ WA_CLICKACTIVE :: 2 // Struct pointed to by WM_GETMINMAXINFO lParam MINMAXINFO :: struct { - ptReserved: POINT, - ptMaxSize: POINT, - ptMaxPosition: POINT, + ptReserved: POINT, + ptMaxSize: POINT, + ptMaxPosition: POINT, ptMinTrackSize: POINT, ptMaxTrackSize: POINT, } @@ -2514,53 +2522,53 @@ STOCK_LAST :: 19 CLR_INVALID :: 0xFFFFFFFF RGBQUAD :: struct { - rgbBlue: BYTE, - rgbGreen: BYTE, - rgbRed: BYTE, + rgbBlue: BYTE, + rgbGreen: BYTE, + rgbRed: BYTE, rgbReserved: BYTE, } PIXELFORMATDESCRIPTOR :: struct { - nSize: WORD, - nVersion: WORD, - dwFlags: DWORD, - iPixelType: BYTE, - cColorBits: BYTE, - cRedBits: BYTE, - cRedShift: BYTE, - cGreenBits: BYTE, - cGreenShift: BYTE, - cBlueBits: BYTE, - cBlueShift: BYTE, - cAlphaBits: BYTE, - cAlphaShift: BYTE, - cAccumBits: BYTE, - cAccumRedBits: BYTE, + nSize: WORD, + nVersion: WORD, + dwFlags: DWORD, + iPixelType: BYTE, + cColorBits: BYTE, + cRedBits: BYTE, + cRedShift: BYTE, + cGreenBits: BYTE, + cGreenShift: BYTE, + cBlueBits: BYTE, + cBlueShift: BYTE, + cAlphaBits: BYTE, + cAlphaShift: BYTE, + cAccumBits: BYTE, + cAccumRedBits: BYTE, cAccumGreenBits: BYTE, - cAccumBlueBits: BYTE, + cAccumBlueBits: BYTE, cAccumAlphaBits: BYTE, - cDepthBits: BYTE, - cStencilBits: BYTE, - cAuxBuffers: BYTE, - iLayerType: BYTE, - bReserved: BYTE, - dwLayerMask: DWORD, - dwVisibleMask: DWORD, - dwDamageMask: DWORD, + cDepthBits: BYTE, + cStencilBits: BYTE, + cAuxBuffers: BYTE, + iLayerType: BYTE, + bReserved: BYTE, + dwLayerMask: DWORD, + dwVisibleMask: DWORD, + dwDamageMask: DWORD, } BITMAPINFOHEADER :: struct { - biSize: DWORD, - biWidth: LONG, - biHeight: LONG, - biPlanes: WORD, - biBitCount: WORD, - biCompression: DWORD, - biSizeImage: DWORD, + biSize: DWORD, + biWidth: LONG, + biHeight: LONG, + biPlanes: WORD, + biBitCount: WORD, + biCompression: DWORD, + biSizeImage: DWORD, biXPelsPerMeter: LONG, biYPelsPerMeter: LONG, - biClrUsed: DWORD, - biClrImportant: DWORD, + biClrUsed: DWORD, + biClrImportant: DWORD, } BITMAPINFO :: struct { @@ -2668,64 +2676,64 @@ CONDITION_VARIABLE_INIT :: CONDITION_VARIABLE{} SRWLOCK_INIT :: SRWLOCK{} // Flags in STARTUPINFOW.dwFlags. -STARTF_USESHOWWINDOW: DWORD : 0x00000001 -STARTF_USESIZE: DWORD : 0x00000002 -STARTF_USEPOSITION: DWORD : 0x00000004 -STARTF_USECOUNTCHARS: DWORD : 0x00000008 -STARTF_USEFILLATTRIBUTE: DWORD : 0x00000010 -STARTF_RUNFULLSCREEN: DWORD : 0x00000020 // ignored for non-x86 platforms -STARTF_FORCEONFEEDBACK: DWORD : 0x00000040 -STARTF_FORCEOFFFEEDBACK: DWORD : 0x00000080 -STARTF_USESTDHANDLES: DWORD : 0x00000100 +STARTF_USESHOWWINDOW : DWORD : 0x00000001 +STARTF_USESIZE : DWORD : 0x00000002 +STARTF_USEPOSITION : DWORD : 0x00000004 +STARTF_USECOUNTCHARS : DWORD : 0x00000008 +STARTF_USEFILLATTRIBUTE : DWORD : 0x00000010 +STARTF_RUNFULLSCREEN : DWORD : 0x00000020 // ignored for non-x86 platforms +STARTF_FORCEONFEEDBACK : DWORD : 0x00000040 +STARTF_FORCEOFFFEEDBACK : DWORD : 0x00000080 +STARTF_USESTDHANDLES : DWORD : 0x00000100 // WINVER >= 0x400 -STARTF_USEHOTKEY: DWORD : 0x00000200 -STARTF_TITLEISLINKNAME: DWORD : 0x00000800 -STARTF_TITLEISAPPID: DWORD : 0x00001000 -STARTF_PREVENTPINNING: DWORD : 0x00002000 +STARTF_USEHOTKEY : DWORD : 0x00000200 +STARTF_TITLEISLINKNAME : DWORD : 0x00000800 +STARTF_TITLEISAPPID : DWORD : 0x00001000 +STARTF_PREVENTPINNING : DWORD : 0x00002000 // WINVER >= 0x600 -STARTF_UNTRUSTEDSOURCE: DWORD : 0x00008000 +STARTF_UNTRUSTEDSOURCE : DWORD : 0x00008000 VOLUME_NAME_DOS: DWORD : 0x0 -MOVEFILE_COPY_ALLOWED: DWORD: 0x2 -MOVEFILE_CREATE_HARDLINK: DWORD: 0x10 -MOVEFILE_DELAY_UNTIL_REBOOT: DWORD: 0x4 -MOVEFILE_FAIL_IF_NOT_TRACKABLE: DWORD: 0x20 -MOVEFILE_REPLACE_EXISTING: DWORD : 0x1 -MOVEFILE_WRITE_THROUGH: DWORD: 0x8 - -FILE_BEGIN: DWORD : 0 -FILE_CURRENT: DWORD : 1 -FILE_END: DWORD : 2 - -WAIT_OBJECT_0: DWORD : 0x00000000 -WAIT_TIMEOUT: DWORD : 258 -WAIT_FAILED: DWORD : 0xFFFFFFFF - -FILE_FLAG_WRITE_THROUGH: DWORD : 0x80000000 -FILE_FLAG_OVERLAPPED: DWORD : 0x40000000 -FILE_FLAG_NO_BUFFERING: DWORD : 0x20000000 -FILE_FLAG_RANDOM_ACCESS: DWORD : 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: DWORD : 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: DWORD : 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: DWORD : 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: DWORD : 0x01000000 -FILE_FLAG_SESSION_AWARE: DWORD : 0x00800000 -FILE_FLAG_OPEN_REPARSE_POINT: DWORD : 0x00200000 -FILE_FLAG_OPEN_NO_RECALL: DWORD : 0x00100000 -FILE_FLAG_FIRST_PIPE_INSTANCE: DWORD : 0x00080000 - -PIPE_ACCESS_INBOUND: DWORD : 0x00000001 -PIPE_ACCESS_OUTBOUND: DWORD : 0x00000002 -PIPE_ACCESS_DUPLEX: DWORD : 0x00000003 -PIPE_WAIT: DWORD : 0x00000000 -PIPE_TYPE_BYTE: DWORD : 0x00000000 -PIPE_TYPE_MESSAGE: DWORD : 0x00000004 -PIPE_REJECT_REMOTE_CLIENTS: DWORD : 0x00000008 -PIPE_READMODE_BYTE: DWORD : 0x00000000 -PIPE_READMODE_MESSAGE: DWORD : 0x00000002 -PIPE_ACCEPT_REMOTE_CLIENTS: DWORD : 0x00000000 +MOVEFILE_COPY_ALLOWED : DWORD : 0x2 +MOVEFILE_CREATE_HARDLINK : DWORD : 0x10 +MOVEFILE_DELAY_UNTIL_REBOOT : DWORD : 0x4 +MOVEFILE_FAIL_IF_NOT_TRACKABLE : DWORD : 0x20 +MOVEFILE_REPLACE_EXISTING : DWORD : 0x1 +MOVEFILE_WRITE_THROUGH : DWORD : 0x8 + +FILE_BEGIN : DWORD : 0 +FILE_CURRENT : DWORD : 1 +FILE_END : DWORD : 2 + +WAIT_OBJECT_0 : DWORD : 0x00000000 +WAIT_TIMEOUT : DWORD : 258 +WAIT_FAILED : DWORD : 0xFFFFFFFF + +FILE_FLAG_WRITE_THROUGH : DWORD : 0x80000000 +FILE_FLAG_OVERLAPPED : DWORD : 0x40000000 +FILE_FLAG_NO_BUFFERING : DWORD : 0x20000000 +FILE_FLAG_RANDOM_ACCESS : DWORD : 0x10000000 +FILE_FLAG_SEQUENTIAL_SCAN : DWORD : 0x08000000 +FILE_FLAG_DELETE_ON_CLOSE : DWORD : 0x04000000 +FILE_FLAG_BACKUP_SEMANTICS : DWORD : 0x02000000 +FILE_FLAG_POSIX_SEMANTICS : DWORD : 0x01000000 +FILE_FLAG_SESSION_AWARE : DWORD : 0x00800000 +FILE_FLAG_OPEN_REPARSE_POINT : DWORD : 0x00200000 +FILE_FLAG_OPEN_NO_RECALL : DWORD : 0x00100000 +FILE_FLAG_FIRST_PIPE_INSTANCE : DWORD : 0x00080000 + +PIPE_ACCESS_INBOUND : DWORD : 0x00000001 +PIPE_ACCESS_OUTBOUND : DWORD : 0x00000002 +PIPE_ACCESS_DUPLEX : DWORD : 0x00000003 +PIPE_WAIT : DWORD : 0x00000000 +PIPE_TYPE_BYTE : DWORD : 0x00000000 +PIPE_TYPE_MESSAGE : DWORD : 0x00000004 +PIPE_REJECT_REMOTE_CLIENTS : DWORD : 0x00000008 +PIPE_READMODE_BYTE : DWORD : 0x00000000 +PIPE_READMODE_MESSAGE : DWORD : 0x00000002 +PIPE_ACCEPT_REMOTE_CLIENTS : DWORD : 0x00000000 FD_SETSIZE :: 64 @@ -2739,10 +2747,10 @@ HANDLE_FLAG_INHERIT: DWORD : 0x00000001 HANDLE_FLAG_PROTECT_FROM_CLOSE :: 0x00000002 GENERIC_MAPPING :: struct { - GenericRead: ACCESS_MASK, - GenericWrite: ACCESS_MASK, + GenericRead: ACCESS_MASK, + GenericWrite: ACCESS_MASK, GenericExecute: ACCESS_MASK, - GenericAll: ACCESS_MASK, + GenericAll: ACCESS_MASK, } PGENERIC_MAPPING :: ^GENERIC_MAPPING @@ -2758,14 +2766,14 @@ ANYSIZE_ARRAY :: 1 PLUID_AND_ATTRIBUTES :: ^LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES :: struct { - Luid: LUID, + Luid: LUID, Attributes: DWORD, } PRIVILEGE_SET :: struct { PrivilegeCount: DWORD, - Control: DWORD, - Privilege: [ANYSIZE_ARRAY]LUID_AND_ATTRIBUTES, + Control: DWORD, + Privilege: [ANYSIZE_ARRAY]LUID_AND_ATTRIBUTES `fmt:"v,PrivilegeCount"`, } PPRIVILEGE_SET :: ^PRIVILEGE_SET @@ -2780,7 +2788,8 @@ TOKEN_ADJUST_GROUPS :: 0x0040 TOKEN_ADJUST_DEFAULT :: 0x0080 TOKEN_ADJUST_SESSIONID :: 0x0100 -TOKEN_ALL_ACCESS_P :: STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY |\ +TOKEN_ALL_ACCESS_P :: \ + STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT TOKEN_ALL_ACCESS :: TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID @@ -2803,8 +2812,8 @@ CP_UTF8 :: 65001 // UTF-8 translation LCID :: DWORD LANGID :: WORD -LANG_NEUTRAL :: 0x00 -LANG_INVARIANT :: 0x7f +LANG_NEUTRAL :: 0x00 +LANG_INVARIANT :: 0x7f SUBLANG_NEUTRAL :: 0x00 // language neutral SUBLANG_DEFAULT :: 0x01 // user default @@ -2815,7 +2824,7 @@ WC_ERR_INVALID_CHARS :: 128 MAX_PATH :: 0x00000104 MAX_PATH_WIDE :: 0x8000 -INVALID_FILE_ATTRIBUTES :: DWORD(0xffff_ffff) +INVALID_FILE_ATTRIBUTES :: DWORD(0xffff_ffff) FILE_TYPE_DISK :: 0x0001 FILE_TYPE_CHAR :: 0x0002 @@ -2826,33 +2835,33 @@ POINT :: struct {x, y: LONG} PWINDOWPOS :: ^WINDOWPOS WINDOWPOS :: struct { - hwnd: HWND, + hwnd: HWND, hwndInsertAfter: HWND, - x: c_int, - y: c_int, - cx: c_int, - cy: c_int, + x: c_int, + y: c_int, + cx: c_int, + cy: c_int, flags: UINT, } when size_of(uintptr) == 4 { WSADATA :: struct { - wVersion: WORD, - wHighVersion: WORD, - szDescription: [WSADESCRIPTION_LEN + 1]u8, + wVersion: WORD, + wHighVersion: WORD, + szDescription: [WSADESCRIPTION_LEN + 1]u8, szSystemStatus: [WSASYS_STATUS_LEN + 1]u8, - iMaxSockets: u16, - iMaxUdpDg: u16, - lpVendorInfo: ^u8, + iMaxSockets: u16, + iMaxUdpDg: u16, + lpVendorInfo: [^]u8, } } else when size_of(uintptr) == 8 { WSADATA :: struct { - wVersion: WORD, - wHighVersion: WORD, - iMaxSockets: u16, - iMaxUdpDg: u16, - lpVendorInfo: ^u8, - szDescription: [WSADESCRIPTION_LEN + 1]u8, + wVersion: WORD, + wHighVersion: WORD, + iMaxSockets: u16, + iMaxUdpDg: u16, + lpVendorInfo: ^u8, + szDescription: [WSADESCRIPTION_LEN + 1]u8, szSystemStatus: [WSASYS_STATUS_LEN + 1]u8, } } else { @@ -2861,71 +2870,71 @@ when size_of(uintptr) == 4 { WSABUF :: struct { len: ULONG, - buf: ^CHAR, + buf: [^]CHAR `fmt"q,len"`, } WSAPROTOCOL_INFO :: struct { - dwServiceFlags1: DWORD, - dwServiceFlags2: DWORD, - dwServiceFlags3: DWORD, - dwServiceFlags4: DWORD, - dwProviderFlags: DWORD, - ProviderId: GUID, - dwCatalogEntryId: DWORD, - ProtocolChain: WSAPROTOCOLCHAIN, - iVersion: c_int, - iAddressFamily: c_int, - iMaxSockAddr: c_int, - iMinSockAddr: c_int, - iSocketType: c_int, - iProtocol: c_int, + dwServiceFlags1: DWORD, + dwServiceFlags2: DWORD, + dwServiceFlags3: DWORD, + dwServiceFlags4: DWORD, + dwProviderFlags: DWORD, + ProviderId: GUID, + dwCatalogEntryId: DWORD, + ProtocolChain: WSAPROTOCOLCHAIN, + iVersion: c_int, + iAddressFamily: c_int, + iMaxSockAddr: c_int, + iMinSockAddr: c_int, + iSocketType: c_int, + iProtocol: c_int, iProtocolMaxOffset: c_int, - iNetworkByteOrder: c_int, - iSecurityScheme: c_int, - dwMessageSize: DWORD, + iNetworkByteOrder: c_int, + iSecurityScheme: c_int, + dwMessageSize: DWORD, dwProviderReserved: DWORD, - szProtocol: [WSAPROTOCOL_LEN + 1]u16, + szProtocol: [WSAPROTOCOL_LEN + 1]u16, } WIN32_FILE_ATTRIBUTE_DATA :: struct { dwFileAttributes: DWORD, - ftCreationTime: FILETIME, + ftCreationTime: FILETIME, ftLastAccessTime: FILETIME, - ftLastWriteTime: FILETIME, - nFileSizeHigh: DWORD, - nFileSizeLow: DWORD, + ftLastWriteTime: FILETIME, + nFileSizeHigh: DWORD, + nFileSizeLow: DWORD, } FILE_INFO_BY_HANDLE_CLASS :: enum c_int { - FileBasicInfo = 0, - FileStandardInfo = 1, - FileNameInfo = 2, - FileRenameInfo = 3, - FileDispositionInfo = 4, - FileAllocationInfo = 5, - FileEndOfFileInfo = 6, - FileStreamInfo = 7, - FileCompressionInfo = 8, - FileAttributeTagInfo = 9, - FileIdBothDirectoryInfo = 10, // 0xA + FileBasicInfo = 0, + FileStandardInfo = 1, + FileNameInfo = 2, + FileRenameInfo = 3, + FileDispositionInfo = 4, + FileAllocationInfo = 5, + FileEndOfFileInfo = 6, + FileStreamInfo = 7, + FileCompressionInfo = 8, + FileAttributeTagInfo = 9, + FileIdBothDirectoryInfo = 10, // 0xA FileIdBothDirectoryRestartInfo = 11, // 0xB - FileIoPriorityHintInfo = 12, // 0xC - FileRemoteProtocolInfo = 13, // 0xD - FileFullDirectoryInfo = 14, // 0xE - FileFullDirectoryRestartInfo = 15, // 0xF - FileStorageInfo = 16, // 0x10 - FileAlignmentInfo = 17, // 0x11 - FileIdInfo = 18, // 0x12 - FileIdExtdDirectoryInfo = 19, // 0x13 + FileIoPriorityHintInfo = 12, // 0xC + FileRemoteProtocolInfo = 13, // 0xD + FileFullDirectoryInfo = 14, // 0xE + FileFullDirectoryRestartInfo = 15, // 0xF + FileStorageInfo = 16, // 0x10 + FileAlignmentInfo = 17, // 0x11 + FileIdInfo = 18, // 0x12 + FileIdExtdDirectoryInfo = 19, // 0x13 FileIdExtdDirectoryRestartInfo = 20, // 0x14 MaximumFileInfoByHandlesClass, } FILE_BASIC_INFO :: struct { - CreationTime: LARGE_INTEGER, + CreationTime: LARGE_INTEGER, LastAccessTime: LARGE_INTEGER, - LastWriteTime: LARGE_INTEGER, - ChangeTime: LARGE_INTEGER, + LastWriteTime: LARGE_INTEGER, + ChangeTime: LARGE_INTEGER, FileAttributes: DWORD, } @@ -2941,39 +2950,39 @@ FILE_NOTIFY_INFORMATION :: struct { } REPARSE_DATA_BUFFER :: struct { - ReparseTag: c_uint, + ReparseTag: c_uint, ReparseDataLength: c_ushort, - Reserved: c_ushort, - rest: [0]byte, + Reserved: c_ushort, + rest: [0]byte, } SYMBOLIC_LINK_REPARSE_BUFFER :: struct { SubstituteNameOffset: c_ushort, SubstituteNameLength: c_ushort, - PrintNameOffset: c_ushort, - PrintNameLength: c_ushort, - Flags: c_ulong, - PathBuffer: WCHAR, + PrintNameOffset: c_ushort, + PrintNameLength: c_ushort, + Flags: c_ulong, + PathBuffer: WCHAR, } MOUNT_POINT_REPARSE_BUFFER :: struct { SubstituteNameOffset: c_ushort, SubstituteNameLength: c_ushort, - PrintNameOffset: c_ushort, - PrintNameLength: c_ushort, - PathBuffer: WCHAR, + PrintNameOffset: c_ushort, + PrintNameLength: c_ushort, + PathBuffer: WCHAR, } LPPROGRESS_ROUTINE :: #type proc "system" ( - TotalFileSize: LARGE_INTEGER, - TotalBytesTransferred: LARGE_INTEGER, - StreamSize: LARGE_INTEGER, + TotalFileSize: LARGE_INTEGER, + TotalBytesTransferred: LARGE_INTEGER, + StreamSize: LARGE_INTEGER, StreamBytesTransferred: LARGE_INTEGER, - dwStreamNumber: DWORD, - dwCallbackReason: DWORD, - hSourceFile: HANDLE, - hDestinationFile: HANDLE, - lpData: LPVOID, + dwStreamNumber: DWORD, + dwCallbackReason: DWORD, + hSourceFile: HANDLE, + hDestinationFile: HANDLE, + lpData: LPVOID, ) -> DWORD CONDITION_VARIABLE :: struct { @@ -2984,21 +2993,21 @@ SRWLOCK :: struct { } CRITICAL_SECTION :: struct { CriticalSectionDebug: LPVOID, - LockCount: LONG, - RecursionCount: LONG, - OwningThread: HANDLE, - LockSemaphore: HANDLE, - SpinCount: ULONG_PTR, + LockCount: LONG, + RecursionCount: LONG, + OwningThread: HANDLE, + LockSemaphore: HANDLE, + SpinCount: ULONG_PTR, } REPARSE_MOUNTPOINT_DATA_BUFFER :: struct { - ReparseTag: DWORD, - ReparseDataLength: DWORD, - Reserved: WORD, - ReparseTargetLength: WORD, + ReparseTag: DWORD, + ReparseDataLength: DWORD, + Reserved: WORD, + ReparseTargetLength: WORD, ReparseTargetMaximumLength: WORD, - Reserved1: WORD, - ReparseTarget: WCHAR, + Reserved1: WORD, + ReparseTarget: WCHAR, } GUID :: struct { @@ -3021,12 +3030,12 @@ LPGUID :: ^GUID LPCGUID :: ^GUID REFIID :: ^GUID -REFGUID :: GUID -IID :: GUID -LPIID :: ^IID -CLSID :: GUID +REFGUID :: GUID +IID :: GUID +LPIID :: ^IID +CLSID :: GUID REFCLSID :: ^CLSID -LPCLSID :: ^CLSID +LPCLSID :: ^CLSID CLSCTX_INPROC_SERVER :: 0x1 CLSCTX_INPROC_HANDLER :: 0x2 @@ -3059,46 +3068,46 @@ CLSCTX_PS_DLL :: 0x80000000 CLSCTX_ALL :: CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER WSAPROTOCOLCHAIN :: struct { - ChainLen: c_int, - ChainEntries: [MAX_PROTOCOL_CHAIN]DWORD, + ChainLen: c_int, + ChainEntries: [MAX_PROTOCOL_CHAIN]DWORD `fmt:"v,ChainLen"`, } SECURITY_ATTRIBUTES :: struct { - nLength: DWORD, + nLength: DWORD, lpSecurityDescriptor: LPVOID, - bInheritHandle: BOOL, + bInheritHandle: BOOL, } PROCESS_INFORMATION :: struct { - hProcess: HANDLE, - hThread: HANDLE, + hProcess: HANDLE, + hThread: HANDLE, dwProcessId: DWORD, - dwThreadId: DWORD, + dwThreadId: DWORD, } STARTUPINFOW :: struct { - cb: DWORD, - lpReserved: LPWSTR, - lpDesktop: LPWSTR, - lpTitle: LPWSTR, - dwX: DWORD, - dwY: DWORD, - dwXSize: DWORD, - dwYSize: DWORD, - dwXCountChars: DWORD, - dwYCountChars: DWORD, + cb: DWORD, + lpReserved: LPWSTR, + lpDesktop: LPWSTR, + lpTitle: LPWSTR, + dwX: DWORD, + dwY: DWORD, + dwXSize: DWORD, + dwYSize: DWORD, + dwXCountChars: DWORD, + dwYCountChars: DWORD, dwFillAttribute: DWORD, - dwFlags: DWORD, - wShowWindow: WORD, - cbReserved2: WORD, - lpReserved2: LPBYTE, - hStdInput: HANDLE, - hStdOutput: HANDLE, - hStdError: HANDLE, + dwFlags: DWORD, + wShowWindow: WORD, + cbReserved2: WORD, + lpReserved2: LPBYTE, + hStdInput: HANDLE, + hStdOutput: HANDLE, + hStdError: HANDLE, } FILETIME :: struct { - dwLowDateTime: DWORD, + dwLowDateTime: DWORD, dwHighDateTime: DWORD, } @@ -3124,11 +3133,11 @@ UNICODE_STRING :: struct { } OVERLAPPED :: struct { - Internal: ^c_ulong, + Internal: ^c_ulong, InternalHigh: ^c_ulong, - Offset: DWORD, - OffsetHigh: DWORD, - hEvent: HANDLE, + Offset: DWORD, + OffsetHigh: DWORD, + hEvent: HANDLE, } OVERLAPPED_ENTRY :: struct { @@ -3139,9 +3148,9 @@ OVERLAPPED_ENTRY :: struct { } LPOVERLAPPED_COMPLETION_ROUTINE :: #type proc "system" ( - dwErrorCode: DWORD, + dwErrorCode: DWORD, dwNumberOfBytesTransfered: DWORD, - lpOverlapped: LPOVERLAPPED, + lpOverlapped: LPOVERLAPPED, ) ADDRESS_MODE :: enum c_int { @@ -3164,7 +3173,7 @@ fd_set :: struct { } timeval :: struct { - tv_sec: c_long, + tv_sec: c_long, tv_usec: c_long, } @@ -3199,145 +3208,145 @@ STATUS_PRIVILEGED_INSTRUCTION :: 0xC0000096 EXCEPTION_RECORD :: struct { - ExceptionCode: DWORD, - ExceptionFlags: DWORD, - ExceptionRecord: ^EXCEPTION_RECORD, - ExceptionAddress: LPVOID, - NumberParameters: DWORD, - ExceptionInformation: [EXCEPTION_MAXIMUM_PARAMETERS]LPVOID, + ExceptionCode: DWORD, + ExceptionFlags: DWORD, + ExceptionRecord: ^EXCEPTION_RECORD, + ExceptionAddress: LPVOID, + NumberParameters: DWORD, + ExceptionInformation: [EXCEPTION_MAXIMUM_PARAMETERS]LPVOID `fmt:"v,NumberParameters"`, } CONTEXT :: struct { - P1Home: DWORD64, - P2Home: DWORD64, - P3Home: DWORD64, - P4Home: DWORD64, - P5Home: DWORD64, - P6Home: DWORD64, + P1Home: DWORD64, + P2Home: DWORD64, + P3Home: DWORD64, + P4Home: DWORD64, + P5Home: DWORD64, + P6Home: DWORD64, ContextFlags: DWORD, - MxCsr: DWORD, - SegCs: WORD, - SegDs: WORD, - SegEs: WORD, - SegFs: WORD, - SegGs: WORD, - SegSs: WORD, - EFlags: DWORD, - Dr0: DWORD64, - Dr1: DWORD64, - Dr2: DWORD64, - Dr3: DWORD64, - Dr6: DWORD64, - Dr7: DWORD64, - Rax: DWORD64, - Rcx: DWORD64, - Rdx: DWORD64, - Rbx: DWORD64, - Rsp: DWORD64, - Rbp: DWORD64, - Rsi: DWORD64, - Rdi: DWORD64, - R8: DWORD64, - R9: DWORD64, - R10: DWORD64, - R11: DWORD64, - R12: DWORD64, - R13: DWORD64, - R14: DWORD64, - R15: DWORD64, - Rip: DWORD64, - _: struct #raw_union { + MxCsr: DWORD, + SegCs: WORD, + SegDs: WORD, + SegEs: WORD, + SegFs: WORD, + SegGs: WORD, + SegSs: WORD, + EFlags: DWORD, + Dr0: DWORD64, + Dr1: DWORD64, + Dr2: DWORD64, + Dr3: DWORD64, + Dr6: DWORD64, + Dr7: DWORD64, + Rax: DWORD64, + Rcx: DWORD64, + Rdx: DWORD64, + Rbx: DWORD64, + Rsp: DWORD64, + Rbp: DWORD64, + Rsi: DWORD64, + Rdi: DWORD64, + R8: DWORD64, + R9: DWORD64, + R10: DWORD64, + R11: DWORD64, + R12: DWORD64, + R13: DWORD64, + R14: DWORD64, + R15: DWORD64, + Rip: DWORD64, + using _: struct #raw_union { FltSave: XMM_SAVE_AREA32, - Q: [16]NEON128, - D: [32]ULONGLONG, - _: struct { + Q: [16]NEON128, + D: [32]ULONGLONG, + using _: struct { Header: [2]M128A, Legacy: [8]M128A, - Xmm0: M128A, - Xmm1: M128A, - Xmm2: M128A, - Xmm3: M128A, - Xmm4: M128A, - Xmm5: M128A, - Xmm6: M128A, - Xmm7: M128A, - Xmm8: M128A, - Xmm9: M128A, - Xmm10: M128A, - Xmm11: M128A, - Xmm12: M128A, - Xmm13: M128A, - Xmm14: M128A, - Xmm15: M128A, + Xmm0: M128A, + Xmm1: M128A, + Xmm2: M128A, + Xmm3: M128A, + Xmm4: M128A, + Xmm5: M128A, + Xmm6: M128A, + Xmm7: M128A, + Xmm8: M128A, + Xmm9: M128A, + Xmm10: M128A, + Xmm11: M128A, + Xmm12: M128A, + Xmm13: M128A, + Xmm14: M128A, + Xmm15: M128A, }, S: [32]DWORD, }, - VectorRegister: [26]M128A, - VectorControl: DWORD64, - DebugControl: DWORD64, - LastBranchToRip: DWORD64, - LastBranchFromRip: DWORD64, - LastExceptionToRip: DWORD64, + VectorRegister: [26]M128A, + VectorControl: DWORD64, + DebugControl: DWORD64, + LastBranchToRip: DWORD64, + LastBranchFromRip: DWORD64, + LastExceptionToRip: DWORD64, LastExceptionFromRip: DWORD64, } -PCONTEXT :: ^CONTEXT +PCONTEXT :: ^CONTEXT LPCONTEXT :: ^CONTEXT when size_of(uintptr) == 32 { XSAVE_FORMAT :: struct #align(16) { - ControlWord: WORD, - StatusWord: WORD, - TagWord: BYTE, - Reserved1: BYTE, - ErrorOpcode: WORD, - ErrorOffset: DWORD, - ErrorSelector: WORD, - Reserved2: WORD, - DataOffset: DWORD, - DataSelector: WORD, - Reserved3: WORD, - MxCsr: DWORD, - MxCsr_Mask: DWORD, + ControlWord: WORD, + StatusWord: WORD, + TagWord: BYTE, + Reserved1: BYTE, + ErrorOpcode: WORD, + ErrorOffset: DWORD, + ErrorSelector: WORD, + Reserved2: WORD, + DataOffset: DWORD, + DataSelector: WORD, + Reserved3: WORD, + MxCsr: DWORD, + MxCsr_Mask: DWORD, FloatRegisters: [8]M128A, // 32-bit specific - XmmRegisters: [8]M128A, - Reserved4: [192]BYTE, - StackControl: [7]DWORD, - Cr0NpxState: DWORD, + XmmRegisters: [8]M128A, + Reserved4: [192]BYTE, + StackControl: [7]DWORD, + Cr0NpxState: DWORD, } } else { XSAVE_FORMAT :: struct #align(16) { - ControlWord: WORD, - StatusWord: WORD, - TagWord: BYTE, - Reserved1: BYTE, - ErrorOpcode: WORD, - ErrorOffset: DWORD, - ErrorSelector: WORD, - Reserved2: WORD, - DataOffset: DWORD, - DataSelector: WORD, - Reserved3: WORD, - MxCsr: DWORD, - MxCsr_Mask: DWORD, + ControlWord: WORD, + StatusWord: WORD, + TagWord: BYTE, + Reserved1: BYTE, + ErrorOpcode: WORD, + ErrorOffset: DWORD, + ErrorSelector: WORD, + Reserved2: WORD, + DataOffset: DWORD, + DataSelector: WORD, + Reserved3: WORD, + MxCsr: DWORD, + MxCsr_Mask: DWORD, FloatRegisters: [8]M128A, // 64-bit specific - XmmRegisters: [16]M128A, - Reserved4: [96]BYTE, + XmmRegisters: [16]M128A, + Reserved4: [96]BYTE, } } XMM_SAVE_AREA32 :: XSAVE_FORMAT M128A :: struct { - Low: ULONGLONG, + Low: ULONGLONG, High: LONGLONG, } NEON128 :: struct { - Low: ULONGLONG, + Low: ULONGLONG, High: LONGLONG, } @@ -3386,17 +3395,17 @@ FILE_ATTRIBUTE_TAG_INFO :: struct { } // getaddrinfo flags https://learn.microsoft.com/en-us/windows/win32/api/ws2def/ns-ws2def-addrinfoa -AI_PASSIVE :: 0x01 -AI_CANONNAME :: 0x02 -AI_NUMERICHOST :: 0x04 -AI_ALL :: 0x0100 -AI_ADDRCONFIG :: 0x0400 -AI_V4MAPPED :: 0x0800 -AI_NON_AUTHORITATIVE :: 0x04000 -AI_SECURE :: 0x08000 +AI_PASSIVE :: 0x01 +AI_CANONNAME :: 0x02 +AI_NUMERICHOST :: 0x04 +AI_ALL :: 0x0100 +AI_ADDRCONFIG :: 0x0400 +AI_V4MAPPED :: 0x0800 +AI_NON_AUTHORITATIVE :: 0x04000 +AI_SECURE :: 0x08000 AI_RETURN_PREFERRED_NAMES :: 0x010000 -AI_FQDN :: 0x00020000 -AI_FILESERVER :: 0x00040000 +AI_FQDN :: 0x00020000 +AI_FILESERVER :: 0x00040000 PADDRINFOEXW :: ^ADDRINFOEXW LPADDRINFOEXW :: ^ADDRINFOEXW @@ -3415,9 +3424,9 @@ ADDRINFOEXW :: struct { } LPLOOKUPSERVICE_COMPLETION_ROUTINE :: #type proc "system" ( - dwErrorCode: DWORD, + dwErrorCode: DWORD, dwNumberOfBytesTransfered: DWORD, - lpOverlapped: LPOVERLAPPED, + lpOverlapped: LPOVERLAPPED, ) @@ -3427,18 +3436,18 @@ SYSTEM_INFO :: struct { dwOemID: DWORD, using _: struct #raw_union { wProcessorArchitecture: WORD, - wReserved: WORD, // reserved + wReserved: WORD, // reserved }, }, - dwPageSize: DWORD, + dwPageSize: DWORD, lpMinimumApplicationAddress: LPVOID, lpMaximumApplicationAddress: LPVOID, - dwActiveProcessorMask: DWORD_PTR, - dwNumberOfProcessors: DWORD, - dwProcessorType: DWORD, - dwAllocationGranularity: DWORD, - wProcessorLevel: WORD, - wProcessorRevision: WORD, + dwActiveProcessorMask: DWORD_PTR, + dwNumberOfProcessors: DWORD, + dwProcessorType: DWORD, + dwAllocationGranularity: DWORD, + wProcessorLevel: WORD, + wProcessorRevision: WORD, } // https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ns-wdm-_osversioninfoexw @@ -3475,12 +3484,12 @@ LoadLibraryEx_Flags :: distinct bit_set[LoadLibraryEx_Flag] // https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-quota_limits // Used in LogonUserExW PQUOTA_LIMITS :: struct { - PagedPoolLimit: SIZE_T, - NonPagedPoolLimit: SIZE_T, + PagedPoolLimit: SIZE_T, + NonPagedPoolLimit: SIZE_T, MinimumWorkingSetSize: SIZE_T, MaximumWorkingSetSize: SIZE_T, - PagefileLimit: SIZE_T, - TimeLimit: LARGE_INTEGER, + PagefileLimit: SIZE_T, + TimeLimit: LARGE_INTEGER, } Logon32_Type :: enum DWORD { @@ -3505,14 +3514,14 @@ Logon32_Provider :: enum DWORD { // Used in LoadUserProfileW PROFILEINFOW :: struct { - dwSize: DWORD, - dwFlags: DWORD, - lpUserName: LPWSTR, + dwSize: DWORD, + dwFlags: DWORD, + lpUserName: LPWSTR, lpProfilePath: LPWSTR, lpDefaultPath: LPWSTR, - lpServerName: LPWSTR, - lpPolicyPath: LPWSTR, - hProfile: HANDLE, + lpServerName: LPWSTR, + lpPolicyPath: LPWSTR, + hProfile: HANDLE, } SECURITY_MAX_SID_SIZE :: 68 @@ -3569,14 +3578,14 @@ USER_INFO_FLAG :: enum DWORD { USER_INFO_FLAGS :: distinct bit_set[USER_INFO_FLAG] USER_INFO_1 :: struct #packed { - name: LPWSTR, - password: LPWSTR, // Max password length is defined in LM20_PWLEN. + name: LPWSTR, + password: LPWSTR, // Max password length is defined in LM20_PWLEN. password_age: DWORD, - priv: USER_PRIV, - home_dir: LPWSTR, - comment: LPWSTR, - flags: USER_INFO_FLAGS, - script_path: LPWSTR, + priv: USER_PRIV, + home_dir: LPWSTR, + comment: LPWSTR, + flags: USER_INFO_FLAGS, + script_path: LPWSTR, } // #assert(size_of(USER_INFO_1) == 50) @@ -3585,320 +3594,320 @@ LOCALGROUP_MEMBERS_INFO_0 :: struct #packed { } NET_API_STATUS :: enum DWORD { - Success = 0, - ERROR_ACCESS_DENIED = 5, - MemberInAlias = 1378, - NetNotStarted = 2102, - UnknownServer = 2103, - ShareMem = 2104, - NoNetworkResource = 2105, - RemoteOnly = 2106, - DevNotRedirected = 2107, - ServerNotStarted = 2114, - ItemNotFound = 2115, - UnknownDevDir = 2116, - RedirectedPath = 2117, - DuplicateShare = 2118, - NoRoom = 2119, - TooManyItems = 2121, - InvalidMaxUsers = 2122, - BufTooSmall = 2123, - RemoteErr = 2127, - LanmanIniError = 2131, - NetworkError = 2136, - WkstaInconsistentState = 2137, - WkstaNotStarted = 2138, - BrowserNotStarted = 2139, - InternalError = 2140, - BadTransactConfig = 2141, - InvalidAPI = 2142, - BadEventName = 2143, - DupNameReboot = 2144, - CfgCompNotFound = 2146, - CfgParamNotFound = 2147, - LineTooLong = 2149, - QNotFound = 2150, - JobNotFound = 2151, - DestNotFound = 2152, - DestExists = 2153, - QExists = 2154, - QNoRoom = 2155, - JobNoRoom = 2156, - DestNoRoom = 2157, - DestIdle = 2158, - DestInvalidOp = 2159, - ProcNoRespond = 2160, - SpoolerNotLoaded = 2161, - DestInvalidState = 2162, - QInvalidState = 2163, - JobInvalidState = 2164, - SpoolNoMemory = 2165, - DriverNotFound = 2166, - DataTypeInvalid = 2167, - ProcNotFound = 2168, - ServiceTableLocked = 2180, - ServiceTableFull = 2181, - ServiceInstalled = 2182, - ServiceEntryLocked = 2183, - ServiceNotInstalled = 2184, - BadServiceName = 2185, - ServiceCtlTimeout = 2186, - ServiceCtlBusy = 2187, - BadServiceProgName = 2188, - ServiceNotCtrl = 2189, - ServiceKillProc = 2190, - ServiceCtlNotValid = 2191, - NotInDispatchTbl = 2192, - BadControlRecv = 2193, - ServiceNotStarting = 2194, - AlreadyLoggedOn = 2200, - NotLoggedOn = 2201, - BadUsername = 2202, - BadPassword = 2203, - UnableToAddName_W = 2204, - UnableToAddName_F = 2205, - UnableToDelName_W = 2206, - UnableToDelName_F = 2207, - LogonsPaused = 2209, - LogonServerConflict = 2210, - LogonNoUserPath = 2211, - LogonScriptError = 2212, - StandaloneLogon = 2214, - LogonServerNotFound = 2215, - LogonDomainExists = 2216, - NonValidatedLogon = 2217, - ACFNotFound = 2219, - GroupNotFound = 2220, - UserNotFound = 2221, - ResourceNotFound = 2222, - GroupExists = 2223, - UserExists = 2224, - ResourceExists = 2225, - NotPrimary = 2226, - ACFNotLoaded = 2227, - ACFNoRoom = 2228, - ACFFileIOFail = 2229, - ACFTooManyLists = 2230, - UserLogon = 2231, - ACFNoParent = 2232, - CanNotGrowSegment = 2233, - SpeGroupOp = 2234, - NotInCache = 2235, - UserInGroup = 2236, - UserNotInGroup = 2237, - AccountUndefined = 2238, - AccountExpired = 2239, - InvalidWorkstation = 2240, - InvalidLogonHours = 2241, - PasswordExpired = 2242, - PasswordCantChange = 2243, - PasswordHistConflict = 2244, - PasswordTooShort = 2245, - PasswordTooRecent = 2246, - InvalidDatabase = 2247, - DatabaseUpToDate = 2248, - SyncRequired = 2249, - UseNotFound = 2250, - BadAsgType = 2251, - DeviceIsShared = 2252, - SameAsComputerName = 2253, - NoComputerName = 2270, - MsgAlreadyStarted = 2271, - MsgInitFailed = 2272, - NameNotFound = 2273, - AlreadyForwarded = 2274, - AddForwarded = 2275, - AlreadyExists = 2276, - TooManyNames = 2277, - DelComputerName = 2278, - LocalForward = 2279, - GrpMsgProcessor = 2280, - PausedRemote = 2281, - BadReceive = 2282, - NameInUse = 2283, - MsgNotStarted = 2284, - NotLocalName = 2285, - NoForwardName = 2286, - RemoteFull = 2287, - NameNotForwarded = 2288, - TruncatedBroadcast = 2289, - InvalidDevice = 2294, - WriteFault = 2295, - DuplicateName = 2297, - DeleteLater = 2298, - IncompleteDel = 2299, - MultipleNets = 2300, - NetNameNotFound = 2310, - DeviceNotShared = 2311, - ClientNameNotFound = 2312, - FileIdNotFound = 2314, - ExecFailure = 2315, - TmpFile = 2316, - TooMuchData = 2317, - DeviceShareConflict = 2318, - BrowserTableIncomplete = 2319, - NotLocalDomain = 2320, - IsDfsShare = 2321, - DevInvalidOpCode = 2331, - DevNotFound = 2332, - DevNotOpen = 2333, - BadQueueDevString = 2334, - BadQueuePriority = 2335, - NoCommDevs = 2337, - QueueNotFound = 2338, - BadDevString = 2340, - BadDev = 2341, - InUseBySpooler = 2342, - CommDevInUse = 2343, - InvalidComputer = 2351, - MaxLenExceeded = 2354, - BadComponent = 2356, - CantType = 2357, - TooManyEntries = 2362, - ProfileFileTooBig = 2370, - ProfileOffset = 2371, - ProfileCleanup = 2372, - ProfileUnknownCmd = 2373, - ProfileLoadErr = 2374, - ProfileSaveErr = 2375, - LogOverflow = 2377, - LogFileChanged = 2378, - LogFileCorrupt = 2379, - SourceIsDir = 2380, - BadSource = 2381, - BadDest = 2382, - DifferentServers = 2383, - RunSrvPaused = 2385, - ErrCommRunSrv = 2389, - ErrorExecingGhost = 2391, - ShareNotFound = 2392, - InvalidLana = 2400, - OpenFiles = 2401, - ActiveConns = 2402, - BadPasswordCore = 2403, - DevInUse = 2404, - LocalDrive = 2405, - AlertExists = 2430, - TooManyAlerts = 2431, - NoSuchAlert = 2432, - BadRecipient = 2433, - AcctLimitExceeded = 2434, - InvalidLogSeek = 2440, - BadUasConfig = 2450, - InvalidUASOp = 2451, - LastAdmin = 2452, - DCNotFound = 2453, - LogonTrackingError = 2454, - NetlogonNotStarted = 2455, - CanNotGrowUASFile = 2456, - TimeDiffAtDC = 2457, - PasswordMismatch = 2458, - NoSuchServer = 2460, - NoSuchSession = 2461, - NoSuchConnection = 2462, - TooManyServers = 2463, - TooManySessions = 2464, - TooManyConnections = 2465, - TooManyFiles = 2466, - NoAlternateServers = 2467, - TryDownLevel = 2470, - UPSDriverNotStarted = 2480, - UPSInvalidConfig = 2481, - UPSInvalidCommPort = 2482, - UPSSignalAsserted = 2483, - UPSShutdownFailed = 2484, - BadDosRetCode = 2500, - ProgNeedsExtraMem = 2501, - BadDosFunction = 2502, - RemoteBootFailed = 2503, - BadFileCheckSum = 2504, - NoRplBootSystem = 2505, - RplLoadrNetBiosErr = 2506, - RplLoadrDiskErr = 2507, - ImageParamErr = 2508, - TooManyImageParams = 2509, - NonDosFloppyUsed = 2510, - RplBootRestart = 2511, - RplSrvrCallFailed = 2512, - CantConnectRplSrvr = 2513, - CantOpenImageFile = 2514, - CallingRplSrvr = 2515, - StartingRplBoot = 2516, - RplBootServiceTerm = 2517, - RplBootStartFailed = 2518, - RPL_CONNECTED = 2519, - BrowserConfiguredToNotRun = 2550, - RplNoAdaptersStarted = 2610, - RplBadRegistry = 2611, - RplBadDatabase = 2612, - RplRplfilesShare = 2613, - RplNotRplServer = 2614, - RplCannotEnum = 2615, - RplWkstaInfoCorrupted = 2616, - RplWkstaNotFound = 2617, - RplWkstaNameUnavailable = 2618, - RplProfileInfoCorrupted = 2619, - RplProfileNotFound = 2620, - RplProfileNameUnavailable = 2621, - RplProfileNotEmpty = 2622, - RplConfigInfoCorrupted = 2623, - RplConfigNotFound = 2624, - RplAdapterInfoCorrupted = 2625, - RplInternal = 2626, - RplVendorInfoCorrupted = 2627, - RplBootInfoCorrupted = 2628, - RplWkstaNeedsUserAcct = 2629, - RplNeedsRPLUSERAcct = 2630, - RplBootNotFound = 2631, - RplIncompatibleProfile = 2632, - RplAdapterNameUnavailable = 2633, - RplConfigNotEmpty = 2634, - RplBootInUse = 2635, - RplBackupDatabase = 2636, - RplAdapterNotFound = 2637, - RplVendorNotFound = 2638, - RplVendorNameUnavailable = 2639, - RplBootNameUnavailable = 2640, - RplConfigNameUnavailable = 2641, - DfsInternalCorruption = 2660, - DfsVolumeDataCorrupt = 2661, - DfsNoSuchVolume = 2662, - DfsVolumeAlreadyExists = 2663, - DfsAlreadyShared = 2664, - DfsNoSuchShare = 2665, - DfsNotALeafVolume = 2666, - DfsLeafVolume = 2667, - DfsVolumeHasMultipleServers = 2668, - DfsCantCreateJunctionPoint = 2669, - DfsServerNotDfsAware = 2670, - DfsBadRenamePath = 2671, - DfsVolumeIsOffline = 2672, - DfsNoSuchServer = 2673, - DfsCyclicalName = 2674, - DfsNotSupportedInServerDfs = 2675, - DfsDuplicateService = 2676, + Success = 0, + ERROR_ACCESS_DENIED = 5, + MemberInAlias = 1378, + NetNotStarted = 2102, + UnknownServer = 2103, + ShareMem = 2104, + NoNetworkResource = 2105, + RemoteOnly = 2106, + DevNotRedirected = 2107, + ServerNotStarted = 2114, + ItemNotFound = 2115, + UnknownDevDir = 2116, + RedirectedPath = 2117, + DuplicateShare = 2118, + NoRoom = 2119, + TooManyItems = 2121, + InvalidMaxUsers = 2122, + BufTooSmall = 2123, + RemoteErr = 2127, + LanmanIniError = 2131, + NetworkError = 2136, + WkstaInconsistentState = 2137, + WkstaNotStarted = 2138, + BrowserNotStarted = 2139, + InternalError = 2140, + BadTransactConfig = 2141, + InvalidAPI = 2142, + BadEventName = 2143, + DupNameReboot = 2144, + CfgCompNotFound = 2146, + CfgParamNotFound = 2147, + LineTooLong = 2149, + QNotFound = 2150, + JobNotFound = 2151, + DestNotFound = 2152, + DestExists = 2153, + QExists = 2154, + QNoRoom = 2155, + JobNoRoom = 2156, + DestNoRoom = 2157, + DestIdle = 2158, + DestInvalidOp = 2159, + ProcNoRespond = 2160, + SpoolerNotLoaded = 2161, + DestInvalidState = 2162, + QInvalidState = 2163, + JobInvalidState = 2164, + SpoolNoMemory = 2165, + DriverNotFound = 2166, + DataTypeInvalid = 2167, + ProcNotFound = 2168, + ServiceTableLocked = 2180, + ServiceTableFull = 2181, + ServiceInstalled = 2182, + ServiceEntryLocked = 2183, + ServiceNotInstalled = 2184, + BadServiceName = 2185, + ServiceCtlTimeout = 2186, + ServiceCtlBusy = 2187, + BadServiceProgName = 2188, + ServiceNotCtrl = 2189, + ServiceKillProc = 2190, + ServiceCtlNotValid = 2191, + NotInDispatchTbl = 2192, + BadControlRecv = 2193, + ServiceNotStarting = 2194, + AlreadyLoggedOn = 2200, + NotLoggedOn = 2201, + BadUsername = 2202, + BadPassword = 2203, + UnableToAddName_W = 2204, + UnableToAddName_F = 2205, + UnableToDelName_W = 2206, + UnableToDelName_F = 2207, + LogonsPaused = 2209, + LogonServerConflict = 2210, + LogonNoUserPath = 2211, + LogonScriptError = 2212, + StandaloneLogon = 2214, + LogonServerNotFound = 2215, + LogonDomainExists = 2216, + NonValidatedLogon = 2217, + ACFNotFound = 2219, + GroupNotFound = 2220, + UserNotFound = 2221, + ResourceNotFound = 2222, + GroupExists = 2223, + UserExists = 2224, + ResourceExists = 2225, + NotPrimary = 2226, + ACFNotLoaded = 2227, + ACFNoRoom = 2228, + ACFFileIOFail = 2229, + ACFTooManyLists = 2230, + UserLogon = 2231, + ACFNoParent = 2232, + CanNotGrowSegment = 2233, + SpeGroupOp = 2234, + NotInCache = 2235, + UserInGroup = 2236, + UserNotInGroup = 2237, + AccountUndefined = 2238, + AccountExpired = 2239, + InvalidWorkstation = 2240, + InvalidLogonHours = 2241, + PasswordExpired = 2242, + PasswordCantChange = 2243, + PasswordHistConflict = 2244, + PasswordTooShort = 2245, + PasswordTooRecent = 2246, + InvalidDatabase = 2247, + DatabaseUpToDate = 2248, + SyncRequired = 2249, + UseNotFound = 2250, + BadAsgType = 2251, + DeviceIsShared = 2252, + SameAsComputerName = 2253, + NoComputerName = 2270, + MsgAlreadyStarted = 2271, + MsgInitFailed = 2272, + NameNotFound = 2273, + AlreadyForwarded = 2274, + AddForwarded = 2275, + AlreadyExists = 2276, + TooManyNames = 2277, + DelComputerName = 2278, + LocalForward = 2279, + GrpMsgProcessor = 2280, + PausedRemote = 2281, + BadReceive = 2282, + NameInUse = 2283, + MsgNotStarted = 2284, + NotLocalName = 2285, + NoForwardName = 2286, + RemoteFull = 2287, + NameNotForwarded = 2288, + TruncatedBroadcast = 2289, + InvalidDevice = 2294, + WriteFault = 2295, + DuplicateName = 2297, + DeleteLater = 2298, + IncompleteDel = 2299, + MultipleNets = 2300, + NetNameNotFound = 2310, + DeviceNotShared = 2311, + ClientNameNotFound = 2312, + FileIdNotFound = 2314, + ExecFailure = 2315, + TmpFile = 2316, + TooMuchData = 2317, + DeviceShareConflict = 2318, + BrowserTableIncomplete = 2319, + NotLocalDomain = 2320, + IsDfsShare = 2321, + DevInvalidOpCode = 2331, + DevNotFound = 2332, + DevNotOpen = 2333, + BadQueueDevString = 2334, + BadQueuePriority = 2335, + NoCommDevs = 2337, + QueueNotFound = 2338, + BadDevString = 2340, + BadDev = 2341, + InUseBySpooler = 2342, + CommDevInUse = 2343, + InvalidComputer = 2351, + MaxLenExceeded = 2354, + BadComponent = 2356, + CantType = 2357, + TooManyEntries = 2362, + ProfileFileTooBig = 2370, + ProfileOffset = 2371, + ProfileCleanup = 2372, + ProfileUnknownCmd = 2373, + ProfileLoadErr = 2374, + ProfileSaveErr = 2375, + LogOverflow = 2377, + LogFileChanged = 2378, + LogFileCorrupt = 2379, + SourceIsDir = 2380, + BadSource = 2381, + BadDest = 2382, + DifferentServers = 2383, + RunSrvPaused = 2385, + ErrCommRunSrv = 2389, + ErrorExecingGhost = 2391, + ShareNotFound = 2392, + InvalidLana = 2400, + OpenFiles = 2401, + ActiveConns = 2402, + BadPasswordCore = 2403, + DevInUse = 2404, + LocalDrive = 2405, + AlertExists = 2430, + TooManyAlerts = 2431, + NoSuchAlert = 2432, + BadRecipient = 2433, + AcctLimitExceeded = 2434, + InvalidLogSeek = 2440, + BadUasConfig = 2450, + InvalidUASOp = 2451, + LastAdmin = 2452, + DCNotFound = 2453, + LogonTrackingError = 2454, + NetlogonNotStarted = 2455, + CanNotGrowUASFile = 2456, + TimeDiffAtDC = 2457, + PasswordMismatch = 2458, + NoSuchServer = 2460, + NoSuchSession = 2461, + NoSuchConnection = 2462, + TooManyServers = 2463, + TooManySessions = 2464, + TooManyConnections = 2465, + TooManyFiles = 2466, + NoAlternateServers = 2467, + TryDownLevel = 2470, + UPSDriverNotStarted = 2480, + UPSInvalidConfig = 2481, + UPSInvalidCommPort = 2482, + UPSSignalAsserted = 2483, + UPSShutdownFailed = 2484, + BadDosRetCode = 2500, + ProgNeedsExtraMem = 2501, + BadDosFunction = 2502, + RemoteBootFailed = 2503, + BadFileCheckSum = 2504, + NoRplBootSystem = 2505, + RplLoadrNetBiosErr = 2506, + RplLoadrDiskErr = 2507, + ImageParamErr = 2508, + TooManyImageParams = 2509, + NonDosFloppyUsed = 2510, + RplBootRestart = 2511, + RplSrvrCallFailed = 2512, + CantConnectRplSrvr = 2513, + CantOpenImageFile = 2514, + CallingRplSrvr = 2515, + StartingRplBoot = 2516, + RplBootServiceTerm = 2517, + RplBootStartFailed = 2518, + RPL_CONNECTED = 2519, + BrowserConfiguredToNotRun = 2550, + RplNoAdaptersStarted = 2610, + RplBadRegistry = 2611, + RplBadDatabase = 2612, + RplRplfilesShare = 2613, + RplNotRplServer = 2614, + RplCannotEnum = 2615, + RplWkstaInfoCorrupted = 2616, + RplWkstaNotFound = 2617, + RplWkstaNameUnavailable = 2618, + RplProfileInfoCorrupted = 2619, + RplProfileNotFound = 2620, + RplProfileNameUnavailable = 2621, + RplProfileNotEmpty = 2622, + RplConfigInfoCorrupted = 2623, + RplConfigNotFound = 2624, + RplAdapterInfoCorrupted = 2625, + RplInternal = 2626, + RplVendorInfoCorrupted = 2627, + RplBootInfoCorrupted = 2628, + RplWkstaNeedsUserAcct = 2629, + RplNeedsRPLUSERAcct = 2630, + RplBootNotFound = 2631, + RplIncompatibleProfile = 2632, + RplAdapterNameUnavailable = 2633, + RplConfigNotEmpty = 2634, + RplBootInUse = 2635, + RplBackupDatabase = 2636, + RplAdapterNotFound = 2637, + RplVendorNotFound = 2638, + RplVendorNameUnavailable = 2639, + RplBootNameUnavailable = 2640, + RplConfigNameUnavailable = 2641, + DfsInternalCorruption = 2660, + DfsVolumeDataCorrupt = 2661, + DfsNoSuchVolume = 2662, + DfsVolumeAlreadyExists = 2663, + DfsAlreadyShared = 2664, + DfsNoSuchShare = 2665, + DfsNotALeafVolume = 2666, + DfsLeafVolume = 2667, + DfsVolumeHasMultipleServers = 2668, + DfsCantCreateJunctionPoint = 2669, + DfsServerNotDfsAware = 2670, + DfsBadRenamePath = 2671, + DfsVolumeIsOffline = 2672, + DfsNoSuchServer = 2673, + DfsCyclicalName = 2674, + DfsNotSupportedInServerDfs = 2675, + DfsDuplicateService = 2676, DfsCantRemoveLastServerShare = 2677, - DfsVolumeIsInterDfs = 2678, - DfsInconsistent = 2679, - DfsServerUpgraded = 2680, - DfsDataIsIdentical = 2681, - DfsCantRemoveDfsRoot = 2682, - DfsChildOrParentInDfs = 2683, - DfsInternalError = 2690, - SetupAlreadyJoined = 2691, - SetupNotJoined = 2692, - SetupDomainController = 2693, - DefaultJoinRequired = 2694, - InvalidWorkgroupName = 2695, + DfsVolumeIsInterDfs = 2678, + DfsInconsistent = 2679, + DfsServerUpgraded = 2680, + DfsDataIsIdentical = 2681, + DfsCantRemoveDfsRoot = 2682, + DfsChildOrParentInDfs = 2683, + DfsInternalError = 2690, + SetupAlreadyJoined = 2691, + SetupNotJoined = 2692, + SetupDomainController = 2693, + DefaultJoinRequired = 2694, + InvalidWorkgroupName = 2695, NameUsesIncompatibleCodePage = 2696, - ComputerAccountNotFound = 2697, - PersonalSku = 2698, - SetupCheckDNSConfig = 2699, - PasswordMustChange = 2701, - AccountLockedOut = 2702, - PasswordTooLong = 2703, - PasswordNotComplexEnough = 2704, - PasswordFilterError = 2705, + ComputerAccountNotFound = 2697, + PersonalSku = 2698, + SetupCheckDNSConfig = 2699, + PasswordMustChange = 2701, + AccountLockedOut = 2702, + PasswordTooLong = 2703, + PasswordNotComplexEnough = 2704, + PasswordFilterError = 2705, } @@ -4053,12 +4062,12 @@ IMAGE_DEBUG_DIRECTORY :: struct { IMAGE_DEBUG_TYPE_CODEVIEW :: 2 -SICHINTF :: DWORD -SHCONTF :: DWORD -SFGAOF :: ULONG +SICHINTF :: DWORD +SHCONTF :: DWORD +SFGAOF :: ULONG FILEOPENDIALOGOPTIONS :: DWORD -REFPROPERTYKEY :: ^PROPERTYKEY -REFPROPVARIANT :: ^PROPVARIANT +REFPROPERTYKEY :: ^PROPERTYKEY +REFPROPVARIANT :: ^PROPVARIANT SIGDN :: enum c_int { NORMALDISPLAY = 0, @@ -4083,57 +4092,57 @@ SIATTRIBFLAGS :: enum c_int { FDAP :: enum c_int { BOTTOM = 0, - TOP = 1, + TOP = 1, } FDE_SHAREVIOLATION_RESPONSE :: enum c_int { DEFAULT = 0, - ACCEPT = 1, - REFUSE = 2, + ACCEPT = 1, + REFUSE = 2, } GETPROPERTYSTOREFLAGS :: enum c_int { - DEFAULT = 0, - HANDLERPROPERTIESONLY = 0x1, - READWRITE = 0x2, - TEMPORARY = 0x4, - FASTPROPERTIESONLY = 0x8, - OPENSLOWITEM = 0x10, - DELAYCREATION = 0x20, - BESTEFFORT = 0x40, - NO_OPLOCK = 0x80, - PREFERQUERYPROPERTIES = 0x100, - EXTRINSICPROPERTIES = 0x200, - EXTRINSICPROPERTIESONLY = 0x400, - VOLATILEPROPERTIES = 0x800, - VOLATILEPROPERTIESONLY = 0x1000, - MASK_VALID = 0x1fff, + DEFAULT = 0, + HANDLERPROPERTIESONLY = 0x1, + READWRITE = 0x2, + TEMPORARY = 0x4, + FASTPROPERTIESONLY = 0x8, + OPENSLOWITEM = 0x10, + DELAYCREATION = 0x20, + BESTEFFORT = 0x40, + NO_OPLOCK = 0x80, + PREFERQUERYPROPERTIES = 0x100, + EXTRINSICPROPERTIES = 0x200, + EXTRINSICPROPERTIESONLY = 0x400, + VOLATILEPROPERTIES = 0x800, + VOLATILEPROPERTIESONLY = 0x1000, + MASK_VALID = 0x1fff, } PROPERTYKEY :: struct { fmtid: GUID, - pid: DWORD, + pid: DWORD, } BIND_OPTS :: struct { - cbStruct: DWORD, - grfFlags: DWORD, - grfMode: DWORD, + cbStruct: DWORD, + grfFlags: DWORD, + grfMode: DWORD, dwTickCountDeadline: DWORD, } STATSTG :: struct { - pwcsName: LPOLESTR, - type: DWORD, - cbSize: ULARGE_INTEGER, - mtime: FILETIME, - ctime: FILETIME, - atime: FILETIME, - grfMode: DWORD, + pwcsName: LPOLESTR, + type: DWORD, + cbSize: ULARGE_INTEGER, + mtime: FILETIME, + ctime: FILETIME, + atime: FILETIME, + grfMode: DWORD, grfLocksSupported: DWORD, - clsid: CLSID, - grfStateBits: DWORD, - reserved: DWORD, + clsid: CLSID, + grfStateBits: DWORD, + reserved: DWORD, } COMDLG_FILTERSPEC :: struct { @@ -4142,15 +4151,15 @@ COMDLG_FILTERSPEC :: struct { DECIMAL :: struct { wReserved: USHORT, - _: struct #raw_union { - _: struct { + using _: struct #raw_union { + using _: struct { scale, sign: BYTE, }, signscale: USHORT, }, Hi32: ULONG, - _: struct #raw_union { - _: struct { + using _: struct #raw_union { + using _: struct { Lo32, Mid32: ULONG, }, Lo64: ULONGLONG, @@ -4223,14 +4232,14 @@ LWSTDAPI :: HRESULT CLSID_FileOpenDialog := &GUID{0xDC1C5A9C, 0xE88A, 0x4DDE, {0xA5, 0xA1, 0x60, 0xF8, 0x2A, 0x20, 0xAE, 0xF7}} CLSID_FileSaveDialog := &GUID{0xC0B4E2F3, 0xBA21, 0x4773, {0x8D, 0xBA, 0x33, 0x5E, 0xC9, 0x46, 0xEB, 0x8B}} -CLSID_TaskbarList := &GUID{0x56FDF344, 0xFD6D, 0x11d0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}} +CLSID_TaskbarList := &GUID{0x56FDF344, 0xFD6D, 0x11d0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}} -IID_IFileDialog := &GUID{0x42F85136, 0xDB7E, 0x439C, {0x85, 0xF1, 0xE4, 0x07, 0x5D, 0x13, 0x5F, 0xC8}} -IID_IFileSaveDialog := &GUID{0x84BCCD23, 0x5FDE, 0x4CDB, {0xAE, 0xA4, 0xAF, 0x64, 0xB8, 0x3D, 0x78, 0xAB}} -IID_IFileOpenDialog := &GUID{0xD57C7288, 0xD4AD, 0x4768, {0xBE, 0x02, 0x9D, 0x96, 0x95, 0x32, 0xD9, 0x60}} -IID_ITaskbarList := &GUID{0x56FDF342, 0xFD6D, 0x11d0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}} -IID_ITaskbarList2 := &GUID{0x602D4995, 0xB13A, 0x429b, {0xA6, 0x6E, 0x19, 0x35, 0xE4, 0x4F, 0x43, 0x17}} -IID_ITaskbarList3 := &GUID{0xea1afb91, 0x9e28, 0x4b86, {0x90, 0xe9, 0x9e, 0x9f, 0x8a, 0x5e, 0xef, 0xaf}} +IID_IFileDialog := &GUID{0x42F85136, 0xDB7E, 0x439C, {0x85, 0xF1, 0xE4, 0x07, 0x5D, 0x13, 0x5F, 0xC8}} +IID_IFileSaveDialog := &GUID{0x84BCCD23, 0x5FDE, 0x4CDB, {0xAE, 0xA4, 0xAF, 0x64, 0xB8, 0x3D, 0x78, 0xAB}} +IID_IFileOpenDialog := &GUID{0xD57C7288, 0xD4AD, 0x4768, {0xBE, 0x02, 0x9D, 0x96, 0x95, 0x32, 0xD9, 0x60}} +IID_ITaskbarList := &GUID{0x56FDF342, 0xFD6D, 0x11d0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}} +IID_ITaskbarList2 := &GUID{0x602D4995, 0xB13A, 0x429b, {0xA6, 0x6E, 0x19, 0x35, 0xE4, 0x4F, 0x43, 0x17}} +IID_ITaskbarList3 := &GUID{0xea1afb91, 0x9e28, 0x4b86, {0x90, 0xe9, 0x9e, 0x9f, 0x8a, 0x5e, 0xef, 0xaf}} IModalWindow :: struct #raw_union { #subtype IUnknown: IUnknown, @@ -4726,24 +4735,24 @@ Windows_Product_Type :: enum DWORD { WEB_SERVER_CORE = 0x0000001D, // Web Server (core installation) } -ENABLE_ECHO_INPUT : DWORD : 0x0004 -ENABLE_INSERT_MODE : DWORD : 0x0020 -ENABLE_LINE_INPUT : DWORD : 0x0002 -ENABLE_MOUSE_INPUT : DWORD : 0x0010 -ENABLE_PROCESSED_INPUT : DWORD : 0x0001 -ENABLE_QUICK_EDIT_MODE : DWORD : 0x0040 -ENABLE_WINDOW_INPUT : DWORD : 0x0008 -ENABLE_VIRTUAL_TERMINAL_INPUT : DWORD : 0x0200 -ENABLE_PROCESSED_OUTPUT : DWORD : 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT : DWORD : 0x0002 +ENABLE_ECHO_INPUT : DWORD : 0x0004 +ENABLE_INSERT_MODE : DWORD : 0x0020 +ENABLE_LINE_INPUT : DWORD : 0x0002 +ENABLE_MOUSE_INPUT : DWORD : 0x0010 +ENABLE_PROCESSED_INPUT : DWORD : 0x0001 +ENABLE_QUICK_EDIT_MODE : DWORD : 0x0040 +ENABLE_WINDOW_INPUT : DWORD : 0x0008 +ENABLE_VIRTUAL_TERMINAL_INPUT : DWORD : 0x0200 +ENABLE_PROCESSED_OUTPUT : DWORD : 0x0001 +ENABLE_WRAP_AT_EOL_OUTPUT : DWORD : 0x0002 ENABLE_VIRTUAL_TERMINAL_PROCESSING : DWORD : 0x0004 -DISABLE_NEWLINE_AUTO_RETURN : DWORD : 0x0008 -ENABLE_LVB_GRID_WORLDWIDE : DWORD : 0x0010 +DISABLE_NEWLINE_AUTO_RETURN : DWORD : 0x0008 +ENABLE_LVB_GRID_WORLDWIDE : DWORD : 0x0010 -CTRL_C_EVENT : DWORD : 0 -CTRL_BREAK_EVENT : DWORD : 1 -CTRL_CLOSE_EVENT : DWORD : 2 -CTRL_LOGOFF_EVENT : DWORD : 5 +CTRL_C_EVENT : DWORD : 0 +CTRL_BREAK_EVENT : DWORD : 1 +CTRL_CLOSE_EVENT : DWORD : 2 +CTRL_LOGOFF_EVENT : DWORD : 5 CTRL_SHUTDOWN_EVENT : DWORD : 6 COORD :: struct { @@ -4752,45 +4761,45 @@ COORD :: struct { } SMALL_RECT :: struct { - Left: SHORT, - Top: SHORT, - Right: SHORT, + Left: SHORT, + Top: SHORT, + Right: SHORT, Bottom: SHORT, } CONSOLE_SCREEN_BUFFER_INFO :: struct { - dwSize: COORD, - dwCursorPosition: COORD, - wAttributes: WORD, - srWindow: SMALL_RECT, + dwSize: COORD, + dwCursorPosition: COORD, + wAttributes: WORD, + srWindow: SMALL_RECT, dwMaximumWindowSize: COORD, } CONSOLE_CURSOR_INFO :: struct { - dwSize: DWORD, + dwSize: DWORD, bVisible: BOOL, } PCONSOLE_SCREEN_BUFFER_INFO :: ^CONSOLE_SCREEN_BUFFER_INFO -PCONSOLE_CURSOR_INFO :: ^CONSOLE_CURSOR_INFO +PCONSOLE_CURSOR_INFO :: ^CONSOLE_CURSOR_INFO Event_Type :: enum WORD { - KEY_EVENT = 0x0001, - MOUSE_EVENT = 0x0002, + KEY_EVENT = 0x0001, + MOUSE_EVENT = 0x0002, WINDOW_BUFFER_SIZE_EVENT = 0x0004, - MENU_EVENT = 0x0008, - FOCUS_EVENT = 0x0010, + MENU_EVENT = 0x0008, + FOCUS_EVENT = 0x0010, } INPUT_RECORD :: struct { EventType: Event_Type, Event: struct #raw_union { - KeyEvent: KEY_EVENT_RECORD, - MouseEvent: MOUSE_EVENT_RECORD, - WindowBufferSizeEvent: WINDOW_BUFFER_SIZE_RECORD, - MenuEvent: MENU_EVENT_RECORD, - FocusEvent: FOCUS_EVENT_RECORD, + KeyEvent: KEY_EVENT_RECORD `raw_union_tag:"EventType=KEY_EVENT"`, + MouseEvent: MOUSE_EVENT_RECORD `raw_union_tag:"EventType=MOUSE_EVENT"`, + WindowBufferSizeEvent: WINDOW_BUFFER_SIZE_RECORD `raw_union_tag:"EventType=WINDOW_BUFFER_SIZE_EVENT"`, + MenuEvent: MENU_EVENT_RECORD `raw_union_tag:"EventType=MENU_EVENT"`, + FocusEvent: FOCUS_EVENT_RECORD `raw_union_tag:"EventType=FOCUS_EVENT"`, }, } @@ -4820,10 +4829,10 @@ KEY_EVENT_RECORD :: struct { } MOUSE_EVENT_RECORD :: struct { - dwMousePosition: COORD, - dwButtonState: DWORD, + dwMousePosition: COORD, + dwButtonState: DWORD, dwControlKeyState: DWORD, - dwEventFlags: DWORD, + dwEventFlags: DWORD, } WINDOW_BUFFER_SIZE_RECORD :: struct { @@ -4949,16 +4958,16 @@ SO_SNDBUF : c_int : 0x1001 SO_ERROR : c_int : 0x1007 SO_BROADCAST : c_int : 0x0020 -TCP_NODELAY: c_int : 0x0001 -IP_TTL: c_int : 4 -IPV6_V6ONLY: c_int : 27 -IP_MULTICAST_LOOP: c_int : 11 -IPV6_MULTICAST_LOOP: c_int : 11 -IP_MULTICAST_TTL: c_int : 10 -IP_ADD_MEMBERSHIP: c_int : 12 +TCP_NODELAY : c_int : 0x0001 +IP_TTL : c_int : 4 +IPV6_V6ONLY : c_int : 27 +IP_MULTICAST_LOOP : c_int : 11 +IPV6_MULTICAST_LOOP : c_int : 11 +IP_MULTICAST_TTL : c_int : 10 +IP_ADD_MEMBERSHIP : c_int : 12 -IPV6_ADD_MEMBERSHIP: c_int : 12 -IPV6_DROP_MEMBERSHIP: c_int : 13 +IPV6_ADD_MEMBERSHIP : c_int : 12 +IPV6_DROP_MEMBERSHIP : c_int : 13 MAX_PROTOCOL_CHAIN: DWORD : 7 @@ -4972,8 +4981,8 @@ MSG_OOB : c_int : 1 // `send`/`recv` should process out-of-band data. MSG_PEEK : c_int : 2 // `recv` should not remove the data from the buffer. Only valid for non-overlapped operations. -SOCKET :: distinct uintptr // TODO -socklen_t :: c_int +SOCKET :: distinct uintptr // TODO +socklen_t :: c_int ADDRESS_FAMILY :: USHORT ip_mreq :: struct { @@ -4999,7 +5008,7 @@ ADDRINFOA :: struct { ai_socktype: c_int, ai_protocol: c_int, ai_addrlen: size_t, - ai_canonname: ^c_char, + ai_canonname: [^]c_char `fmt:"q,ai_addrlen"`, ai_addr: ^SOCKADDR, ai_next: ^ADDRINFOA, } @@ -5032,18 +5041,18 @@ in6_addr :: struct { } -DNS_STATUS :: distinct DWORD // zero is success -DNS_INFO_NO_RECORDS :: 9501 +DNS_STATUS :: distinct DWORD // zero is success +DNS_INFO_NO_RECORDS :: 9501 DNS_QUERY_NO_RECURSION :: 0x00000004 DNS_RECORD :: struct { // aka DNS_RECORDA - pNext: ^DNS_RECORD, - pName: cstring, - wType: WORD, + pNext: ^DNS_RECORD, + pName: cstring, + wType: WORD, wDataLength: USHORT, - Flags: DWORD, - dwTtl: DWORD, - _: DWORD, + Flags: DWORD, + dwTtl: DWORD, + _: DWORD, Data: struct #raw_union #align(4) { CNAME: DNS_PTR_DATAA, A: u32be, // Ipv4 Address @@ -5064,8 +5073,8 @@ DNS_PTR_DATAA :: cstring DNS_MX_DATAA :: struct { pNameExchange: cstring, // the hostname - wPreference: WORD, // lower values preferred - _: WORD, // padding. + wPreference: WORD, // lower values preferred + _: WORD, // padding. } DNS_SRV_DATAA :: struct { pNameTarget: cstring, @@ -5110,8 +5119,8 @@ ENUMRESTYPEPROCW :: #type proc (hModule: HMODULE, lpType: LPCWSTR, lParam: LONG_ ENUMRESLANGPROCW :: #type proc (hModule: HMODULE, lpType: LPCWSTR, lpName: LPWSTR, wIDLanguage: LANGID, lParam: LONG_PTR)-> BOOL DTR_Control :: enum byte { - Disable = 0, - Enable = 1, + Disable = 0, + Enable = 1, Handshake = 2, } RTS_Control :: enum byte { @@ -5128,9 +5137,9 @@ Parity :: enum byte { Space = 4, } Stop_Bits :: enum byte { - One = 0, + One = 0, One_And_A_Half = 1, - Two = 2, + Two = 2, } DCB :: struct { @@ -5166,34 +5175,34 @@ DCB :: struct { } COMMTIMEOUTS :: struct { - ReadIntervalTimeout: DWORD, - ReadTotalTimeoutMultiplier: DWORD, - ReadTotalTimeoutConstant: DWORD, + ReadIntervalTimeout: DWORD, + ReadTotalTimeoutMultiplier: DWORD, + ReadTotalTimeoutConstant: DWORD, WriteTotalTimeoutMultiplier: DWORD, - WriteTotalTimeoutConstant: DWORD, + WriteTotalTimeoutConstant: DWORD, } -Com_Stat_Bits :: enum { - fCtsHold, - fDsrHold, - fRlsdHold, - fXoffHold, - fXoffSent, - fEof, - fTxim, -} COMSTAT :: struct { - bits: bit_set[Com_Stat_Bits; DWORD], - cbInQue: DWORD, + using _: bit_field DWORD { + fCtsHold: BOOL | 1, + fDsrHold: BOOL | 1, + fRlsdHol: BOOL | 1, + fXoffHol: BOOL | 1, + fXoffSen: BOOL | 1, + fEof: BOOL | 1, + fTxim: BOOL | 1, + fReserved: DWORD | 25, + }, + cbInQue: DWORD, cbOutQue: DWORD, } -Com_Error_Bits :: enum { +Com_Error_Bits :: enum DWORD { RXOVER, OVERRUN, RXPARITY, FRAME, BREAK, } -Com_Error :: bit_set[Com_Error_Bits; DWORD] +Com_Error :: distinct bit_set[Com_Error_Bits; DWORD] |