構造体
ClientMessage イベント構造体の内容を示す。
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window window;
Atom message_type;
int format;
union {
char b[20];
short s[10];
long l[5];
} data;
} XClientMessageEvent;
このイベントを受け取った時、構造体のメンバは以下のように設定されている。
type メンバには、イベントの型を一意に識別する定数名が設定される。 例えば、X サーバがクライアントアプリケーションに GraphicsExpose イベントを通知するとき、X サーバは type メンバに GraphicsExpose を設定した XGraphicsExposeEvent 構造体を送る。 display メンバには、イベントが読み出されたディスプレイへのポインタが設定 される。 send_event メンバは、このイベント自身が SendEvent プロトコルリクエストから送られてきた場合に True が設定される。 serial メンバはプロトコルで通知されたシリアル番号を基に設定される。 ただし、最少桁の16ビットから完全32ビットの値に拡張される。 window メンバには、ツールキットのディスパッチャが最も有効に使える ウィンドウが設定される。
message_type メンバには、データを受け取ったクライアントがこれを どのように解釈すべきかを示すアトムが設定される。 format メンバには、8, 16, 32 のいずれかが設定され、データを byte, short, long いずれのリストとみなすかを指定する。 data メンバは、メンバ b, s, l を含む共用体である。 b, s, l メンバは 20 個の 8ビット値、10個の 16ビット値、5個の 32ビット 値を含むデータである。 特定のメッセージ型では、これら全ての値は使用されないことがある。 X サーバは window, message_type, data メンバの値については解釈を行わな い。

