xcb\_query\_extension(3) XCB Requests xcb\_query\_extension(3)

# [NAME](#NAME)

xcb\_query\_extension - check if extension is present

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;xcb/xproto.h&gt;**

## [Request function](#Request_function)

xcb\_query\_extension\_cookie\_t **xcb\_query\_extension**(xcb\_connection\_t \**conn*, uint16\_t *name\_len*, const char \**name*);

## [Reply datastructure](#Reply_datastructure)

```
typedef struct xcb_query_extension_reply_t {


    uint8_t  response_type;


    uint8_t  pad0;


    uint16_t sequence;


    uint32_t length;


    uint8_t  present;


    uint8_t  major_opcode;


    uint8_t  first_event;


    uint8_t  first_error;
} xcb_query_extension_reply_t;
```

## [Reply function](#Reply_function)

xcb\_query\_extension\_reply\_t \***xcb\_query\_extension\_reply**(xcb\_connection\_t \**conn*, xcb\_query\_extension\_cookie\_t *cookie*, xcb\_generic\_error\_t \*\**e*);

# [REQUEST ARGUMENTS](#REQUEST_ARGUMENTS)

[*conn*](#conn)

The XCB connection to X11.

[*name\_len*](#name_len)

The length of *name* in bytes.

[*name*](#name)

The name of the extension to query, for example "RANDR". This is case sensitive!

# [REPLY FIELDS](#REPLY_FIELDS)

[*response\_type*](#response_type)

The type of this reply, in this case *XCB\_QUERY\_EXTENSION*. This field is also present in the *xcb\_generic\_reply\_t* and can be used to tell replies apart from each other.

[*sequence*](#sequence)

The sequence number of the last request processed by the X11 server.

[*length*](#length)

The length of the reply, in words (a word is 4 bytes).

[*present*](#present)

Whether the extension is present on this X11 server.

[*major\_opcode*](#major_opcode)

The major opcode for requests.

[*first\_event*](#first_event)

The first event code, if any.

[*first\_error*](#first_error)

The first error code, if any.

# [DESCRIPTION](#DESCRIPTION)

Determines if the specified extension is present on this X11 server.

Every extension has a unique *major\_opcode* to identify requests, the minor opcodes and request formats are extension-specific. If the extension provides events and errors, the *first\_event* and *first\_error* fields in the reply are set accordingly.

There should rarely be a need to use this request directly, XCB provides the *xcb\_get\_extension\_data* function instead.

# [RETURN VALUE](#RETURN_VALUE)

Returns an *xcb\_query\_extension\_cookie\_t*. Errors have to be handled when calling the reply function *xcb\_query\_extension\_reply*.

If you want to handle errors in the event loop instead, use *xcb\_query\_extension\_unchecked*. See [**xcb-requests(3)**](/man/os/libxcb/xcb-requests.3) for details.

# [ERRORS](#ERRORS)

This request does never generate any errors.

# [SEE ALSO](#SEE_ALSO)

[**xcb-requests**(3)](/man/os/libxcb/xcb-requests.3), [**xcb\_get\_extension\_data**(3)](/man/os/libxcb/xcb_get_extension_data.3), [**xdpyinfo**(1)](/man/os/libxcb/xdpyinfo.1)

# [AUTHOR](#AUTHOR)

Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.

libxcb 1.17.0 X Version 11

---

Document: xcb_query_extension_unchecked(3) from libxcb 1.17.0-r19 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libxcb.git
