### Function

# GObject signal_add_emission_hook

since: 2.0

#### Declaration

    gulong
    g_signal_add_emission_hook (
      guint signal_id,
      GQuark detail,
      GSignalEmissionHook hook_func,
      gpointer hook_data,
      GDestroyNotify data_destroy
    )

#### Description

Adds an emission hook for a signal, which will get called for any emission of that signal, independent of the instance. This is possible only for signals which don’t have `G_SIGNAL_NO_HOOKS` flag set.

Available since: 2.0

#### Parameters

`signal_id`

  Type: `guint`

  The signal identifier, as returned by g_signal_lookup().

`detail`

  Type: `GQuark`

  The detail on which to call the hook.

`hook_func`

  Type: `GSignalEmissionHook`

  A `GSignalEmissionHook` function.

`hook_data`

  Type: `gpointer`

  User data for `hook_func`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`data_destroy`

  Type: `GDestroyNotify`

  A `GDestroyNotify` for `hook_data`.

  The argument can be `NULL`.

#### Return value

Type: `gulong`

The hook id, for later use with g_signal_remove_emission_hook().