type hwnd type message_box_option = MB_ABORTRETRYIGNORE | MB_APPLMODAL | MB_DEFAULT_DESKTOP_ONLY | MB_DEFBUTTON1 | MB_DEFBUTTON2 | MB_DEFBUTTON3 | MB_DEFBUTTON4 | MB_HELP | MB_ICONASTERISK | MB_ICONERROR | MB_ICONEXCLAMATION | MB_ICONHAND | MB_ICONINFORMATION | MB_ICONQUESTION | MB_ICONSTOP | MB_ICONWARNING | MB_OK | MB_OKCANCEL | MB_RETRYCANCEL | MB_RIGHT | MB_RTLREADING | MB_SETFOREGROUND | MB_SYSTEMMODAL | MB_TASKMODAL | MB_TOPMOST | MB_YESNO | MB_YESNOCANCEL type standard_control_id = IDABORT | IDCANCEL | IDCLOSE | IDHELP | IDIGNORE | IDNO | IDOK | IDRETRY | IDYES external get_null_hwnd : unit -> hwnd = "get_null_hwnd" let null_hwnd = get_null_hwnd () external message_box : wnd:hwnd -> text:string -> caption:string -> options:message_box_option list -> standard_control_id = "message_box" let () = ignore ( message_box ~wnd:null_hwnd ~text:"Hello, Win32 API World!" ~caption:"Hello, World!" ~options:[MB_OK] );