/// <summary> /// Set the page ranges. /// </summary> /// <remarks> /// See also the original CEF documentation in /// <see href="https://bitbucket.org/chromiumfx/chromiumfx/src/tip/cef/include/capi/cef_print_settings_capi.h">cef/include/capi/cef_print_settings_capi.h</see>. /// </remarks> public void SetPageRanges(CfxPageRange[] ranges) { int ranges_length; IntPtr[] ranges_ptrs; if (ranges != null) { ranges_length = ranges.Length; ranges_ptrs = new IntPtr[ranges_length]; for (int i = 0; i < ranges_length; ++i) { ranges_ptrs[i] = CfxPageRange.Unwrap(ranges[i]); } } else { ranges_length = 0; ranges_ptrs = null; } PinnedObject ranges_pinned = new PinnedObject(ranges_ptrs); int ranges_nomem; CfxApi.cfx_print_settings_set_page_ranges(NativePtr, ranges_length, ranges_pinned.PinnedPtr, out ranges_nomem); ranges_pinned.Free(); if (ranges_nomem != 0) { throw new OutOfMemoryException(); } }
/// <summary> /// Retrieve the page ranges. /// </summary> /// <remarks> /// See also the original CEF documentation in /// <see href="https://bitbucket.org/chromiumfx/chromiumfx/src/tip/cef/include/capi/cef_print_settings_capi.h">cef/include/capi/cef_print_settings_capi.h</see>. /// </remarks> public CfxPageRange[] GetPageRanges() { int rangesCount = CfxApi.cfx_print_settings_get_page_ranges_count(NativePtr); IntPtr[] pp = new IntPtr[rangesCount]; PinnedObject pp_pinned = new PinnedObject(pp); int ranges_nomem; CfxApi.cfx_print_settings_get_page_ranges(NativePtr, ref rangesCount, pp_pinned.PinnedPtr, out ranges_nomem); pp_pinned.Free(); if (ranges_nomem != 0) { throw new OutOfMemoryException(); } var retval = new CfxPageRange[rangesCount]; for (int i = 0; i < rangesCount; ++i) { retval[i] = CfxPageRange.WrapOwned(pp[i]); } return(retval); }