mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
sys/windows: add functions and constants
This commit is contained in:
@@ -7,6 +7,8 @@ foreign import gdi32 "system:Gdi32.lib"
|
|||||||
foreign gdi32 {
|
foreign gdi32 {
|
||||||
GetStockObject :: proc(i: c_int) -> HGDIOBJ ---
|
GetStockObject :: proc(i: c_int) -> HGDIOBJ ---
|
||||||
SelectObject :: proc(hdc: HDC, h: HGDIOBJ) -> HGDIOBJ ---
|
SelectObject :: proc(hdc: HDC, h: HGDIOBJ) -> HGDIOBJ ---
|
||||||
|
DeleteObject :: proc(ho: HGDIOBJ) -> BOOL ---
|
||||||
|
SetBkColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
|
||||||
|
|
||||||
CreateDIBPatternBrush :: proc(h: HGLOBAL, iUsage: UINT) -> HBRUSH ---
|
CreateDIBPatternBrush :: proc(h: HGLOBAL, iUsage: UINT) -> HBRUSH ---
|
||||||
|
|
||||||
@@ -65,6 +67,15 @@ foreign gdi32 {
|
|||||||
SetDCBrushColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
|
SetDCBrushColor :: proc(hdc: HDC, color: COLORREF) -> COLORREF ---
|
||||||
GetDCBrushColor :: proc(hdc: HDC) -> COLORREF ---
|
GetDCBrushColor :: proc(hdc: HDC) -> COLORREF ---
|
||||||
PatBlt :: proc(hdc: HDC, x, y, w, h: c_int, rop: DWORD) -> BOOL ---
|
PatBlt :: proc(hdc: HDC, x, y, w, h: c_int, rop: DWORD) -> BOOL ---
|
||||||
|
Rectangle :: proc(hdc: HDC, left, top, right, bottom: c_int) -> BOOL ---
|
||||||
|
|
||||||
|
CreateFontW :: proc(
|
||||||
|
cHeight, cWidth, cEscapement, cOrientation, cWeight: c_int,
|
||||||
|
bItalic, bUnderline, bStrikeOut, iCharSet, iOutPrecision: DWORD,
|
||||||
|
iClipPrecision, iQuality, iPitchAndFamily: DWORD,
|
||||||
|
pszFaceName: LPCWSTR,
|
||||||
|
) -> HFONT ---
|
||||||
|
TextOutW :: proc(hdc: HDC, x, y: c_int, lpString: LPCWSTR, c: c_int) -> BOOL ---
|
||||||
}
|
}
|
||||||
|
|
||||||
RGB :: #force_inline proc "contextless" (r, g, b: u8) -> COLORREF {
|
RGB :: #force_inline proc "contextless" (r, g, b: u8) -> COLORREF {
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ HGLOBAL :: distinct HANDLE
|
|||||||
HHOOK :: distinct HANDLE
|
HHOOK :: distinct HANDLE
|
||||||
HKEY :: distinct HANDLE
|
HKEY :: distinct HANDLE
|
||||||
HDESK :: distinct HANDLE
|
HDESK :: distinct HANDLE
|
||||||
|
HFONT :: distinct HANDLE
|
||||||
BOOL :: distinct b32
|
BOOL :: distinct b32
|
||||||
BYTE :: distinct u8
|
BYTE :: distinct u8
|
||||||
BOOLEAN :: distinct b8
|
BOOLEAN :: distinct b8
|
||||||
@@ -455,6 +456,201 @@ BROADCAST_QUERY_DENY :: 0x424D5144
|
|||||||
HWND_BROADCAST :: HWND(uintptr(0xffff))
|
HWND_BROADCAST :: HWND(uintptr(0xffff))
|
||||||
HWND_MESSAGE :: HWND(~uintptr(0) - 2) // -3
|
HWND_MESSAGE :: HWND(~uintptr(0) - 2) // -3
|
||||||
|
|
||||||
|
// Color Types
|
||||||
|
CTLCOLOR_MSGBOX :: 0
|
||||||
|
CTLCOLOR_EDIT :: 1
|
||||||
|
CTLCOLOR_LISTBOX :: 2
|
||||||
|
CTLCOLOR_BTN :: 3
|
||||||
|
CTLCOLOR_DLG :: 4
|
||||||
|
CTLCOLOR_SCROLLBAR :: 5
|
||||||
|
CTLCOLOR_STATIC :: 6
|
||||||
|
CTLCOLOR_MAX :: 7
|
||||||
|
|
||||||
|
COLOR_SCROLLBAR :: 0
|
||||||
|
COLOR_BACKGROUND :: 1
|
||||||
|
COLOR_ACTIVECAPTION :: 2
|
||||||
|
COLOR_INACTIVECAPTION :: 3
|
||||||
|
COLOR_MENU :: 4
|
||||||
|
COLOR_WINDOW :: 5
|
||||||
|
COLOR_WINDOWFRAME :: 6
|
||||||
|
COLOR_MENUTEXT :: 7
|
||||||
|
COLOR_WINDOWTEXT :: 8
|
||||||
|
COLOR_CAPTIONTEXT :: 9
|
||||||
|
COLOR_ACTIVEBORDER :: 10
|
||||||
|
COLOR_INACTIVEBORDER :: 11
|
||||||
|
COLOR_APPWORKSPACE :: 12
|
||||||
|
COLOR_HIGHLIGHT :: 13
|
||||||
|
COLOR_HIGHLIGHTTEXT :: 14
|
||||||
|
COLOR_BTNFACE :: 15
|
||||||
|
COLOR_BTNSHADOW :: 16
|
||||||
|
COLOR_GRAYTEXT :: 17
|
||||||
|
COLOR_BTNTEXT :: 18
|
||||||
|
COLOR_INACTIVECAPTIONTEXT :: 19
|
||||||
|
COLOR_BTNHIGHLIGHT :: 20
|
||||||
|
|
||||||
|
COLOR_3DDKSHADOW :: 21
|
||||||
|
COLOR_3DLIGHT :: 22
|
||||||
|
COLOR_INFOTEXT :: 23
|
||||||
|
COLOR_INFOBK :: 24
|
||||||
|
COLOR_HOTLIGHT :: 26
|
||||||
|
COLOR_GRADIENTACTIVECAPTION :: 27
|
||||||
|
COLOR_GRADIENTINACTIVECAPTION :: 28
|
||||||
|
COLOR_MENUHILIGHT :: 29
|
||||||
|
COLOR_MENUBAR :: 30
|
||||||
|
|
||||||
|
COLOR_DESKTOP :: COLOR_BACKGROUND
|
||||||
|
COLOR_3DFACE :: COLOR_BTNFACE
|
||||||
|
COLOR_3DSHADOW :: COLOR_BTNSHADOW
|
||||||
|
COLOR_3DHIGHLIGHT :: COLOR_BTNHIGHLIGHT
|
||||||
|
COLOR_3DHILIGHT :: COLOR_BTNHIGHLIGHT
|
||||||
|
COLOR_BTNHILIGHT :: COLOR_BTNHIGHLIGHT
|
||||||
|
|
||||||
|
// Combo Box Notification Codes
|
||||||
|
CBN_ERRSPACE :: -1
|
||||||
|
CBN_SELCHANGE :: 1
|
||||||
|
CBN_DBLCLK :: 2
|
||||||
|
CBN_SETFOCUS :: 3
|
||||||
|
CBN_KILLFOCUS :: 4
|
||||||
|
CBN_EDITCHANGE :: 5
|
||||||
|
CBN_EDITUPDATE :: 6
|
||||||
|
CBN_DROPDOWN :: 7
|
||||||
|
CBN_CLOSEUP :: 8
|
||||||
|
CBN_SELENDOK :: 9
|
||||||
|
CBN_SELENDCANCEL :: 10
|
||||||
|
|
||||||
|
// Combo Box styles
|
||||||
|
CBS_SIMPLE :: 0x0001
|
||||||
|
CBS_DROPDOWN :: 0x0002
|
||||||
|
CBS_DROPDOWNLIST :: 0x0003
|
||||||
|
CBS_OWNERDRAWFIXED :: 0x0010
|
||||||
|
CBS_OWNERDRAWVARIABLE :: 0x0020
|
||||||
|
CBS_AUTOHSCROLL :: 0x0040
|
||||||
|
CBS_OEMCONVERT :: 0x0080
|
||||||
|
CBS_SORT :: 0x0100
|
||||||
|
CBS_HASSTRINGS :: 0x0200
|
||||||
|
CBS_NOINTEGRALHEIGHT :: 0x0400
|
||||||
|
CBS_DISABLENOSCROLL :: 0x0800
|
||||||
|
CBS_UPPERCASE :: 0x2000
|
||||||
|
CBS_LOWERCASE :: 0x4000
|
||||||
|
|
||||||
|
// User Button Notification Codes
|
||||||
|
BN_CLICKED :: 0
|
||||||
|
BN_PAINT :: 1
|
||||||
|
BN_HILITE :: 2
|
||||||
|
BN_UNHILITE :: 3
|
||||||
|
BN_DISABLE :: 4
|
||||||
|
BN_DOUBLECLICKED :: 5
|
||||||
|
BN_PUSHED :: BN_HILITE
|
||||||
|
BN_UNPUSHED :: BN_UNHILITE
|
||||||
|
BN_DBLCLK :: BN_DOUBLECLICKED
|
||||||
|
BN_SETFOCUS :: 6
|
||||||
|
BN_KILLFOCUS :: 7
|
||||||
|
|
||||||
|
// Button Control Styles
|
||||||
|
BS_PUSHBUTTON :: 0x00000000
|
||||||
|
BS_DEFPUSHBUTTON :: 0x00000001
|
||||||
|
BS_CHECKBOX :: 0x00000002
|
||||||
|
BS_AUTOCHECKBOX :: 0x00000003
|
||||||
|
BS_RADIOBUTTON :: 0x00000004
|
||||||
|
BS_3STATE :: 0x00000005
|
||||||
|
BS_AUTO3STATE :: 0x00000006
|
||||||
|
BS_GROUPBOX :: 0x00000007
|
||||||
|
BS_USERBUTTON :: 0x00000008
|
||||||
|
BS_AUTORADIOBUTTON :: 0x00000009
|
||||||
|
BS_PUSHBOX :: 0x0000000A
|
||||||
|
BS_OWNERDRAW :: 0x0000000B
|
||||||
|
BS_TYPEMASK :: 0x0000000F
|
||||||
|
BS_LEFTTEXT :: 0x00000020
|
||||||
|
BS_TEXT :: 0x00000000
|
||||||
|
BS_ICON :: 0x00000040
|
||||||
|
BS_BITMAP :: 0x00000080
|
||||||
|
BS_LEFT :: 0x00000100
|
||||||
|
BS_RIGHT :: 0x00000200
|
||||||
|
BS_CENTER :: 0x00000300
|
||||||
|
BS_TOP :: 0x00000400
|
||||||
|
BS_BOTTOM :: 0x00000800
|
||||||
|
BS_VCENTER :: 0x00000C00
|
||||||
|
BS_PUSHLIKE :: 0x00001000
|
||||||
|
BS_MULTILINE :: 0x00002000
|
||||||
|
BS_NOTIFY :: 0x00004000
|
||||||
|
BS_FLAT :: 0x00008000
|
||||||
|
BS_RIGHTBUTTON :: BS_LEFTTEXT
|
||||||
|
|
||||||
|
// Button Control Messages
|
||||||
|
BST_UNCHECKED :: 0x0000
|
||||||
|
BST_CHECKED :: 0x0001
|
||||||
|
BST_INDETERMINATE :: 0x0002
|
||||||
|
BST_PUSHED :: 0x0004
|
||||||
|
BST_FOCUS :: 0x0008
|
||||||
|
|
||||||
|
// Static Control Constants
|
||||||
|
SS_LEFT :: 0x00000000
|
||||||
|
SS_CENTER :: 0x00000001
|
||||||
|
SS_RIGHT :: 0x00000002
|
||||||
|
SS_ICON :: 0x00000003
|
||||||
|
SS_BLACKRECT :: 0x00000004
|
||||||
|
SS_GRAYRECT :: 0x00000005
|
||||||
|
SS_WHITERECT :: 0x00000006
|
||||||
|
SS_BLACKFRAME :: 0x00000007
|
||||||
|
SS_GRAYFRAME :: 0x00000008
|
||||||
|
SS_WHITEFRAME :: 0x00000009
|
||||||
|
SS_USERITEM :: 0x0000000A
|
||||||
|
SS_SIMPLE :: 0x0000000B
|
||||||
|
SS_LEFTNOWORDWRAP :: 0x0000000C
|
||||||
|
SS_OWNERDRAW :: 0x0000000D
|
||||||
|
SS_BITMAP :: 0x0000000E
|
||||||
|
SS_ENHMETAFILE :: 0x0000000F
|
||||||
|
SS_ETCHEDHORZ :: 0x00000010
|
||||||
|
SS_ETCHEDVERT :: 0x00000011
|
||||||
|
SS_ETCHEDFRAME :: 0x00000012
|
||||||
|
SS_TYPEMASK :: 0x0000001F
|
||||||
|
SS_REALSIZECONTROL :: 0x00000040
|
||||||
|
SS_NOPREFIX :: 0x00000080
|
||||||
|
SS_NOTIFY :: 0x00000100
|
||||||
|
SS_CENTERIMAGE :: 0x00000200
|
||||||
|
SS_RIGHTJUST :: 0x00000400
|
||||||
|
SS_REALSIZEIMAGE :: 0x00000800
|
||||||
|
SS_SUNKEN :: 0x00001000
|
||||||
|
SS_EDITCONTROL :: 0x00002000
|
||||||
|
SS_ENDELLIPSIS :: 0x00004000
|
||||||
|
SS_PATHELLIPSIS :: 0x00008000
|
||||||
|
SS_WORDELLIPSIS :: 0x0000C000
|
||||||
|
SS_ELLIPSISMASK :: 0x0000C000
|
||||||
|
|
||||||
|
// Edit Control Styles
|
||||||
|
ES_LEFT :: 0x0000
|
||||||
|
ES_CENTER :: 0x0001
|
||||||
|
ES_RIGHT :: 0x0002
|
||||||
|
ES_MULTILINE :: 0x0004
|
||||||
|
ES_UPPERCASE :: 0x0008
|
||||||
|
ES_LOWERCASE :: 0x0010
|
||||||
|
ES_PASSWORD :: 0x0020
|
||||||
|
ES_AUTOVSCROLL :: 0x0040
|
||||||
|
ES_AUTOHSCROLL :: 0x0080
|
||||||
|
ES_NOHIDESEL :: 0x0100
|
||||||
|
ES_OEMCONVERT :: 0x0400
|
||||||
|
ES_READONLY :: 0x0800
|
||||||
|
ES_WANTRETURN :: 0x1000
|
||||||
|
ES_NUMBER :: 0x2000
|
||||||
|
|
||||||
|
// Font Weights
|
||||||
|
FW_DONTCARE :: 0
|
||||||
|
FW_THIN :: 100
|
||||||
|
FW_EXTRALIGHT :: 200
|
||||||
|
FW_LIGHT :: 300
|
||||||
|
FW_NORMAL :: 400
|
||||||
|
FW_MEDIUM :: 500
|
||||||
|
FW_SEMIBOLD :: 600
|
||||||
|
FW_BOLD :: 700
|
||||||
|
FW_EXTRABOLD :: 800
|
||||||
|
FW_HEAVY :: 900
|
||||||
|
|
||||||
|
FW_ULTRALIGHT :: FW_EXTRALIGHT
|
||||||
|
FW_REGULAR :: FW_NORMAL
|
||||||
|
FW_DEMIBOLD :: FW_SEMIBOLD
|
||||||
|
FW_ULTRABOLD :: FW_EXTRABOLD
|
||||||
|
FW_BLACK :: FW_HEAVY
|
||||||
|
|
||||||
PTIMERAPCROUTINE :: #type proc "stdcall" (lpArgToCompletionRoutine: LPVOID, dwTimerLowValue, dwTimerHighValue: DWORD)
|
PTIMERAPCROUTINE :: #type proc "stdcall" (lpArgToCompletionRoutine: LPVOID, dwTimerLowValue, dwTimerHighValue: DWORD)
|
||||||
|
|
||||||
TIMERPROC :: #type proc "stdcall" (HWND, UINT, UINT_PTR, DWORD)
|
TIMERPROC :: #type proc "stdcall" (HWND, UINT, UINT_PTR, DWORD)
|
||||||
@@ -544,6 +740,8 @@ MSG :: struct {
|
|||||||
pt: POINT,
|
pt: POINT,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LPMSG :: ^MSG
|
||||||
|
|
||||||
PAINTSTRUCT :: struct {
|
PAINTSTRUCT :: struct {
|
||||||
hdc: HDC,
|
hdc: HDC,
|
||||||
fErase: BOOL,
|
fErase: BOOL,
|
||||||
|
|||||||
@@ -161,6 +161,18 @@ foreign user32 {
|
|||||||
uTimeout: UINT,
|
uTimeout: UINT,
|
||||||
lpdwResult: PDWORD_PTR,
|
lpdwResult: PDWORD_PTR,
|
||||||
) -> LRESULT ---
|
) -> LRESULT ---
|
||||||
|
|
||||||
|
GetSysColor :: proc(nIndex: c_int) -> DWORD ---
|
||||||
|
GetSysColorBrush :: proc(nIndex: c_int) -> HBRUSH ---
|
||||||
|
SetSysColors :: proc(cElements: c_int, lpaElements: ^INT, lpaRgbValues: ^COLORREF) -> BOOL ---
|
||||||
|
MessageBeep :: proc(uType: UINT) -> BOOL ---
|
||||||
|
|
||||||
|
IsDialogMessageW :: proc(hDlg: HWND, lpMsg: LPMSG) -> BOOL ---
|
||||||
|
GetWindowTextLengthW :: proc(hWnd: HWND) -> c_int ---
|
||||||
|
GetWindowTextW :: proc(hWnd: HWND, lpString: LPWSTR, nMaxCount: c_int) -> c_int ---
|
||||||
|
SetWindowTextW :: proc(hWnd: HWND, lpString: LPCWSTR) -> BOOL ---
|
||||||
|
CallWindowProcW :: proc(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT ---
|
||||||
|
EnableWindow :: proc(hWnd: HWND, bEnable: BOOL) -> BOOL ---
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateWindowW :: #force_inline proc "stdcall" (
|
CreateWindowW :: #force_inline proc "stdcall" (
|
||||||
|
|||||||
Reference in New Issue
Block a user