From 8ec7e2c5c483b61c329e9e23cf5abc511aea68c9 Mon Sep 17 00:00:00 2001 From: Brad Nelson Date: Sun, 1 Dec 2024 21:26:27 -0800 Subject: [PATCH] Fixed some windows types. Amazing this didn't fail before. Likely the "magic" of padding. --- windows/windows_gdi.fs | 22 +++++++++++----------- windows/windows_user.fs | 37 ++++++++++++++++++++++--------------- 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/windows/windows_gdi.fs b/windows/windows_gdi.fs index 921f057..fc68121 100644 --- a/windows/windows_gdi.fs +++ b/windows/windows_gdi.fs @@ -51,17 +51,17 @@ struct RGBQUAD u8 field ->rgbRed u8 field ->rgbReserved struct BITMAPINFOHEADER - i16 field ->biSize - i32 field ->biWidth - i32 field ->biHeight - i16 field ->biPlanes - i16 field ->biBitCount - i32 field ->biCompression - i32 field ->biSizeImage - i32 field ->biXPelsPerMeter - i32 field ->biYPelsPerMeter - i32 field ->biClrUsed - i32 field ->biClrImportant + DWORD field ->biSize + WINLONG field ->biWidth + WINLONG field ->biHeight + WINWORD field ->biPlanes + WINWORD field ->biBitCount + DWORD field ->biCompression + DWORD field ->biSizeImage + WINLONG field ->biXPelsPerMeter + WINLONG field ->biYPelsPerMeter + DWORD field ->biClrUsed + DWORD field ->biClrImportant struct BITMAPINFO BITMAPINFOHEADER field ->bmiHeader RGBQUAD field ->bmiColors diff --git a/windows/windows_user.fs b/windows/windows_user.fs index e4780b0..31a969f 100644 --- a/windows/windows_user.fs +++ b/windows/windows_user.fs @@ -18,6 +18,13 @@ also internals ( Windows handles bottom out as void pointers. ) : HANDLE ptr ; +: DWORD u32 ; +: WINLONG i32 ; +: UINT u32 ; +: WPARAM ptr ; +: LPARAM ptr ; +: WINBOOL i32 ; +: WINWORD u16 ; z" User32.dll" dll User32 @@ -32,7 +39,7 @@ z" MessageBoxA" 4 User32 MessageBoxA z" RegisterClassA" 1 User32 RegisterClassA struct WINDCLASSA - i16 field ->style + UINT field ->style ptr field ->lpfnWndProc i32 field ->cbClsExtra i32 field ->cbWndExtra @@ -99,14 +106,14 @@ $400000 constant DefaultInstance $80000000 constant CW_USEDEFAULT struct POINT - i32 field ->x - i32 field ->y + WINLONG field ->x + WINLONG field ->y struct RECT - i32 field ->left - i32 field ->top - i32 field ->right - i32 field ->bottom + WINLONG field ->left + WINLONG field ->top + WINLONG field ->right + WINLONG field ->bottom z" SetRect" 5 User32 SetRect z" GetMessageA" 4 User32 GetMessageA @@ -115,12 +122,12 @@ z" TranslateMessage" 1 User32 TranslateMessage z" DispatchMessageA" 1 User32 DispatchMessageA struct MSG HANDLE field ->hwnd - i32 field ->message - i16 field ->wParam - i32 field ->lParam - i32 field ->time + UINT field ->message + WPARAM field ->wParam + LPARAM field ->lParam + DWORD field ->time POINT field ->pt - i32 field ->lPrivate + DWORD field ->lPrivate 0 constant PM_NOREMOVE 1 constant PM_REMOVE 2 constant PM_NOYIELD @@ -130,10 +137,10 @@ z" BeginPaint" 2 User32 BeginPaint z" EndPaint" 2 User32 EndPaint struct PAINTSTRUCT HANDLE field ->hdc - i32 field ->fErase + WINBOOL field ->fErase RECT field ->rcPaint - i32 field ->fRestore - i32 field ->fIncUpdate + WINBOOL field ->fRestore + WINBOOL field ->fIncUpdate 32 u8 * field ->rgbReserved z" FillRect" 3 User32 FillRect