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

# XmSetProtocolHooks(3)

A VendorShell function that allows preactions and postactions to be executed when a protocol message is received from MWM

## NAME

**XmSetProtocolHooks** — A VendorShell function that allows preactions and postactions to be executed when a protocol message is received from MWM

## SYNOPSIS

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

## DESCRIPTION

**XmSetProtocolHooks** is used by shells that want to have preactions and postactions executed when a protocol message is received from MWM. Since there is no guaranteed ordering in execution of event handlers or callback lists, this allows the shell to control the flow while leaving the protocol manager structures opaque.

**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

- *property*

  Specifies the protocol property

- *protocol*

  Specifies the protocol 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 [**XmSetWMProtocolHooks**(3)](/XmSetWMProtocolHooks/3.md).
