// PDFium-rs -- Modern Rust interface to PDFium, the PDF library from Google
//
// Copyright (c) 2025 Martin van der Werff <github (at) newinnovations.nl>
//
// This file is part of PDFium-rs.
//
// PDFium-rs is free software: you can redistribute it and/or modify it under the terms of
// the GNU General Public License as published by the Free Software Foundation, either version 3
// of the License, or (at your option) any later version.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#![allow(clippy::too_many_arguments)]

use super::{dl, Pdfium, PdfiumError};
use libloading::Library;

impl Pdfium {
    pub(crate) fn new(lib: Library) -> Result<Self, PdfiumError> {
        Ok(Self {
            fn_FORM_CanRedo: *dl(&lib, "FORM_CanRedo")?,
            fn_FORM_CanUndo: *dl(&lib, "FORM_CanUndo")?,
            fn_FORM_DoDocumentAAction: *dl(&lib, "FORM_DoDocumentAAction")?,
            fn_FORM_DoDocumentJSAction: *dl(&lib, "FORM_DoDocumentJSAction")?,
            fn_FORM_DoDocumentOpenAction: *dl(&lib, "FORM_DoDocumentOpenAction")?,
            fn_FORM_DoPageAAction: *dl(&lib, "FORM_DoPageAAction")?,
            fn_FORM_ForceToKillFocus: *dl(&lib, "FORM_ForceToKillFocus")?,
            fn_FORM_GetFocusedAnnot: *dl(&lib, "FORM_GetFocusedAnnot")?,
            fn_FORM_GetFocusedText: *dl(&lib, "FORM_GetFocusedText")?,
            fn_FORM_GetSelectedText: *dl(&lib, "FORM_GetSelectedText")?,
            fn_FORM_IsIndexSelected: *dl(&lib, "FORM_IsIndexSelected")?,
            fn_FORM_OnAfterLoadPage: *dl(&lib, "FORM_OnAfterLoadPage")?,
            fn_FORM_OnBeforeClosePage: *dl(&lib, "FORM_OnBeforeClosePage")?,
            fn_FORM_OnChar: *dl(&lib, "FORM_OnChar")?,
            fn_FORM_OnFocus: *dl(&lib, "FORM_OnFocus")?,
            fn_FORM_OnKeyDown: *dl(&lib, "FORM_OnKeyDown")?,
            fn_FORM_OnKeyUp: *dl(&lib, "FORM_OnKeyUp")?,
            fn_FORM_OnLButtonDoubleClick: *dl(&lib, "FORM_OnLButtonDoubleClick")?,
            fn_FORM_OnLButtonDown: *dl(&lib, "FORM_OnLButtonDown")?,
            fn_FORM_OnLButtonUp: *dl(&lib, "FORM_OnLButtonUp")?,
            fn_FORM_OnMouseMove: *dl(&lib, "FORM_OnMouseMove")?,
            fn_FORM_OnMouseWheel: *dl(&lib, "FORM_OnMouseWheel")?,
            fn_FORM_OnRButtonDown: *dl(&lib, "FORM_OnRButtonDown")?,
            fn_FORM_OnRButtonUp: *dl(&lib, "FORM_OnRButtonUp")?,
            fn_FORM_Redo: *dl(&lib, "FORM_Redo")?,
            fn_FORM_ReplaceAndKeepSelection: *dl(&lib, "FORM_ReplaceAndKeepSelection")?,
            fn_FORM_ReplaceSelection: *dl(&lib, "FORM_ReplaceSelection")?,
            fn_FORM_SelectAllText: *dl(&lib, "FORM_SelectAllText")?,
            fn_FORM_SetFocusedAnnot: *dl(&lib, "FORM_SetFocusedAnnot")?,
            fn_FORM_SetIndexSelected: *dl(&lib, "FORM_SetIndexSelected")?,
            fn_FORM_Undo: *dl(&lib, "FORM_Undo")?,
            fn_FPDFAction_GetDest: *dl(&lib, "FPDFAction_GetDest")?,
            fn_FPDFAction_GetFilePath: *dl(&lib, "FPDFAction_GetFilePath")?,
            fn_FPDFAction_GetType: *dl(&lib, "FPDFAction_GetType")?,
            fn_FPDFAction_GetURIPath: *dl(&lib, "FPDFAction_GetURIPath")?,
            fn_FPDFAnnot_AddFileAttachment: *dl(&lib, "FPDFAnnot_AddFileAttachment")?,
            fn_FPDFAnnot_AddInkStroke: *dl(&lib, "FPDFAnnot_AddInkStroke")?,
            fn_FPDFAnnot_AppendAttachmentPoints: *dl(&lib, "FPDFAnnot_AppendAttachmentPoints")?,
            fn_FPDFAnnot_AppendObject: *dl(&lib, "FPDFAnnot_AppendObject")?,
            fn_FPDFAnnot_CountAttachmentPoints: *dl(&lib, "FPDFAnnot_CountAttachmentPoints")?,
            fn_FPDFAnnot_GetAP: *dl(&lib, "FPDFAnnot_GetAP")?,
            fn_FPDFAnnot_GetAttachmentPoints: *dl(&lib, "FPDFAnnot_GetAttachmentPoints")?,
            fn_FPDFAnnot_GetBorder: *dl(&lib, "FPDFAnnot_GetBorder")?,
            fn_FPDFAnnot_GetColor: *dl(&lib, "FPDFAnnot_GetColor")?,
            fn_FPDFAnnot_GetFileAttachment: *dl(&lib, "FPDFAnnot_GetFileAttachment")?,
            fn_FPDFAnnot_GetFlags: *dl(&lib, "FPDFAnnot_GetFlags")?,
            fn_FPDFAnnot_GetFocusableSubtypes: *dl(&lib, "FPDFAnnot_GetFocusableSubtypes")?,
            fn_FPDFAnnot_GetFocusableSubtypesCount: *dl(
                &lib,
                "FPDFAnnot_GetFocusableSubtypesCount",
            )?,
            fn_FPDFAnnot_GetFontColor: *dl(&lib, "FPDFAnnot_GetFontColor")?,
            fn_FPDFAnnot_GetFontSize: *dl(&lib, "FPDFAnnot_GetFontSize")?,
            fn_FPDFAnnot_GetFormAdditionalActionJavaScript: *dl(
                &lib,
                "FPDFAnnot_GetFormAdditionalActionJavaScript",
            )?,
            fn_FPDFAnnot_GetFormControlCount: *dl(&lib, "FPDFAnnot_GetFormControlCount")?,
            fn_FPDFAnnot_GetFormControlIndex: *dl(&lib, "FPDFAnnot_GetFormControlIndex")?,
            fn_FPDFAnnot_GetFormFieldAlternateName: *dl(
                &lib,
                "FPDFAnnot_GetFormFieldAlternateName",
            )?,
            fn_FPDFAnnot_GetFormFieldAtPoint: *dl(&lib, "FPDFAnnot_GetFormFieldAtPoint")?,
            fn_FPDFAnnot_GetFormFieldExportValue: *dl(&lib, "FPDFAnnot_GetFormFieldExportValue")?,
            fn_FPDFAnnot_GetFormFieldFlags: *dl(&lib, "FPDFAnnot_GetFormFieldFlags")?,
            fn_FPDFAnnot_GetFormFieldName: *dl(&lib, "FPDFAnnot_GetFormFieldName")?,
            fn_FPDFAnnot_GetFormFieldType: *dl(&lib, "FPDFAnnot_GetFormFieldType")?,
            fn_FPDFAnnot_GetFormFieldValue: *dl(&lib, "FPDFAnnot_GetFormFieldValue")?,
            fn_FPDFAnnot_GetInkListCount: *dl(&lib, "FPDFAnnot_GetInkListCount")?,
            fn_FPDFAnnot_GetInkListPath: *dl(&lib, "FPDFAnnot_GetInkListPath")?,
            fn_FPDFAnnot_GetLine: *dl(&lib, "FPDFAnnot_GetLine")?,
            fn_FPDFAnnot_GetLink: *dl(&lib, "FPDFAnnot_GetLink")?,
            fn_FPDFAnnot_GetLinkedAnnot: *dl(&lib, "FPDFAnnot_GetLinkedAnnot")?,
            fn_FPDFAnnot_GetNumberValue: *dl(&lib, "FPDFAnnot_GetNumberValue")?,
            fn_FPDFAnnot_GetObject: *dl(&lib, "FPDFAnnot_GetObject")?,
            fn_FPDFAnnot_GetObjectCount: *dl(&lib, "FPDFAnnot_GetObjectCount")?,
            fn_FPDFAnnot_GetOptionCount: *dl(&lib, "FPDFAnnot_GetOptionCount")?,
            fn_FPDFAnnot_GetOptionLabel: *dl(&lib, "FPDFAnnot_GetOptionLabel")?,
            fn_FPDFAnnot_GetRect: *dl(&lib, "FPDFAnnot_GetRect")?,
            fn_FPDFAnnot_GetStringValue: *dl(&lib, "FPDFAnnot_GetStringValue")?,
            fn_FPDFAnnot_GetSubtype: *dl(&lib, "FPDFAnnot_GetSubtype")?,
            fn_FPDFAnnot_GetValueType: *dl(&lib, "FPDFAnnot_GetValueType")?,
            fn_FPDFAnnot_GetVertices: *dl(&lib, "FPDFAnnot_GetVertices")?,
            fn_FPDFAnnot_HasAttachmentPoints: *dl(&lib, "FPDFAnnot_HasAttachmentPoints")?,
            fn_FPDFAnnot_HasKey: *dl(&lib, "FPDFAnnot_HasKey")?,
            fn_FPDFAnnot_IsChecked: *dl(&lib, "FPDFAnnot_IsChecked")?,
            fn_FPDFAnnot_IsObjectSupportedSubtype: *dl(&lib, "FPDFAnnot_IsObjectSupportedSubtype")?,
            fn_FPDFAnnot_IsOptionSelected: *dl(&lib, "FPDFAnnot_IsOptionSelected")?,
            fn_FPDFAnnot_IsSupportedSubtype: *dl(&lib, "FPDFAnnot_IsSupportedSubtype")?,
            fn_FPDFAnnot_RemoveInkList: *dl(&lib, "FPDFAnnot_RemoveInkList")?,
            fn_FPDFAnnot_RemoveObject: *dl(&lib, "FPDFAnnot_RemoveObject")?,
            fn_FPDFAnnot_SetAP: *dl(&lib, "FPDFAnnot_SetAP")?,
            fn_FPDFAnnot_SetAttachmentPoints: *dl(&lib, "FPDFAnnot_SetAttachmentPoints")?,
            fn_FPDFAnnot_SetBorder: *dl(&lib, "FPDFAnnot_SetBorder")?,
            fn_FPDFAnnot_SetColor: *dl(&lib, "FPDFAnnot_SetColor")?,
            fn_FPDFAnnot_SetFlags: *dl(&lib, "FPDFAnnot_SetFlags")?,
            fn_FPDFAnnot_SetFocusableSubtypes: *dl(&lib, "FPDFAnnot_SetFocusableSubtypes")?,
            fn_FPDFAnnot_SetFontColor: *dl(&lib, "FPDFAnnot_SetFontColor")?,
            fn_FPDFAnnot_SetFormFieldFlags: *dl(&lib, "FPDFAnnot_SetFormFieldFlags")?,
            fn_FPDFAnnot_SetRect: *dl(&lib, "FPDFAnnot_SetRect")?,
            fn_FPDFAnnot_SetStringValue: *dl(&lib, "FPDFAnnot_SetStringValue")?,
            fn_FPDFAnnot_SetURI: *dl(&lib, "FPDFAnnot_SetURI")?,
            fn_FPDFAnnot_UpdateObject: *dl(&lib, "FPDFAnnot_UpdateObject")?,
            fn_FPDFAttachment_GetFile: *dl(&lib, "FPDFAttachment_GetFile")?,
            fn_FPDFAttachment_GetName: *dl(&lib, "FPDFAttachment_GetName")?,
            fn_FPDFAttachment_GetStringValue: *dl(&lib, "FPDFAttachment_GetStringValue")?,
            fn_FPDFAttachment_GetSubtype: *dl(&lib, "FPDFAttachment_GetSubtype")?,
            fn_FPDFAttachment_GetValueType: *dl(&lib, "FPDFAttachment_GetValueType")?,
            fn_FPDFAttachment_HasKey: *dl(&lib, "FPDFAttachment_HasKey")?,
            fn_FPDFAttachment_SetFile: *dl(&lib, "FPDFAttachment_SetFile")?,
            fn_FPDFAttachment_SetStringValue: *dl(&lib, "FPDFAttachment_SetStringValue")?,
            fn_FPDFAvail_Create: *dl(&lib, "FPDFAvail_Create")?,
            fn_FPDFAvail_Destroy: *dl(&lib, "FPDFAvail_Destroy")?,
            fn_FPDFAvail_GetDocument: *dl(&lib, "FPDFAvail_GetDocument")?,
            fn_FPDFAvail_GetFirstPageNum: *dl(&lib, "FPDFAvail_GetFirstPageNum")?,
            fn_FPDFAvail_IsDocAvail: *dl(&lib, "FPDFAvail_IsDocAvail")?,
            fn_FPDFAvail_IsFormAvail: *dl(&lib, "FPDFAvail_IsFormAvail")?,
            fn_FPDFAvail_IsLinearized: *dl(&lib, "FPDFAvail_IsLinearized")?,
            fn_FPDFAvail_IsPageAvail: *dl(&lib, "FPDFAvail_IsPageAvail")?,
            fn_FPDFBitmap_Create: *dl(&lib, "FPDFBitmap_Create")?,
            fn_FPDFBitmap_CreateEx: *dl(&lib, "FPDFBitmap_CreateEx")?,
            fn_FPDFBitmap_Destroy: *dl(&lib, "FPDFBitmap_Destroy")?,
            fn_FPDFBitmap_FillRect: *dl(&lib, "FPDFBitmap_FillRect")?,
            fn_FPDFBitmap_GetBuffer: *dl(&lib, "FPDFBitmap_GetBuffer")?,
            fn_FPDFBitmap_GetFormat: *dl(&lib, "FPDFBitmap_GetFormat")?,
            fn_FPDFBitmap_GetHeight: *dl(&lib, "FPDFBitmap_GetHeight")?,
            fn_FPDFBitmap_GetStride: *dl(&lib, "FPDFBitmap_GetStride")?,
            fn_FPDFBitmap_GetWidth: *dl(&lib, "FPDFBitmap_GetWidth")?,
            fn_FPDFBookmark_Find: *dl(&lib, "FPDFBookmark_Find")?,
            fn_FPDFBookmark_GetAction: *dl(&lib, "FPDFBookmark_GetAction")?,
            fn_FPDFBookmark_GetCount: *dl(&lib, "FPDFBookmark_GetCount")?,
            fn_FPDFBookmark_GetDest: *dl(&lib, "FPDFBookmark_GetDest")?,
            fn_FPDFBookmark_GetFirstChild: *dl(&lib, "FPDFBookmark_GetFirstChild")?,
            fn_FPDFBookmark_GetNextSibling: *dl(&lib, "FPDFBookmark_GetNextSibling")?,
            fn_FPDFBookmark_GetTitle: *dl(&lib, "FPDFBookmark_GetTitle")?,
            fn_FPDFCatalog_IsTagged: *dl(&lib, "FPDFCatalog_IsTagged")?,
            fn_FPDFCatalog_SetLanguage: *dl(&lib, "FPDFCatalog_SetLanguage")?,
            fn_FPDFClipPath_CountPathSegments: *dl(&lib, "FPDFClipPath_CountPathSegments")?,
            fn_FPDFClipPath_CountPaths: *dl(&lib, "FPDFClipPath_CountPaths")?,
            fn_FPDFClipPath_GetPathSegment: *dl(&lib, "FPDFClipPath_GetPathSegment")?,
            fn_FPDFDOC_ExitFormFillEnvironment: *dl(&lib, "FPDFDOC_ExitFormFillEnvironment")?,
            fn_FPDFDOC_InitFormFillEnvironment: *dl(&lib, "FPDFDOC_InitFormFillEnvironment")?,
            fn_FPDFDest_GetDestPageIndex: *dl(&lib, "FPDFDest_GetDestPageIndex")?,
            fn_FPDFDest_GetLocationInPage: *dl(&lib, "FPDFDest_GetLocationInPage")?,
            fn_FPDFDest_GetView: *dl(&lib, "FPDFDest_GetView")?,
            fn_FPDFDoc_AddAttachment: *dl(&lib, "FPDFDoc_AddAttachment")?,
            fn_FPDFDoc_CloseJavaScriptAction: *dl(&lib, "FPDFDoc_CloseJavaScriptAction")?,
            fn_FPDFDoc_DeleteAttachment: *dl(&lib, "FPDFDoc_DeleteAttachment")?,
            fn_FPDFDoc_GetAttachment: *dl(&lib, "FPDFDoc_GetAttachment")?,
            fn_FPDFDoc_GetAttachmentCount: *dl(&lib, "FPDFDoc_GetAttachmentCount")?,
            fn_FPDFDoc_GetJavaScriptAction: *dl(&lib, "FPDFDoc_GetJavaScriptAction")?,
            fn_FPDFDoc_GetJavaScriptActionCount: *dl(&lib, "FPDFDoc_GetJavaScriptActionCount")?,
            fn_FPDFDoc_GetPageMode: *dl(&lib, "FPDFDoc_GetPageMode")?,
            fn_FPDFFont_Close: *dl(&lib, "FPDFFont_Close")?,
            fn_FPDFFont_GetAscent: *dl(&lib, "FPDFFont_GetAscent")?,
            fn_FPDFFont_GetBaseFontName: *dl(&lib, "FPDFFont_GetBaseFontName")?,
            fn_FPDFFont_GetDescent: *dl(&lib, "FPDFFont_GetDescent")?,
            fn_FPDFFont_GetFamilyName: *dl(&lib, "FPDFFont_GetFamilyName")?,
            fn_FPDFFont_GetFlags: *dl(&lib, "FPDFFont_GetFlags")?,
            fn_FPDFFont_GetFontData: *dl(&lib, "FPDFFont_GetFontData")?,
            fn_FPDFFont_GetGlyphPath: *dl(&lib, "FPDFFont_GetGlyphPath")?,
            fn_FPDFFont_GetGlyphWidth: *dl(&lib, "FPDFFont_GetGlyphWidth")?,
            fn_FPDFFont_GetIsEmbedded: *dl(&lib, "FPDFFont_GetIsEmbedded")?,
            fn_FPDFFont_GetItalicAngle: *dl(&lib, "FPDFFont_GetItalicAngle")?,
            fn_FPDFFont_GetWeight: *dl(&lib, "FPDFFont_GetWeight")?,
            fn_FPDFFormObj_CountObjects: *dl(&lib, "FPDFFormObj_CountObjects")?,
            fn_FPDFFormObj_GetObject: *dl(&lib, "FPDFFormObj_GetObject")?,
            fn_FPDFFormObj_RemoveObject: *dl(&lib, "FPDFFormObj_RemoveObject")?,
            fn_FPDFGlyphPath_CountGlyphSegments: *dl(&lib, "FPDFGlyphPath_CountGlyphSegments")?,
            fn_FPDFGlyphPath_GetGlyphPathSegment: *dl(&lib, "FPDFGlyphPath_GetGlyphPathSegment")?,
            fn_FPDFImageObj_GetBitmap: *dl(&lib, "FPDFImageObj_GetBitmap")?,
            fn_FPDFImageObj_GetIccProfileDataDecoded: *dl(
                &lib,
                "FPDFImageObj_GetIccProfileDataDecoded",
            )?,
            fn_FPDFImageObj_GetImageDataDecoded: *dl(&lib, "FPDFImageObj_GetImageDataDecoded")?,
            fn_FPDFImageObj_GetImageDataRaw: *dl(&lib, "FPDFImageObj_GetImageDataRaw")?,
            fn_FPDFImageObj_GetImageFilter: *dl(&lib, "FPDFImageObj_GetImageFilter")?,
            fn_FPDFImageObj_GetImageFilterCount: *dl(&lib, "FPDFImageObj_GetImageFilterCount")?,
            fn_FPDFImageObj_GetImageMetadata: *dl(&lib, "FPDFImageObj_GetImageMetadata")?,
            fn_FPDFImageObj_GetImagePixelSize: *dl(&lib, "FPDFImageObj_GetImagePixelSize")?,
            fn_FPDFImageObj_GetRenderedBitmap: *dl(&lib, "FPDFImageObj_GetRenderedBitmap")?,
            fn_FPDFImageObj_LoadJpegFile: *dl(&lib, "FPDFImageObj_LoadJpegFile")?,
            fn_FPDFImageObj_LoadJpegFileInline: *dl(&lib, "FPDFImageObj_LoadJpegFileInline")?,
            fn_FPDFImageObj_SetBitmap: *dl(&lib, "FPDFImageObj_SetBitmap")?,
            fn_FPDFImageObj_SetMatrix: *dl(&lib, "FPDFImageObj_SetMatrix")?,
            fn_FPDFJavaScriptAction_GetName: *dl(&lib, "FPDFJavaScriptAction_GetName")?,
            fn_FPDFJavaScriptAction_GetScript: *dl(&lib, "FPDFJavaScriptAction_GetScript")?,
            fn_FPDFLink_CloseWebLinks: *dl(&lib, "FPDFLink_CloseWebLinks")?,
            fn_FPDFLink_CountQuadPoints: *dl(&lib, "FPDFLink_CountQuadPoints")?,
            fn_FPDFLink_CountRects: *dl(&lib, "FPDFLink_CountRects")?,
            fn_FPDFLink_CountWebLinks: *dl(&lib, "FPDFLink_CountWebLinks")?,
            fn_FPDFLink_Enumerate: *dl(&lib, "FPDFLink_Enumerate")?,
            fn_FPDFLink_GetAction: *dl(&lib, "FPDFLink_GetAction")?,
            fn_FPDFLink_GetAnnot: *dl(&lib, "FPDFLink_GetAnnot")?,
            fn_FPDFLink_GetAnnotRect: *dl(&lib, "FPDFLink_GetAnnotRect")?,
            fn_FPDFLink_GetDest: *dl(&lib, "FPDFLink_GetDest")?,
            fn_FPDFLink_GetLinkAtPoint: *dl(&lib, "FPDFLink_GetLinkAtPoint")?,
            fn_FPDFLink_GetLinkZOrderAtPoint: *dl(&lib, "FPDFLink_GetLinkZOrderAtPoint")?,
            fn_FPDFLink_GetQuadPoints: *dl(&lib, "FPDFLink_GetQuadPoints")?,
            fn_FPDFLink_GetRect: *dl(&lib, "FPDFLink_GetRect")?,
            fn_FPDFLink_GetTextRange: *dl(&lib, "FPDFLink_GetTextRange")?,
            fn_FPDFLink_GetURL: *dl(&lib, "FPDFLink_GetURL")?,
            fn_FPDFLink_LoadWebLinks: *dl(&lib, "FPDFLink_LoadWebLinks")?,
            fn_FPDFPageObjMark_CountParams: *dl(&lib, "FPDFPageObjMark_CountParams")?,
            fn_FPDFPageObjMark_GetName: *dl(&lib, "FPDFPageObjMark_GetName")?,
            fn_FPDFPageObjMark_GetParamBlobValue: *dl(&lib, "FPDFPageObjMark_GetParamBlobValue")?,
            fn_FPDFPageObjMark_GetParamIntValue: *dl(&lib, "FPDFPageObjMark_GetParamIntValue")?,
            fn_FPDFPageObjMark_GetParamKey: *dl(&lib, "FPDFPageObjMark_GetParamKey")?,
            fn_FPDFPageObjMark_GetParamStringValue: *dl(
                &lib,
                "FPDFPageObjMark_GetParamStringValue",
            )?,
            fn_FPDFPageObjMark_GetParamValueType: *dl(&lib, "FPDFPageObjMark_GetParamValueType")?,
            fn_FPDFPageObjMark_RemoveParam: *dl(&lib, "FPDFPageObjMark_RemoveParam")?,
            fn_FPDFPageObjMark_SetBlobParam: *dl(&lib, "FPDFPageObjMark_SetBlobParam")?,
            fn_FPDFPageObjMark_SetIntParam: *dl(&lib, "FPDFPageObjMark_SetIntParam")?,
            fn_FPDFPageObjMark_SetStringParam: *dl(&lib, "FPDFPageObjMark_SetStringParam")?,
            fn_FPDFPageObj_AddMark: *dl(&lib, "FPDFPageObj_AddMark")?,
            fn_FPDFPageObj_CountMarks: *dl(&lib, "FPDFPageObj_CountMarks")?,
            fn_FPDFPageObj_CreateNewPath: *dl(&lib, "FPDFPageObj_CreateNewPath")?,
            fn_FPDFPageObj_CreateNewRect: *dl(&lib, "FPDFPageObj_CreateNewRect")?,
            fn_FPDFPageObj_CreateTextObj: *dl(&lib, "FPDFPageObj_CreateTextObj")?,
            fn_FPDFPageObj_Destroy: *dl(&lib, "FPDFPageObj_Destroy")?,
            fn_FPDFPageObj_GetBounds: *dl(&lib, "FPDFPageObj_GetBounds")?,
            fn_FPDFPageObj_GetClipPath: *dl(&lib, "FPDFPageObj_GetClipPath")?,
            fn_FPDFPageObj_GetDashArray: *dl(&lib, "FPDFPageObj_GetDashArray")?,
            fn_FPDFPageObj_GetDashCount: *dl(&lib, "FPDFPageObj_GetDashCount")?,
            fn_FPDFPageObj_GetDashPhase: *dl(&lib, "FPDFPageObj_GetDashPhase")?,
            fn_FPDFPageObj_GetFillColor: *dl(&lib, "FPDFPageObj_GetFillColor")?,
            fn_FPDFPageObj_GetIsActive: *dl(&lib, "FPDFPageObj_GetIsActive")?,
            fn_FPDFPageObj_GetLineCap: *dl(&lib, "FPDFPageObj_GetLineCap")?,
            fn_FPDFPageObj_GetLineJoin: *dl(&lib, "FPDFPageObj_GetLineJoin")?,
            fn_FPDFPageObj_GetMark: *dl(&lib, "FPDFPageObj_GetMark")?,
            fn_FPDFPageObj_GetMarkedContentID: *dl(&lib, "FPDFPageObj_GetMarkedContentID")?,
            fn_FPDFPageObj_GetMatrix: *dl(&lib, "FPDFPageObj_GetMatrix")?,
            fn_FPDFPageObj_GetRotatedBounds: *dl(&lib, "FPDFPageObj_GetRotatedBounds")?,
            fn_FPDFPageObj_GetStrokeColor: *dl(&lib, "FPDFPageObj_GetStrokeColor")?,
            fn_FPDFPageObj_GetStrokeWidth: *dl(&lib, "FPDFPageObj_GetStrokeWidth")?,
            fn_FPDFPageObj_GetType: *dl(&lib, "FPDFPageObj_GetType")?,
            fn_FPDFPageObj_HasTransparency: *dl(&lib, "FPDFPageObj_HasTransparency")?,
            fn_FPDFPageObj_NewImageObj: *dl(&lib, "FPDFPageObj_NewImageObj")?,
            fn_FPDFPageObj_NewTextObj: *dl(&lib, "FPDFPageObj_NewTextObj")?,
            fn_FPDFPageObj_RemoveMark: *dl(&lib, "FPDFPageObj_RemoveMark")?,
            fn_FPDFPageObj_SetBlendMode: *dl(&lib, "FPDFPageObj_SetBlendMode")?,
            fn_FPDFPageObj_SetDashArray: *dl(&lib, "FPDFPageObj_SetDashArray")?,
            fn_FPDFPageObj_SetDashPhase: *dl(&lib, "FPDFPageObj_SetDashPhase")?,
            fn_FPDFPageObj_SetFillColor: *dl(&lib, "FPDFPageObj_SetFillColor")?,
            fn_FPDFPageObj_SetIsActive: *dl(&lib, "FPDFPageObj_SetIsActive")?,
            fn_FPDFPageObj_SetLineCap: *dl(&lib, "FPDFPageObj_SetLineCap")?,
            fn_FPDFPageObj_SetLineJoin: *dl(&lib, "FPDFPageObj_SetLineJoin")?,
            fn_FPDFPageObj_SetMatrix: *dl(&lib, "FPDFPageObj_SetMatrix")?,
            fn_FPDFPageObj_SetStrokeColor: *dl(&lib, "FPDFPageObj_SetStrokeColor")?,
            fn_FPDFPageObj_SetStrokeWidth: *dl(&lib, "FPDFPageObj_SetStrokeWidth")?,
            fn_FPDFPageObj_Transform: *dl(&lib, "FPDFPageObj_Transform")?,
            fn_FPDFPageObj_TransformClipPath: *dl(&lib, "FPDFPageObj_TransformClipPath")?,
            fn_FPDFPageObj_TransformF: *dl(&lib, "FPDFPageObj_TransformF")?,
            fn_FPDFPage_CloseAnnot: *dl(&lib, "FPDFPage_CloseAnnot")?,
            fn_FPDFPage_CountObjects: *dl(&lib, "FPDFPage_CountObjects")?,
            fn_FPDFPage_CreateAnnot: *dl(&lib, "FPDFPage_CreateAnnot")?,
            fn_FPDFPage_Delete: *dl(&lib, "FPDFPage_Delete")?,
            fn_FPDFPage_Flatten: *dl(&lib, "FPDFPage_Flatten")?,
            fn_FPDFPage_FormFieldZOrderAtPoint: *dl(&lib, "FPDFPage_FormFieldZOrderAtPoint")?,
            fn_FPDFPage_GenerateContent: *dl(&lib, "FPDFPage_GenerateContent")?,
            fn_FPDFPage_GetAnnot: *dl(&lib, "FPDFPage_GetAnnot")?,
            fn_FPDFPage_GetAnnotCount: *dl(&lib, "FPDFPage_GetAnnotCount")?,
            fn_FPDFPage_GetAnnotIndex: *dl(&lib, "FPDFPage_GetAnnotIndex")?,
            fn_FPDFPage_GetArtBox: *dl(&lib, "FPDFPage_GetArtBox")?,
            fn_FPDFPage_GetBleedBox: *dl(&lib, "FPDFPage_GetBleedBox")?,
            fn_FPDFPage_GetCropBox: *dl(&lib, "FPDFPage_GetCropBox")?,
            fn_FPDFPage_GetDecodedThumbnailData: *dl(&lib, "FPDFPage_GetDecodedThumbnailData")?,
            fn_FPDFPage_GetMediaBox: *dl(&lib, "FPDFPage_GetMediaBox")?,
            fn_FPDFPage_GetObject: *dl(&lib, "FPDFPage_GetObject")?,
            fn_FPDFPage_GetRawThumbnailData: *dl(&lib, "FPDFPage_GetRawThumbnailData")?,
            fn_FPDFPage_GetRotation: *dl(&lib, "FPDFPage_GetRotation")?,
            fn_FPDFPage_GetThumbnailAsBitmap: *dl(&lib, "FPDFPage_GetThumbnailAsBitmap")?,
            fn_FPDFPage_GetTrimBox: *dl(&lib, "FPDFPage_GetTrimBox")?,
            fn_FPDFPage_HasFormFieldAtPoint: *dl(&lib, "FPDFPage_HasFormFieldAtPoint")?,
            fn_FPDFPage_HasTransparency: *dl(&lib, "FPDFPage_HasTransparency")?,
            fn_FPDFPage_InsertClipPath: *dl(&lib, "FPDFPage_InsertClipPath")?,
            fn_FPDFPage_InsertObject: *dl(&lib, "FPDFPage_InsertObject")?,
            fn_FPDFPage_InsertObjectAtIndex: *dl(&lib, "FPDFPage_InsertObjectAtIndex")?,
            fn_FPDFPage_New: *dl(&lib, "FPDFPage_New")?,
            fn_FPDFPage_RemoveAnnot: *dl(&lib, "FPDFPage_RemoveAnnot")?,
            fn_FPDFPage_RemoveObject: *dl(&lib, "FPDFPage_RemoveObject")?,
            fn_FPDFPage_SetArtBox: *dl(&lib, "FPDFPage_SetArtBox")?,
            fn_FPDFPage_SetBleedBox: *dl(&lib, "FPDFPage_SetBleedBox")?,
            fn_FPDFPage_SetCropBox: *dl(&lib, "FPDFPage_SetCropBox")?,
            fn_FPDFPage_SetMediaBox: *dl(&lib, "FPDFPage_SetMediaBox")?,
            fn_FPDFPage_SetRotation: *dl(&lib, "FPDFPage_SetRotation")?,
            fn_FPDFPage_SetTrimBox: *dl(&lib, "FPDFPage_SetTrimBox")?,
            fn_FPDFPage_TransFormWithClip: *dl(&lib, "FPDFPage_TransFormWithClip")?,
            fn_FPDFPage_TransformAnnots: *dl(&lib, "FPDFPage_TransformAnnots")?,
            fn_FPDFPathSegment_GetClose: *dl(&lib, "FPDFPathSegment_GetClose")?,
            fn_FPDFPathSegment_GetPoint: *dl(&lib, "FPDFPathSegment_GetPoint")?,
            fn_FPDFPathSegment_GetType: *dl(&lib, "FPDFPathSegment_GetType")?,
            fn_FPDFPath_BezierTo: *dl(&lib, "FPDFPath_BezierTo")?,
            fn_FPDFPath_Close: *dl(&lib, "FPDFPath_Close")?,
            fn_FPDFPath_CountSegments: *dl(&lib, "FPDFPath_CountSegments")?,
            fn_FPDFPath_GetDrawMode: *dl(&lib, "FPDFPath_GetDrawMode")?,
            fn_FPDFPath_GetPathSegment: *dl(&lib, "FPDFPath_GetPathSegment")?,
            fn_FPDFPath_LineTo: *dl(&lib, "FPDFPath_LineTo")?,
            fn_FPDFPath_MoveTo: *dl(&lib, "FPDFPath_MoveTo")?,
            fn_FPDFPath_SetDrawMode: *dl(&lib, "FPDFPath_SetDrawMode")?,
            fn_FPDFSignatureObj_GetByteRange: *dl(&lib, "FPDFSignatureObj_GetByteRange")?,
            fn_FPDFSignatureObj_GetContents: *dl(&lib, "FPDFSignatureObj_GetContents")?,
            fn_FPDFSignatureObj_GetDocMDPPermission: *dl(
                &lib,
                "FPDFSignatureObj_GetDocMDPPermission",
            )?,
            fn_FPDFSignatureObj_GetReason: *dl(&lib, "FPDFSignatureObj_GetReason")?,
            fn_FPDFSignatureObj_GetSubFilter: *dl(&lib, "FPDFSignatureObj_GetSubFilter")?,
            fn_FPDFSignatureObj_GetTime: *dl(&lib, "FPDFSignatureObj_GetTime")?,
            fn_FPDFTextObj_GetFont: *dl(&lib, "FPDFTextObj_GetFont")?,
            fn_FPDFTextObj_GetFontSize: *dl(&lib, "FPDFTextObj_GetFontSize")?,
            fn_FPDFTextObj_GetRenderedBitmap: *dl(&lib, "FPDFTextObj_GetRenderedBitmap")?,
            fn_FPDFTextObj_GetText: *dl(&lib, "FPDFTextObj_GetText")?,
            fn_FPDFTextObj_GetTextRenderMode: *dl(&lib, "FPDFTextObj_GetTextRenderMode")?,
            fn_FPDFTextObj_SetTextRenderMode: *dl(&lib, "FPDFTextObj_SetTextRenderMode")?,
            fn_FPDFText_ClosePage: *dl(&lib, "FPDFText_ClosePage")?,
            fn_FPDFText_CountChars: *dl(&lib, "FPDFText_CountChars")?,
            fn_FPDFText_CountRects: *dl(&lib, "FPDFText_CountRects")?,
            fn_FPDFText_FindClose: *dl(&lib, "FPDFText_FindClose")?,
            fn_FPDFText_FindNext: *dl(&lib, "FPDFText_FindNext")?,
            fn_FPDFText_FindPrev: *dl(&lib, "FPDFText_FindPrev")?,
            fn_FPDFText_FindStart: *dl(&lib, "FPDFText_FindStart")?,
            fn_FPDFText_GetBoundedText: *dl(&lib, "FPDFText_GetBoundedText")?,
            fn_FPDFText_GetCharAngle: *dl(&lib, "FPDFText_GetCharAngle")?,
            fn_FPDFText_GetCharBox: *dl(&lib, "FPDFText_GetCharBox")?,
            fn_FPDFText_GetCharIndexAtPos: *dl(&lib, "FPDFText_GetCharIndexAtPos")?,
            fn_FPDFText_GetCharIndexFromTextIndex: *dl(&lib, "FPDFText_GetCharIndexFromTextIndex")?,
            fn_FPDFText_GetCharOrigin: *dl(&lib, "FPDFText_GetCharOrigin")?,
            fn_FPDFText_GetFillColor: *dl(&lib, "FPDFText_GetFillColor")?,
            fn_FPDFText_GetFontInfo: *dl(&lib, "FPDFText_GetFontInfo")?,
            fn_FPDFText_GetFontSize: *dl(&lib, "FPDFText_GetFontSize")?,
            fn_FPDFText_GetFontWeight: *dl(&lib, "FPDFText_GetFontWeight")?,
            fn_FPDFText_GetLooseCharBox: *dl(&lib, "FPDFText_GetLooseCharBox")?,
            fn_FPDFText_GetMatrix: *dl(&lib, "FPDFText_GetMatrix")?,
            fn_FPDFText_GetRect: *dl(&lib, "FPDFText_GetRect")?,
            fn_FPDFText_GetSchCount: *dl(&lib, "FPDFText_GetSchCount")?,
            fn_FPDFText_GetSchResultIndex: *dl(&lib, "FPDFText_GetSchResultIndex")?,
            fn_FPDFText_GetStrokeColor: *dl(&lib, "FPDFText_GetStrokeColor")?,
            fn_FPDFText_GetText: *dl(&lib, "FPDFText_GetText")?,
            fn_FPDFText_GetTextIndexFromCharIndex: *dl(&lib, "FPDFText_GetTextIndexFromCharIndex")?,
            fn_FPDFText_GetTextObject: *dl(&lib, "FPDFText_GetTextObject")?,
            fn_FPDFText_GetUnicode: *dl(&lib, "FPDFText_GetUnicode")?,
            fn_FPDFText_HasUnicodeMapError: *dl(&lib, "FPDFText_HasUnicodeMapError")?,
            fn_FPDFText_IsGenerated: *dl(&lib, "FPDFText_IsGenerated")?,
            fn_FPDFText_IsHyphen: *dl(&lib, "FPDFText_IsHyphen")?,
            fn_FPDFText_LoadCidType2Font: *dl(&lib, "FPDFText_LoadCidType2Font")?,
            fn_FPDFText_LoadFont: *dl(&lib, "FPDFText_LoadFont")?,
            fn_FPDFText_LoadPage: *dl(&lib, "FPDFText_LoadPage")?,
            fn_FPDFText_LoadStandardFont: *dl(&lib, "FPDFText_LoadStandardFont")?,
            fn_FPDFText_SetCharcodes: *dl(&lib, "FPDFText_SetCharcodes")?,
            fn_FPDFText_SetText: *dl(&lib, "FPDFText_SetText")?,
            fn_FPDF_AddInstalledFont: *dl(&lib, "FPDF_AddInstalledFont")?,
            fn_FPDF_CloseDocument: *dl(&lib, "FPDF_CloseDocument")?,
            fn_FPDF_ClosePage: *dl(&lib, "FPDF_ClosePage")?,
            fn_FPDF_CloseXObject: *dl(&lib, "FPDF_CloseXObject")?,
            fn_FPDF_CopyViewerPreferences: *dl(&lib, "FPDF_CopyViewerPreferences")?,
            fn_FPDF_CountNamedDests: *dl(&lib, "FPDF_CountNamedDests")?,
            fn_FPDF_CreateClipPath: *dl(&lib, "FPDF_CreateClipPath")?,
            fn_FPDF_CreateNewDocument: *dl(&lib, "FPDF_CreateNewDocument")?,
            fn_FPDF_DestroyClipPath: *dl(&lib, "FPDF_DestroyClipPath")?,
            fn_FPDF_DestroyLibrary: *dl(&lib, "FPDF_DestroyLibrary")?,
            fn_FPDF_DeviceToPage: *dl(&lib, "FPDF_DeviceToPage")?,
            fn_FPDF_DocumentHasValidCrossReferenceTable: *dl(
                &lib,
                "FPDF_DocumentHasValidCrossReferenceTable",
            )?,
            fn_FPDF_FFLDraw: *dl(&lib, "FPDF_FFLDraw")?,
            fn_FPDF_FreeDefaultSystemFontInfo: *dl(&lib, "FPDF_FreeDefaultSystemFontInfo")?,
            fn_FPDF_GetDefaultSystemFontInfo: *dl(&lib, "FPDF_GetDefaultSystemFontInfo")?,
            fn_FPDF_GetDefaultTTFMap: *dl(&lib, "FPDF_GetDefaultTTFMap")?,
            fn_FPDF_GetDefaultTTFMapCount: *dl(&lib, "FPDF_GetDefaultTTFMapCount")?,
            fn_FPDF_GetDefaultTTFMapEntry: *dl(&lib, "FPDF_GetDefaultTTFMapEntry")?,
            fn_FPDF_GetDocPermissions: *dl(&lib, "FPDF_GetDocPermissions")?,
            fn_FPDF_GetDocUserPermissions: *dl(&lib, "FPDF_GetDocUserPermissions")?,
            fn_FPDF_GetFileIdentifier: *dl(&lib, "FPDF_GetFileIdentifier")?,
            fn_FPDF_GetFileVersion: *dl(&lib, "FPDF_GetFileVersion")?,
            fn_FPDF_GetFormType: *dl(&lib, "FPDF_GetFormType")?,
            fn_FPDF_GetLastError: *dl(&lib, "FPDF_GetLastError")?,
            fn_FPDF_GetMetaText: *dl(&lib, "FPDF_GetMetaText")?,
            fn_FPDF_GetNamedDest: *dl(&lib, "FPDF_GetNamedDest")?,
            fn_FPDF_GetNamedDestByName: *dl(&lib, "FPDF_GetNamedDestByName")?,
            fn_FPDF_GetPageAAction: *dl(&lib, "FPDF_GetPageAAction")?,
            fn_FPDF_GetPageBoundingBox: *dl(&lib, "FPDF_GetPageBoundingBox")?,
            fn_FPDF_GetPageCount: *dl(&lib, "FPDF_GetPageCount")?,
            fn_FPDF_GetPageHeight: *dl(&lib, "FPDF_GetPageHeight")?,
            fn_FPDF_GetPageHeightF: *dl(&lib, "FPDF_GetPageHeightF")?,
            fn_FPDF_GetPageLabel: *dl(&lib, "FPDF_GetPageLabel")?,
            fn_FPDF_GetPageSizeByIndex: *dl(&lib, "FPDF_GetPageSizeByIndex")?,
            fn_FPDF_GetPageSizeByIndexF: *dl(&lib, "FPDF_GetPageSizeByIndexF")?,
            fn_FPDF_GetPageWidth: *dl(&lib, "FPDF_GetPageWidth")?,
            fn_FPDF_GetPageWidthF: *dl(&lib, "FPDF_GetPageWidthF")?,
            fn_FPDF_GetSecurityHandlerRevision: *dl(&lib, "FPDF_GetSecurityHandlerRevision")?,
            fn_FPDF_GetSignatureCount: *dl(&lib, "FPDF_GetSignatureCount")?,
            fn_FPDF_GetSignatureObject: *dl(&lib, "FPDF_GetSignatureObject")?,
            fn_FPDF_GetTrailerEnds: *dl(&lib, "FPDF_GetTrailerEnds")?,
            fn_FPDF_GetXFAPacketContent: *dl(&lib, "FPDF_GetXFAPacketContent")?,
            fn_FPDF_GetXFAPacketCount: *dl(&lib, "FPDF_GetXFAPacketCount")?,
            fn_FPDF_GetXFAPacketName: *dl(&lib, "FPDF_GetXFAPacketName")?,
            fn_FPDF_ImportNPagesToOne: *dl(&lib, "FPDF_ImportNPagesToOne")?,
            fn_FPDF_ImportPages: *dl(&lib, "FPDF_ImportPages")?,
            fn_FPDF_ImportPagesByIndex: *dl(&lib, "FPDF_ImportPagesByIndex")?,
            fn_FPDF_InitLibrary: *dl(&lib, "FPDF_InitLibrary")?,
            fn_FPDF_InitLibraryWithConfig: *dl(&lib, "FPDF_InitLibraryWithConfig")?,
            fn_FPDF_LoadCustomDocument: *dl(&lib, "FPDF_LoadCustomDocument")?,
            fn_FPDF_LoadPage: *dl(&lib, "FPDF_LoadPage")?,
            fn_FPDF_LoadXFA: *dl(&lib, "FPDF_LoadXFA")?,
            fn_FPDF_MovePages: *dl(&lib, "FPDF_MovePages")?,
            fn_FPDF_NewFormObjectFromXObject: *dl(&lib, "FPDF_NewFormObjectFromXObject")?,
            fn_FPDF_NewXObjectFromPage: *dl(&lib, "FPDF_NewXObjectFromPage")?,
            fn_FPDF_PageToDevice: *dl(&lib, "FPDF_PageToDevice")?,
            fn_FPDF_RemoveFormFieldHighlight: *dl(&lib, "FPDF_RemoveFormFieldHighlight")?,
            fn_FPDF_RenderPageBitmap: *dl(&lib, "FPDF_RenderPageBitmap")?,
            fn_FPDF_RenderPageBitmapWithColorScheme_Start: *dl(
                &lib,
                "FPDF_RenderPageBitmapWithColorScheme_Start",
            )?,
            fn_FPDF_RenderPageBitmapWithMatrix: *dl(&lib, "FPDF_RenderPageBitmapWithMatrix")?,
            fn_FPDF_RenderPageBitmap_Start: *dl(&lib, "FPDF_RenderPageBitmap_Start")?,
            fn_FPDF_RenderPage_Close: *dl(&lib, "FPDF_RenderPage_Close")?,
            fn_FPDF_RenderPage_Continue: *dl(&lib, "FPDF_RenderPage_Continue")?,
            fn_FPDF_SaveAsCopy: *dl(&lib, "FPDF_SaveAsCopy")?,
            fn_FPDF_SaveWithVersion: *dl(&lib, "FPDF_SaveWithVersion")?,
            fn_FPDF_SetFormFieldHighlightAlpha: *dl(&lib, "FPDF_SetFormFieldHighlightAlpha")?,
            fn_FPDF_SetFormFieldHighlightColor: *dl(&lib, "FPDF_SetFormFieldHighlightColor")?,
            fn_FPDF_SetSandBoxPolicy: *dl(&lib, "FPDF_SetSandBoxPolicy")?,
            fn_FPDF_SetSystemFontInfo: *dl(&lib, "FPDF_SetSystemFontInfo")?,
            fn_FPDF_StructElement_Attr_CountChildren: *dl(
                &lib,
                "FPDF_StructElement_Attr_CountChildren",
            )?,
            fn_FPDF_StructElement_Attr_GetBlobValue: *dl(
                &lib,
                "FPDF_StructElement_Attr_GetBlobValue",
            )?,
            fn_FPDF_StructElement_Attr_GetBooleanValue: *dl(
                &lib,
                "FPDF_StructElement_Attr_GetBooleanValue",
            )?,
            fn_FPDF_StructElement_Attr_GetChildAtIndex: *dl(
                &lib,
                "FPDF_StructElement_Attr_GetChildAtIndex",
            )?,
            fn_FPDF_StructElement_Attr_GetCount: *dl(&lib, "FPDF_StructElement_Attr_GetCount")?,
            fn_FPDF_StructElement_Attr_GetName: *dl(&lib, "FPDF_StructElement_Attr_GetName")?,
            fn_FPDF_StructElement_Attr_GetNumberValue: *dl(
                &lib,
                "FPDF_StructElement_Attr_GetNumberValue",
            )?,
            fn_FPDF_StructElement_Attr_GetStringValue: *dl(
                &lib,
                "FPDF_StructElement_Attr_GetStringValue",
            )?,
            fn_FPDF_StructElement_Attr_GetType: *dl(&lib, "FPDF_StructElement_Attr_GetType")?,
            fn_FPDF_StructElement_Attr_GetValue: *dl(&lib, "FPDF_StructElement_Attr_GetValue")?,
            fn_FPDF_StructElement_CountChildren: *dl(&lib, "FPDF_StructElement_CountChildren")?,
            fn_FPDF_StructElement_GetActualText: *dl(&lib, "FPDF_StructElement_GetActualText")?,
            fn_FPDF_StructElement_GetAltText: *dl(&lib, "FPDF_StructElement_GetAltText")?,
            fn_FPDF_StructElement_GetAttributeAtIndex: *dl(
                &lib,
                "FPDF_StructElement_GetAttributeAtIndex",
            )?,
            fn_FPDF_StructElement_GetAttributeCount: *dl(
                &lib,
                "FPDF_StructElement_GetAttributeCount",
            )?,
            fn_FPDF_StructElement_GetChildAtIndex: *dl(&lib, "FPDF_StructElement_GetChildAtIndex")?,
            fn_FPDF_StructElement_GetChildMarkedContentID: *dl(
                &lib,
                "FPDF_StructElement_GetChildMarkedContentID",
            )?,
            fn_FPDF_StructElement_GetID: *dl(&lib, "FPDF_StructElement_GetID")?,
            fn_FPDF_StructElement_GetLang: *dl(&lib, "FPDF_StructElement_GetLang")?,
            fn_FPDF_StructElement_GetMarkedContentID: *dl(
                &lib,
                "FPDF_StructElement_GetMarkedContentID",
            )?,
            fn_FPDF_StructElement_GetMarkedContentIdAtIndex: *dl(
                &lib,
                "FPDF_StructElement_GetMarkedContentIdAtIndex",
            )?,
            fn_FPDF_StructElement_GetMarkedContentIdCount: *dl(
                &lib,
                "FPDF_StructElement_GetMarkedContentIdCount",
            )?,
            fn_FPDF_StructElement_GetObjType: *dl(&lib, "FPDF_StructElement_GetObjType")?,
            fn_FPDF_StructElement_GetParent: *dl(&lib, "FPDF_StructElement_GetParent")?,
            fn_FPDF_StructElement_GetStringAttribute: *dl(
                &lib,
                "FPDF_StructElement_GetStringAttribute",
            )?,
            fn_FPDF_StructElement_GetTitle: *dl(&lib, "FPDF_StructElement_GetTitle")?,
            fn_FPDF_StructElement_GetType: *dl(&lib, "FPDF_StructElement_GetType")?,
            fn_FPDF_StructTree_Close: *dl(&lib, "FPDF_StructTree_Close")?,
            fn_FPDF_StructTree_CountChildren: *dl(&lib, "FPDF_StructTree_CountChildren")?,
            fn_FPDF_StructTree_GetChildAtIndex: *dl(&lib, "FPDF_StructTree_GetChildAtIndex")?,
            fn_FPDF_StructTree_GetForPage: *dl(&lib, "FPDF_StructTree_GetForPage")?,
            fn_FPDF_VIEWERREF_GetDuplex: *dl(&lib, "FPDF_VIEWERREF_GetDuplex")?,
            fn_FPDF_VIEWERREF_GetName: *dl(&lib, "FPDF_VIEWERREF_GetName")?,
            fn_FPDF_VIEWERREF_GetNumCopies: *dl(&lib, "FPDF_VIEWERREF_GetNumCopies")?,
            fn_FPDF_VIEWERREF_GetPrintPageRange: *dl(&lib, "FPDF_VIEWERREF_GetPrintPageRange")?,
            fn_FPDF_VIEWERREF_GetPrintPageRangeCount: *dl(
                &lib,
                "FPDF_VIEWERREF_GetPrintPageRangeCount",
            )?,
            fn_FPDF_VIEWERREF_GetPrintPageRangeElement: *dl(
                &lib,
                "FPDF_VIEWERREF_GetPrintPageRangeElement",
            )?,
            fn_FPDF_VIEWERREF_GetPrintScaling: *dl(&lib, "FPDF_VIEWERREF_GetPrintScaling")?,
            fn_FSDK_SetUnSpObjProcessHandler: *dl(&lib, "FSDK_SetUnSpObjProcessHandler")?,
            _lib: lib,
        })
    }
}
