#include <X11/extensions/XInput2.h>
Status XIQueryVersion( Display *display, int *major_version_inout, int *minor_version_inout);
display Specifies the connection to the X server.
major_version_inout Specifies the client's supported XI2 version, and returns the server's supported version.
minor_version_inout Specifies the client's supported XI2 version, and returns the server's supported version.
XIQueryVersion announces the client's supported XI2 version to the server and returns server's supported X Input version. Clients are required to use XIQueryVersion instead of XGetExtensionVersion if they use XI2 calls. The server may treat a client differently depending on the supported version announced by the client. The major_version_inout must be 2 or greater, otherwise a BadValue error occurs.
If the server does not support XI2, XIQueryVersion returns BadRequest to the client. Otherwise, XIQueryVersion returns Success. In both cases major_version_inout and minor_version_inout are set to the server's supported version.
XIQueryVersion can generate a BadValue error.
int rc; int major = 2; int minor = 0;
rc = XIQueryVersion(dpy, &major, &minor); if (rc == Success) printf("XI2 supported. (%d.%d)\n", major, minor); else if (rc == BadRequest) printf("No XI2 support. (%d.%d only)\n", major, minor); else printf("Internal error\n");
BadValue A value is outside of the permitted range.