mirror of
https://github.com/odin-lang/Odin.git
synced 2026-02-20 09:58:23 +00:00
Improve formatting; fix types; add struct field tags
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 ---
|
||||
}
|
||||
@@ -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 ---
|
||||
}
|
||||
|
||||
@@ -8,18 +8,18 @@ foreign import shcore "system:Shcore.lib"
|
||||
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 ---
|
||||
}
|
||||
}
|
||||
|
||||
PROCESS_DPI_AWARENESS :: enum DWORD {
|
||||
PROCESS_DPI_UNAWARE = 0,
|
||||
PROCESS_SYSTEM_DPI_AWARE = 1,
|
||||
PROCESS_PER_MONITOR_DPI_AWARE = 2,
|
||||
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_DEFAULT,
|
||||
MDT_RAW_DPI = 2,
|
||||
MDT_DEFAULT,
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user