Skip to content

Commit 1e23a3c

Browse files
JakubSzarkandrewrk
authored andcommitted
Added gdi32.zig and More user32 definitions
1 parent 022a71c commit 1e23a3c

File tree

4 files changed

+184
-1
lines changed

4 files changed

+184
-1
lines changed

lib/std/os/windows.zig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ pub const psapi = @import("windows/psapi.zig");
1919
pub const shell32 = @import("windows/shell32.zig");
2020
pub const user32 = @import("windows/user32.zig");
2121
pub const ws2_32 = @import("windows/ws2_32.zig");
22+
pub const gdi32 = @import("windows/gdi32.zig");
2223

2324
pub usingnamespace @import("windows/bits.zig");
2425

lib/std/os/windows/bits.zig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ pub const HINSTANCE = *@OpaqueType();
3434
pub const HMENU = *@OpaqueType();
3535
pub const HMODULE = *@OpaqueType();
3636
pub const HWND = *@OpaqueType();
37+
pub const HDC = *@OpaqueType();
38+
pub const HGLRC = *@OpaqueType();
3739
pub const FARPROC = *@OpaqueType();
3840
pub const INT = c_int;
3941
pub const LPBYTE = *BYTE;

lib/std/os/windows/gdi32.zig

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
usingnamespace @import("bits.zig");
2+
3+
pub const PIXELFORMATDESCRIPTOR = extern struct {
4+
nSize: WORD = @sizeOf(PIXELFORMATDESCRIPTOR),
5+
nVersion: WORD,
6+
dwFlags: DWORD,
7+
iPixelType: BYTE,
8+
cColorBits: BYTE,
9+
cRedBits: BYTE,
10+
cRedShift: BYTE,
11+
cGreenBits: BYTE,
12+
cGreenShift: BYTE,
13+
cBlueBits: BYTE,
14+
cBlueShift: BYTE,
15+
cAlphaBits: BYTE,
16+
cAlphaShift: BYTE,
17+
cAccumBits: BYTE,
18+
cAccumRedBits: BYTE,
19+
cAccumGreenBits: BYTE,
20+
cAccumBlueBits: BYTE,
21+
cAccumAlphaBits: BYTE,
22+
cDepthBits: BYTE,
23+
cStencilBits: BYTE,
24+
cAuxBuffers: BYTE,
25+
iLayerType: BYTE,
26+
bReserved: BYTE,
27+
dwLayerMask: DWORD,
28+
dwVisibleMask: DWORD,
29+
dwDamageMask: DWORD,
30+
};
31+
32+
pub extern "gdi32" fn SetPixelFormat(
33+
hdc: ?HDC,
34+
format: i32,
35+
ppfd: ?*const PIXELFORMATDESCRIPTOR,
36+
) callconv(.Stdcall) bool;
37+
38+
pub extern "gdi32" fn ChoosePixelFormat(
39+
hdc: ?HDC,
40+
ppfd: ?*const PIXELFORMATDESCRIPTOR,
41+
) callconv(.Stdcall) i32;
42+
43+
pub extern "gdi32" fn SwapBuffers(hdc: ?HDC) callconv(.Stdcall) bool;
44+
pub extern "gdi32" fn wglCreateContext(hdc: ?HDC) callconv(.Stdcall) ?HGLRC;
45+
pub extern "gdi32" fn wglMakeCurrent(hdc: ?HDC, hglrc: ?HGLRC) callconv(.Stdcall) bool;

lib/std/os/windows/user32.zig

Lines changed: 136 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,104 @@
11
usingnamespace @import("bits.zig");
22

3+
// PM
4+
pub const PM_REMOVE = 0x0001;
5+
pub const PM_NOREMOVE = 0x0000;
6+
pub const PM_NOYIELD = 0x0002;
7+
8+
// WM
9+
pub const WM_NULL = 0x0000;
10+
pub const WM_CREATE = 0x0001;
11+
pub const WM_DESTROY = 0x0002;
12+
pub const WM_MOVE = 0x0003;
13+
pub const WM_SIZE = 0x0005;
14+
15+
pub const WM_ACTIVATE = 0x0006;
16+
pub const WM_PAINT = 0x000F;
17+
pub const WM_CLOSE = 0x0010;
18+
pub const WM_QUIT = 0x0012;
19+
pub const WM_SETFOCUS = 0x0007;
20+
21+
pub const WM_KILLFOCUS = 0x0008;
22+
pub const WM_ENABLE = 0x000A;
23+
pub const WM_SETREDRAW = 0x000B;
24+
25+
pub const WM_SYSCOLORCHANGE = 0x0015;
26+
pub const WM_SHOWWINDOW = 0x0018;
27+
28+
pub const WM_WINDOWPOSCHANGING = 0x0046;
29+
pub const WM_WINDOWPOSCHANGED = 0x0047;
30+
pub const WM_POWER = 0x0048;
31+
32+
pub const WM_CONTEXTMENU = 0x007B;
33+
pub const WM_STYLECHANGING = 0x007C;
34+
pub const WM_STYLECHANGED = 0x007D;
35+
pub const WM_DISPLAYCHANGE = 0x007E;
36+
pub const WM_GETICON = 0x007F;
37+
pub const WM_SETICON = 0x0080;
38+
39+
pub const WM_INPUT_DEVICE_CHANGE = 0x00fe;
40+
pub const WM_INPUT = 0x00FF;
41+
pub const WM_KEYFIRST = 0x0100;
42+
pub const WM_KEYDOWN = 0x0100;
43+
pub const WM_KEYUP = 0x0101;
44+
pub const WM_CHAR = 0x0102;
45+
pub const WM_DEADCHAR = 0x0103;
46+
pub const WM_SYSKEYDOWN = 0x0104;
47+
pub const WM_SYSKEYUP = 0x0105;
48+
pub const WM_SYSCHAR = 0x0106;
49+
pub const WM_SYSDEADCHAR = 0x0107;
50+
pub const WM_UNICHAR = 0x0109;
51+
pub const WM_KEYLAST = 0x0109;
52+
53+
pub const WM_COMMAND = 0x0111;
54+
pub const WM_SYSCOMMAND = 0x0112;
55+
pub const WM_TIMER = 0x0113;
56+
57+
pub const WM_MOUSEFIRST = 0x0200;
58+
pub const WM_MOUSEMOVE = 0x0200;
59+
pub const WM_LBUTTONDOWN = 0x0201;
60+
pub const WM_LBUTTONUP = 0x0202;
61+
pub const WM_LBUTTONDBLCLK = 0x0203;
62+
pub const WM_RBUTTONDOWN = 0x0204;
63+
pub const WM_RBUTTONUP = 0x0205;
64+
pub const WM_RBUTTONDBLCLK = 0x0206;
65+
pub const WM_MBUTTONDOWN = 0x0207;
66+
pub const WM_MBUTTONUP = 0x0208;
67+
pub const WM_MBUTTONDBLCLK = 0x0209;
68+
pub const WM_MOUSEWHEEL = 0x020A;
69+
pub const WM_XBUTTONDOWN = 0x020B;
70+
pub const WM_XBUTTONUP = 0x020C;
71+
pub const WM_XBUTTONDBLCLK = 0x020D;
72+
73+
// WA
74+
pub const WA_INACTIVE = 0;
75+
pub const WA_ACTIVE = 0x0006;
76+
pub const WM_ACTIVATE = 0x0006;
77+
78+
// WS
79+
pub const WS_OVERLAPPED = 0x00000000;
80+
pub const WS_CAPTION = 0x00C00000;
81+
pub const WS_SYSMENU = 0x00080000;
82+
pub const WS_THICKFRAME = 0x00040000;
83+
pub const WS_MINIMIZEBOX = 0x00020000;
84+
pub const WS_MAXIMIZEBOX = 0x00010000;
85+
86+
// PFD
87+
pub const PFD_DRAW_TO_WINDOW = 0x00000004;
88+
pub const PFD_SUPPORT_OPENGL = 0x00000020;
89+
pub const PFD_DOUBLEBUFFER = 0x00000001;
90+
pub const PFD_MAIN_PLANE = 0;
91+
pub const PFD_TYPE_RGBA = 0;
92+
93+
// CS
94+
pub const CS_HREDRAW = 0x0002;
95+
pub const CS_VREDRAW = 0x0001;
96+
pub const CS_OWNDC = 0x0020;
97+
98+
// SW
99+
pub const SW_HIDE = 0;
100+
pub const SW_SHOW = 5;
101+
3102
pub const WNDPROC = fn (HWND, UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;
4103

5104
pub const WNDCLASSEXA = extern struct {
@@ -17,6 +116,20 @@ pub const WNDCLASSEXA = extern struct {
17116
hIconSm: ?HICON,
18117
};
19118

119+
pub const POINT = extern struct {
120+
x: c_long, y: c_long
121+
};
122+
123+
pub const MSG = extern struct {
124+
hWnd: ?HWND,
125+
message: UINT,
126+
wParam: WPARAM,
127+
lParam: LPARAM,
128+
time: DWORD,
129+
pt: POINT,
130+
lPrivate: DWORD,
131+
};
132+
20133
pub extern "user32" fn CreateWindowExA(
21134
dwExStyle: DWORD,
22135
lpClassName: LPCSTR,
@@ -32,6 +145,28 @@ pub extern "user32" fn CreateWindowExA(
32145
lpParam: ?LPVOID,
33146
) callconv(.Stdcall) ?HWND;
34147

148+
pub extern "user32" fn RegisterClassExA(*const WNDCLASSEXA) callconv(.Stdcall) c_ushort;
35149
pub extern "user32" fn DefWindowProcA(HWND, Msg: UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;
150+
pub extern "user32" fn GetModuleHandleA(lpModuleName: ?LPCSTR) callconv(.Stdcall) HMODULE;
151+
pub extern "user32" fn ShowWindow(hWnd: ?HWND, nCmdShow: i32) callconv(.Stdcall) bool;
152+
pub extern "user32" fn UpdateWindow(hWnd: ?HWND) callconv(.Stdcall) bool;
153+
pub extern "user32" fn GetDC(hWnd: ?HWND) callconv(.Stdcall) ?HDC;
36154

37-
pub extern "user32" fn RegisterClassExA(*const WNDCLASSEXA) callconv(.Stdcall) c_ushort;
155+
pub extern "user32" fn PeekMessageA(
156+
lpMsg: ?*MSG,
157+
hWnd: ?HWND,
158+
wMsgFilterMin: UINT,
159+
wMsgFilterMax: UINT,
160+
wRemoveMsg: UINT,
161+
) callconv(.Stdcall) bool;
162+
163+
pub extern "user32" fn GetMessageA(
164+
lpMsg: ?*MSG,
165+
hWnd: ?HWND,
166+
wMsgFilterMin: UINT,
167+
wMsgFilterMax: UINT,
168+
) callconv(.Stdcall) bool;
169+
170+
pub extern "user32" fn TranslateMessage(lpMsg: *const MSG) callconv(.Stdcall) bool;
171+
pub extern "user32" fn DispatchMessageA(lpMsg: *const MSG) callconv(.Stdcall) LRESULT;
172+
pub extern "user32" fn PostQuitMessage(nExitCode: i32) callconv(.Stdcall) void;

0 commit comments

Comments
 (0)