the address of a cairo_user_data_key_t to attach the user data to
the user data to attach to the surface
a cairo_destroy_func_t which will be called when the surface is destroyed or when new user data is attached using the same key.
CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a slot could not be allocated for the user data.
Attach user data to surface. To remove user data from a surface, call this function with the key that was used to set it and NULL for data.