internal static unsafe CefPageRange Create(cef_page_range_t* pageRange) { return new CefPageRange( pageRange->from, pageRange->to ); }
/// <summary> /// Retrieve the page ranges. /// </summary> public CefPageRange[] GetPageRanges() { var count = GetPageRangesCount(); if (count == 0) return new CefPageRange[0]; var n_ranges = new cef_page_range_t[count]; UIntPtr n_count = (UIntPtr)count; fixed (cef_page_range_t* n_ranges_ptr = n_ranges) { cef_print_settings_t.get_page_ranges(_self, &n_count, n_ranges_ptr); } count = (int)n_count; if (count == 0) return new CefPageRange[0]; var ranges = new CefPageRange[count]; for (var i = 0; i < count; i++) { ranges[i].From = n_ranges[i].from; ranges[i].To = n_ranges[i].to; } return ranges; }
/// <summary> /// Set the page ranges. /// </summary> public void SetPageRanges(CefPageRange[] ranges) { var count = ranges != null ? ranges.Length : 0; var n_ranges = new cef_page_range_t[count]; for (var i = 0; i < count; i++) { n_ranges[i].from = ranges[i].From; n_ranges[i].to = ranges[i].To; } fixed (cef_page_range_t* n_ranges_ptr = n_ranges) { cef_print_settings_t.set_page_ranges(_self, (UIntPtr)count, n_ranges_ptr); } }
public static void get_page_ranges(cef_print_settings_t* self, UIntPtr* rangesCount, cef_page_range_t* ranges) { get_page_ranges_delegate d; var p = self->_get_page_ranges; if (p == _pf) { d = _df; } else { d = (get_page_ranges_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_page_ranges_delegate)); if (_pf == IntPtr.Zero) { _df = d; _pf = p; } } d(self, rangesCount, ranges); }