结构

GLibHook

描述 [src]

struct GHook {
  gpointer data;
  GHook* next;
  GHook* prev;
  guint ref_count;
  gulong hook_id;
  guint flags;
  gpointer func;
  GDestroyNotify destroy;
}

GHook 结构代表 GHookList 中的单个挂钩函数。

结构成员
data

当这个挂钩被调用时传递给函数的数据。

next

指向列表中的下一个挂钩。

prev

指向列表中前一个挂钩。

ref_count

这个挂钩的引用计数。

hook_id

这个挂钩的 ID,在列表中是唯一的。

flags

为此挂钩设置的标志。参见 GHookFlagMask 以获取预定义标志。

func

调用这个挂钩时要调用的函数。这个函数可能的签名是 GHookFuncGHookCheckFunc

destroy

一个 GHookList 的默认 finalize_hook 函数调用这个被终结的挂钩的成员。

函数

g_hook_alloc

GHook 分配空间并初始化它。

g_hook_destroy

销毁 GHook,给定它的 ID

g_hook_destroy_link

GHookList 中移除一个 GHook,标记为不活动并调用 g_hook_unref()

g_hook_find

使用给定函数查找 GHookList 中的 GHook 来进行匹配测试。

g_hook_find_data

在带有给定数据的 GHookList 中查找 GHook

g_hook_find_func

在带有给定函数的 GHookList 中查找 GHook

g_hook_find_func_data

在带有给定函数和数据的 GHookList 中查找 GHook

g_hook_first_valid

返回 GHookList 中第一个没有被销毁的 GHook。该 GHook 的引用计数被增加,因此你必须在不再需要时调用 g_hook_unref() 来还原它。(如果你正在遍历 GHookList 请调用 g_hook_next_valid())。

g_hook_free

如果存在,调用 GHookList finalize_hook 函数,并释放为 GHook 分配的内存。

g_hook_get

返回具有给定 id 的 GHook,或者如果它没有被找到,则返回 NULL

g_hook_insert_before

GHookList 中在给定的 GHook 之前插入一个 GHook

g_hook_insert_sorted

GHookList 中插入一个 GHook,按给定函数排序。

g_hook_next_valid

返回 GHookList 中下一个没有被销毁的 GHook。该 GHook 的引用计数被增加,因此你必须在不再需要时调用 g_hook_unref() 来还原它。(或者继续调用 g_hook_next_valid() 直到返回 NULL)。

g_hook_prepend

GHookList 的开头插入一个 GHook

g_hook_ref

增加 GHook 的引用计数。

g_hook_unref

降低GHook的引用计算。如果引用计算减少到 0,GHook将被从GHookList删除并且g_hook_free()被调用来释放它。 

实例方法

g_hook_compare_ids

如果第二个 ID 大于第一个 ID,则比较两个GHook元素的 ID,返回负值。