authorgravatar for quae@daurnimator.comdaurnimator <quae@daurnimator.com> 2020-04-12 13:59:20+10:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-04-12 02:28:52-04:00
log8e9e126d41cbca619a2a4658fb38d10120388e8f
treee629feeb268c0975745d6ec925a05d0f1cc5e898
parent20b2457388c924ec01cc6ea9d5331edbf27176ff

std: add some basic windows user32 definitions


4 files changed, 50 insertions(+), 1 deletions(-)

lib/std/os/windows.zig+1
...@@ -17,6 +17,7 @@ pub const ntdll = @import("windows/ntdll.zig");...@@ -17,6 +17,7 @@ pub const ntdll = @import("windows/ntdll.zig");
17pub const ole32 = @import("windows/ole32.zig");17pub const ole32 = @import("windows/ole32.zig");
18pub const psapi = @import("windows/psapi.zig");18pub const psapi = @import("windows/psapi.zig");
19pub const shell32 = @import("windows/shell32.zig");19pub const shell32 = @import("windows/shell32.zig");
20pub const user32 = @import("windows/user32.zig");
20pub const ws2_32 = @import("windows/ws2_32.zig");21pub const ws2_32 = @import("windows/ws2_32.zig");
2122
22pub usingnamespace @import("windows/bits.zig");23pub usingnamespace @import("windows/bits.zig");
lib/std/os/windows/bits.zig+9
...@@ -27,8 +27,13 @@ pub const UCHAR = u8;...@@ -27,8 +27,13 @@ pub const UCHAR = u8;
27pub const FLOAT = f32;27pub const FLOAT = f32;
28pub const HANDLE = *c_void;28pub const HANDLE = *c_void;
29pub const HCRYPTPROV = ULONG_PTR;29pub const HCRYPTPROV = ULONG_PTR;
30pub const HBRUSH = *@OpaqueType();
31pub const HCURSOR = *@OpaqueType();
32pub const HICON = *@OpaqueType();
30pub const HINSTANCE = *@OpaqueType();33pub const HINSTANCE = *@OpaqueType();
34pub const HMENU = *@OpaqueType();
31pub const HMODULE = *@OpaqueType();35pub const HMODULE = *@OpaqueType();
36pub const HWND = *@OpaqueType();
32pub const FARPROC = *@OpaqueType();37pub const FARPROC = *@OpaqueType();
33pub const INT = c_int;38pub const INT = c_int;
34pub const LPBYTE = *BYTE;39pub const LPBYTE = *BYTE;
...@@ -65,6 +70,10 @@ pub const LONGLONG = i64;...@@ -65,6 +70,10 @@ pub const LONGLONG = i64;
65pub const HLOCAL = HANDLE;70pub const HLOCAL = HANDLE;
66pub const LANGID = c_ushort;71pub const LANGID = c_ushort;
6772
73pub const WPARAM = usize;
74pub const LPARAM = ?*c_void;
75pub const LRESULT = ?*c_void;
76
68pub const va_list = *@OpaqueType();77pub const va_list = *@OpaqueType();
6978
70pub const TRUE = 1;79pub const TRUE = 1;
lib/std/os/windows/kernel32.zig+3-1
...@@ -103,7 +103,9 @@ pub extern "kernel32" fn GetFileAttributesW(lpFileName: [*]const WCHAR) callconv...@@ -103,7 +103,9 @@ pub extern "kernel32" fn GetFileAttributesW(lpFileName: [*]const WCHAR) callconv
103103
104pub extern "kernel32" fn GetModuleFileNameW(hModule: ?HMODULE, lpFilename: [*]u16, nSize: DWORD) callconv(.Stdcall) DWORD;104pub extern "kernel32" fn GetModuleFileNameW(hModule: ?HMODULE, lpFilename: [*]u16, nSize: DWORD) callconv(.Stdcall) DWORD;
105105
106pub extern "kernel32" fn GetModuleHandleW(lpModuleName: ?[*]const WCHAR) callconv(.Stdcall) ?HMODULE;106pub extern "kernel32" fn GetModuleHandleA(lpModuleName: ?LPCSTR) callconv(.Stdcall) ?HMODULE;
107
108pub extern "kernel32" fn GetModuleHandleW(lpModuleName: ?[*:0]const WCHAR) callconv(.Stdcall) ?HMODULE;
107109
108pub extern "kernel32" fn GetLastError() callconv(.Stdcall) Win32Error;110pub extern "kernel32" fn GetLastError() callconv(.Stdcall) Win32Error;
109111
lib/std/os/windows/user32.zig created+37
...@@ -0,0 +1,37 @@
1usingnamespace @import("bits.zig");
2
3pub const WNDPROC = fn (HWND, UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;
4
5pub const WNDCLASSEXA = extern struct {
6 cbSize: UINT = @sizeOf(WNDCLASSEXA),
7 style: UINT,
8 lpfnWndProc: WNDPROC,
9 cbClsExtra: i32,
10 cbWndExtra: i32,
11 hInstance: HINSTANCE,
12 hIcon: ?HICON,
13 hCursor: ?HCURSOR,
14 hbrBackground: ?HBRUSH,
15 lpszMenuName: ?LPCSTR,
16 lpszClassName: LPCSTR,
17 hIconSm: ?HICON,
18};
19
20pub extern "user32" fn CreateWindowExA(
21 dwExStyle: DWORD,
22 lpClassName: LPCSTR,
23 lpWindowName: LPCSTR,
24 dwStyle: DWORD,
25 X: i32,
26 Y: i32,
27 nWidth: i32,
28 nHeight: i32,
29 hWindParent: ?HWND,
30 hMenu: ?HMENU,
31 hInstance: HINSTANCE,
32 lpParam: ?LPVOID,
33) callconv(.Stdcall) ?HWND;
34
35pub extern "user32" fn DefWindowProcA(HWND, Msg: UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;
36
37pub extern "user32" fn RegisterClassExA(*const WNDCLASSEXA) callconv(.Stdcall) c_ushort;