This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.
fncall_wWinMain() std.os.windows.INT {
constpeb = std.os.windows.peb();
constMAIN_HINSTANCE = @typeInfo(@TypeOf(root.wWinMain)).@"fn".param_types[0].?;
consthInstance: MAIN_HINSTANCE = @ptrCast(peb.ImageBaseAddress);
constlpCmdLine: [*:0]u16 = @ptrCast(peb.ProcessParameters.CommandLine.Buffer);
// There are various types used for the 'show window' variable through the Win32 APIs:
// - u16 in STARTUPINFOA.wShowWindow / STARTUPINFOW.wShowWindow
// - c_int in ShowWindow
// - u32 in PEB.ProcessParameters.dwShowWindow
// Since STARTUPINFO is the bottleneck for the allowed values, we use `u16` as the
// type which can coerce into i32/c_int/u32 depending on how the user defines their wWinMain
// (the Win32 docs show wWinMain with `int` as the type for nShowCmd).
constnShowCmd: u16 = nShowCmd: {
// This makes Zig match the nShowCmd behavior of a C program with a WinMain symbol:
// - With STARTF_USESHOWWINDOW set in STARTUPINFO.dwFlags of the CreateProcess call:
// - nShowCmd is STARTUPINFO.wShowWindow from the parent CreateProcess call
// - With STARTF_USESHOWWINDOW unset:
// - nShowCmd is always SW_SHOWDEFAULT
constSW_SHOWDEFAULT = 10;
if (peb.ProcessParameters.dwFlags & std.os.windows.STARTF_USESHOWWINDOW != 0) {
break :nShowCmd@truncate(peb.ProcessParameters.dwShowWindow);
}
break :nShowCmdSW_SHOWDEFAULT;
};
// second parameter hPrevInstance, MSDN: "This parameter is always NULL"returnroot.wWinMain(hInstance, null, lpCmdLine, nShowCmd);
}