char  *(*XESetErrorString(display, extension, proc))()
      Display *display;
      int extension;
      char *(*proc)();
| display | Specifies the connection to the X server. | 
| extension | Specifies the extension number. | 
| proc | Specifies the procedure to call to obtain an error string. | 
(*proc)(display, code, codes, buffer, nbytes)
	Display *display;
	int code;
	XExtCodes *codes;
	char *buffer;
	int nbytes;
Your procedure is called with the error code for every error detected. You should copy nbytes of a null-terminated string containing the error message into buffer.