internal static void on_file_dialog(IntPtr gcHandlePtr, out int __retval, IntPtr browser, int mode, IntPtr title_str, int title_length, IntPtr default_file_path_str, int default_file_path_length, IntPtr accept_filters, int selected_accept_filter, IntPtr callback)
        {
            var self = (CfxDialogHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null || self.CallbacksDisabled)
            {
                __retval = default(int);
                return;
            }
            var e            = new CfxDialogHandlerOnFileDialogEventArgs(browser, mode, title_str, title_length, default_file_path_str, default_file_path_length, accept_filters, selected_accept_filter, callback);
            var eventHandler = self.m_OnFileDialog;

            if (eventHandler != null)
            {
                eventHandler(self, e);
            }
            e.m_isInvalid = true;
            if (e.m_browser_wrapped == null)
            {
                CfxApi.cfx_release(e.m_browser);
            }
            if (e.m_callback_wrapped == null)
            {
                CfxApi.cfx_release(e.m_callback);
            }
            __retval = e.m_returnValue ? 1 : 0;
        }
        internal static void on_file_dialog(IntPtr gcHandlePtr, out int __retval, IntPtr browser, out int browser_release, int mode, IntPtr title_str, int title_length, IntPtr default_file_path_str, int default_file_path_length, IntPtr accept_filters, int selected_accept_filter, IntPtr callback, out int callback_release)
        {
            var self = (CfxDialogHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null || self.CallbacksDisabled)
            {
                __retval         = default(int);
                browser_release  = 1;
                callback_release = 1;
                return;
            }
            var e = new CfxDialogHandlerOnFileDialogEventArgs();

            e.m_browser                  = browser;
            e.m_mode                     = mode;
            e.m_title_str                = title_str;
            e.m_title_length             = title_length;
            e.m_default_file_path_str    = default_file_path_str;
            e.m_default_file_path_length = default_file_path_length;
            e.m_accept_filters           = accept_filters;
            e.m_selected_accept_filter   = selected_accept_filter;
            e.m_callback                 = callback;
            self.m_OnFileDialog?.Invoke(self, e);
            e.m_isInvalid    = true;
            browser_release  = e.m_browser_wrapped == null? 1 : 0;
            callback_release = e.m_callback_wrapped == null? 1 : 0;
            __retval         = e.m_returnValue ? 1 : 0;
        }