XmSetProtocolHooks man page
XmSetProtocolHooks — A VendorShell function that allows preactions and postactions to be executed when a protocol message is received from MWM
#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);
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.
Specifies the widget with which the protocol property is associated
Specifies the protocol property
Specifies the protocol atom
Specifies the procedure to call before calling entries on the client callback list
Specifies the client data to be passed to the prehook when it is invoked
Specifies the procedure to call after calling entries on the client callback list
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), XmInternAtom(3), and XmSetWMProtocolHooks(3).