You can attach a property list to every window. Each property has a name, a type, and a value (see "Properties and Atoms"). The value is an array of 8-bit, 16-bit, or 32-bit quantities, whose interpretation is left to the clients. The type char is used to represent 8-bit quantities, the type short is used to represent 16-bit quantities, and the type long is used to represent 32-bit quantities.
Xlib provides functions that you can use to obtain, change, update, or interchange window properties. In addition, Xlib provides other utility functions for inter-client communication (see "Inter-Client Communication Functions").
To obtain the type, format, and value of a property of a given window, use XGetWindowProperty().
To obtain a given window's property list, use XListProperties().
To change a property of a given window, use XChangeProperty().
To rotate a window's property list, use XRotateWindowProperties().
To delete a property on a given window, use XDeleteProperty().