pub type WhileBeforeCallback = unsafe extern "C" fn(context: *mut c_void, input_box_handle: *mut c_void, out_result_box_handle: *mut *mut c_void) -> *mut c_void;