Commit 8e9e126d41
Changed files (4)
lib
std
lib/std/os/windows/bits.zig
@@ -27,8 +27,13 @@ pub const UCHAR = u8;
pub const FLOAT = f32;
pub const HANDLE = *c_void;
pub const HCRYPTPROV = ULONG_PTR;
+pub const HBRUSH = *@OpaqueType();
+pub const HCURSOR = *@OpaqueType();
+pub const HICON = *@OpaqueType();
pub const HINSTANCE = *@OpaqueType();
+pub const HMENU = *@OpaqueType();
pub const HMODULE = *@OpaqueType();
+pub const HWND = *@OpaqueType();
pub const FARPROC = *@OpaqueType();
pub const INT = c_int;
pub const LPBYTE = *BYTE;
@@ -65,6 +70,10 @@ pub const LONGLONG = i64;
pub const HLOCAL = HANDLE;
pub const LANGID = c_ushort;
+pub const WPARAM = usize;
+pub const LPARAM = ?*c_void;
+pub const LRESULT = ?*c_void;
+
pub const va_list = *@OpaqueType();
pub const TRUE = 1;
lib/std/os/windows/kernel32.zig
@@ -103,7 +103,9 @@ pub extern "kernel32" fn GetFileAttributesW(lpFileName: [*]const WCHAR) callconv
pub extern "kernel32" fn GetModuleFileNameW(hModule: ?HMODULE, lpFilename: [*]u16, nSize: DWORD) callconv(.Stdcall) DWORD;
-pub extern "kernel32" fn GetModuleHandleW(lpModuleName: ?[*]const WCHAR) callconv(.Stdcall) ?HMODULE;
+pub extern "kernel32" fn GetModuleHandleA(lpModuleName: ?LPCSTR) callconv(.Stdcall) ?HMODULE;
+
+pub extern "kernel32" fn GetModuleHandleW(lpModuleName: ?[*:0]const WCHAR) callconv(.Stdcall) ?HMODULE;
pub extern "kernel32" fn GetLastError() callconv(.Stdcall) Win32Error;
lib/std/os/windows/user32.zig
@@ -0,0 +1,37 @@
+usingnamespace @import("bits.zig");
+
+pub const WNDPROC = fn (HWND, UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;
+
+pub const WNDCLASSEXA = extern struct {
+ cbSize: UINT = @sizeOf(WNDCLASSEXA),
+ style: UINT,
+ lpfnWndProc: WNDPROC,
+ cbClsExtra: i32,
+ cbWndExtra: i32,
+ hInstance: HINSTANCE,
+ hIcon: ?HICON,
+ hCursor: ?HCURSOR,
+ hbrBackground: ?HBRUSH,
+ lpszMenuName: ?LPCSTR,
+ lpszClassName: LPCSTR,
+ hIconSm: ?HICON,
+};
+
+pub extern "user32" fn CreateWindowExA(
+ dwExStyle: DWORD,
+ lpClassName: LPCSTR,
+ lpWindowName: LPCSTR,
+ dwStyle: DWORD,
+ X: i32,
+ Y: i32,
+ nWidth: i32,
+ nHeight: i32,
+ hWindParent: ?HWND,
+ hMenu: ?HMENU,
+ hInstance: HINSTANCE,
+ lpParam: ?LPVOID,
+) callconv(.Stdcall) ?HWND;
+
+pub extern "user32" fn DefWindowProcA(HWND, Msg: UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;
+
+pub extern "user32" fn RegisterClassExA(*const WNDCLASSEXA) callconv(.Stdcall) c_ushort;
lib/std/os/windows.zig
@@ -17,6 +17,7 @@ pub const ntdll = @import("windows/ntdll.zig");
pub const ole32 = @import("windows/ole32.zig");
pub const psapi = @import("windows/psapi.zig");
pub const shell32 = @import("windows/shell32.zig");
+pub const user32 = @import("windows/user32.zig");
pub const ws2_32 = @import("windows/ws2_32.zig");
pub usingnamespace @import("windows/bits.zig");