Windows, common controls and dialogs, message loop and system APIs.
local winapi = require'winapi'
require'winapi.windowclass'
local win = winapi.Window{
w = 500, --all these are "initial fields"
h = 300,
title = 'Lua rulez',
autoquit = true, --this is to quit app when the window is closed
visible = false, --this field is from BaseWindow
}
function win:on_close() --this is an event handler
print'Bye'
end
print(win.title) --this is how to read the value of a property
win.title = 'Lua rulez!' --this is how to set the value of a property
win:show() --this is a method call
os.exit(winapi.MessageLoop()) --start the message loop
Also, many modules can be run as standalone scripts, which will showcase their functionality, so there’s lots of little demos there too.
The “proc” layer is documented in the code, including API quirks and empirical knowledge, so do check out the source code.