blob: 6b8dcff65d4301c335a9b1720d9688c4e6c4a57c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
// included by glib2.pas
{$IFDEF read_forward_definitions}
{$ENDIF read_forward_definitions}
//------------------------------------------------------------------------------
{$IFDEF read_interface_types}
PGHook = ^TGHook;
TGHook = record
data : gpointer;
next : PGHook;
prev : PGHook;
ref_count : guint;
hook_id : gulong;
flags : guint;
func : gpointer;
destroy : TGDestroyNotify;
end;
PGHookList = ^TGHookList;
TGHookCompareFunc = function (new_hook:PGHook; sibling:PGHook):gint;cdecl;
TGHookFindFunc = function (hook:PGHook; data:gpointer):gboolean;cdecl;
TGHookMarshaller = procedure (hook:PGHook; marshal_data:gpointer);cdecl;
TGHookCheckMarshaller = function (hook:PGHook; marshal_data:gpointer):gboolean;cdecl;
TGHookFunc = procedure (data:gpointer);cdecl;
TGHookCheckFunc = function (data:gpointer):gboolean;cdecl;
TGHookFinalizeFunc = procedure (hook_list:PGHookList; hook:PGHook);cdecl;
TGHookList = record
seq_id : gulong;
flag0 : longint;
hooks : PGHook;
hook_memchunk : PGMemChunk;
finalize_hook : TGHookFinalizeFunc;
dummy : array[0..1] of gpointer;
end;
PGHookFlagMask = ^TGHookFlagMask;
TGHookFlagMask = integer;
{$ENDIF read_interface_types}
//------------------------------------------------------------------------------
{$IFDEF read_interface_rest}
const
G_HOOK_FLAG_ACTIVE = 1 shl 0;
G_HOOK_FLAG_IN_CALL = 1 shl 1;
G_HOOK_FLAG_MASK = $0f;
const
G_HOOK_FLAG_USER_SHIFT = 4;
{ added for manipulating the TGHookList structure }
bm_TGHookList_hook_size = $FFFF;
bp_TGHookList_hook_size = 0;
bm_TGHookList_is_setup = $10000;
bp_TGHookList_is_setup = 16;
function TGHookList_hook_size (var a : TGHookList) : guint;
procedure TGHookList_set_hook_size (var a : TGHookList; __hook_size : guint);
function TGHookList_is_setup (var a : TGHookList) : guint;
procedure TGHookList_set_is_setup (var a : TGHookList; __is_setup : guint);
{ --- macros --- }
function G_HOOK(hook : pointer) : PGHook;
function G_HOOK_FLAGS(hook : PGHook) : guint;
function G_HOOK_ACTIVE (hook: PGHook): boolean;
function G_HOOK_IN_CALL (hook: PGHook): boolean;
function G_HOOK_IS_VALID (hook: PGHook): boolean;
function G_HOOK_IS_UNLINKED (hook: PGHook): boolean;
{ --- prototypes --- }
procedure g_hook_list_init (hook_list : PGHookList; hook_size : guint);cdecl; external gliblib name 'g_hook_list_init';
procedure g_hook_list_clear(hook_list:PGHookList);cdecl;external gliblib name 'g_hook_list_clear';
function g_hook_alloc(hook_list:PGHookList):PGHook;cdecl;external gliblib name 'g_hook_alloc';
procedure g_hook_free(hook_list:PGHookList; hook:PGHook);cdecl;external gliblib name 'g_hook_free';
procedure g_hook_ref(hook_list:PGHookList; hook:PGHook);cdecl;external gliblib name 'g_hook_ref';
procedure g_hook_unref(hook_list:PGHookList; hook:PGHook);cdecl;external gliblib name 'g_hook_unref';
function g_hook_destroy(hook_list:PGHookList; hook_id:gulong):gboolean;cdecl;external gliblib name 'g_hook_destroy';
procedure g_hook_destroy_link(hook_list:PGHookList; hook:PGHook);cdecl;external gliblib name 'g_hook_destroy_link';
procedure g_hook_prepend(hook_list:PGHookList; hook:PGHook);cdecl;external gliblib name 'g_hook_prepend';
procedure g_hook_insert_before(hook_list:PGHookList; sibling:PGHook; hook:PGHook);cdecl;external gliblib name 'g_hook_insert_before';
procedure g_hook_insert_sorted(hook_list:PGHookList; hook:PGHook; func:TGHookCompareFunc);cdecl;external gliblib name 'g_hook_insert_sorted';
function g_hook_get(hook_list:PGHookList; hook_id:gulong):PGHook;cdecl;external gliblib name 'g_hook_get';
function g_hook_find(hook_list:PGHookList; need_valids:gboolean; func:TGHookFindFunc; data:gpointer):PGHook;cdecl;external gliblib name 'g_hook_find';
function g_hook_find_data(hook_list:PGHookList; need_valids:gboolean; data:gpointer):PGHook;cdecl;external gliblib name 'g_hook_find_data';
function g_hook_find_func(hook_list:PGHookList; need_valids:gboolean; func:gpointer):PGHook;cdecl;external gliblib name 'g_hook_find_func';
function g_hook_find_func_data(hook_list:PGHookList; need_valids:gboolean; func:gpointer; data:gpointer):PGHook;cdecl;external gliblib name 'g_hook_find_func_data';
function g_hook_first_valid(hook_list:PGHookList; may_be_in_call:gboolean):PGHook;cdecl;external gliblib name 'g_hook_first_valid';
function g_hook_next_valid(hook_list:PGHookList; hook:PGHook; may_be_in_call:gboolean):PGHook;cdecl;external gliblib name 'g_hook_next_valid';
function g_hook_compare_ids(new_hook:PGHook; sibling:PGHook):gint;cdecl;external gliblib name 'g_hook_compare_ids';
{ convenience macros }
procedure g_hook_append (hook_list: PGHookList; hook:PGHook);
procedure g_hook_list_invoke_check(hook_list:PGHookList; may_recurse:gboolean);cdecl;external gliblib name 'g_hook_list_invoke_check';
procedure g_hook_list_marshal(hook_list:PGHookList; may_recurse:gboolean; marshaller:TGHookMarshaller; marshal_data:gpointer);cdecl;external gliblib name 'g_hook_list_marshal';
procedure g_hook_list_marshal_check(hook_list:PGHookList; may_recurse:gboolean; marshaller:TGHookCheckMarshaller; marshal_data:gpointer);cdecl;external gliblib name 'g_hook_list_marshal_check';
{$ENDIF read_interface_rest}
// included by glib2.pas
|