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

# MrmRegisterNamesInHierarchy(3)

Registers the values associated with the names referenced in UIL within a single hierarchy (for example, UIL callback function names or UIL identifier names)

## NAME

**MrmRegisterNamesInHierarchy** — Registers the values associated with the names referenced in UIL within a single hierarchy (for example, UIL callback function names or UIL identifier names)

## SYNOPSIS

```
#include <Mrm/MrmPublic.h>
Cardinal MrmRegisterNamesInHierarchy(
MrmHierarchy hierarchy_id,
MrmRegisterArglist register_list,
MrmCount register_count);
```

## DESCRIPTION

The **MrmRegisterNamesInHierarchy** function registers a vector of names and associated values for access in MRM. The values can be callback functions, pointers to user-defined data, or any other values. The information provided is used to resolve symbolic references occurring in UID files to their run-time values. For callbacks, this information provides the procedure address required by the Motif Toolkit. For names used as identifiers in UIL, this information provides any run-time mapping the application needs.

This function is similar to **MrmRegisterNames**, except that the scope of the names registered by **MrmRegisterNamesInHierarchy** is limited to the hierarchy specified by *hierarchy\_id*, whereas the names registered by **MrmRegisterNames** have global scope. When MRM looks up a name, it first tries to find the name among those registered for the given hierarchy. If that lookup fails, it tries to find the name among those registered globally.

- *hierarchy\_id*

  Specifies the hierarchy with which the names are to be associated.

- *register\_list*

  Specifies a list of name/value pairs for the names to be registered. Each name is a case-sensitive, NULL-terminated ASCII string. Each value is a 32-bit quantity, interpreted as a procedure address if the name is a callback function, and uninterpreted otherwise.

- *register\_count*

  Specifies the number of entries in *register\_list*.

The names in the list are case-sensitive. The list can be either ordered or unordered.

Callback functions registered through **MrmRegisterNamesInHierarchy** can be either regular or creation callbacks. Regular callbacks have declarations determined by Motif Toolkit and user requirements. Creation callbacks have the same format as any other callback:

```
void CallBackProc(
Widget *widget_id,
Opaque tag,
XmAnyCallbackStruct *callback_data);
```

- *widget\_id*

  Specifies the widget ID associated with the widget performing the callback (as in any callback function).

- *tag*

  Specifies the tag value (as in any callback function).

- *callback\_data*

  Specifies a widget-specific data structure. This data structure has a minimum of two members: event and reason. The reason member is always set to **MrmCR\_CREATE**.

Note that the widget name and parent are available from the widget record accessible through *widget\_id*.

## RETURN

This function returns one of the following status return constants:

- **MrmSUCCESS**

  The function executed successfully.

- **MrmFAILURE**

  The function failed.
