Example #1
0
        internal static void on_before_download(IntPtr gcHandlePtr, IntPtr browser, IntPtr download_item, IntPtr suggested_name_str, int suggested_name_length, IntPtr callback)
        {
            var self = (CfxDownloadHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null || self.CallbacksDisabled)
            {
                return;
            }
            var e            = new CfxOnBeforeDownloadEventArgs(browser, download_item, suggested_name_str, suggested_name_length, callback);
            var eventHandler = self.m_OnBeforeDownload;

            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_download_item_wrapped == null)
            {
                CfxApi.cfx_release(e.m_download_item);
            }
            if (e.m_callback_wrapped == null)
            {
                CfxApi.cfx_release(e.m_callback);
            }
        }
Example #2
0
        internal static void on_before_download(IntPtr gcHandlePtr, IntPtr browser, out int browser_release, IntPtr download_item, out int download_item_release, IntPtr suggested_name_str, int suggested_name_length, IntPtr callback, out int callback_release)
        {
            var self = (CfxDownloadHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null || self.CallbacksDisabled)
            {
                browser_release       = 1;
                download_item_release = 1;
                callback_release      = 1;
                return;
            }
            var e = new CfxOnBeforeDownloadEventArgs(browser, download_item, suggested_name_str, suggested_name_length, callback);

            self.m_OnBeforeDownload?.Invoke(self, e);
            e.m_isInvalid         = true;
            browser_release       = e.m_browser_wrapped == null? 1 : 0;
            download_item_release = e.m_download_item_wrapped == null? 1 : 0;
            callback_release      = e.m_callback_wrapped == null? 1 : 0;
        }