The Class structure contains functions to register custom classes as well as the definitions for the standard Windows classes.
structure Class: sig type HWND and Message and HINSTANCE and HBRUSH and HICON and HCURSOR and HGDIOBJ datatype LRESULT = LRESINT of int | LRESHANDLE of HGDIOBJ datatype 'a ATOM = Registered of {proc: HWND * Message * 'a -> LRESULT option * 'a, className: string} | SystemClass of string val Button : unit ATOM val ComboBox : unit ATOM val ComboLBox : unit ATOM val DDEMLEvent : unit ATOM val Edit : unit ATOM val ListBox : unit ATOM val MDIClient : unit ATOM val ScrollBar : unit ATOM val Static : unit ATOM structure Style : sig include BIT_FLAGS val CS_BYTEALIGNCLIENT : flags val CS_BYTEALIGNWINDOW : flags val CS_CLASSDC : flags val CS_DBLCLKS : flags val CS_GLOBALCLASS : flags val CS_HREDRAW : flags val CS_KEYCVTWINDOW : flags val CS_NOCLOSE : flags val CS_NOKEYCVT : flags val CS_OWNDC : flags val CS_PARENTDC : flags val CS_SAVEBITS : flags val CS_VREDRAW : flags end type 'a WNDCLASSEX = {style: Style.flags, wndProc: HWND * Message * 'a -> LRESULT option * 'a, hInstance: HINSTANCE, hIcon: HICON option, hCursor: HCURSOR option, hbrBackGround: HBRUSH option, menuName: Resource.RESID option, className: string, hIconSm: HICON option} val RegisterClassEx : 'a WNDCLASSEX -> 'a ATOM val UnregisterClass : string * HINSTANCE -> unit val GetClassName : HWND -> string val GetClassInfoEx: HINSTANCE * string -> 'a WNDCLASSEX end