<!-- ##### SECTION Title ##### -->
Closures

<!-- ##### SECTION Short_Description ##### -->


<!-- ##### SECTION Long_Description ##### -->
<para>

</para>


<!-- ##### SECTION See_Also ##### -->
<para>

</para>


<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### MACRO G_CLOSURE_NEEDS_MARSHAL ##### -->
<para>

</para>

@closure: 


<!-- ##### MACRO G_CLOSURE_N_NOTIFIERS ##### -->
<para>

</para>

@cl: 


<!-- ##### MACRO G_CCLOSURE_SWAP_DATA ##### -->
<para>

</para>

@cclosure: 


<!-- ##### MACRO G_CALLBACK ##### -->
<para>

</para>

@f: 


<!-- ##### USER_FUNCTION GCallback ##### -->
<para>

</para>

@void: 


<!-- ##### STRUCT GClosure ##### -->
<para>

</para>

@in_marshal: 
@is_invalid: 

<!-- ##### MACRO G_TYPE_CLOSURE ##### -->
<para>

</para>



<!-- ##### STRUCT GCClosure ##### -->
<para>

</para>

@closure: 
@callback: 

<!-- ##### USER_FUNCTION GClosureMarshal ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### USER_FUNCTION GVaClosureMarshal ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### USER_FUNCTION GClosureNotify ##### -->
<para>

</para>

@data: 
@closure: 


<!-- ##### FUNCTION g_cclosure_new ##### -->
<para>

</para>

@callback_func: 
@user_data: 
@destroy_data: 
@Returns: 


<!-- ##### FUNCTION g_cclosure_new_swap ##### -->
<para>

</para>

@callback_func: 
@user_data: 
@destroy_data: 
@Returns: 


<!-- ##### FUNCTION g_cclosure_new_object ##### -->
<para>

</para>

@callback_func: 
@object: 
@Returns: 


<!-- ##### FUNCTION g_cclosure_new_object_swap ##### -->
<para>

</para>

@callback_func: 
@object: 
@Returns: 


<!-- ##### FUNCTION g_cclosure_marshal_generic ##### -->
<para>

</para>

@closure: 
@return_gvalue: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_closure_new_object ##### -->
<para>

</para>

@sizeof_closure: 
@object: 
@Returns: 


<!-- ##### FUNCTION g_closure_ref ##### -->
<para>

</para>

@closure: 
@Returns: 


<!-- ##### FUNCTION g_closure_sink ##### -->
<para>

</para>

@closure: 


<!-- ##### FUNCTION g_closure_unref ##### -->
<para>

</para>

@closure: 


<!-- ##### FUNCTION g_closure_invoke ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 


<!-- ##### FUNCTION g_closure_invalidate ##### -->
<para>

</para>

@closure: 


<!-- ##### FUNCTION g_closure_add_finalize_notifier ##### -->
<para>

</para>

@closure: 
@notify_data: 
@notify_func: 


<!-- ##### FUNCTION g_closure_add_invalidate_notifier ##### -->
<para>

</para>

@closure: 
@notify_data: 
@notify_func: 


<!-- ##### FUNCTION g_closure_remove_finalize_notifier ##### -->
<para>

</para>

@closure: 
@notify_data: 
@notify_func: 


<!-- ##### FUNCTION g_closure_remove_invalidate_notifier ##### -->
<para>

</para>

@closure: 
@notify_data: 
@notify_func: 


<!-- ##### FUNCTION g_closure_new_simple ##### -->
<para>

</para>

@sizeof_closure: 
@data: 
@Returns: 


<!-- ##### FUNCTION g_closure_set_marshal ##### -->
<para>

</para>

@closure: 
@marshal: 


<!-- ##### FUNCTION g_closure_add_marshal_guards ##### -->
<para>

</para>

@closure: 
@pre_marshal_data: 
@pre_marshal_notify: 
@post_marshal_data: 
@post_marshal_notify: 


<!-- ##### FUNCTION g_closure_set_meta_marshal ##### -->
<para>

</para>

@closure: 
@marshal_data: 
@meta_marshal: 


<!-- ##### FUNCTION g_source_set_closure ##### -->
<para>

</para>

@source: 
@closure: 


<!-- ##### FUNCTION g_source_set_dummy_callback ##### -->
<para>

</para>

@source: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__VOID ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__BOOLEAN ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__CHAR ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__UCHAR ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__INT ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__UINT ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__LONG ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__ULONG ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__ENUM ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__FLAGS ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__FLOAT ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__DOUBLE ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__STRING ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__PARAM ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__BOXED ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__POINTER ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__OBJECT ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__VARIANT ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_STRING__OBJECT_POINTER ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__UINT_POINTER ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### FUNCTION g_cclosure_marshal_BOOLEAN__FLAGS ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### MACRO g_cclosure_marshal_BOOL__FLAGS ##### -->
<para>

</para>



<!-- ##### FUNCTION g_cclosure_marshal_BOOLEAN__BOXED_BOXED ##### -->
<para>

</para>

@closure: 
@return_value: 
@n_param_values: 
@param_values: 
@invocation_hint: 
@marshal_data: 


<!-- ##### MACRO g_cclosure_marshal_BOOL__BOXED_BOXED ##### -->
<para>

</para>



<!-- ##### FUNCTION g_cclosure_marshal_generic_va ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args_list: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__VOIDv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__BOOLEANv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__CHARv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__UCHARv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__INTv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__UINTv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__LONGv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__ULONGv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__ENUMv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__FLAGSv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__FLOATv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__DOUBLEv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__STRINGv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__PARAMv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__BOXEDv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__POINTERv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__OBJECTv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__VARIANTv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_STRING__OBJECT_POINTERv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_VOID__UINT_POINTERv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_BOOLEAN__FLAGSv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


<!-- ##### FUNCTION g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv ##### -->
<para>

</para>

@closure: 
@return_value: 
@instance: 
@args: 
@marshal_data: 
@n_params: 
@param_types: 


