# Types

pGUI uses a relatively small set of types plus a couple of helper utilities.
These types are deliberately designed to crash on error, and maximise compile-time error messages. Should a typecheck error occur within pGUI.e, the prime suspect should be the calling code, however some routines may be a little over-zealous - for instance the first version of IupSetAttribute required an Ihandle, but now it accepts an Ihandln so that global attributes can also be set (with the implication that, as and when appropriate, verifying something is a non-null Ihandle is now an application-level concern).

Icallback | - | helper utility to declare a callback, and enable validation of the same.
Ihandle | - | an interface element, such as a button, image, timer, container, or whole dialog - may not be NULL. An Ihandln is an Ihandle or NULL - use (of Ihandln instead of Ihandle) suggests test/error handling should be present.
cdCanvas | - | a drawing canvas, on the screen/clipboard/printer/file/etc. May not be NULL.
nullable_string | - | a string or NULL - use (of this instead of string) suggests test/error handling should be present.
IupRawStringPtr | - | get raw string pointer.