---
name: "XmSetWMProtocolHooks"
section: "3"
platform: "linux"
package: "openmotif"
version: "2.3.8-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XmSetWMProtocolHooks"
---

# XmSetWMProtocolHooks(3)

A VendorShell convenience interface that allows preactions and postactions to be executed when a protocol message is received from the window manager

## NAME

**XmSetWMProtocolHooks** — A VendorShell convenience interface that allows preactions and postactions to be executed when a protocol message is received from the window manager

## SYNOPSIS

```
#include <Xm/Xm.h>
#include <Xm/Protocols.h>
void XmSetWMProtocolHooks(
Widget shell,
Atom protocol,
XtCallbackProc prehook,
XtPointer pre_closure,
XtCallbackProc posthook,
XtPointer post_closure);
```

## DESCRIPTION

**XmSetWMProtocolHooks** is a convenience interface. It calls **XmSetProtocolHooks** with the property value set to the atom returned by interning **WM\_PROTOCOLS**.

- *shell*

  Specifies the widget with which the protocol property is associated

- *protocol*

  Specifies the protocol atom (or an *int* cast to **Atom**)

- *prehook*

  Specifies the procedure to call before calling entries on the client callback list

- *pre\_closure*

  Specifies the client data to be passed to the prehook when it is invoked

- *posthook*

  Specifies the procedure to call after calling entries on the client callback list

- *post\_closure*

  Specifies the client data to be passed to the posthook when it is invoked

For a complete definition of VendorShell and its associated resources, see [**VendorShell**(3)](/VendorShell/3.md).

## RELATED

[**VendorShell**(3)](/VendorShell/3.md), [**XmInternAtom**(3)](/XmInternAtom/3.md), and [**XmSetProtocolHooks**(3)](/XmSetProtocolHooks/3.md).
