mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-04 09:44:40 +00:00
Add various missing windows procedures
This commit is contained in:
@@ -10,6 +10,8 @@ foreign gdi32 {
|
||||
DeleteObject :: proc(ho: HGDIOBJ) -> BOOL ---
|
||||
SetBkColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
|
||||
|
||||
CreateCompatibleDC :: proc(hdc: HDC) -> HDC ---
|
||||
|
||||
CreateDIBPatternBrush :: proc(h: HGLOBAL, iUsage: UINT) -> HBRUSH ---
|
||||
|
||||
CreateDIBitmap :: proc(
|
||||
@@ -81,6 +83,11 @@ foreign gdi32 {
|
||||
GetTextMetricsW :: proc(hdc: HDC, lptm: LPTEXTMETRICW) -> BOOL ---
|
||||
|
||||
CreateSolidBrush :: proc(color: COLORREF) -> HBRUSH ---
|
||||
|
||||
GetObjectW :: proc(h: HANDLE, c: c_int, pv: LPVOID) -> int ---
|
||||
CreateCompatibleBitmap :: proc(hdc: HDC, cx, cy: c_int) -> HBITMAP ---
|
||||
BitBlt :: proc(hdc: HDC, x, y, cx, cy: c_int, hdcSrc: HDC, x1, y1: c_int, rop: DWORD) -> BOOL ---
|
||||
GetDIBits :: proc(hdc: HDC, hbm: HBITMAP, start, cLines: UINT, lpvBits: LPVOID, lpbmi: ^BITMAPINFO, usage: UINT) -> int ---
|
||||
}
|
||||
|
||||
RGB :: #force_inline proc "contextless" (r, g, b: u8) -> COLORREF {
|
||||
|
||||
@@ -290,6 +290,14 @@ foreign kernel32 {
|
||||
hTemplateFile: HANDLE,
|
||||
) -> HANDLE ---
|
||||
|
||||
GetFileTime :: proc(
|
||||
hFile: HANDLE,
|
||||
lpCreationTime: LPFILETIME,
|
||||
lpLastAccessTime: LPFILETIME,
|
||||
lpLastWriteTime: LPFILETIME,
|
||||
) -> BOOL ---
|
||||
CompareFileTime :: proc(lpFileTime1: LPFILETIME, lpFileTime2: LPFILETIME) -> LONG ---
|
||||
|
||||
FindFirstFileW :: proc(fileName: LPCWSTR, findFileData: LPWIN32_FIND_DATAW) -> HANDLE ---
|
||||
FindNextFileW :: proc(findFile: HANDLE, findFileData: LPWIN32_FIND_DATAW) -> BOOL ---
|
||||
FindClose :: proc(findFile: HANDLE) -> BOOL ---
|
||||
@@ -346,6 +354,9 @@ foreign kernel32 {
|
||||
LocalReAlloc :: proc(mem: LPVOID, bytes: SIZE_T, flags: UINT) -> LPVOID ---
|
||||
LocalFree :: proc(mem: LPVOID) -> LPVOID ---
|
||||
|
||||
GlobalAlloc :: proc(flags: UINT, bytes: SIZE_T) -> LPVOID ---
|
||||
GlobalReAlloc :: proc(mem: LPVOID, bytes: SIZE_T, flags: UINT) -> LPVOID ---
|
||||
GlobalFree :: proc(mem: LPVOID) -> LPVOID ---
|
||||
|
||||
ReadDirectoryChangesW :: proc(
|
||||
hDirectory: HANDLE,
|
||||
@@ -414,7 +425,7 @@ foreign kernel32 {
|
||||
GetConsoleWindow :: proc() -> HWND ---
|
||||
GetConsoleScreenBufferInfo :: proc(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO) -> BOOL ---
|
||||
SetConsoleScreenBufferSize :: proc(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL ---
|
||||
SetConsoleWindowInfo :: proc(hConsoleOutput: HANDLE, bAbsolute : BOOL, lpConsoleWindow: ^SMALL_RECT) -> BOOL ---
|
||||
SetConsoleWindowInfo :: proc(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: ^SMALL_RECT) -> BOOL ---
|
||||
GetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL ---
|
||||
SetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL ---
|
||||
|
||||
|
||||
@@ -1969,6 +1969,16 @@ BITMAPINFO :: struct {
|
||||
bmiColors: [1]RGBQUAD,
|
||||
}
|
||||
|
||||
BITMAP :: struct {
|
||||
bmType: LONG,
|
||||
bmWidth: LONG,
|
||||
bmHeight: LONG,
|
||||
bmWidthBytes: LONG,
|
||||
bmPlanes: WORD,
|
||||
bmBitsPixel: WORD,
|
||||
bmBits: LPVOID,
|
||||
}
|
||||
|
||||
// pixel types
|
||||
PFD_TYPE_RGBA :: 0
|
||||
PFD_TYPE_COLORINDEX :: 1
|
||||
|
||||
@@ -160,6 +160,8 @@ foreign user32 {
|
||||
MonitorFromRect :: proc(lprc: LPRECT, dwFlags: Monitor_From_Flags) -> HMONITOR ---
|
||||
MonitorFromWindow :: proc(hwnd: HWND, dwFlags: Monitor_From_Flags) -> HMONITOR ---
|
||||
EnumDisplayMonitors :: proc(hdc: HDC, lprcClip: LPRECT, lpfnEnum: Monitor_Enum_Proc, dwData: LPARAM) -> BOOL ---
|
||||
|
||||
EnumWindows :: proc(lpEnumFunc: Window_Enum_Proc, lParam: LPARAM) -> BOOL ---
|
||||
|
||||
SetThreadDpiAwarenessContext :: proc(dpiContext: DPI_AWARENESS_CONTEXT) -> DPI_AWARENESS_CONTEXT ---
|
||||
GetThreadDpiAwarenessContext :: proc() -> DPI_AWARENESS_CONTEXT ---
|
||||
@@ -310,6 +312,7 @@ Monitor_From_Flags :: enum DWORD {
|
||||
}
|
||||
|
||||
Monitor_Enum_Proc :: #type proc "stdcall" (HMONITOR, HDC, LPRECT, LPARAM) -> BOOL
|
||||
Window_Enum_Proc :: #type proc "stdcall" (HWND, LPARAM) -> BOOL
|
||||
|
||||
USER_DEFAULT_SCREEN_DPI :: 96
|
||||
DPI_AWARENESS_CONTEXT :: distinct HANDLE
|
||||
|
||||
Reference in New Issue
Block a user