wrapper for pdfium

new topic     » topic index » view thread      » older message » newer message

hi, my second wrapper. it is for pdfium´- you can get the dll (32/64) easy, if you make an vs C++ project and import them with nuget. i use that for creating and reading pdf's. the libs are also available for linux etc. as far as i know.

i left the ugly comments in there, so that one has kind of a reference. my be some can use that.

include std/dll.e 
include std/machine.e 
include std/math.e 
 
-- CCopyright 2014 PDFium Authors. All rights reserved. 
-- Use of this source code is governed by a BSD-style license that can be 
-- found in the LICENSE file. 
-- Original code copyright 2014 Foxit Software Inc. http:--www.foxitsoftware.com 
-- NOTE: External docs refer to this file as "fpdfview.h", so do not rename 
-- despite lack of consistency with other public files. 
 
/* 

Macro FPDF_ARGB(a, r, g, b) 
    ((((b) & 0xff) | (((g) & 0xff) << 8) | (((r) & 0xff) << 16) | (((a) & 0xff) << 24))) 
EndMacro 
 
Macro  FPDF_GetBValue(argb)  
  argb 
EndMacro 
Macro FPDF_GetGValue(argb)  
  ((argb)) >> 8) 
EndMacro 
Macro FPDF_GetRValue(argb)  
  ((argb) >> 16) 
EndMacro 
Macro FPDF_GetAValue(argb)  
  ((argb) >> 24) 
EndMacro 
*/ 
 
 
-- PDF_USE_XFA is set in confirmation that this version of PDFium can support 
-- XFA forms as requested by the PDF_ENABLE_XFA setting. 
public constant PDF_USE_XFA = 1 
-- Policy for accessing the local machine time. 
public constant FPDF_POLICY_MACHINETIME_ACCESS = 0 
public constant FPDF_ERR_SUCCESS = 0    -- No error. 
public constant FPDF_ERR_UNKNOWN = 1    -- Unknown error. 
public constant FPDF_ERR_FILE    = 2    -- File not found or could not be opened. 
public constant FPDF_ERR_FORMAT  = 3    -- File not in PDF format or corrupted. 
public constant FPDF_ERR_PASSWORD = 4   -- Password required or incorrect password. 
public constant FPDF_ERR_SECURITY = 5   -- Unsupported security scheme. 
public constant FPDF_ERR_PAGE    = 6    -- Page not found or content error. 
public constant FPDF_ERR_XFALOAD = 7    -- Load XFA error. 
public constant FPDF_ERR_XFALAYOUT = 8  -- Layout XFA error. 
-- Page rendering flags. They can be combined with bit-wise OR. 
-- 
-- Set if annotations are to be rendered. 
public constant FPDF_ANNOT = 0x01 
-- Set if using text rendering optimized for LCD display. 
public constant FPDF_LCD_TEXT = 0x02 
-- Don't use the native text output available on some platforms 
public constant FPDF_NO_NATIVETEXT = 0x04 
-- Grayscale output. 
public constant FPDF_GRAYSCALE = 0x08 
-- Set if you want to get some debug info. 
public constant FPDF_DEBUG_INFO = 0x80 
-- Set if you don't want to catch exceptions. 
public constant FPDF_NO_CATCH = 0x100 
-- Limit image cache size. 
public constant FPDF_RENDER_LIMITEDIMAGECACHE = 0x200 
-- Always use halftone for image stretching. 
public constant FPDF_RENDER_FORCEHALFTONE = 0x400 
-- Render for printing. 
public constant FPDF_PRINTING = 0x800 
-- Set to disable anti-aliasing on text. 
public constant FPDF_RENDER_NO_SMOOTHTEXT = 0x1000 
-- Set to disable anti-aliasing on images. 
public constant FPDF_RENDER_NO_SMOOTHIMAGE = 0x2000 
-- Set to disable anti-aliasing on paths. 
public constant FPDF_RENDER_NO_SMOOTHPATH = 0x4000 
-- Set whether to render in a reverse Byte order, this flag is only used when rendering to a bitmap. 
public constant FPDF_REVERSE_BYTE_ORDER = 0x10 
 
-- More DIB formats 
-- Gray scale bitmap, one byte per pixel. 
public constant FPDFBitmap_Gray = 1 
-- 3 bytes per pixel, byte order: blue, green, red. 
public constant FPDFBitmap_BGR = 2 
-- 4 bytes per pixel, byte order: blue, green, red, unused. 
public constant FPDFBitmap_BGRx = 3 
-- 4 bytes per pixel, byte order: blue, green, red, alpha. 
public constant FPDFBitmap_BGRA = 4 
 
public constant PDF_LINEARIZATION_UNKNOWN = -1 
public constant PDF_NOT_LINEARIZED = 0 
public constant PDF_LINEARIZED = 1 
 
public constant PDF_DATA_ERROR = -1 
public constant PDF_DATA_NOTAVAIL = 0 
public constant PDF_DATA_AVAIL = 1 
 
public constant PDF_FORM_ERROR = -1 
public constant PDF_FORM_NOTAVAIL = 0 
public constant PDF_FORM_AVAIL = 1 
public constant PDF_FORM_NOTEXIST = 2 
 
-- Unsupported action type. 
public constant PDFACTION_UNSUPPORTED = 0 
-- Go to a destination within current document. 
public constant PDFACTION_GOTO = 1 
-- Go to a destination within another document. 
public constant PDFACTION_REMOTEGOTO = 2 
-- URI, including web pages and other Internet resources. 
public constant PDFACTION_URI = 3 
-- Launch an application or open a file. 
public constant PDFACTION_LAUNCH = 4 
 
-- The page object constants. 
public constant FPDF_PAGEOBJ_TEXT = 1 
public constant FPDF_PAGEOBJ_PATH = 2 
public constant FPDF_PAGEOBJ_IMAGE = 3 
public constant FPDF_PAGEOBJ_SHADING = 4 
public constant FPDF_PAGEOBJ_FORM = 5 
 
-- Unsupported XFA form. 
public constant FPDF_UNSP_DOC_XFAFORM = 1 
-- Unsupported portable collection. 
public constant FPDF_UNSP_DOC_PORTABLECOLLECTION = 2 
-- Unsupported attachment. 
public constant FPDF_UNSP_DOC_ATTACHMENT = 3 
-- Unsupported security. 
public constant FPDF_UNSP_DOC_SECURITY = 4 
-- Unsupported shared review. 
public constant FPDF_UNSP_DOC_SHAREDREVIEW = 5 
-- Unsupported shared form, acrobat. 
public constant FPDF_UNSP_DOC_SHAREDFORM_ACROBAT = 6 
-- Unsupported shared form, filesystem. 
public constant FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM = 7 
-- Unsupported shared form, email. 
public constant FPDF_UNSP_DOC_SHAREDFORM_EMAIL = 8 
-- Unsupported 3D annotation. 
public constant FPDF_UNSP_ANNOT_3DANNOT = 11 
-- Unsupported movie annotation. 
public constant FPDF_UNSP_ANNOT_MOVIE = 12 
-- Unsupported sound annotation. 
public constant FPDF_UNSP_ANNOT_SOUND = 13 
-- Unsupported screen media annotation. 
public constant FPDF_UNSP_ANNOT_SCREEN_MEDIA = 14 
-- Unsupported screen rich media annotation. 
public constant FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA = 15 
-- Unsupported attachment annotation. 
public constant FPDF_UNSP_ANNOT_ATTACHMENT = 16 
-- Unsupported signature annotation. 
public constant FPDF_UNSP_ANNOT_SIG = 17 
 
-- Unknown page mode. 
public constant PAGEMODE_UNKNOWN = -1 
-- Document outline, and thumbnails hidden. 
public constant PAGEMODE_USENONE = 0 
-- Document outline visible. 
public constant PAGEMODE_USEOUTLINES = 1 
-- Thumbnail images visible. 
public constant PAGEMODE_USETHUMBS = 2 
-- Full-screen mode, no menu bar, window controls, or other decorations visible. 
public constant PAGEMODE_FULLSCREEN = 3 
-- Optional content group panel visible. 
public constant PAGEMODE_USEOC = 4 
-- Attachments panel visible. 
public constant PAGEMODE_USEATTACHMENTS = 5 
 
-- Flatten operation failed. 
public constant FLATTEN_FAIL = 0 
-- Flatten operation succeed. 
public constant FLATTEN_SUCCESS = 1 
-- Nothing to be flattened. 
public constant FLATTEN_NOTHINGTODO = 2 
 
-- Flatten for normal display. 
public constant FLAT_NORMALDISPLAY = 0 
-- Flatten for print. 
public constant FLAT_PRINT = 1 
 
public constant DOCTYPE_PDF = 0          -- Normal pdf Document 
public constant DOCTYPE_DYNAMIC_XFA = 1  -- Dynamic xfa Document Type 
public constant DOCTYPE_STATIC_XFA = 2   -- Static xfa Document Type 
 
-- Flags for Cursor type 
public constant FXCT_ARROW = 0 
public constant FXCT_NESW = 1 
public constant FXCT_NWSE = 2 
public constant FXCT_VBEAM = 3 
public constant FXCT_HBEAM = 4 
public constant FXCT_HAND = 5 
 
-- XFA 
-- Pageview  event flags 
-- After a new pageview is added. 
public constant FXFA_PAGEVIEWEVENT_POSTADDED = 1 
-- After a pageview is removed. 
public constant FXFA_PAGEVIEWEVENT_POSTREMOVED = 3 
 
-- menu 
-- Macro Definitions For Right Context Menu Features Of XFA Fields 
public constant FXFA_MENU_COPY = 1 
public constant FXFA_MENU_CUT = 2 
public constant FXFA_MENU_SELECTALL = 4 
public constant FXFA_MENU_UNDO = 8 
public constant FXFA_MENU_REDO = 16 
public constant FXFA_MENU_PASTE = 32 
 
-- file type 
-- Macro Definitions For File Type. 
public constant FXFA_SAVEAS_XML = 1 
public constant FXFA_SAVEAS_XDP = 2 
 
-- additional actions type of document. 
public constant FPDFDOC_AACTION_WC = 0x10  -- WC, before closing document, JavaScript action. 
public constant FPDFDOC_AACTION_WS = 0x11  -- WS, before saving document, JavaScript action. 
public constant FPDFDOC_AACTION_DS = 0x12  -- DS, after saving document, JavaScript action. 
public constant FPDFDOC_AACTION_WP = 0x13  -- WP, before printing document, JavaScript action. 
public constant FPDFDOC_AACTION_DP = 0x14  -- DP, after printing document, JavaScript action. 
 
-- Additional-action types of page object 
public constant FPDFPAGE_AACTION_OPEN = 0  -- /O -- An action to be performed when the page is opened 
public constant FPDFPAGE_AACTION_CLOSE = 1 -- /C -- An action to be performed when the page is closed 
 
-- Field Types 
public constant FPDF_FORMFIELD_UNKNOWN = 0      -- Unknown. 
public constant FPDF_FORMFIELD_PUSHBUTTON = 1   -- push button type. 
public constant FPDF_FORMFIELD_CHECKBOX = 2     -- check box type. 
public constant FPDF_FORMFIELD_RADIOBUTTON = 3  -- radio button type. 
public constant FPDF_FORMFIELD_COMBOBOX = 4     -- combo box type. 
public constant FPDF_FORMFIELD_LISTBOX = 5      -- list box type. 
public constant FPDF_FORMFIELD_TEXTFIELD = 6    -- text field type. 
public constant FPDF_FORMFIELD_XFA = 7          -- text field type. 
 
-- Flags for progressive process status. 
public constant FPDF_RENDER_READER = 0 
public constant FPDF_RENDER_TOBECOUNTINUED = 1 
public constant FPDF_RENDER_DONE = 2 
public constant FPDF_RENDER_FAILED = 3 
 
-- Incremental. 
public constant FPDF_INCREMENTAL = 1 
-- No Incremental. 
public constant FPDF_NO_INCREMENTAL = 2 
-- Remove security. 
public constant FPDF_REMOVE_SECURITY = 3 
 
-- Character sets For the font 
public constant FXFONT_ANSI_CHARSET = 0 
public constant FXFONT_DEFAULT_CHARSET = 1 
public constant FXFONT_SYMBOL_CHARSET = 2 
public constant FXFONT_SHIFTJIS_CHARSET = 128 
public constant FXFONT_HANGEUL_CHARSET = 129 
public constant FXFONT_GB2312_CHARSET = 134 
public constant FXFONT_CHINESEBIG5_CHARSET = 136 
 
-- Font pitch And family flags 
public constant FXFONT_FF_FIXEDPITCH = 1 
public constant FXFONT_FF_ROMAN = shift_bits(1, -4) 
public constant FXFONT_FF_SCRIPT = shift_bits(4, -4) 
 
-- Typical weight values 
public constant FXFONT_FW_NORMAL = 400 
public constant FXFONT_FW_BOLD = 700 
 
-- Flags used by FPDFText_FindStart function. 
public constant FPDF_MATCHCASE = 0x00000001  -- If not set, it will not match case by default. 
public constant FPDF_MATCHWHOLEWORD = 0x00000002  -- If not set, it will not match the whole word by default. 
 
 
-- PDF types 
-- typedef void* FPDF_ACTION-- 
-- typedef void* FPDF_BITMAP-- 
-- typedef void* FPDF_BOOKMARK-- 
-- typedef void* FPDF_CLIPPATH-- 
-- typedef void* FPDF_DEST-- 
-- typedef void* FPDF_DOCSCHHANDLE-- 
-- typedef void* FPDF_DOCUMENT-- 
-- typedef void* FPDF_FONT-- 
-- typedef void* FPDF_HMODULE-- 
-- typedef void* FPDF_LINK-- 
-- typedef void* FPDF_MODULEMGR-- 
-- typedef void* FPDF_PAGE-- 
-- typedef void* FPDF_PAGELINK-- 
-- typedef void* FPDF_PAGEOBJECT--  -- Page object(text, path, etc) 
-- typedef void* FPDF_PAGERANGE-- 
-- typedef void* FPDF_PATH-- 
-- typedef void* FPDF_RECORDER-- 
-- typedef void* FPDF_SCHHANDLE-- 
-- typedef void* FPDF_TEXTPAGE-- 
-- typedef void* FPDF_STRINGHANDLE-- 
-- typedef void* FPDF_WIDGET-- 
 
-- Basic data types 
-- typedef int FPDF_BOOL-- 
-- typedef int FPDF_ERROR-- 
-- typedef unsigned long FPDF_DWORD-- 
-- typedef float FS_FLOAT-- 
-- typedef void* FPDF_LPVOID-- 
-- typedef void const* FPDF_LPCVOID-- 
-- typedef char const* FPDF_LPCSTR-- 
-- typedef int FPDF_RESULT-- 
 
-- Duplex types 
enum type FPDF_DUPLEXTYPE 
  DuplexUndefined = 0, 
  Simplex, 
  DuplexFlipShortEdge, 
  DuplexFlipLongEdge 
end type 
 
-- String types 
--typedef unsigned short FPDF_WCHAR-- 
--typedef unsigned char const* FPDF_LPCBYTE-- 
 
-- FPDFSDK may use three types of strings: byte string, wide string (UTF-16LE 
-- encoded), and platform dependent string 
--typedef const char* FPDF_BYTESTRING-- 
 
-- FPDFSDK always uses UTF-16LE encoded wide strings, each character uses 2 
-- bytes (except surrogation), with the low byte first. 
--typedef const unsigned short* FPDF_WIDESTRING-- 
 
-- Structure for a byte string. 
-- Note, a byte string commonly means a UTF-16LE formated string. 
/*************************************************************** 

Structure FPDF_BSTR 
  -- String buffer. 
  *str 
  -- Length of the string, in bytes. 
  len.l 
EndStructure 
***************************************************************/ 
public constant SizeOf_FPDF_BSTR = 12 
 
-- For Windows programmers: In most cases it's OK to treat FPDF_WIDESTRING as a 
-- Windows unicode string, however, special care needs to be taken if you 
-- expect to process Unicode larger than 0xffff. 
-- 
-- For Linux/Unix programmers: most compiler/library environments use 4 bytes 
-- for a Unicode character, and you have to convert between FPDF_WIDESTRING and 
-- system wide string by yourself. 
--typedef const char* FPDF_STRING-- 
 
-- Matrix for transformation. 
/*************************************************************** 

Structure FS_MATRIX 
  a.f 
  b.f 
  c.f 
  d.f 
  e.f 
  f.f 
EndStructure 
***************************************************************/ 
public constant SizeOf_FS_MATRIX = 24 
 
-- Rectangle area(float) in device or page coordinate system. 
/*************************************************************** 

Structure FS_RECTF 
  -- The x-coordinate of the left-top corner. 
  left.f 
  -- The y-coordinate of the left-top corner. 
  top.f 
  -- The x-coordinate of the right-bottom corner. 
  right.f 
  -- The y-coordinate of the right-bottom corner. 
  bottom.f 
EndStructure --* FS_LPRECTF, FS_RECTF 
***************************************************************/ 
public constant SizeOf_FS_RECTF = 16 
 
-- Const Pointer to FS_RECTF structure. 
--typedef const FS_RECTF* FS_LPCRECTF-- 
 
-- Process-wide options for initializing the library. 
/*************************************************************** 

Structure FPDF_LIBRARY_CONFIG 
  -- Version number of the interface. Currently must be 2. 
  version.l 
 
  -- Array of paths to scan in place of the defaults when using built-in 
  -- FXGE font loading code. The array is terminated by a NULL pointer. 
  -- The Array may be NULL itself to use the default paths. May be ignored 
  -- entirely depending upon the platform. 
  --*m_pUserFontPaths 
 
  -- Version 2. 
 
  -- pointer to the v8::Isolate to use, or NULL to force PDFium to create one. 
  --m_pIsolate-- 
 
  -- The embedder data slot to use in the v8::Isolate to store PDFium's 
  -- per-isolate data. The value needs to be between 0 and 
  -- v8::Internals::kNumIsolateDataLots (exclusive). Note that 0 is fine 
  -- for most embedders. 
  m_v8EmbedderSlot.l-- 
EndStructure 
***************************************************************/ 
public constant SizeOf_FPDF_LIBRARY_CONFIG = 8 
 
 
-- Prototype.i m_GetBlock(*param, position.i, *pBuf, size.i) 
 
 
-- Structure for custom file access. 
/*************************************************************** 

Structure FPDF_FILEACCESS 
  -- File length, in bytes. 
  m_FileLen.i 
 
  -- A function pointer for getting a block of data from a specific position. 
  -- Position is specified by byte offset from the beginning of the file. 
  -- The position and size will never go out of range of the file length. 
  -- It may be possible for FPDFSDK to call this function multiple times for 
  -- the same position. 
  -- Return value: should be non-zero if successful, zero for error. 
  fptr.m_GetBlock --Int (*m_GetBlock)(void* param, unsigned long position, unsigned char* pBuf, unsigned long size)-- 
 
  -- A custom pointer for all implementation specific data.  This pointer will 
  -- be used as the first parameter to the m_GetBlock callback. 
  *m_Param-- 
EndStructure 
***************************************************************/ 
public constant SizeOf_FPDF_FILEACCESS = 24 
 
 
 
-- Prototype   Release(*clientData) 
-- Prototype.l GetSize(*clientData) 
-- Prototype.l ReadBlock(*clientData, offset.i, *buffer, size.i) 
-- Prototype.l WriteBlock(*clientData, offset.i, *buffer, size.i) 
-- Prototype.l Flush(*clientData) 
-- Prototype.l Truncate(*clientData, size.i) 
 
-- 
-- Structure For file reading Or writing (I/O). 
-- 
-- This is a handler And should be implemented by callers. 
-- 
/*************************************************************** 

Structure FPDF_FILEHANDLER 
  -- 
  -- User-defined Data. 
  -- Callers can use this field To track controls. 
  -- 
  --clientData-- 
  -- 
  -- Callback function To release the current file stream object. 
  -- param[in] clientData    Pointer To user-defined Data. 
  -- return None. 
  -- 
  fptr0.Release --void (*Release)(FPDF_LPVOID clientData)-- 
  -- 
  -- Callback function To retrieve the current file stream size. 
  -- param[in] clientData    Pointer To user-defined Data. 
  -- return Size of file stream. 
  -- 
  fptr1.GetSize --FPDF_DWORD (*GetSize)(FPDF_LPVOID clientData) 
  -- 
  -- Callback function To Read Data from the current file stream. 
  -- param[in]   clientData  Pointer To user-defined Data. 
  -- param[in]   offset      Offset position starts from the beginning of file stream. This parameter indicates reading position. 
  -- param[in]   buffer      Memory buffer To store Data which are Read from file stream. This parameter should Not be <b>NULL</b>. 
  -- param[in]   size        Size of Data which should be Read from file stream, in bytes. The buffer indicated by the parameter <i>buffer</i> 
  --                         should be enough To store specified Data. 
  -- return 0 For success, other value For failure. 
  -- 
  fptr2.ReadBlock --(*ReadBlock)(FPDF_LPVOID clientData, FPDF_DWORD offset, FPDF_LPVOID buffer, FPDF_DWORD size) 
  -- 
  -- Callback function To write Data into the current file stream. 
  -- param[in]   clientData  Pointer To user-defined Data. 
  -- param[in]   offset      Offset position starts from the beginning of file stream. This parameter indicates writing position. 
  -- param[in]   buffer      Memory buffer contains Data which is written into file stream. This parameter should Not be <b>NULL</b>. 
  -- param[in]   size        Size of Data which should be written into file stream, in bytes. 
  -- return 0 For success, other value For failure. 
  -- 
  fptr3.WriteBlock --FPDF_RESULT (*WriteBlock)(FPDF_LPVOID clientData, FPDF_DWORD offset, FPDF_LPCVOID buffer, FPDF_DWORD size)-- 
  -- 
  -- Callback function To flush all internal accessing buffers. 
  -- param[in]   clientData  Pointer To user-defined Data. 
  -- return 0 For success, other value For failure. 
  -- 
  fptr4.Flush --FPDF_RESULT (*Flush)(FPDF_LPVOID clientData)-- 
  -- 
  -- Callback function To change file size. details This function is called under writing mode usually. Implementer can determine whether To realize it based on application requests. 
  -- param[in]   clientData  Pointer To user-defined Data. 
  -- param[in]   size        New size of file stream, in bytes. 
  -- return 0 For success, other value For failure. 
  -- 
  fptr5.Truncate --FPDF_RESULT (*Truncate)(FPDF_LPVOID clientData, FPDF_DWORD size)-- 
EndStructure -- FPDF_FILEHANDLER,--FPDF_LPFILEHANDLER-- 
***************************************************************/ 
public constant SizeOf_FPDF_FILEHANDLER = 48 
 
---------------------------------------------------------------------------------------------------------------------------------- 
-- prototype.l IsDataAvail(*pThis.FX_FILEAVAIL, offset.i, size.i) 
---------------------------------------------------------------------------------------------------------------------------------- 
-- Prototype.l IsDataAvail(*pThis, offset.i, size.i) 
 
-- Interface for checking whether sections of the file are available. 
/*************************************************************** 

Structure FX_FILEAVAIL 
  -- Version number of the interface. Must be 1. 
  version.l 
 
  -- Reports if the specified data section is currently available. A section is 
  -- available if all bytes in the section are available. 
  -- 
  -- Interface Version: 1 
  -- Implementation Required: Yes 
  -- 
  --   pThis  - pointer to the interface structure. 
  --   offset - the offset of the data section in the file. 
  --   size   - the size of the data section. 
  -- 
  -- Returns true if the specified data section at |offset| of |size| 
  -- is available. 
  fptr.IsDataAvail -- FPDF_BOOL (*IsDataAvail)(structure _FX_FILEAVAIL* pThis, size_t offset, size_t size)-- 
EndStructure --FX_FILEAVAIL 
--typedef void* FPDF_AVAIL-- 
***************************************************************/ 
public constant SizeOf_FX_FILEAVAIL = 12 
 
---------------------------------------------------------------------------------------------------------------------------------- 
--prototype AddSegment(*pThis.FX_DOWNLOADHINTS, offset.i, size.i) 
---------------------------------------------------------------------------------------------------------------------------------- 
-- Prototype AddSegment(*pThis, offset.i, size.i) 
-- Download hints interface. Used to receive hints for further downloading. 
/*************************************************************** 

Structure FX_DOWNLOADHINTS 
  -- Version number of the interface. Must be 1. 
  version.l 
 
  -- Add a section to be downloaded. 
  -- 
  -- Interface Version: 1 
  -- Implementation Required: Yes 
  -- 
  --   pThis  - pointer to the interface structure. 
  --   offset - the offset of the hint reported to be downloaded. 
  --   size   - the size of the hint reported to be downloaded. 
  -- 
  -- The |offset| and |size| of the section may not be unique. Part of the 
  -- section might be already available. The download manager must deal with 
  -- overlapping sections. 
  fptr.AddSegment-- void (*AddSegment)(structure _FX_DOWNLOADHINTS* pThis, size_t offset, size_t size)-- 
EndStructure 
***************************************************************/ 
public constant SizeOf_FX_DOWNLOADHINTS = 12 
 
 
/*************************************************************** 

Structure FS_QUADPOINTSF 
  x1.f 
  y1.f 
  x2.f 
  y2.f 
  x3.f 
  y3.f 
  x4.f 
  y4.f 
EndStructure 
***************************************************************/ 
public constant SizeOf_FS_QUADPOINTSF = 32 
 
---------------------------------------------------------------------------------------------------------------------------------- 
--prototype FSDK_UnSupport_Handler(*pThis.UNSUPPORT_INFO, nType.l) 
---------------------------------------------------------------------------------------------------------------------------------- 
-- Prototype FSDK_UnSupport_Handler(*pThis, nType.l) 
 
-- Interface for unsupported feature notifications. 
/*************************************************************** 

Structure UNSUPPORT_INFO 
  -- Version number of the interface. Must be 1. 
  version.l 
 
  -- Unsupported object notification function. 
  -- Interface Version: 1 
  -- Implementation Required: Yes 
  -- 
  --   pThis - pointer to the interface structure. 
  --   nType - the type of unsupported object. One of the |FPDF_UNSP_*| entries. 
  fptr.FSDK_UnSupport_Handler -- void (*FSDK_UnSupport_Handler)(structure _UNSUPPORT_INFO* pThis, int nType)-- 
EndStructure 
***************************************************************/ 
public constant SizeOf_UNSUPPORT_INFO = 12 
 
--typedef void* FPDF_FORMHANDLE-- 
 
-- -- Prototype.l app_alert(*pThis.IPDF_JsPlatform, *Msg.string, *Title.string, Type.l, Icon.l)-- 
-- -- Prototype app_beep(*pThis.IPDF_JsPlatform, nType.l) 
-- -- Prototype.l app_response(*pThis.IPDF_JsPlatform, *Question.string, *Title.string, *Default.string, *cLabel.string, bPassword.l, void* response, int length) 
-- -- Prototype.l Doc_getFilePath(*pThis.IPDF_JsPlatform, *filePath, length.l) 
-- -- Prototype Doc_mail(*pThis.IPDF_JsPlatform, *mailData, length.l, bUI.l, *To.string, *Subject.string, *CC.string, *BCC.string, *Msg.string) 
-- -- Prototype Doc_print(*pThis.IPDF_JsPlatform, bUI.l, nStart.l, int nEnd, bSilent.l, bShrinkToFit.l, bPrintAsImage.l, bReverse.l, bAnnotations.l)-- 
-- -- Prototype Doc_submitForm(*pThis.IPDF_JsPlatform, *formData, length.l, *URL.string) 
-- -- Prototype Doc_gotoPage(*pThis.IPDF_JsPlatform, nPageNum.l) 
-- -- Prototype.l Field_browse(*pThis.IPDF_JsPlatform, *filePath, length.l) 
 
-- Prototype.l app_alert(*pThis, *Msg.string, *Title.string, Type.l, Icon.l)-- 
-- Prototype app_beep(*pThis, nType.l) 
-- Prototype.l app_response(*pThis, *Question.string, *Title.string, *Default.string, *cLabel.string, bPassword.l, *response, length.l) 
-- Prototype.l Doc_getFilePath(*pThis, *filePath, length.l) 
-- Prototype Doc_mail(*pThis, *mailData, length.l, bUI.l, *To.string, *Subject.string, *CC.string, *BCC.string, *Msg.string) 
-- Prototype Doc_print(*pThis, bUI.l, nStart.l, nEnd.l, bSilent.l, bShrinkToFit.l, bPrintAsImage.l, bReverse.l, bAnnotations.l) 
-- Prototype Doc_submitForm(*pThis, *formData, length.l, *URL.string) 
-- Prototype Doc_gotoPage(*pThis, nPageNum.l) 
-- Prototype.l Field_browse(*pThis, *filePath, length.l) 
 
/*************************************************************** 

Structure IPDF_JSPLATFORM --IPDF_JsPlatform 
  -- 
  -- Version number of the Interface. Currently must be 2. 
  -- 
  version.l 
 
  -- Version 1. 
 
  -- 
  -- Method: app_alert 
  --           pop up a dialog To show warning Or hint. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself 
  --           Msg         -   A string containing the message To be displayed. 
  --           Title       -   The title of the dialog. 
  --           Type        -   The stype of button group. 
  --                           0-OK(Default)-- 
  --                           1-OK,Cancel-- 
  --                           2-Yes,NO-- 
  --                           3-Yes, NO, Cancel. 
  --           nIcon       -   The Icon type. 
  --                           0-Error(Default)-- 
  --                           1-Warning-- 
  --                           2-Question-- 
  --                           3-Status. 
  --                           4-Asterisk 
  -- Return Value: 
  --           The Return value could be the folowing type: 
  --                           1-OK-- 
  --                           2-Cancel-- 
  --                           3-NO-- 
  --                           4-Yes-- 
  -- 
  fptr.app_alert  --Int (*app_alert)(structure _IPDF_JsPlatform* pThis, FPDF_WIDESTRING Msg, FPDF_WIDESTRING Title, int Type, int Icon)-- 
 
  -- 
  -- Method: app_beep 
  --           Causes the system To play a sound. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself 
  --           nType       -   The sound type. 
  --                           0 - Error 
  --                           1 - Warning 
  --                           2 - Question 
  --                           3 - Status 
  --                           4 - Default (Default value) 
  -- Return Value: 
  --           None 
  -- 
  fptr1.app_beep -- void (*app_beep)(structure _IPDF_JsPlatform* pThis, int nType)-- 
 
  -- 
  -- Method: app_response 
  --           Displays a dialog box containing a question And an entry field For 
  -- the user To reply To the question. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself 
  --           Question    -   The question To be posed To the user. 
  --           Title       -   The title of the dialog box. 
  --           Default     -   A Default value For the answer To the question. If 
  -- Not specified, no Default value is presented. 
  --           cLabel      -   A short string To appear in front of And on the 
  -- same line As the edit text field. 
  --           bPassword   -   If true, indicates that the user's response should 
  -- show As asterisks (*) Or bullets (?) To mask the response, which might be 
  -- sensitive information. The Default is false. 
  --           response    -   A string buffer allocated by SDK, To receive the 
  -- user's response. 
  --           length      -   The length of the buffer, number of bytes. 
  -- Currently, It's always be 2048. 
  -- Return Value: 
  --       Number of bytes the complete user input would actually require, Not 
  -- including trailing zeros, regardless of the value of the length 
  --       parameter Or the presence of the response buffer. 
  -- Comments: 
  --       No matter on what platform, the response buffer should be always 
  -- written using UTF-16LE encoding. If a response buffer is 
  --       present And the size of the user input exceeds the capacity of the 
  -- buffer As specified by the length parameter, only the 
  --       first "length" bytes of the user input are To be written To the 
  -- buffer. 
  -- 
  fptr2.app_response -- Int (*app_response)(structure _IPDF_JsPlatform* pThis, FPDF_WIDESTRING Question, FPDF_WIDESTRING Title, FPDF_WIDESTRING Default, FPDF_WIDESTRING cLabel, FPDF_BOOL bPassword, void* response, int length)-- 
 
  -- 
  -- Method: Doc_getFilePath 
  --           Get the file path of the current document. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself 
  --           filePath    -   The string buffer To receive the file path. Can be 
  -- NULL. 
  --           length      -   The length of the buffer, number of bytes. Can be 
  -- 0. 
  -- Return Value: 
  --       Number of bytes the filePath consumes, including trailing zeros. 
  -- Comments: 
  --       The filePath should be always input in local encoding. 
  -- 
  --       The Return value always indicated number of bytes required For the 
  -- buffer, even when there is 
  --       no buffer specified, Or the buffer size is less then required. In this 
  -- Case, the buffer will Not 
  --       be modified. 
  -- 
  fptr3.Doc_getFilePath  -- Int (*Doc_getFilePath)(structure _IPDF_JsPlatform* pThis, void* filePath, int length)-- 
 
  -- 
  -- Method: Doc_mail 
  --           Mails the Data buffer As an attachment To all recipients, With Or 
  -- without user interaction. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself 
  --           mailData    -   Pointer To the Data buffer To be sent.Can be NULL. 
  --           length      -   The size,in bytes, of the buffer pointed by 
  -- mailData parameter.Can be 0. 
  --           bUI         -   If true, the rest of the parameters are used in a 
  -- compose-new-message window that is displayed To the user. If false, the cTo 
  -- parameter is required And all others are optional. 
  --           To          -   A semicolon-delimited List of recipients For the 
  -- message. 
  --           Subject     -   The subject of the message. The length limit is 64 
  -- KB. 
  --           CC          -   A semicolon-delimited List of CC recipients For 
  -- the message. 
  --           BCC         -   A semicolon-delimited List of BCC recipients For 
  -- the message. 
  --           Msg         -   The content of the message. The length limit is 64 
  -- KB. 
  -- Return Value: 
  --           None. 
  -- Comments: 
  --           If the parameter mailData is NULL Or length is 0, the current 
  -- document will be mailed As an attachment To all recipients. 
  -- 
  fptr4.Doc_mail -- void (*Doc_mail)(structure _IPDF_JsPlatform* pThis, void* mailData, int length, FPDF_BOOL bUI, FPDF_WIDESTRING To, FPDF_WIDESTRING Subject, FPDF_WIDESTRING CC, FPDF_WIDESTRING BCC, FPDF_WIDESTRING Msg)-- 
 
  -- 
  -- Method: Doc_print 
  --           Prints all Or a specific number of pages of the document. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself. 
  --           bUI         -   If true, will cause a UI To be presented To the 
  -- user To obtain printing information And confirm the action. 
  --           nStart      -   A 0-based index that defines the start of an 
  -- inclusive range of pages. 
  --           nEnd        -   A 0-based index that defines the End of an 
  -- inclusive page range. 
  --           bSilent     -   If true, suppresses the cancel dialog box While 
  -- the document is printing. The Default is false. 
  --           bShrinkToFit    -   If true, the page is shrunk (If necessary) To 
  -- fit within the imageable area of the printed page. 
  --           bPrintAsImage   -   If true, print pages As an image. 
  --           bReverse    -   If true, print from nEnd To nStart. 
  --           bAnnotations    -   If true (the Default), annotations are 
  -- printed. 
  -- 
  fptr5.Doc_print -- void (*Doc_print)(structure _IPDF_JsPlatform* pThis, FPDF_BOOL bUI, int nStart, int nEnd, FPDF_BOOL bSilent, FPDF_BOOL bShrinkToFit, FPDF_BOOL bPrintAsImage, FPDF_BOOL bReverse, FPDF_BOOL bAnnotations)-- 
 
  -- 
  -- Method: Doc_submitForm 
  --           Send the form Data To a specified URL. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself 
  --           formData    -   Pointer To the Data buffer To be sent. 
  --           length      -   The size,in bytes, of the buffer pointed by 
  -- formData parameter. 
  --           URL         -   The URL To send To. 
  -- Return Value: 
  --           None. 
  -- 
  -- 
  fptr6.Doc_submitForm -- void (*Doc_submitForm)(structure _IPDF_JsPlatform* pThis, void* formData, int length, FPDF_WIDESTRING URL)-- 
 
  -- 
  -- Method: Doc_gotoPage 
  --           Jump To a specified page. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself 
  --           nPageNum    -   The specified page number, zero For the first 
  -- page. 
  -- Return Value: 
  --           None. 
  -- 
  -- 
  fptr7.Doc_gotoPage   -- void (*Doc_gotoPage)(structure _IPDF_JsPlatform* pThis, int nPageNum)-- 
  -- 
  -- Method: Field_browse 
  --           Show a file selection dialog, And Return the selected file path. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself. 
  --           filePath    -   Pointer To the Data buffer To receive the file 
  -- path.Can be NULL. 
  --           length      -   The length of the buffer, number of bytes. Can be 
  -- 0. 
  -- Return Value: 
  --       Number of bytes the filePath consumes, including trailing zeros. 
  -- Comments: 
  --       The filePath shoule be always input in local encoding. 
  -- 
  fptr8.Field_browse -- Int (*Field_browse)(structure _IPDF_JsPlatform* pThis, void* filePath, int length)-- 
 
  -- 
  --   pointer To FPDF_FORMFILLINFO Interface. 
  -- 
  *m_pFormfillinfo-- 
 
  -- Version 2. 
 
  *m_isolate--          -- Unused in v3, retain for compatibility. 
  m_v8EmbedderSlot.l   -- Unused in v3, retain for compatibility. 
 
  -- Version 3. 
  -- Version 3 moves m_Isolate And m_v8EmbedderSlot To FPDF_LIBRARY_CONFIG. 
EndStructure 
***************************************************************/ 
public constant SizeOf_IPDF_JSPLATFORM = 96 
 
/*************************************************************** 

-- Declares of a structure type To the local system time. 
Structure FPDF_SYSTEMTIME 
  wYear.l         -- years since 1900 
  wMonth.l        -- months since January - [0,11] 
  wDayOfWeek.l    -- days since Sunday - [0,6] 
  wDay.l          -- day of the month - [1,31] 
  wHour.l         -- hours since midnight - [0,23] 
  wMinute.l       -- minutes after the hour - [0,59] 
  wSecond.l       -- seconds after the minute - [0,59] 
  wMilliseconds.l -- milliseconds after the second - [0,999] 
EndStructure 
***************************************************************/ 
public constant SizeOf_FPDF_SYSTEMTIME = 32 
 
-- Prototype lpTimerFunc()-- TimerCallback lpTimerFunc 
-- Prototype ReleaseFORMFILLINFO(*pThis) 
-- Prototype FFI_Invalidate(*pThis, *page, left.d, top.d, right.d, bottom.d) 
-- Prototype FFI_OutputSelectedRect(*pThis, *page, left.d, top.d, right.d, bottom.d) 
-- Prototype FFI_SetCursor(*pThis, nCursorType.l) 
-- Prototype.l FFI_SetTimer(*pThis, uElapse.l, TimerCallback.lpTimerFunc) 
-- Prototype FFI_KillTimer(*pThis, nTimerID.l) 
-- Prototype.i FFI_GetLocalTime(*pThis) 
-- Prototype FFI_OnChange(*pThis) 
-- Prototype.i FFI_GetPage(*pThis, *document, nPageIndex.l) 
-- Prototype.i FFI_GetCurrentPage(*pThis, *document) 
-- Prototype.l FFI_GetRotation(*pThis, *page) 
-- Prototype FFI_ExecuteNamedAction(*pThis, *namedAction.string) 
-- Prototype FFI_SetTextFieldFocus(*pThis, *stringvalue.string, valueLen.i, is_focus.l) 
-- Prototype FFI_DoURIAction(*pThis, *bsURI.p-ascii) 
-- Prototype FFI_DoGoToAction(*pThis, nPageIndex.l, zoomMode.l, *fPosArray.float, sizeofArray.l) 
-- Prototype FFI_DisplayCaret(*pThis, *page, bVisible.l, left.d, top.d, right.d, bottom.d) 
-- Prototype.l FFI_GetCurrentPageIndex(*pThis, *document) 
-- Prototype FFI_SetCurrentPage(*pThis, *document, iCurPage.l) 
-- Prototype FFI_GotoURL(*pThis, *document, *wsURL.string) 
-- Prototype FFI_GetPageViewRect(*pThis, *page, *left.double, *top.double, *right.double, *bottom.double) 
-- Prototype FFI_PageEvent(*pThis, page_count.l, event_type.i) 
-- Prototype.l FFI_PopupMenu(*pThis, *page, *hWidget, menuFlag.l, x.f, y.f) 
-- Prototype.i FFI_OpenFile(*pThis, fileFlag.l, *wsURL.string, mode.p-ascii) 
-- Prototype FFI_EmailTo(*pThis, *fileHandler.FPDF_FILEHANDLER, *pTo.string, *pSubject.string, *pCC.string, *pBcc.string, *pMsg.string) 
-- Prototype FFI_UploadTo(*pThis, *fileHandler.FPDF_FILEHANDLER, fileFlag.l, *uploadTo.string) 
-- Prototype.l FFI_GetPlatform(*pThis, *platform, length.l) 
-- Prototype.l FFI_GetLanguage(*pThis, *language, length.l) 
-- Prototype.i FFI_DownloadFromURL(*pThis, *URL.string) 
-- Prototype.l FFI_PostRequestURL(*pThis, *wsURL.string, *wsData.string, *wsContentType.string, *wsEncode.string, *wsHeader.string, *respone.FPDF_BSTR) 
-- Prototype.l FFI_PutRequestURL(*pThis, *wsURL.string, *wsData.string, *wsEncode.string) 
 
/*************************************************************** 

Structure FPDF_FORMFILLINFO 
  -- 
   -- Version number of the Interface. Currently must be 1 (when PDFium is built 
   --  without the XFA Module) Or must be 2 (when built With the XFA Module). 
   -- 
  version.l 
 
  -- Version 1. 
  -- 
   --Method: Release 
   --         Give implementation a chance To release any Data after the 
   --         Interface is no longer used 
   --Interface Version: 
   --         1 
   --Implementation Required: 
   --         No 
   --Comments: 
   --         Called by Foxit SDK during the final cleanup process. 
   --Parameters: 
   --         pThis       -   Pointer To the Interface Structure itself 
   --Return Value: 
   --         None 
   -- 
  fptr.ReleaseFORMFILLINFO  -- void (*ReleaseFORMFILLINFO)(structure _FPDF_FORMFILLINFO* pThis)-- 
 
  -- 
   -- Method: FFI_Invalidate 
   --          Invalidate the client area within the specified rectangle. 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
      --           yes 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself. 
   --          page        -   Handle To the page. Returned by FPDF_LoadPage 
   --function. 
   --          left        -   Left position of the client area in PDF page 
   --coordinate. 
   --          top         -   Top  position of the client area in PDF page 
   --coordinate. 
   --          right       -   Right position of the client area in PDF page 
   --coordinate. 
   --          bottom      -   Bottom position of the client area in PDF page 
   --coordinate. 
   -- Return Value: 
   --          None. 
   -- 
   --comments: 
   --          All positions are measured in PDF "user space". 
   --          Implementation should call FPDF_RenderPageBitmap() function For repainting a specified page area. 
  -- 
  fptr1.FFI_Invalidate  -- void (*FFI_Invalidate)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, double left, double top, double right, double bottom)-- 
 
  -- 
   -- Method: FFI_OutputSelectedRect 
   --          When user is taking the mouse To Select texts on a form field, * this callback function will keep 
   --          returning the selected areas To the implementation. 
   -- 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          No 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself. 
   --          page        -   Handle To the page. Returned by FPDF_LoadPage 
   -- function. 
   --          left        -   Left position of the client area in PDF page 
   -- coordinate. 
   --          top         -   Top  position of the client area in PDF page 
   -- coordinate. 
   --          right       -   Right position of the client area in PDF page 
   -- coordinate. 
   --          bottom      -   Bottom position of the client area in PDF page 
   -- coordinate. 
   -- Return Value: 
   --          None. 
   -- 
   -- comments: 
   --          This CALLBACK function is useful For implementing special text 
   -- selection effect. Implementation should 
   --          first records the returned rectangles, then draw them one by one 
   -- at the painting period, last,remove all 
   --          the recorded rectangles when finish painting. 
  -- 
  fptr2.FFI_OutputSelectedRect  -- void (*FFI_OutputSelectedRect)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, double left, double top, double right, double bottom)-- 
 
  -- 
  -- Method: FFI_SetCursor 
  --           Set the Cursor shape. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis       -   Pointer To the Interface Structure itself. 
  --       nCursorType -   Cursor type. see Flags For Cursor type For the 
  -- details. 
  --   Return value: 
  --       None. 
  -- 
  fptr3.FFI_SetCursor  -- void (*FFI_SetCursor)(structure _FPDF_FORMFILLINFO* pThis, int nCursorType)-- 
 
  -- 
  -- Method: FFI_SetTimer 
  --       This method installs a system timer. An interval value is specified, *       And every time that interval elapses, the system must call into the 
  --       callback function With the timer ID As returned by this function. 
  -- Interface Version: 
  --       1 
  -- Implementation Required: 
  --       yes 
  -- Parameters: 
  --       pThis       -   Pointer To the Interface Structure itself. 
  --       uElapse     -   Specifies the time-out value, in milliseconds. 
  --       lpTimerFunc -   A pointer To the callback function-TimerCallback. 
  -- Return value: 
  --       The timer identifier of the new timer If the function is successful. 
  --       An application passes this value To the FFI_KillTimer method To kill 
  --       the timer. Nonzero If it is successful-- otherwise, it is zero. 
  -- 
  fptr4.FFI_SetTimer  -- Int (*FFI_SetTimer)(structure _FPDF_FORMFILLINFO* pThis, int uElapse, TimerCallback lpTimerFunc)-- 
 
  -- 
  -- Method: FFI_KillTimer 
  --       This method uninstalls a system timer identified by nIDEvent, As 
  --       set by an earlier call To FFI_SetTimer. 
  -- Interface Version: 
  --       1 
  -- Implementation Required: 
  --       yes 
  -- Parameters: 
  --       pThis       -   Pointer To the Interface Structure itself. 
  --       nTimerID    -   The timer ID returned by FFI_SetTimer function. 
  -- Return value: 
  --       None. 
  -- 
  fptr5.FFI_KillTimer  -- void (*FFI_KillTimer)(structure _FPDF_FORMFILLINFO* pThis, int nTimerID)-- 
 
  -- 
  -- Method: FFI_GetLocalTime 
  --           This method receives the current local time on the system. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis       -   Pointer To the Interface Structure itself. 
  --   Return value: 
  --       None. 
  -- 
  fptr6.FFI_GetLocalTime  -- FPDF_SYSTEMTIME (*FFI_GetLocalTime)(structure _FPDF_FORMFILLINFO* pThis)-- 
 
  -- 
  -- Method: FFI_OnChange 
  --           This method will be invoked To notify implementation when the 
  -- value of any FormField on the document had been changed. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           no 
  -- Parameters: 
  --       pThis       -   Pointer To the Interface Structure itself. 
  --   Return value: 
  --       None. 
  -- 
  fptr7.FFI_OnChange  -- void (*FFI_OnChange)(structure _FPDF_FORMFILLINFO* pThis)-- 
 
  -- 
  -- Method: FFI_GetPage 
  --           This method receives the page pointer associated With a specified 
  -- page index. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis       -   Pointer To the Interface Structure itself. 
  --       document    -   Handle To document. Returned by FPDF_LoadDocument 
  -- function. 
  --       nPageIndex  -   Index number of the page. 0 For the first page. 
  -- Return value: 
  --       Handle To the page. Returned by FPDF_LoadPage function. 
  -- Comments: 
  --       In some cases, the document-level JavaScript action may refer To a 
  -- page which hadn't been loaded yet. 
  --       To successfully run the javascript action, implementation need To load 
  -- the page For SDK. 
  -- 
  fptr8.FFI_GetPage  -- FPDF_PAGE (*FFI_GetPage)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document, int nPageIndex)-- 
 
  -- 
  -- Method: FFI_GetCurrentPage 
  --       This method receives the current page pointer. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis       -   Pointer To the Interface Structure itself. 
  --       document    -   Handle To document. Returned by FPDF_LoadDocument 
  -- function. 
  -- Return value: 
  --       Handle To the page. Returned by FPDF_LoadPage function. 
  -- 
  fptr9.FFI_GetCurrentPage  -- FPDF_PAGE (*FFI_GetCurrentPage)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document)-- 
 
  -- 
  -- Method: FFI_GetRotation 
  --           This method receives currently rotation of the page view. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis       -   Pointer To the Interface Structure itself. 
  --       page        -   Handle To page. Returned by FPDF_LoadPage function. 
  -- Return value: 
  --       The page rotation. Should be 0(0 degree),1(90 degree),2(180 
  -- degree),3(270 degree), in a clockwise direction. 
  -- 
  -- Note: Unused. 
  -- 
  fptr10.FFI_GetRotation  -- Int (*FFI_GetRotation)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page)-- 
 
  -- 
  -- Method: FFI_ExecuteNamedAction 
  --           This method will execute an named action. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       namedAction     -   A byte string which indicates the named action, * terminated by 0. 
  -- Return value: 
  --       None. 
  -- Comments: 
  --       See the named actions description of <<PDF Reference, version 1.7>> 
  -- For more details. 
  -- 
  fptr11.FFI_ExecuteNamedAction  -- void (*FFI_ExecuteNamedAction)(structure _FPDF_FORMFILLINFO* pThis, FPDF_BYTESTRING namedAction)-- 
   
  -- 
  -- @brief This method will be called when a text field is getting Or losing a 
  -- focus. 
  -- 
  -- @param[in] pThis      Pointer To the Interface Structure itself. 
  -- @param[in] value      The string value of the form field, in UTF-16LE 
  -- format. 
  -- @param[in] valueLen   The length of the string value, number of characters 
  -- (Not bytes). 
  -- @param[in] is_focus   True If the form field is getting a focus, False For 
  -- losing a focus. 
  -- 
  -- @return None. 
  -- 
  -- @note Currently,only support text field And combobox field. 
  -- 
  fptr12.FFI_SetTextFieldFocus  -- void (*FFI_SetTextFieldFocus)(structure _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING value, FPDF_DWORD valueLen, FPDF_BOOL is_focus)-- 
 
  -- 
  -- Method: FFI_DoURIAction 
  --           This action resolves To a uniform resource identifier. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           No 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       bsURI           -   A byte string which indicates the uniform resource 
  -- identifier, terminated by 0. 
  -- Return value: 
  --       None. 
  -- Comments: 
  --       See the URI actions description of <<PDF Reference, version 1.7>> For 
  -- more details. 
  -- 
  fptr13.FFI_DoURIAction  -- void (*FFI_DoURIAction)(structure _FPDF_FORMFILLINFO* pThis, FPDF_BYTESTRING bsURI)-- 
 
  -- 
  -- Method: FFI_DoGoToAction 
  --           This action changes the view To a specified destination. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           No 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       nPageIndex      -   The index of the PDF page. 
  --       zoomMode        -   The zoom mode For viewing page. See below. 
  --       fPosArray       -   The float Array which carries the position info. 
  --       sizeofArray     -   The size of float Array. 
  -- 
  -- PDFZoom values: 
  --   - XYZ = 1 
  --   - FITPAGE = 2 
  --   - FITHORZ = 3 
  --   - FITVERT = 4 
  --   - FITRECT = 5 
  --   - FITBBOX = 6 
  --   - FITBHORZ = 7 
  --   - FITBVERT = 8 
  -- 
  -- Return value: 
  --       None. 
  -- Comments: 
  --       See the Destinations description of <<PDF Reference, version 1.7>> in 
  --8.2.1 For more details. 
  -- 
  fptr14.FFI_DoGoToAction  -- void (*FFI_DoGoToAction)(structure _FPDF_FORMFILLINFO* pThis, int nPageIndex, int zoomMode, float* fPosArray, int sizeofArray)-- 
 
  -- 
  --   pointer To IPDF_JSPLATFORM Interface 
  -- 
  *m_pJsPlatform.IPDF_JSPLATFORM-- 
 
  -- Version 2. 
  -- 
    -- Method: FFI_DisplayCaret 
    --           This method will show the caret at specified position. 
    -- Interface Version: 
    --           2 
    -- Implementation Required: 
    --           yes 
    -- Parameters: 
    --       pThis           -   Pointer To the Interface Structure itself. 
    --       page            -   Handle To page. Returned by FPDF_LoadPage 
    --function. 
    --       left            -   Left position of the client area in PDF page 
    --coordinate. 
    --       top             -   Top position of the client area in PDF page 
    --coordinate. 
    --       right           -   Right position of the client area in PDF page 
    --coordinate. 
    --       bottom          -   Bottom position of the client area in PDF page 
    --coordinate. 
    -- Return value: 
    --       None. 
    -- 
  fptr15.FFI_DisplayCaret  -- void (*FFI_DisplayCaret)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, FPDF_BOOL bVisible, double left, double top, double right, double bottom)-- 
 
  -- 
  -- Method: FFI_GetCurrentPageIndex 
  --           This method will get the current page index. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       document        -   Handle To document. Returned by FPDF_LoadDocument 
  --function. 
  -- Return value: 
  --       The index of current page. 
  -- 
  fptr16.FFI_GetCurrentPageIndex  -- Int (*FFI_GetCurrentPageIndex)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document)-- 
 
  -- 
  -- Method: FFI_SetCurrentPage 
  --           This method will set the current page. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       document        -   Handle To document. Returned by FPDF_LoadDocument 
  --function. 
  --       iCurPage        -   The index of the PDF page. 
  -- Return value: 
  --       None. 
  -- 
  fptr17.FFI_SetCurrentPage  -- void (*FFI_SetCurrentPage)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document, int iCurPage)-- 
 
  -- 
  -- Method: FFI_GotoURL 
  --           This method will link To the specified URL. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           no 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       document        -   Handle To document. Returned by FPDF_LoadDocument 
  --function. 
  --       wsURL           -   The string value of the URL, in UTF-16LE format. 
  -- Return value: 
  --       None. 
  -- 
  fptr18.FFI_GotoURL  -- void (*FFI_GotoURL)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document, FPDF_WIDESTRING wsURL)-- 
 
  -- 
  -- Method: FFI_GetPageViewRect 
  --           This method will get the current page view rectangle. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       page            -   Handle To page. Returned by FPDF_LoadPage 
  --function. 
  --       left            -   The pointer To receive left position of the page 
  --view area in PDF page coordinate. 
  --       top             -   The pointer To receive top position of the page 
  --view area in PDF page coordinate. 
  --       right           -   The pointer To receive right position of the 
  --client area in PDF page coordinate. 
  --       bottom          -   The pointer To receive bottom position of the 
  --client area in PDF page coordinate. 
  -- Return value: 
  --       None. 
  -- 
  fptr19.FFI_GetPageViewRect  -- void (*FFI_GetPageViewRect)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, double* left, double* top, double* right, double* bottom)-- 
 
  -- 
  -- Method: FFI_PageEvent 
  --     This method fires when pages have been added To Or deleted from the XFA 
  --     document. 
  -- Interface Version: 
  --     2 
  -- Implementation Required: 
  --     yes 
  -- Parameters: 
  --     pThis       -   Pointer To the Interface Structure itself. 
  --     page_count  -   The number of pages To be added To Or deleted from the 
  --                     document. 
  --     event_type  -   See FXFA_PAGEVIEWEVENT_* above. 
  -- Return value: 
  --       None. 
  -- Comments: 
  --           The pages To be added Or deleted always start from the last page 
  --           of document. This means that If parameter page_count is 2 And 
  --           event type is FXFA_PAGEVIEWEVENT_POSTADDED, 2 new pages have been 
  --           appended To the tail of document-- If page_count is 2 and 
  --           event type is FXFA_PAGEVIEWEVENT_POSTREMOVED, the last 2 pages 
  --           have been deleted. 
  -- 
  fptr20.FFI_PageEvent  -- void (*FFI_PageEvent)(structure _FPDF_FORMFILLINFO* pThis, int page_count, FPDF_DWORD event_type)-- 
 
  -- 
  -- Method: FFI_PopupMenu 
  --           This method will track the right context menu For XFA fields. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       page            -   Handle To page. Returned by FPDF_LoadPage 
  --function. 
  --       hWidget         -   Handle To XFA fields. 
  --       menuFlag        -   The menu flags. Please refer To Macro definition 
  --of FXFA_MENU_XXX And this can be one Or a combination of these macros. 
  --       x               -   X position of the client area in PDF page 
  --coordinate. 
  --       y               -   Y position of the client area in PDF page 
  --coordinate. 
  -- Return value: 
  --       TRUE indicates success-- otherwise false. 
  -- 
  fptr21.FFI_PopupMenu  -- FPDF_BOOL (*FFI_PopupMenu)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, FPDF_WIDGET hWidget, int menuFlag, float x, float y)-- 
 
  -- 
  -- Method: FFI_OpenFile 
  --           This method will open the specified file With the specified mode. 
  -- Interface Version 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       fileFlag        -   The file flag.Please refer To Macro definition of 
  --FXFA_SAVEAS_XXX And this can be one of these macros. 
  --       wsURL           -   The string value of the file URL, in UTF-16LE 
  --format. 
  --       mode            -   The mode For open file. 
  -- Return value: 
  --       The handle To FPDF_FILEHANDLER. 
  -- 
  fptr22.FFI_OpenFile  -- FPDF_FILEHANDLER* (*FFI_OpenFile)(structure _FPDF_FORMFILLINFO* pThis, int fileFlag, FPDF_WIDESTRING wsURL, const char* mode)-- 
 
  -- 
  -- Method: FFI_EmailTo 
  --           This method will email the specified file stream To the specified 
  --contacter. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       pFileHandler    -   Handle To the FPDF_FILEHANDLER. 
  --       pTo             -   A semicolon-delimited List of recipients For the 
  --message,in UTF-16LE format. 
  --       pSubject        -   The subject of the message,in UTF-16LE format. 
  --       pCC             -   A semicolon-delimited List of CC recipients For 
  --the message,in UTF-16LE format. 
  --       pBcc            -   A semicolon-delimited List of BCC recipients For 
  --the message,in UTF-16LE format. 
  --       pMsg            -   Pointer To the Data buffer To be sent.Can be 
  --NULL,in UTF-16LE format. 
  -- Return value: 
  --       None. 
  -- 
  fptr23.FFI_EmailTo  -- void (*FFI_EmailTo)(structure _FPDF_FORMFILLINFO* pThis, FPDF_FILEHANDLER* fileHandler, FPDF_WIDESTRING pTo, FPDF_WIDESTRING pSubject, FPDF_WIDESTRING pCC, FPDF_WIDESTRING pBcc, FPDF_WIDESTRING pMsg)-- 
 
  -- 
  -- Method: FFI_UploadTo 
  --           This method will get upload the specified file stream To the 
  --specified URL. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       pFileHandler    -   Handle To the FPDF_FILEHANDLER. 
  --       fileFlag        -   The file flag.Please refer To Macro definition of 
  --FXFA_SAVEAS_XXX And this can be one of these macros. 
  --       uploadTo        -   Pointer To the URL path, in UTF-16LE format. 
  -- Return value: 
  --       None. 
  -- 
  fptr24.FFI_UploadTo  -- void (*FFI_UploadTo)(structure _FPDF_FORMFILLINFO* pThis, FPDF_FILEHANDLER* fileHandler, int fileFlag, FPDF_WIDESTRING uploadTo)-- 
 
  -- 
  -- Method: FFI_GetPlatform 
  --           This method will get the current platform. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       platform        -   Pointer To the Data buffer To receive the 
  --platform.Can be NULL,in UTF-16LE format. 
  --       length          -   The length of the buffer, number of bytes. Can be 
  --0. 
  -- Return value: 
  --       The length of the buffer, number of bytes. 
  -- 
  fptr25.FFI_GetPlatform  -- Int (*FFI_GetPlatform)(structure _FPDF_FORMFILLINFO* pThis, void* platform, int length)-- 
 
  -- 
  -- Method: FFI_GetLanguage 
  --           This method will get the current language. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       language        -   Pointer To the Data buffer To receive the current 
  --language.Can be NULL. 
  --       length          -   The length of the buffer, number of bytes. Can be 
  --0. 
  -- Return value: 
  --       The length of the buffer, number of bytes. 
  -- 
  fptr26.FFI_GetLanguage  -- Int (*FFI_GetLanguage)(structure _FPDF_FORMFILLINFO* pThis, void* language, int length)-- 
 
  -- 
  -- Method: FFI_DownloadFromURL 
  --           This method will download the specified file from the URL. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       URL             -   The string value of the file URL, in UTF-16LE 
  --format. 
  -- Return value: 
  --       The handle To FPDF_FILEHANDLER. 
  -- 
  fptr27.FFI_DownloadFromURL  -- FPDF_LPFILEHANDLER (*FFI_DownloadFromURL)(structure _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING URL)-- 
  -- 
  -- Method: FFI_PostRequestURL 
  --           This method will post the request To the server URL. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       wsURL           -   The string value of the server URL, in UTF-16LE 
  --format. 
  --       wsData          -   The post Data,in UTF-16LE format. 
  --       wsContentType   -   The content type of the request Data,in UTF-16LE 
  --format. 
  --       wsEncode        -   The encode type,in UTF-16LE format. 
  --       wsHeader        -   The request header,in UTF-16LE format. 
  --       response        -   Pointer To the FPDF_BSTR To receive the response 
  --data from server,,in UTF-16LE format. 
  -- Return value: 
  --       TRUE indicates success, otherwise FALSE. 
  -- 
  fptr28.FFI_PostRequestURL  -- FPDF_BOOL (*FFI_PostRequestURL)(structure _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING wsURL, FPDF_WIDESTRING wsData, FPDF_WIDESTRING wsContentType, FPDF_WIDESTRING wsEncode, FPDF_WIDESTRING wsHeader, FPDF_BSTR* respone)-- 
 
  -- 
  -- Method: FFI_PutRequestURL 
  --           This method will put the request To the server URL. 
  -- Interface Version: 
  --           2 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --       pThis           -   Pointer To the Interface Structure itself. 
  --       wsURL           -   The string value of the server URL, in UTF-16LE 
  --format. 
  --       wsData          -   The put Data, in UTF-16LE format. 
  --       wsEncode        -   The encode type, in UTR-16LE format. 
  -- Return value: 
  --       TRUE indicates success, otherwise FALSE. 
  -- 
  fptr29.FFI_PutRequestURL  -- FPDF_BOOL (*FFI_PutRequestURL)(structure _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING wsURL, FPDF_WIDESTRING wsData, FPDF_WIDESTRING wsEncode)-- 
EndStructure -- FPDF_FORMFILLINFO 
***************************************************************/ 
public constant SizeOf_FPDF_FORMFILLINFO = 252 
 
 
 
--typedef int FPDF_INT32-- 
--typedef unsigned int FPDF_UINT32-- 
--typedef float FPDF_FLOAT-- 
 
-- Event types. 
enum type FWL_EVENTTYPE 
  FWL_EVENTTYPE_Mouse = 0, 
  FWL_EVENTTYPE_MouseWheel, 
  FWL_EVENTTYPE_Key 
end type 
 
-- Key flags. 
--enum type FWL_EVENTFLAG 
public constant FWL_EVENTFLAG_ShiftKey = shift_bits(1, 0) 
public constant FWL_EVENTFLAG_ControlKey = shift_bits(1, -1) 
public constant FWL_EVENTFLAG_AltKey = shift_bits(1, -2) 
public constant FWL_EVENTFLAG_MetaKey = shift_bits(1, -3) 
public constant FWL_EVENTFLAG_KeyPad = shift_bits(1, -4) 
public constant FWL_EVENTFLAG_AutoRepeat = shift_bits(1, -5) 
public constant FWL_EVENTFLAG_LeftButtonDown = shift_bits(1, -6) 
public constant FWL_EVENTFLAG_MiddleButtonDown = shift_bits(1, -7) 
public constant FWL_EVENTFLAG_RightButtonDown = shift_bits(1, -8) 
 
-- Mouse messages. 
enum type FWL_EVENT_MOUSECMD 
  FWL_EVENTMOUSECMD_LButtonDown = 1, 
  FWL_EVENTMOUSECMD_LButtonUp, 
  FWL_EVENTMOUSECMD_LButtonDblClk, 
  FWL_EVENTMOUSECMD_RButtonDown, 
  FWL_EVENTMOUSECMD_RButtonUp, 
  FWL_EVENTMOUSECMD_RButtonDblClk, 
  FWL_EVENTMOUSECMD_MButtonDown, 
  FWL_EVENTMOUSECMD_MButtonUp, 
  FWL_EVENTMOUSECMD_MButtonDblClk, 
  FWL_EVENTMOUSECMD_MouseMove, 
  FWL_EVENTMOUSECMD_MouseEnter, 
  FWL_EVENTMOUSECMD_MouseHover, 
  FWL_EVENTMOUSECMD_MouseLeave 
end type 
 
-- Mouse events. 
/*************************************************************** 

Structure FWL_EVENT_MOUSE 
  command.l-- 
  flag.i-- 
  x.f-- 
  y.f-- 
EndStructure 
***************************************************************/ 
public constant SizeOf_FWL_EVENT_MOUSE = 20 
 
 
 
-- Mouse wheel events. 
/*************************************************************** 

Structure FWL_EVENT_MOUSEWHEEL 
  flag.i-- 
  x.f-- 
  y.f-- 
  deltaX.f-- 
  deltaY.f-- 
EndStructure 
***************************************************************/ 
public constant SizeOf_FWL_EVENT_MOUSEWHEEL = 24 
 
-- Virtual keycodes. 
--Enumeration FWL_VKEYCODE 
public constant FWL_VKEY_Back = 0x08 
public constant FWL_VKEY_Tab = 0x09 
public constant FWL_VKEY_Clear = 0x0C 
public constant FWL_VKEY_Return = 0x0D 
public constant FWL_VKEY_Shift = 0x10 
public constant FWL_VKEY_Control = 0x11 
public constant FWL_VKEY_Menu = 0x12 
public constant FWL_VKEY_Pause = 0x13 
public constant FWL_VKEY_Capital = 0x14 
public constant FWL_VKEY_Kana = 0x15 
public constant FWL_VKEY_Hangul = 0x15 
public constant FWL_VKEY_Junja = 0x17 
public constant FWL_VKEY_Final = 0x18 
public constant FWL_VKEY_Hanja = 0x19 
public constant FWL_VKEY_Kanji = 0x19 
public constant FWL_VKEY_Escape = 0x1B 
public constant FWL_VKEY_Convert = 0x1C 
public constant FWL_VKEY_NonConvert = 0x1D 
public constant FWL_VKEY_Accept = 0x1E 
public constant FWL_VKEY_ModeChange = 0x1F 
public constant FWL_VKEY_Space = 0x20 
public constant FWL_VKEY_Prior = 0x21 
public constant FWL_VKEY_Next = 0x22 
public constant FWL_VKEY_End = 0x23 
public constant FWL_VKEY_Home = 0x24 
public constant FWL_VKEY_Left = 0x25 
public constant FWL_VKEY_Up = 0x26 
public constant FWL_VKEY_Right = 0x27 
public constant FWL_VKEY_Down = 0x28 
public constant FWL_VKEY_Select = 0x29 
public constant FWL_VKEY_Print = 0x2A 
public constant FWL_VKEY_Execute = 0x2B 
public constant FWL_VKEY_Snapshot = 0x2C 
public constant FWL_VKEY_Insert = 0x2D 
public constant FWL_VKEY_Delete = 0x2E 
public constant FWL_VKEY_Help = 0x2F 
public constant FWL_VKEY_0 = 0x30 
public constant FWL_VKEY_1 = 0x31 
public constant FWL_VKEY_2 = 0x32 
public constant FWL_VKEY_3 = 0x33 
public constant FWL_VKEY_4 = 0x34 
public constant FWL_VKEY_5 = 0x35 
public constant FWL_VKEY_6 = 0x36 
public constant FWL_VKEY_7 = 0x37 
public constant FWL_VKEY_8 = 0x38 
public constant FWL_VKEY_9 = 0x39 
public constant FWL_VKEY_A = 0x41 
public constant FWL_VKEY_B = 0x42 
public constant FWL_VKEY_C = 0x43 
public constant FWL_VKEY_D = 0x44 
public constant FWL_VKEY_E = 0x45 
public constant FWL_VKEY_F = 0x46 
public constant FWL_VKEY_G = 0x47 
public constant FWL_VKEY_H = 0x48 
public constant FWL_VKEY_I = 0x49 
public constant FWL_VKEY_J = 0x4A 
public constant FWL_VKEY_K = 0x4B 
public constant FWL_VKEY_L = 0x4C 
public constant FWL_VKEY_M = 0x4D 
public constant FWL_VKEY_N = 0x4E 
public constant FWL_VKEY_O = 0x4F 
public constant FWL_VKEY_P = 0x50 
public constant FWL_VKEY_Q = 0x51 
public constant FWL_VKEY_R = 0x52 
public constant FWL_VKEY_S = 0x53 
public constant FWL_VKEY_T = 0x54 
public constant FWL_VKEY_U = 0x55 
public constant FWL_VKEY_V = 0x56 
public constant FWL_VKEY_W = 0x57 
public constant FWL_VKEY_X = 0x58 
public constant FWL_VKEY_Y = 0x59 
public constant FWL_VKEY_Z = 0x5A 
public constant FWL_VKEY_LWin = 0x5B 
public constant FWL_VKEY_Command = 0x5B 
public constant FWL_VKEY_RWin = 0x5C 
public constant FWL_VKEY_Apps = 0x5D 
public constant FWL_VKEY_Sleep = 0x5F 
public constant FWL_VKEY_NumPad0 = 0x60 
public constant FWL_VKEY_NumPad1 = 0x61 
public constant FWL_VKEY_NumPad2 = 0x62 
public constant FWL_VKEY_NumPad3 = 0x63 
public constant FWL_VKEY_NumPad4 = 0x64 
public constant FWL_VKEY_NumPad5 = 0x65 
public constant FWL_VKEY_NumPad6 = 0x66 
public constant FWL_VKEY_NumPad7 = 0x67 
public constant FWL_VKEY_NumPad8 = 0x68 
public constant FWL_VKEY_NumPad9 = 0x69 
public constant FWL_VKEY_Multiply = 0x6A 
public constant FWL_VKEY_Add = 0x6B 
public constant FWL_VKEY_Separator = 0x6C 
public constant FWL_VKEY_Subtract = 0x6D 
public constant FWL_VKEY_Decimal = 0x6E 
public constant FWL_VKEY_Divide = 0x6F 
public constant FWL_VKEY_F1 = 0x70 
public constant FWL_VKEY_F2 = 0x71 
public constant FWL_VKEY_F3 = 0x72 
public constant FWL_VKEY_F4 = 0x73 
public constant FWL_VKEY_F5 = 0x74 
public constant FWL_VKEY_F6 = 0x75 
public constant FWL_VKEY_F7 = 0x76 
public constant FWL_VKEY_F8 = 0x77 
public constant FWL_VKEY_F9 = 0x78 
public constant FWL_VKEY_F10 = 0x79 
public constant FWL_VKEY_F11 = 0x7A 
public constant FWL_VKEY_F12 = 0x7B 
public constant FWL_VKEY_F13 = 0x7C 
public constant FWL_VKEY_F14 = 0x7D 
public constant FWL_VKEY_F15 = 0x7E 
public constant FWL_VKEY_F16 = 0x7F 
public constant FWL_VKEY_F17 = 0x80 
public constant FWL_VKEY_F18 = 0x81 
public constant FWL_VKEY_F19 = 0x82 
public constant FWL_VKEY_F20 = 0x83 
public constant FWL_VKEY_F21 = 0x84 
public constant FWL_VKEY_F22 = 0x85 
public constant FWL_VKEY_F23 = 0x86 
public constant FWL_VKEY_F24 = 0x87 
public constant FWL_VKEY_NunLock = 0x90 
public constant FWL_VKEY_Scroll = 0x91 
public constant FWL_VKEY_LShift = 0xA0 
public constant FWL_VKEY_RShift = 0xA1 
public constant FWL_VKEY_LControl = 0xA2 
public constant FWL_VKEY_RControl = 0xA3 
public constant FWL_VKEY_LMenu = 0xA4 
public constant FWL_VKEY_RMenu = 0xA5 
public constant FWL_VKEY_BROWSER_Back = 0xA6 
public constant FWL_VKEY_BROWSER_Forward = 0xA7 
public constant FWL_VKEY_BROWSER_Refresh = 0xA8 
public constant FWL_VKEY_BROWSER_Stop = 0xA9 
public constant FWL_VKEY_BROWSER_Search = 0xAA 
public constant FWL_VKEY_BROWSER_Favorites = 0xAB 
public constant FWL_VKEY_BROWSER_Home = 0xAC 
public constant FWL_VKEY_VOLUME_Mute = 0xAD 
public constant FWL_VKEY_VOLUME_Down = 0xAE 
public constant FWL_VKEY_VOLUME_Up = 0xAF 
public constant FWL_VKEY_MEDIA_NEXT_Track = 0xB0 
public constant FWL_VKEY_MEDIA_PREV_Track = 0xB1 
public constant FWL_VKEY_MEDIA_Stop = 0xB2 
public constant FWL_VKEY_MEDIA_PLAY_Pause = 0xB3 
public constant FWL_VKEY_MEDIA_LAUNCH_Mail = 0xB4 
public constant FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select = 0xB5 
public constant FWL_VKEY_MEDIA_LAUNCH_APP1 = 0xB6 
public constant FWL_VKEY_MEDIA_LAUNCH_APP2 = 0xB7 
public constant FWL_VKEY_OEM_1 = 0xBA 
public constant FWL_VKEY_OEM_Plus = 0xBB 
public constant FWL_VKEY_OEM_Comma = 0xBC 
public constant FWL_VKEY_OEM_Minus = 0xBD 
public constant FWL_VKEY_OEM_Period = 0xBE 
public constant FWL_VKEY_OEM_2 = 0xBF 
public constant FWL_VKEY_OEM_3 = 0xC0 
public constant FWL_VKEY_OEM_4 = 0xDB 
public constant FWL_VKEY_OEM_5 = 0xDC 
public constant FWL_VKEY_OEM_6 = 0xDD 
public constant FWL_VKEY_OEM_7 = 0xDE 
public constant FWL_VKEY_OEM_8 = 0xDF 
public constant FWL_VKEY_OEM_102 = 0xE2 
public constant FWL_VKEY_ProcessKey = 0xE5 
public constant FWL_VKEY_Packet = 0xE7 
public constant FWL_VKEY_Attn = 0xF6 
public constant FWL_VKEY_Crsel = 0xF7 
public constant FWL_VKEY_Exsel = 0xF8 
public constant FWL_VKEY_Ereof = 0xF9 
public constant FWL_VKEY_Play = 0xFA 
public constant FWL_VKEY_Zoom = 0xFB 
public constant FWL_VKEY_NoName = 0xFC 
public constant FWL_VKEY_PA1 = 0xFD 
public constant FWL_VKEY_OEM_Clear = 0xFE 
public constant FWL_VKEY_Unknown = 0 
--end type 
 
-- Key event commands. 
enum type FWL_EVENTKEYCMD 
  FWL_EVENTKEYCMD_KeyDown = 1, 
  FWL_EVENTKEYCMD_KeyUp, 
  FWL_EVENTKEYCMD_Char 
end type 
 
-- Key events. 
/*************************************************************** 

Structure FWL_EVENT_KEY 
  command.l 
  flag.i 
  StructureUnion 
    -- Virtual key code. 
    vkcode.l 
    -- Character code. 
    charcode.i 
  EndStructureUnion --} code 
EndStructure 
***************************************************************/ 
public constant SizeOf_FWL_EVENT_KEY = 20 
 
-- Event types. 
/*************************************************************** 

Structure FWL_EVENT 
  -- Structure size. 
  size.l 
  -- FWL_EVENTTYPE. 
  type.l 
  StructureUnion 
    mouse.FWL_EVENT_MOUSE 
    wheel.FWL_EVENT_MOUSEWHEEL  
    key.FWL_EVENT_KEY  
  EndStructureUnion --} s 
EndStructure 
***************************************************************/ 
public constant SizeOf_FWL_EVENT = 32 
 
 
-- Prototype.l NeedToPauseNow(*pThis) 
-- IFPDF_RENDERINFO interface. 
/*************************************************************** 

Structure IFSDK_PAUSE 
  -- 
  -- Version number of the Interface. Currently must be 1. 
  -- 
  version.l 
 
  -- 
  -- Method: NeedToPauseNow 
  --           Check If we need To pause a progressive process now. 
  -- Interface Version: 
  --           1 
  -- Implementation Required: 
  --           yes 
  -- Parameters: 
  --           pThis       -   Pointer To the Interface Structure itself 
  -- Return Value: 
  --            Non-zero For pause now, 0 For Continue. 
  -- 
  -- 
  fptr.NeedToPauseNow --FPDF_BOOL (*NeedToPauseNow)(Structure _IFSDK_PAUSE* pThis)-- 
 
  -- A user defined data pointer, used by user's application. Can be NULL. 
  *user 
EndStructure 
***************************************************************/ 
public constant SizeOf_IFSDK_PAUSE = 20 
 
 
-- Prototype.l WriteBlockFPDF_FILEWRITE(*pThis, *pData, size.i) 
   
-- Structure for custom file write 
/*************************************************************** 

Structure FPDF_FILEWRITE 
  -- 
  -- Version number of the interface. Currently must be 1. 
  -- 
  version.l 
 
  -- 
  -- Method: WriteBlock 
  --          Output a block of data in your custom way. 
  -- Interface Version: 
  --          1 
  -- Implementation Required: 
  --          Yes 
  -- Comments: 
  --          Called by function FPDF_SaveDocument 
  -- Parameters: 
  --          pThis       -   Pointer to the structure itself 
  --          pData       -   Pointer to a buffer to output 
  --          size        -   The size of the buffer. 
  -- Return value: 
  --          Should be non-zero if successful, zero for error. 
  -- 
  fptr.WriteBlockFPDF_FILEWRITE --Int (*WriteBlock)(Structure FPDF_FILEWRITE_* pThis, const void* pData, unsigned long size)-- 
EndStructure 
***************************************************************/ 
public constant SizeOf_FPDF_FILEWRITE = 12 
 
 
-- 
-- Interface: FPDF_SYSFONTINFO 
--          Interface For getting system font information And font mapping 
 
-- Prototype ReleaseSYSFONTINFO(*pThis) 
-- Prototype EnumFonts(*pThis, *pMapper) 
-- Prototype.i MapFont(*pThis, weight.l, bItalic.l, charset.l, pitch_family.l, *face, *bExact.long) 
-- Prototype.i GetFont(*pThis, *face) 
-- Prototype.i GetFontData(*pThis, *hFont, table.l, *buffer, buf_size.i) 
-- Prototype.i GetFaceName(*pThis, *hFont, *buffer, buf_size.i) 
-- Prototype.l GetFontCharset(*pThis, *hFont) 
-- Prototype DeleteFont(*pThis, *hFont) 
 
/*************************************************************** 

Structure FPDF_SYSFONTINFO 
  -- 
   -- Version number of the Interface. Currently must be 1. 
   -- 
  version.l 
 
  -- 
   -- Method: Release 
   --          Give implementation a chance To release any Data after the 
   -- Interface is no longer used 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          No 
   -- Comments: 
   --          Called by Foxit SDK during the final cleanup process. 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself 
   -- Return Value: 
   --          None 
   -- 
  fptr.ReleaseSYSFONTINFO  -- void (*ReleaseSYSFONTINFO)(Structure _FPDF_SYSFONTINFO* pThis)-- 
 
  -- 
   -- Method: EnumFonts 
   --          Enumerate all fonts installed on the system 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          No 
   -- Comments: 
   --          Implementation should call FPDF_AddIntalledFont() function For 
   -- each font found. 
   --          Only TrueType/OpenType And Type1 fonts are accepted by Foxit SDK. 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself 
   --          pMapper     -   An opaque pointer To internal font mapper, used 
   -- when calling FPDF_AddInstalledFont 
   -- Return Value: 
   --          None 
   -- 
  fptr1.EnumFonts  -- void (*EnumFonts)(Structure _FPDF_SYSFONTINFO* pThis, void* pMapper)-- 
 
  -- 
   -- Method: MapFont 
   --          Use the system font mapper To get a font handle from requested 
   --parameters 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          Yes only If GetFont method is Not implemented. 
   -- Comments: 
   --          If the system supports native font mapper (like Windows), *implementation can implement this method To get a font handle. 
   --          Otherwise, Foxit SDK will do the mapping And then call GetFont 
   --method. 
   --          Only TrueType/OpenType And Type1 fonts are accepted by Foxit SDK. 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself 
   --          weight      -   Weight of the requested font. 400 is normal And 
   --700 is bold. 
   --          bItalic     -   Italic option of the requested font, TRUE Or 
   --FALSE. 
   --          charset     -   Character set identifier For the requested font. 
   --See above defined constants. 
   --          pitch_family -  A combination of flags. See above defined 
   --constants. 
   --          face        -   Typeface name. Currently use system local encoding 
   --only. 
   --          bExact      -   Pointer To a boolean value receiving the indicator 
   --whether mapper found the exact match. 
   --                          If mapper is Not sure whether it's exact match, *ignore this paramter. 
   -- Return Value: 
   --          An opaque pointer For font handle, Or NULL If system mapping is 
   --not supported. 
   -- 
  fptr2.MapFont  -- void* (*MapFont)(Structure _FPDF_SYSFONTINFO* pThis, int weight, FPDF_BOOL bItalic, int charset, int pitch_family, const char* face, FPDF_BOOL* bExact)-- 
 
  -- 
   -- Method: GetFont 
   --          Get a handle To a particular font by its internal ID 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          Yes only If MapFont method is Not implemented. 
   -- Comments: 
   --          If the system mapping Not supported, Foxit SDK will do the font 
   --mapping And use this method To get a font handle. 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself 
   --          face        -   Typeface name. Currently use system local encoding 
   --only. 
   -- Return Value: 
   --          An opaque pointer For font handle. 
   -- 
  fptr3.GetFont  -- void* (*GetFont)(Structure _FPDF_SYSFONTINFO* pThis, const char* face)-- 
 
  -- 
   -- Method: GetFontData 
   --          Get font Data from a font 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          Yes 
   -- Comments: 
   --          Can Read either full font file, Or a particular TrueType/OpenType 
   --table 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself 
   --          hFont       -   Font handle returned by MapFont Or GetFont method 
   --          table       -   TrueType/OpenType table identifier (refer To 
   --TrueType specification). 
   --                          0 For the whole font file. 
   --          buffer      -   The buffer receiving the font Data. Can be NULL If 
   --not provided 
   --          buf_size    -   Buffer size, can be zero If Not provided 
   -- Return Value: 
   --          Number of bytes needed, If buffer Not provided Or Not large 
   --enough, *          Or number of bytes written into buffer otherwise. 
   -- 
  fptr4.GetFontData  -- unsigned long (*GetFontData)(Structure _FPDF_SYSFONTINFO* pThis, void* hFont, unsigned int table, unsigned char* buffer, unsigned long buf_size)-- 
 
  -- 
   -- Method: GetFaceName 
   --          Get face name from a font handle 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          No 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself 
   --          hFont       -   Font handle returned by MapFont Or GetFont method 
   --          buffer      -   The buffer receiving the face name. Can be NULL If 
   --not provided 
   --          buf_size    -   Buffer size, can be zero If Not provided 
   -- Return Value: 
   --          Number of bytes needed, If buffer Not provided Or Not large 
   --enough, *          Or number of bytes written into buffer otherwise. 
   -- 
  fptr5.GetFaceName  -- unsigned long (*GetFaceName)(Structure _FPDF_SYSFONTINFO* pThis, void* hFont, char* buffer, unsigned long buf_size)-- 
 
  -- 
   -- Method: GetFontCharset 
   --          Get character set information For a font handle 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          No 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself 
   --          hFont       -   Font handle returned by MapFont Or GetFont method 
   -- Return Value: 
   --          Character set identifier. See defined constants above. 
   -- 
  fptr6.GetFontCharset  -- Int (*GetFontCharset)(Structure _FPDF_SYSFONTINFO* pThis, void* hFont)-- 
 
  -- 
   -- Method: DeleteFont 
   --          Delete a font handle 
   -- Interface Version: 
   --          1 
   -- Implementation Required: 
   --          Yes 
   -- Parameters: 
   --          pThis       -   Pointer To the Interface Structure itself 
   --          hFont       -   Font handle returned by MapFont Or GetFont method 
   -- Return Value: 
   --          None 
   -- 
  fptr7.DeleteFont  -- void (*DeleteFont)(Structure _FPDF_SYSFONTINFO* pThis, void* hFont)-- 
EndStructure 
***************************************************************/ 
public constant SizeOf_FPDF_SYSFONTINFO = 68 
 
-- 
-- Struct: FPDF_CharsetFontMap 
--    Provides the name of a font To use For a given charset value. 
  
/*************************************************************** 

Structure FPDF_CharsetFontMap 
  charset.l  -- Character Set Enum value, see FXFONT_*_CHARSET above. 
  *fontname-- p-ascii??  -- Name of default font to use with that charset. 
EndStructure 
***************************************************************/ 
public constant SizeOf_FPDF_CharsetFontMap = 12 
 
--typedef void* FPDF_PAGEARCSAVER-- 
--typedef void* FPDF_PAGEARCLOADER-- 
 
/* 

Import "pdfium.lib" 
   
   
-- Function: FPDF_InitLibrary 
--          Initialize the FPDFSDK library 
-- Parameters: 
--          None 
-- Return value: 
--          None. 
-- Comments: 
--          Convenience function to call FPDF_InitLibraryWithConfig() for 
--          backwards comatibility purposes. 
 FPDF_InitLibrary() 
 
-- Function: FPDF_InitLibraryWithConfig 
--          Initialize the FPDFSDK library 
-- Parameters: 
--          config - configuration information as above. 
-- Return value: 
--          None. 
-- Comments: 
--          You have to call this function before you can call any PDF 
--          processing functions. 
 FPDF_InitLibraryWithConfig(*config.FPDF_LIBRARY_CONFIG) 
 
-- Function: FPDF_DestroyLibary 
--          Release all resources allocated by the FPDFSDK library. 
-- Parameters: 
--          None. 
-- Return value: 
--          None. 
-- Comments: 
--          You can call this function to release all memory blocks allocated by 
--          the library. 
--          After this function is called, you should not call any PDF 
--          processing functions. 
 FPDF_DestroyLibrary() 
 
 
-- Function: FPDF_SetSandBoxPolicy 
--          Set the policy for the sandbox environment. 
-- Parameters: 
--          policy -   The specified policy for setting, for example: 
--                     FPDF_POLICY_MACHINETIME_ACCESS. 
--          enable -   True to enable, false to disable the policy. 
-- Return value: 
--          None. 
 FPDF_SetSandBoxPolicy(policy.i, enable.l)-- 
 
-- Pointer to a helper function to make |font| with |text| of |text_length| 
-- accessible when printing text with GDI. This is useful in sandboxed 
-- environments where PDFium's access to GDI may be restricted. 
--typedef void (*PDFiumEnsureTypefaceCharactersAccessible)(const LOGFONT* font, const wchar_t* text, size_t text_length)-- 
-- Prototype PDFiumEnsureTypefaceCharactersAccessible(*font.LOGFONT, *text.string, text_length.i) 
 
-- Function: FPDF_SetTypefaceAccessibleFunc 
--          Set the function pointer that makes GDI fonts available in sandboxed 
--          environments. Experimental API. 
-- Parameters: 
--          func -   A function pointer. See description above. 
-- Return value: 
--          None. 
 FPDF_SetTypefaceAccessibleFunc(func.PDFiumEnsureTypefaceCharactersAccessible)-- 
 
-- Function: FPDF_SetPrintTextWithGDI 
--          Set whether to use GDI to draw fonts when printing on Windows. 
--          Experimental API. 
-- Parameters: 
--          use_gdi -   Set to true to enable printing text with GDI. 
-- Return value: 
--          None. 
 FPDF_SetPrintTextWithGDI(use_gdi.l)-- 
 
-- Function: FPDF_LoadDocument 
--          Open and load a PDF document. 
-- Parameters: 
--          file_path -  Path to the PDF file (including extension). 
--          password  -  A string used as the password for the PDF file. 
--                       If no password is needed, empty or NULL can be used. 
-- Return value: 
--          A handle to the loaded document, or NULL on failure. 
-- Comments: 
--          Loaded document can be closed by FPDF_CloseDocument(). 
--          If this function fails, you can use FPDF_GetLastError() to retrieve 
--          the reason why it failed. 
 --DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path, FPDF_BYTESTRING password)-- 
 FPDF_LoadDocument.i(*file_path.p-ascii, *password.p-ascii=0)-- 
 
-- Function: FPDF_LoadMemDocument 
--          Open and load a PDF document from memory. 
-- Parameters: 
--          data_buf    -   Pointer to a buffer containing the PDF document. 
--          size        -   Number of bytes in the PDF document. 
--          password    -   A string used as the password for the PDF file. 
--                          If no password is needed, empty or NULL can be used. 
-- Return value: 
--          A handle to the loaded document, or NULL on failure. 
-- Comments: 
--          The memory buffer must remain valid when the document is open. 
--          The loaded document can be closed by FPDF_CloseDocument. 
--          If this function fails, you can use FPDF_GetLastError() to retrieve 
--          the reason why it failed. 
-- Notes: 
--          If PDFium is built with the XFA module, the application should call 
--          FPDF_LoadXFA() function after the PDF document loaded to support XFA 
--          fields defined in the fpdfformfill.h file. 
--DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf, int size, FPDF_BYTESTRING password)-- 
FPDF_LoadMemDocument.i(*data_buf, size.l, *password.p-ascii=0)-- 
 
 
-- Function: FPDF_LoadCustomDocument 
--          Load PDF document from a custom access descriptor. 
-- Parameters: 
--          pFileAccess -   A structure for accessing the file. 
--          password    -   Optional password for decrypting the PDF file. 
-- Return value: 
--          A handle to the loaded document, or NULL on failure. 
-- Comments: 
--          The application must keep the file resources valid until the PDF 
--          document is closed. 
-- 
--          The loaded document can be closed with FPDF_CloseDocument. 
-- Notes: 
--          If PDFium is built with the XFA module, the application should call 
--          FPDF_LoadXFA() function after the PDF document loaded to support XFA 
--          fields defined in the fpdfformfill.h file. 
--DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAccess, FPDF_BYTESTRING password)-- 
FPDF_LoadCustomDocument.i(*pFileAccess.FPDF_FILEACCESS, *password.p-ascii=0)-- 
 
-- Function: FPDF_GetFileVersion 
--          Get the file version of the given PDF document. 
-- Parameters: 
--          doc         -   Handle to a document. 
--          fileVersion -   The PDF file version. File version: 14 for 1.4, 15 
--                          for 1.5, ... 
-- Return value: 
--          True if succeeds, false otherwise. 
-- Comments: 
--          If the document was created by FPDF_CreateNewDocument, --          then this function will always fail. 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_GetFileVersion(FPDF_DOCUMENT doc, int* fileVersion)-- 
FPDF_GetFileVersion.l(doc.i, *fileVersion.long)-- 
 
 
-- Function: FPDF_GetLastError 
--          Get last error code when a function fails. 
-- Parameters: 
--          None. 
-- Return value: 
--          A 32-bit integer indicating error code as defined above. 
-- Comments: 
--          If the previous SDK call succeeded, the return value of this 
--          function is not defined. 
--DLLEXPORT unsigned long STDCALL FPDF_GetLastError()-- 
FPDF_GetLastError.i()-- 
 
-- Function: FPDF_GetDocPermission 
--          Get file permission flags of the document. 
-- Parameters: 
--          document    -   Handle to a document. Returned by FPDF_LoadDocument. 
-- Return value: 
--          A 32-bit integer indicating permission flags. Please refer to the 
--          PDF Reference for detailed descriptions. If the document is not 
--          protected, 0xffffffff will be returned. 
--DLLEXPORT unsigned long STDCALL FPDF_GetDocPermissions(FPDF_DOCUMENT document)-- 
FPDF_GetDocPermissions.i(document.i)-- 
 
-- Function: FPDF_GetSecurityHandlerRevision 
--          Get the revision for the security handler. 
-- Parameters: 
--          document    -   Handle to a document. Returned by FPDF_LoadDocument. 
-- Return value: 
--          The security handler revision number. Please refer to the PDF 
--          Reference for a detailed description. If the document is not 
--          protected, -1 will be returned. 
--DLLEXPORT int STDCALL FPDF_GetSecurityHandlerRevision(FPDF_DOCUMENT document)-- 
FPDF_GetSecurityHandlerRevision.l(document.i)-- 
 
-- Function: FPDF_GetPageCount 
--          Get total number of pages in the document. 
-- Parameters: 
--          document    -   Handle to document. Returned by FPDF_LoadDocument. 
-- Return value: 
--          Total number of pages in the document. 
FPDF_GetPageCount.l(document.i)-- 
 
-- Function: FPDF_LoadPage 
--          Load a page inside the document. 
-- Parameters: 
--          document    -   Handle to document. Returned by FPDF_LoadDocument 
--          page_index  -   Index number of the page. 0 for the first page. 
-- Return value: 
--          A handle to the loaded page, or NULL if page load fails. 
-- Comments: 
--          The loaded page can be rendered to devices using FPDF_RenderPage. 
--          The loaded page can be closed using FPDF_ClosePage. 
--DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document, int page_index)-- 
FPDF_LoadPage.i(document.i, page_index.l)-- 
 
-- Function: FPDF_GetPageWidth 
--          Get page width. 
-- Parameters: 
--          page        -   Handle to the page. Returned by FPDF_LoadPage. 
-- Return value: 
--          Page width (excluding non-displayable area) measured in points. 
--          One point is 1/72 inch (around 0.3528 mm). 
--DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page)-- 
FPDF_GetPageWidth.d(page.i)-- 
 
-- Function: FPDF_GetPageHeight 
--          Get page height. 
-- Parameters: 
--          page        -   Handle to the page. Returned by FPDF_LoadPage. 
-- Return value: 
--          Page height (excluding non-displayable area) measured in points. 
--          One point is 1/72 inch (around 0.3528 mm) 
--DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page)-- 
FPDF_GetPageHeight.d(page.i)-- 
 
-- Function: FPDF_GetPageSizeByIndex 
--          Get the size of the page at the given index. 
-- Parameters: 
--          document    -   Handle to document. Returned by FPDF_LoadDocument. 
--          page_index  -   Page index, zero for the first page. 
--          width       -   Pointer to a double to receive the page width 
--                          (in points). 
--          height      -   Pointer to a double to receive the page height 
--                          (in points). 
-- Return value: 
--          Non-zero for success. 0 for error (document or page not found). 
--DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, int page_index, double* width, double* height)-- 
FPDF_GetPageSizeByIndex.l(document.i, page_index.l, *width.double, *height.double)-- 
 
-- Function: FPDF_RenderPage 
--          Render contents of a page to a device (screen, bitmap, or printer). 
--          This function is only supported on Windows. 
-- Parameters: 
--          dc          -   Handle to the device context. 
--          page        -   Handle to the page. Returned by FPDF_LoadPage. 
--          start_x     -   Left pixel position of the display area in 
--                          device coordinates. 
--          start_y     -   Top pixel position of the display area in device 
--                          coordinates. 
--          size_x      -   Horizontal size (in pixels) for displaying the page. 
--          size_y      -   Vertical size (in pixels) for displaying the page. 
--          rotate      -   Page orientation: 
--                            0 (normal) 
--                            1 (rotated 90 degrees clockwise) 
--                            2 (rotated 180 degrees) 
--                            3 (rotated 90 degrees counter-clockwise) 
--          flags       -   0 for normal display, or combination of flags 
--                          defined above. 
-- Return value: 
--          None. 
 FPDF_RenderPage(hdc.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l) 
 
-- Function: FPDF_RenderPageBitmap 
--          Render contents of a page to a device independent bitmap. 
-- Parameters: 
--          bitmap      -   Handle to the device independent bitmap (as the 
--                          output buffer). The bitmap handle can be created 
--                          by FPDFBitmap_Create. 
--          page        -   Handle to the page. Returned by FPDF_LoadPage 
--          start_x     -   Left pixel position of the display area in 
--                          bitmap coordinates. 
--          start_y     -   Top pixel position of the display area in bitmap 
--                          coordinates. 
--          size_x      -   Horizontal size (in pixels) for displaying the page. 
--          size_y      -   Vertical size (in pixels) for displaying the page. 
--          rotate      -   Page orientation: 
--                            0 (normal) 
--                            1 (rotated 90 degrees clockwise) 
--                            2 (rotated 180 degrees) 
--                            3 (rotated 90 degrees counter-clockwise) 
--          flags       -   0 for normal display, or combination of flags 
--                          defined above. With FPDF_ANNOT flag, it renders all 
--                          annotations that does not require user-interaction,  
--                          which are all annotations except widget and popup 
--                          annotations. 
-- Return value: 
--          None. 
 FPDF_RenderPageBitmap(bitmap.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l)-- 
 
--DLLEXPORT FPDF_RECORDER STDCALL FPDF_RenderPageSkp(FPDF_PAGE page, int size_x, int size_y)-- 
FPDF_RenderPageSkp.i(page.i, size_x.l, size_y.l)-- 
 
-- Function: FPDF_ClosePage 
--          Close a loaded PDF page. 
-- Parameters: 
--          page        -   Handle to the loaded page. 
-- Return value: 
--          None. 
 FPDF_ClosePage(page.i)-- 
 
-- Function: FPDF_CloseDocument 
--          Close a loaded PDF document. 
-- Parameters: 
--          document    -   Handle to the loaded document. 
-- Return value: 
--          None. 
 FPDF_CloseDocument(document.i)-- 
 
-- Function: FPDF_DeviceToPage 
--          Convert the screen coordinates of a point to page coordinates. 
-- Parameters: 
--          page        -   Handle to the page. Returned by FPDF_LoadPage. 
--          start_x     -   Left pixel position of the display area in 
--                          device coordinates. 
--          start_y     -   Top pixel position of the display area in device 
--                          coordinates. 
--          size_x      -   Horizontal size (in pixels) for displaying the page. 
--          size_y      -   Vertical size (in pixels) for displaying the page. 
--          rotate      -   Page orientation: 
--                            0 (normal) 
--                            1 (rotated 90 degrees clockwise) 
--                            2 (rotated 180 degrees) 
--                            3 (rotated 90 degrees counter-clockwise) 
--          device_x    -   X value in device coordinates to be converted. 
--          device_y    -   Y value in device coordinates to be converted. 
--          page_x      -   A pointer to a double receiving the converted X 
--                          value in page coordinates. 
--          page_y      -   A pointer to a double receiving the converted Y 
--                          value in page coordinates. 
-- Return value: 
--          None. 
-- Comments: 
--          The page coordinate system has its origin at the left-bottom corner 
--          of the page, with the X-axis on the bottom going to the right, and 
--          the Y-axis on the left side going up. 
-- 
--          NOTE: this coordinate system can be altered when you zoom, scroll, --          or rotate a page, however, a point on the page should always have 
--          the same coordinate values in the page coordinate system. 
-- 
--          The device coordinate system is device dependent. For screen device, --          its origin is at the left-top corner of the window. However this 
--          origin can be altered by the Windows coordinate transformation 
--          utilities. 
-- 
--          You must make sure the start_x, start_y, size_x, size_y 
--          and rotate parameters have exactly same values as you used in 
--          the FPDF_RenderPage() function call. 
 FPDF_DeviceToPage(page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, device_x.l, device_y.l, *page_x.double, *page_y.double)-- 
 
-- Function: FPDF_PageToDevice 
--          Convert the page coordinates of a point to screen coordinates. 
-- Parameters: 
--          page        -   Handle to the page. Returned by FPDF_LoadPage. 
--          start_x     -   Left pixel position of the display area in 
--                          device coordinates. 
--          start_y     -   Top pixel position of the display area in device 
--                          coordinates. 
--          size_x      -   Horizontal size (in pixels) for displaying the page. 
--          size_y      -   Vertical size (in pixels) for displaying the page. 
--          rotate      -   Page orientation: 
--                            0 (normal) 
--                            1 (rotated 90 degrees clockwise) 
--                            2 (rotated 180 degrees) 
--                            3 (rotated 90 degrees counter-clockwise) 
--          page_x      -   X value in page coordinates. 
--          page_y      -   Y value in page coordinate. 
--          device_x    -   A pointer to an integer receiving the result X 
--                          value in device coordinates. 
--          device_y    -   A pointer to an integer receiving the result Y 
--                          value in device coordinates. 
-- Return value: 
--          None. 
-- Comments: 
--          See comments for FPDF_DeviceToPage(). 
 FPDF_PageToDevice(page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, *page_x.double, *page_y.double, *device_x.long, *device_y.long)-- 
 
-- Function: FPDFBitmap_Create 
--          Create a device independent bitmap (FXDIB). 
-- Parameters: 
--          width       -   The number of pixels in width for the bitmap. 
--                          Must be greater than 0. 
--          height      -   The number of pixels in height for the bitmap. 
--                          Must be greater than 0. 
--          alpha       -   A flag indicating whether the alpha channel is used. 
--                          Non-zero for using alpha, zero for not using. 
-- Return value: 
--          The created bitmap handle, or NULL if a parameter error or out of 
--          memory. 
-- Comments: 
--          The bitmap always uses 4 bytes per pixel. The first byte is always 
--          double word aligned. 
-- 
--          The byte order is BGRx (the last byte unused if no alpha channel) or 
--          BGRA. 
-- 
--          The pixels in a horizontal line are stored side by side, with the 
--          left most pixel stored first (with lower memory address). 
--          Each line uses width * 4 bytes. 
-- 
--          Lines are stored one after another, with the top most line stored 
--          first. There is no gap between adjacent lines. 
-- 
--          This function allocates enough memory for holding all pixels in the 
--          bitmap, but it doesn't initialize the buffer. Applications can use 
--          FPDFBitmap_FillRect to fill the bitmap using any color. 
--DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_Create(int width, int height, int alpha)-- 
FPDFBitmap_Create.i(width.l, height.l, alpha.l)-- 
 
-- Function: FPDFBitmap_CreateEx 
--          Create a device independent bitmap (FXDIB) 
-- Parameters: 
--          width       -   The number of pixels in width for the bitmap. 
--                          Must be greater than 0. 
--          height      -   The number of pixels in height for the bitmap. 
--                          Must be greater than 0. 
--          format      -   A number indicating for bitmap format, as defined 
--                          above. 
--          first_scan  -   A pointer to the first byte of the first line if 
--                          using an external buffer. If this parameter is NULL,  
--                          then the a new buffer will be created. 
--          stride      -   Number of bytes for each scan line, for external 
--                          buffer only. 
-- Return value: 
--          The bitmap handle, or NULL if parameter error or out of memory. 
-- Comments: 
--          Similar to FPDFBitmap_Create function, but allows for more formats 
--          and an external buffer is supported. The bitmap created by this 
--          function can be used in any place that a FPDF_BITMAP handle is 
--          required. 
-- 
--          If an external buffer is used, then the application should destroy 
--          the buffer by itself. FPDFBitmap_Destroy function will not destroy 
--          the buffer. 
--DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width, int height, int format, void* first_scan, int stride)-- 
FPDFBitmap_CreateEx.i(width.l, height.l, format.l, *first_scan, stride.l)-- 
 
-- Function: FPDFBitmap_FillRect 
--          Fill a rectangle in a bitmap. 
-- Parameters: 
--          bitmap      -   The handle to the bitmap. Returned by 
--                          FPDFBitmap_Create. 
--          left        -   The left position. Starting from 0 at the 
--                          left-most pixel. 
--          top         -   The top position. Starting from 0 at the 
--                          top-most line. 
--          width       -   Width in pixels to be filled. 
--          height      -   Height in pixels to be filled. 
--          color       -   A 32-bit value specifing the color, in 8888 ARGB 
--                          format. 
-- Return value: 
--          None. 
-- Comments: 
--          This function sets the color and (optionally) alpha value in the 
--          specified region of the bitmap. 
-- 
--          NOTE: If the alpha channel is used, this function does NOT 
--          composite the background with the source color, instead the 
--          background will be replaced by the source color and the alpha. 
-- 
--          If the alpha channel is not used, the alpha parameter is ignored. 
FPDFBitmap_FillRect(bitmap.i, left.l, top.l, width.l, height.l, color.i)-- 
 
-- Function: FPDFBitmap_GetBuffer 
--          Get data buffer of a bitmap. 
-- Parameters: 
--          bitmap      -   Handle to the bitmap. Returned by FPDFBitmap_Create. 
-- Return value: 
--          The pointer to the first byte of the bitmap buffer. 
-- Comments: 
--          The stride may be more than width * number of bytes per pixel 
-- 
--          Applications can use this function to get the bitmap buffer pointer,  
--          then manipulate any color And/Or alpha values For any pixels in the 
--          bitmap. 
-- 
--          The data is in BGRA format. Where the A maybe unused if alpha was 
--          not specified. 
--DLLEXPORT void* STDCALL FPDFBitmap_GetBuffer(FPDF_BITMAP bitmap)-- 
FPDFBitmap_GetBuffer.i(bitmap.i)-- 
 
-- Function: FPDFBitmap_GetWidth 
--          Get width of a bitmap. 
-- Parameters: 
--          bitmap      -   Handle to the bitmap. Returned by FPDFBitmap_Create. 
-- Return value: 
--          The width of the bitmap in pixels. 
--DLLEXPORT int STDCALL FPDFBitmap_GetWidth(FPDF_BITMAP bitmap)-- 
FPDFBitmap_GetWidth.l(bitmap.i)-- 
 
-- Function: FPDFBitmap_GetHeight 
--          Get height of a bitmap. 
-- Parameters: 
--          bitmap      -   Handle to the bitmap. Returned by FPDFBitmap_Create. 
-- Return value: 
--          The height of the bitmap in pixels. 
--DLLEXPORT int STDCALL FPDFBitmap_GetHeight(FPDF_BITMAP bitmap)-- 
FPDFBitmap_GetHeight.l(bitmap.i)-- 
 
-- Function: FPDFBitmap_GetStride 
--          Get number of bytes for each line in the bitmap buffer. 
-- Parameters: 
--          bitmap      -   Handle to the bitmap. Returned by FPDFBitmap_Create. 
-- Return value: 
--          The number of bytes for each line in the bitmap buffer. 
-- Comments: 
--          The stride may be more than width * number of bytes per pixel. 
--DLLEXPORT int STDCALL FPDFBitmap_GetStride(FPDF_BITMAP bitmap)-- 
FPDFBitmap_GetStride.l(bitmap.i)-- 
 
-- Function: FPDFBitmap_Destroy 
--          Destroy a bitmap and release all related buffers. 
-- Parameters: 
--          bitmap      -   Handle to the bitmap. Returned by FPDFBitmap_Create. 
-- Return value: 
--          None. 
-- Comments: 
--          This function will not destroy any external buffers provided when 
--          the bitmap was created. 
FPDFBitmap_Destroy(bitmap.i)-- 
 
-- Function: FPDF_VIEWERREF_GetPrintScaling 
--          Whether the PDF document prefers to be scaled or not. 
-- Parameters: 
--          document    -   Handle to the loaded document. 
-- Return value: 
--          None. 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_GetPrintScaling(document.i) 
FPDF_VIEWERREF_GetPrintScaling.l(document.i) 
 
-- Function: FPDF_VIEWERREF_GetNumCopies 
--          Returns the number of copies to be printed. 
-- Parameters: 
--          document    -   Handle to the loaded document. 
-- Return value: 
--          The number of copies to be printed. 
--DLLEXPORT int STDCALL FPDF_VIEWERREF_GetNumCopies(document.i) 
FPDF_VIEWERREF_GetNumCopies.l(document.i) 
 
-- Function: FPDF_VIEWERREF_GetPrintPageRange 
--          Page numbers to initialize print dialog box when file is printed. 
-- Parameters: 
--          document    -   Handle to the loaded document. 
-- Return value: 
--          The print page range to be used for printing. 
--DLLEXPORT FPDF_PAGERANGE STDCALL FPDF_VIEWERREF_GetPrintPageRange(document.i) 
FPDF_VIEWERREF_GetPrintPageRange.i(document.i) 
 
-- Function: FPDF_VIEWERREF_GetDuplex 
--          Returns the paper handling option to be used when printing from 
--          the print dialog. 
-- Parameters: 
--          document    -   Handle to the loaded document. 
-- Return value: 
--          The paper handling option to be used when printing. 
--DLLEXPORT FPDF_DUPLEXTYPE STDCALL FPDF_VIEWERREF_GetDuplex(document.i) 
FPDF_VIEWERREF_GetDuplex.l(document.i) 
 
-- Function: FPDF_CountNamedDests 
--          Get the count of named destinations in the PDF document. 
-- Parameters: 
--          document    -   Handle to a document 
-- Return value: 
--          The count of named destinations. 
--DLLEXPORT FPDF_DWORD STDCALL FPDF_CountNamedDests(document.i) 
FPDF_CountNamedDests.i(document.i) 
 
-- Function: FPDF_GetNamedDestByName 
--          Get a the destination handle for the given name. 
-- Parameters: 
--          document    -   Handle to the loaded document. 
--          name        -   The name of a destination. 
-- Return value: 
--          The handle to the destination. 
--DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDestByName(document.i, FPDF_BYTESTRING name) 
FPDF_GetNamedDestByName.i(document.i, *name.p-ascii) 
 
-- Function: FPDF_GetNamedDest 
--          Get the named destination by index. 
-- Parameters: 
--          document        -   Handle to a document 
--          index           -   The index of a named destination. 
--          buffer          -   The buffer to store the destination name, --                              used as wchar_t*. 
--          buflen [in/out] -   Size of the buffer in bytes on input, --                              length of the result in bytes on output 
--                              or -1 if the buffer is too small. 
-- Return value: 
--          The destination handle for a given index, or NULL if there is no 
--          named destination corresponding to |index|. 
-- Comments: 
--          Call this function twice to get the name of the named destination: 
--            1) First time pass in |buffer| as NULL and get buflen. 
--            2) Second time pass in allocated |buffer| and buflen to retrieve 
--               |buffer|, which should be used as wchar_t*. 
-- 
--         If buflen is not sufficiently large, it will be set to -1 upon 
--         return. 
--DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(document.i, index.l, void* buffer, *buflen.long) 
FPDF_GetNamedDest.i(document.i, index.l, *buffer, *buflen.long) 
 
-- Function: FPDF_BStr_Init 
--          Helper function to initialize a byte string. 
--DLLEXPORT FPDF_RESULT STDCALL FPDF_BStr_Init(FPDF_BSTR* str) 
FPDF_BStr_Init.l(*str.FPDF_BSTR) 
 
-- Function: FPDF_BStr_Set 
--          Helper function to set string data. 
--DLLEXPORT FPDF_RESULT STDCALL FPDF_BStr_Set(FPDF_BSTR* str, FPDF_LPCSTR bstr, length.l) 
FPDF_BStr_Set.l(*str.FPDF_BSTR, *bstr.p-ascii, length.l) 
 
-- Function: FPDF_BStr_Clear 
--          Helper function to clear a byte string. 
--DLLEXPORT FPDF_RESULT STDCALL FPDF_BStr_Clear(FPDF_BSTR* str) 
FPDF_BStr_Clear.l(*str.FPDF_BSTR) 
 
 
 
-- Create a document availability provider. 
-- 
--   file_avail - pointer to file availability interface. 
--   file       - pointer to a file access interface. 
-- 
-- Returns a handle to the document availability provider, or NULL on error. 
-- 
-- |FPDFAvail_Destroy| must be called when done with the availability provider. 
--DLLEXPORT FPDF_AVAIL STDCALL FPDFAvail_Create(*file_avail.FX_FILEAVAIL, *file.FPDF_FILEACCESS) 
FPDFAvail_Create.l(*file_avail.FX_FILEAVAIL, *file.FPDF_FILEACCESS) 
 
-- Destroy the |avail| document availability provider. 
-- 
--   avail - handle to document availability provider to be destroyed. 
FPDFAvail_Destroy(*avail.FX_FILEAVAIL) 
 
-- Checks if the document is ready for loading, if not, gets download hints. 
-- 
--   avail - handle to document availability provider. 
--   hints - pointer to a download hints interface. 
-- 
-- Returns one of: 
--   PDF_DATA_ERROR: A common error is returned. Data availability unknown. 
--   PDF_DATA_NOTAVAIL: Data not yet available. 
--   PDF_DATA_AVAIL: Data available. 
-- 
-- Applications should call this function whenever new data arrives, and process 
-- all the generated download hints, if any, until the function returns 
-- |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. 
-- 
-- Once all data is available, call |FPDFAvail_GetDocument| to get a document 
-- handle. 
--DLLEXPORT int STDCALL FPDFAvail_IsDocAvail(void *avail, *hints.FX_DOWNLOADHINTS) 
FPDFAvail_IsDocAvail.l(avail.i, *hints.FX_DOWNLOADHINTS) 
 
-- Get document from the availability provider. 
-- 
--   avail    - handle to document availability provider. 
--   password - password for decrypting the PDF file. Optional. 
-- 
-- Returns a handle to the document. 
-- 
-- When |FPDFAvail_IsDocAvail| returns TRUE, call |FPDFAvail_GetDocument| to 
-- retrieve the document handle. 
--DLLEXPORT FPDF_DOCUMENT STDCALL FPDFAvail_GetDocument(void *avail, *password.p-ascii) 
FPDFAvail_GetDocument.l(avail.i, *password.p-ascii) 
 
-- Get the page number for the first available page in a linearized PDF. 
-- 
--   doc - document handle. 
-- 
-- Returns the zero-based index for the first available page. 
-- 
-- For most linearized PDFs, the first available page will be the first page, -- however, some PDFs might make another page the first available page. 
-- For non-linearized PDFs, this function will always return zero. 
--DLLEXPORT int STDCALL FPDFAvail_GetFirstPageNum(doc.i) 
FPDFAvail_GetFirstPageNum.l(doc.i) 
 
-- Check if |page_index| is ready for loading, if not, get the 
-- |FX_DOWNLOADHINTS|. 
-- 
--   avail      - handle to document availability provider. 
--   page_index - index number of the page. Zero for the first page. 
--   hints      - pointer to a download hints interface. Populated if 
--                |page_index| is not available. 
-- 
-- Returns one of: 
--   PDF_DATA_ERROR: A common error is returned. Data availability unknown. 
--   PDF_DATA_NOTAVAIL: Data not yet available. 
--   PDF_DATA_AVAIL: Data available. 
-- 
-- This function can be called only after |FPDFAvail_GetDocument| is called. 
-- Applications should call this function whenever new data arrives and process 
-- all the generated download |hints|, if any, until this function returns 
-- |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. Applications can then perform page 
-- loading. 
--DLLEXPORT int STDCALL FPDFAvail_IsPageAvail(void *avail, page_index.l, *hints.FX_DOWNLOADHINTS) 
FPDFAvail_IsPageAvail.l(avail.i, page_index.l, *hints.FX_DOWNLOADHINTS) 
 
-- Check if form data is ready for initialization, if not, get the 
-- |FX_DOWNLOADHINTS|. 
-- 
--   avail - handle to document availability provider. 
--   hints - pointer to a download hints interface. Populated if form is not 
--           ready for initialization. 
-- 
-- Returns one of: 
--   PDF_FORM_ERROR: A common eror, in general incorrect parameters. 
--   PDF_FORM_NOTAVAIL: Data not available. 
--   PDF_FORM_AVAIL: Data available. 
--   PDF_FORM_NOTEXIST: No form data. 
-- 
-- This function can be called only after |FPDFAvail_GetDocument| is called. 
-- The application should call this function whenever new data arrives and 
-- process all the generated download |hints|, if any, until the function 
-- |PDF_FORM_ERROR|, |PDF_FORM_AVAIL| or |PDF_FORM_NOTEXIST|. 
-- Applications can then perform page loading. It is recommend to call 
-- |FPDFDOC_InitFormFillEnvironment| when |PDF_FORM_AVAIL| is returned. 
--DLLEXPORT int STDCALL FPDFAvail_IsFormAvail(void *avail, *hints.FX_DOWNLOADHINTS) 
FPDFAvail_IsFormAvail.l(avail.i, *hints.FX_DOWNLOADHINTS) 
 
-- Check whether a document is a linearized PDF. 
-- 
--   avail - handle to document availability provider. 
-- 
-- Returns one of: 
--   PDF_LINEARIZED 
--   PDF_NOT_LINEARIZED 
--   PDF_LINEARIZATION_UNKNOWN 
-- 
-- |FPDFAvail_IsLinearized| will return |PDF_LINEARIZED| or |PDF_NOT_LINEARIZED| 
-- when we have 1k  of data. If the files size less than 1k, it returns 
-- |PDF_LINEARIZATION_UNKNOWN| as there is insufficient information to determine 
-- if the PDF is linearlized. 
--DLLEXPORT int STDCALL FPDFAvail_IsLinearized(void *avail) 
FPDFAvail_IsLinearized.l(avail.i) 
 
 
-- Get the first child of |bookmark|, or the first top-level bookmark item. 
-- 
--   document - handle to the document. 
--   bookmark - handle to the current bookmark. Pass NULL for the first top 
--              level item. 
-- 
-- Returns a handle to the first child of |bookmark| or the first top-level 
-- bookmark item. NULL if no child or top-level bookmark found. 
--DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetFirstChild(document.i, void *bookmark) 
FPDFBookmark_GetFirstChild.i(document.i, bookmark.i) 
 
-- Get the next sibling of |bookmark|. 
-- 
--   document - handle to the document. 
--   bookmark - handle to the current bookmark. 
-- 
-- Returns a handle to the next sibling of |bookmark|, or NULL if this is the 
-- last bookmark at this level. 
--DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetNextSibling(document.i, bookmark.i) 
FPDFBookmark_GetNextSibling.i(document.i, bookmark.i) 
 
-- Get the title of |bookmark|. 
-- 
--   bookmark - handle to the bookmark. 
--   buffer   - buffer for the title. May be NULL. 
--   buflen   - the length of the buffer in bytes. May be 0. 
-- 
-- Returns the number of bytes in the title, including the terminating NUL 
-- character. The number of bytes is returned regardless of the |buffer| and 
-- |buflen| parameters. 
-- 
-- Regardless of the platform, the |buffer| is always in UTF-16LE encoding. The 
-- string is terminated by a UTF16 NUL character. If |buflen| is less then the 
-- required length, or |buffer| is NULL, |buffer| will not be modified. 
--DLLEXPORT unsigned long STDCALL FPDFBookmark_GetTitle(bookmark.i, void* buffer, buflen.i) 
FPDFBookmark_GetTitle.i(bookmark.i, *buffer, buflen.i) 
 
-- Find the bookmark with |title| in |document|. 
-- 
--   document - handle to the document. 
--   title    - the UTF-16LE encoded Unicode title for which to search. 
-- 
-- Returns the handle to the bookmark, or NULL if |title| can't be found. 
-- 
-- |FPDFBookmark_Find| will always return the first bookmark found even if 
-- multiple bookmarks have the same |title|. 
--DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_Find(document.i, FPDF_WIDESTRING title) 
FPDFBookmark_Find.i(document.i, *title.string) 
 
-- Get the destination associated with |bookmark|. 
-- 
--   document - handle to the document. 
--   bookmark - handle to the bookmark. 
-- 
-- Returns the handle to the destination data, NULL if no destination is 
-- associated with |bookmark|. 
--DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(document.i, bookmark.i) 
FPDFBookmark_GetDest.i(document.i, bookmark.i) 
 
-- Get the action associated with |bookmark|. 
-- 
--   bookmark - handle to the bookmark. 
-- 
-- Returns the handle to the action data, or NULL if no action is associated 
-- with |bookmark|. When NULL is returned, |FPDFBookmark_GetDest| should be 
-- called to get the |bookmark| destination data. 
--DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(bookmark.i) 
FPDFBookmark_GetAction.i(bookmark.i) 
 
-- Get the type of |action|. 
-- 
--   action - handle to the action. 
-- 
-- Returns one of: 
--   PDFACTION_UNSUPPORTED 
--   PDFACTION_GOTO 
--   PDFACTION_REMOTEGOTO 
--   PDFACTION_URI 
--   PDFACTION_LAUNCH 
--DLLEXPORT unsigned long STDCALL FPDFAction_GetType(void *action) 
FPDFAction_GetType.i(action.i) 
 
-- Get the destination of |action|. 
-- 
--   document - handle to the document. 
--   action   - handle to the action. |action| must be a |PDFACTION_GOTO| or 
--              |PDFACTION_REMOTEGOTO|. 
-- 
-- Returns a handle to the destination data. 
-- 
-- In the case of |PDFACTION_REMOTEGOTO|, you should first call 
-- |FPDFAction_GetFilePath| then load that document, the document handle from 
-- that document should pass as |document| to |FPDFAction_GetDest|. 
--DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(document.i, void *action) 
FPDFAction_GetDest.i(document.i, action.i) 
 
-- Get file path of a |PDFACTION_REMOTEGOTO| |action|. 
-- 
--   action - handle to the action. |action| must be a |PDFACTION_LAUNCH| or 
--            |PDFACTION_REMOTEGOTO| 
--   buffer - a buffer for output the path string. May be NULL. 
--   buflen - the length of the buffer, in bytes. May be 0. 
-- 
-- Returns the number of bytes in the file path, including the trailing UTF16 
-- NUL character. 
-- 
-- Regardless of the platform, the |buffer| is always in UTF-16LE encoding. 
-- If |buflen| is less then the returned length, or |buffer| is NULL, |buffer| 
-- will not be modified. 
--DLLEXPORT unsigned long STDCALL FPDFAction_GetFilePath(void *action, void* buffer, buflen.i) 
FPDFAction_GetFilePath.i(action.i, *buffer, buflen.i) 
 
-- Get the URI path of a |PDFACTION_URI| |action|. 
-- 
--   document - handle to the document. 
--   action   - handle to the action. Must be a |PDFACTION_URI|. 
--   buffer   - a buffer for the path string. May be NULL. 
--   buflen   - the length of the buffer, in bytes. May be 0. 
-- 
-- Returns the number of bytes in the URI path, including trailing zeros. 
-- 
-- The |buffer| is always encoded in 7-bit ASCII. If |buflen| is less then the 
-- returned length, or |buffer| is NULL, |buffer| will not be modified. 
--DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(document.i, void *action, void* buffer, buflen.i) 
FPDFAction_GetURIPath.i(document.i, action.i, *buffer, buflen.i) 
 
-- Get the page index of |dest|. 
-- 
--   document - handle to the document. 
--   dest     - handle to the destination. 
-- 
-- Returns the page index containing |dest|. Page indices start from 0. 
--DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(document.i, void *dest) 
FPDFDest_GetPageIndex.i(document.i, dest.i) 
 
-- Find a link at point (|x|,|y|) on |page|. 
-- 
--   page - handle to the document page. 
--   x    - the x coordinate, in the page coordinate system. 
--   y    - the y coordinate, in the page coordinate system. 
-- 
-- Returns a handle to the link, or NULL if no link found at the given point. 
-- 
-- You can convert coordinates from screen coordinates to page coordinates using 
-- |FPDF_DeviceToPage|. 
--DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(void *page, x.d, y.d) 
FPDFLink_GetLinkAtPoint.i(page.i, x.d, y.d) 
 
-- Find the Z-order of link at point (|x|,|y|) on |page|. 
-- 
--   page - handle to the document page. 
--   x    - the x coordinate, in the page coordinate system. 
--   y    - the y coordinate, in the page coordinate system. 
-- 
-- Returns the Z-order of the link, or -1 if no link found at the given point. 
-- Larger Z-order numbers are closer to the front. 
-- 
-- You can convert coordinates from screen coordinates to page coordinates using 
-- |FPDF_DeviceToPage|. 
--DLLEXPORT int STDCALL FPDFLink_GetLinkZOrderAtPoint(void *page, x.d, y.d) 
FPDFLink_GetLinkZOrderAtPoint.l(page.i, x.d, y.d) 
 
-- Get destination info for |link|. 
-- 
--   document - handle to the document. 
--   link     - handle to the link. 
-- 
-- Returns a handle to the destination, or NULL if there is no destination 
-- associated with the link. In this case, you should call |FPDFLink_GetAction| 
-- to retrieve the action associated with |link|. 
--DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(document.i, void *link) 
FPDFLink_GetDest.i(document.i, link.i) 
 
-- Get action info for |link|. 
-- 
--   link - handle to the link. 
-- 
-- Returns a handle to the action associated to |link|, or NULL if no action. 
--DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(void *link) 
FPDFLink_GetAction.i(link.i) 
 
-- Enumerates all the link annotations in |page|. 
-- 
--   page      - handle to the page. 
--   startPos  - the start position, should initially be 0 and is updated with 
--               the next start position on return. 
--   linkAnnot - the link handle for |startPos|. 
-- 
-- Returns TRUE on success. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(void *page, int* startPos, void *linkAnnot) 
FPDFLink_Enumerate.l(page.i, *startPos.long, linkAnnot.i) 
 
-- Get the rectangle for |linkAnnot|. 
-- 
--   linkAnnot - handle to the link annotation. 
--   rect      - the annotation rectangle. 
-- 
-- Returns true on success. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetAnnotRect(void *linkAnnot, *rect.FS_RECTF) 
FPDFLink_GetAnnotRect.l(linkAnnot.i, *rect.FS_RECTF) 
 
-- Get the count of quadrilateral points to the |linkAnnot|. 
-- 
--   linkAnnot - handle to the link annotation. 
-- 
-- Returns the count of quadrilateral points. 
--DLLEXPORT int STDCALL FPDFLink_CountQuadPoints(void *linkAnnot) 
FPDFLink_CountQuadPoints.l(linkAnnot.i) 
 
-- Get the quadrilateral points for the specified |quadIndex| in |linkAnnot|. 
-- 
--   linkAnnot  - handle to the link annotation. 
--   quadIndex  - the specified quad point index. 
--   quadPoints - receives the quadrilateral points. 
-- 
-- Returns true on success. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetQuadPoints(void *linkAnnot, quadIndex.l, *quadPoints.FS_QUADPOINTSF) 
FPDFLink_GetQuadPoints.l(linkAnnot.i, quadIndex.l, *quadPoints.FS_QUADPOINTSF) 
 
-- Get meta-data |tag| content from |document|. 
-- 
--   doc    - handle to the document 
--   tag    - the tag to retrieve. The tag can be one of: 
--              Title, Author, Subject, Keywords, Creator, Producer, CreationDate, or ModDate. 
--            For detailed explanations of these tags and their respective 
--            values, please refer to PDF Reference 1.6, section 10.2.1, 'Document Information Dictionary'. 
--   buffer - a buffer for the title. May be NULL. 
--   buflen - the length of the buffer, in bytes. May be 0. 
-- 
-- Returns the number of bytes in the title, including trailing zeros. 
-- 
-- The |buffer| is always encoded in UTF-16LE. The |buffer| is followed by two 
-- bytes of zeros indicating the end of the string.  If |buflen| is less then 
-- the returned length, or |buffer| is NULL, |buffer| will not be modified. 
--DLLEXPORT unsigned long STDCALL FPDF_GetMetaText(doc.i, *tag.Byte, void* buffer, buflen.i) 
FPDF_GetMetaText.i(doc.i, *tag.Byte, *buffer=public constant Null, buflen.i=0) 
 
 
-- Create a new PDF document. 
-- 
-- Returns a handle to a new document, or NULL on failure. 
--DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_CreateNewDocument() 
FPDF_CreateNewDocument.i() 
 
-- Create a new PDF page. 
-- 
--   document   - handle to document. 
--   page_index - suggested index of the page to create. If it is larger than 
--                document's current last index(L), the created page index is 
--                the next available index -- L+1. 
--   width      - the page width. 
--   height     - the page height. 
-- 
-- Returns the handle to the new page. 
-- 
-- The page should be closed with CPDF_ClosePage() when finished as 
-- with any other page in the document. 
--DLLEXPORT FPDF_PAGE STDCALL FPDFPage_New(document.i, page_index.l, width.d, height.d) 
FPDFPage_New.i(document.i, page_index.l, width.d, height.d) 
 
-- Delete the page at |page_index|. 
-- 
--   document   - handle to document. 
--   page_index - the index of the page to delete. 
FPDFPage_Delete(document.i, page_index.l) 
 
-- Get the rotation of |page|. 
-- 
--   page - handle to a page 
-- 
-- Returns one of the following indicating the page rotation: 
--   0 - No rotation. 
--   1 - Rotated 90 degrees clockwise. 
--   2 - Rotated 180 degrees clockwise. 
--   3 - Rotated 270 degrees clockwise. 
--DLLEXPORT int STDCALL FPDFPage_GetRotation(void *page) 
FPDFPage_GetRotation.l(page.i) 
 
-- Set rotation for |page|. 
-- 
--   page   - handle to a page. 
--   rotate - the rotation value, one of: 
--              0 - No rotation. 
--              1 - Rotated 90 degrees clockwise. 
--              2 - Rotated 180 degrees clockwise. 
--              3 - Rotated 270 degrees clockwise. 
FPDFPage_SetRotation(page.i, rotate.l) 
 
-- Insert |page_obj| into |page|. 
-- 
--   page     - handle to a page 
--   page_obj - handle to a page object. The |page_obj| will be automatically 
--              freed. 
FPDFPage_InsertObject(page.i, page_obj.i) 
 
-- Get number of page objects inside |page|. 
-- 
--   page - handle to a page. 
-- 
-- Returns the number of objects in |page|. 
--DLLEXPORT int STDCALL FPDFPage_CountObject(void *page) 
FPDFPage_CountObject.l(page.i) 
 
-- Get object in |page| at |index|. 
-- 
--   page  - handle to a page. 
--   index - the index of a page object. 
-- 
-- Returns the handle to the page object, or NULL on failed. 
--DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPage_GetObject(void *page, index.l) 
FPDFPage_GetObject.i(page.i, index.l) 
 
-- Checks if |page| contains transparency. 
-- 
--   page - handle to a page. 
-- 
-- Returns TRUE if |page| contains transparency. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFPage_HasTransparency(void *page) 
FPDFPage_HasTransparency.l(page.i) 
 
-- Generate the content of |page|. 
-- 
--   page - handle to a page. 
-- 
-- Returns TRUE on success. 
-- 
-- Before you save the page to a file, or reload the page, you must call 
-- |FPDFPage_GenerateContent| or any changes to |page| will be lost. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GenerateContent(void *page) 
FPDFPage_GenerateContent.l(page.i) 
 
-- Checks if |pageObject| contains transparency. 
-- 
--   pageObject - handle to a page object. 
-- 
-- Returns TRUE if |pageObject| contains transparency. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFPageObj_HasTransparency(void *pageObject) 
FPDFPageObj_HasTransparency.l(pageObject.i) 
 
-- Transform |pageObject| by the given matrix. 
-- 
--   page_object - handle to a page object. 
--   a           - matrix value. 
--   b           - matrix value. 
--   c           - matrix value. 
--   d           - matrix value. 
--   e           - matrix value. 
--   f           - matrix value. 
-- 
-- The matrix is composed as: 
--   |a c e| 
--   |b d f| 
-- and can be used to scale, rotate, shear and translate the |page_object|. 
FPDFPageObj_Transform(page_object.i, a.d, b.d, c.d, d.d, e.d, f.d) 
 
-- Transform all annotations in |page|. 
-- 
--   page - handle to a page. 
--   a    - matrix value. 
--   b    - matrix value. 
--   c    - matrix value. 
--   d    - matrix value. 
--   e    - matrix value. 
--   f    - matrix value. 
-- 
-- The matrix is composed as: 
--   |a c e| 
--   |b d f| 
-- and can be used to scale, rotate, shear and translate the |page| annotations. 
FPDFPage_TransformAnnots(page.i, a.d, b.d, c.d, d.d, e.d, f.d) 
 
-- Create a new image object. 
-- 
--   document - handle to a document. 
-- 
-- Returns a handle to a new image object. 
--DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPageObj_NewImgeObj(document.i) 
FPDFPageObj_NewImgeObj.i(document.i) 
 
-- Load an image from a JPEG image file and then set it into |image_object|. 
-- 
--   pages        - pointer to the start of all loaded pages, may be NULL. 
--   nCount       - number of |pages|, may be 0. 
--   image_object - handle to an image object. 
--   fileAccess   - file access handler which specifies the JPEG image file. 
-- 
-- Returns TRUE on success. 
-- 
-- The image object might already have an associated image, which is shared and 
-- cached by the loaded pages. In that case, we need to clear the cached image 
-- for all the loaded pages. Pass |pages| and page count (|nCount|) to this API 
-- to clear the image cache. If the image is not previously shared, or NULL is a 
-- valid |pages| value. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_LoadJpegFile(FPDF_PAGE* pages, nCount.l, void *image_object, *fileAccess.FPDF_FILEACCESS) 
FPDFImageObj_LoadJpegFile.l(pages.i, nCount.l, image_object.i, *fileAccess.FPDF_FILEACCESS) 
 
-- Set the transform matrix of |image_object|. 
-- 
--   image_object - handle to an image object. 
--   a            - matrix value. 
--   b            - matrix value. 
--   c            - matrix value. 
--   d            - matrix value. 
--   e            - matrix value. 
--   f            - matrix value. 
-- 
-- The matrix is composed as: 
--   |a c e| 
--   |b d f| 
-- and can be used to scale, rotate, shear and translate the |page| annotations. 
-- 
-- Returns TRUE on success. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_SetMatrix(void *image_object, a.d, b.d, c.d, d.d, e.d, f.d) 
FPDFImageObj_SetMatrix.l(image_object.i, a.d, b.d, c.d, d.d, e.d, f.d) 
 
-- Set |bitmap| to |image_object|. 
-- 
--   pages        - pointer to the start of all loaded pages, may be NULL. 
--   nCount       - number of |pages|, may be 0. 
--   image_object - handle to an image object. 
--   bitmap       - handle of the bitmap. 
-- 
-- Returns TRUE on success. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_SetBitmap(FPDF_PAGE* pages, nCount.l, void *image_object, void *bitmap) 
FPDFImageObj_SetBitmap.l(*pages.integer, nCount.l, image_object.i, bitmap.i) 
 
 
 
-- Setup an unsupported object handler. 
-- 
--   unsp_info - Pointer to an UNSUPPORT_INFO structure. 
-- 
-- Returns TRUE on success. 
--DLLEXPORT FPDF_BOOL STDCALL FSDK_SetUnSpObjProcessHandler(*unsp_info.UNSUPPORT_INFO) 
FSDK_SetUnSpObjProcessHandler.l(*unsp_info.UNSUPPORT_INFO) 
 
-- Get the document's PageMode. 
-- 
--   doc - Handle to document. 
-- 
-- Returns one of the |PAGEMODE_*| flags defined above. 
-- 
-- The page mode defines how the document should be initially displayed. 
--DLLEXPORT int STDCALL FPDFDoc_GetPageMode(document.i) 
FPDFDoc_GetPageMode.l(document.i) 
 
 
 
-- Flatten annotations and form fields into the page contents. 
-- 
--   page  - handle to the page. 
--   nFlag - One of the |FLAT_*| values denoting the page usage. 
-- 
-- Returns one of the |FLATTEN_*| values. 
-- 
-- Currently, all failures return |FLATTEN_FAIL| with no indication of the 
-- cause. 
--DLLEXPORT int STDCALL FPDFPage_Flatten(void *page, nFlag.l) 
FPDFPage_Flatten.l(page.i, nFlag.l) 
 
 
-- Function signature For the callback function passed To the FFI_SetTimer 
-- method. 
-- Parameters: 
--          idEvent     -   Identifier of the timer. 
-- Return value: 
--          None. 
-- Prototype.i TimerCallback(idEvent.l) 
 
 
-- Function: FPDFDOC_InitFormFillEnvironment 
--          Init form fill environment. 
-- Comments: 
--          This function should be called before any form fill operation. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          pFormFillInfo   -   Pointer To a FPDF_FORMFILLINFO Structure. 
-- Return Value: 
--          Return handler To the form fill Module. NULL means fails. 
--DLLEXPORT FPDF_FORMHANDLE STDCALL FPDFDOC_InitFormFillEnvironment(document.i, *formInfo.FPDF_FORMFILLINFO) 
FPDFDOC_InitFormFillEnvironment.i(document.i, *formInfo.FPDF_FORMFILLINFO) 
 
-- Function: FPDFDOC_ExitFormFillEnvironment 
--          Exit form fill environment. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
-- Return Value: 
--          NULL. 
FPDFDOC_ExitFormFillEnvironment(hHandle.i) 
 
-- Function: FORM_OnAfterLoadPage 
--          This method is required For implementing all the form related 
--functions. Should be invoked after user 
--          successfully loaded a PDF page, And method 
--FPDFDOC_InitFormFillEnvironment had been invoked. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
-- Return Value: 
--          NONE. 
FORM_OnAfterLoadPage(page.i, hHandle.i) 
 
-- Function: FORM_OnBeforeClosePage 
--          This method is required For implementing all the form related 
--functions. Should be invoked before user 
--          close the PDF page. 
-- Parameters: 
--          page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
-- Return Value: 
--          NONE. 
FORM_OnBeforeClosePage(page.i, hHandle.i) 
 
-- Function: FORM_DoDocumentJSAction 
--           This method is required For performing Document-level JavaScript 
--action. It should be invoked after the PDF document 
--           had been loaded. 
-- Parameters: 
--           hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
-- Return Value: 
--           NONE 
-- Comments: 
--           If there is Document-level JavaScript action embedded in the 
--document, this method will execute the javascript action-- 
--           otherwise, the method will do nothing. 
FORM_DoDocumentJSAction(hHandle.i) 
 
-- Function: FORM_DoDocumentOpenAction 
--           This method is required For performing open-action when the document 
--is opened. 
-- Parameters: 
--           hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
-- Return Value: 
--           NONE 
-- Comments: 
--           This method will do nothing If there is no open-actions embedded in 
--the document. 
FORM_DoDocumentOpenAction(hHandle.i) 
 
 
-- Function: FORM_DoDocumentAAction 
--           This method is required For performing the document's 
--additional-action. 
-- Parameters: 
--           hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--           aaType      -   The type of the additional-actions which defined 
--above. 
-- Return Value: 
--           NONE 
-- Comments: 
--           This method will do nothing If there is no document 
--additional-action corresponding To the specified aaType. 
 
FORM_DoDocumentAAction(hHandle.i, aaType.l) 
 
 
-- Function: FORM_DoPageAAction 
--           This method is required For performing the page object's 
--additional-action when opened Or closed. 
-- Parameters: 
--           page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--           hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--           aaType      -   The type of the page object's additional-actions 
--which defined above. 
-- Return Value: 
--           NONE 
-- Comments: 
--           This method will do nothing If no additional-action corresponding To 
--the specified aaType exists. 
FORM_DoPageAAction(page.i, hHandle.i, aaType.l) 
 
-- Function: FORM_OnMouseMove 
--          You can call this member function when the mouse cursor moves. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--          page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--          modifier        -   Indicates whether various virtual keys are down. 
--          page_x      -   Specifies the x-coordinate of the cursor in PDF user 
--space. 
--          page_y      -   Specifies the y-coordinate of the cursor in PDF user 
--space. 
-- Return Value: 
--          TRUE indicates success-- otherwise false. 
--DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(void *hHandle, void *page, modifier.l, page_x.d, page_y.d) 
FORM_OnMouseMove.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) 
 
-- Function: FORM_OnLButtonDown 
--          You can call this member function when the user presses the left 
--mouse button. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--          page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--          modifier        -   Indicates whether various virtual keys are down. 
--          page_x      -   Specifies the x-coordinate of the cursor in PDF user 
--space. 
--          page_y      -   Specifies the y-coordinate of the cursor in PDF user 
--space. 
-- Return Value: 
--          TRUE indicates success-- otherwise false. 
--DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonDown(void *hHandle, void *page, modifier.l, page_x.d, page_y.d) 
FORM_OnLButtonDown.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) 
 
-- Function: FORM_OnLButtonUp 
--          You can call this member function when the user releases the left 
--mouse button. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--          page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--          modifier    -   Indicates whether various virtual keys are down. 
--          page_x      -   Specifies the x-coordinate of the cursor in device. 
--          page_y      -   Specifies the y-coordinate of the cursor in device. 
-- Return Value: 
--          TRUE indicates success-- otherwise false. 
--DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonUp(void *hHandle, void *page, modifier.l, page_x.d, page_y.d) 
FORM_OnLButtonUp.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) 
--FORM_OnRButtonDown.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) 
FORM_OnRButtonDown.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) 
FORM_OnRButtonUp.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) 
 
-- Function: FORM_OnKeyDown 
--          You can call this member function when a nonsystem key is pressed. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--          page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--          nKeyCode    -   Indicates whether various virtual keys are down. 
--          modifier    -   Contains the scan code, key-transition code, *previous key state, And context code. 
-- Return Value: 
--          TRUE indicates success-- otherwise false. 
--DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyDown(void *hHandle, void *page, nKeyCode.l, modifier.l) 
FORM_OnKeyDown.l(hHandle.i, page.i, nKeyCode.l, modifier.l) 
 
-- Function: FORM_OnKeyUp 
--          You can call this member function when a nonsystem key is released. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--          page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--          nKeyCode    -   The virtual-key code of the given key. 
--          modifier    -   Contains the scan code, key-transition code, *previous key state, And context code. 
-- Return Value: 
--          TRUE indicates success-- otherwise false. 
--DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyUp(void *hHandle, void *page, nKeyCode.l, modifier.l) 
FORM_OnKeyUp.l(hHandle.i, page.i, nKeyCode.l, modifier.l) 
 
-- Function: FORM_OnChar 
--          You can call this member function when a keystroke translates To a 
--nonsystem character. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--          page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--          nChar       -   The character code value of the key. 
--          modifier    -   Contains the scan code, key-transition code, *previous key state, And context code. 
-- Return Value: 
--          TRUE indicates success-- otherwise false. 
--DLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(void *hHandle, void *page, nChar.l, modifier.l) 
FORM_OnChar.l(hHandle.i, page.i, nChar.l, modifier.l) 
 
-- Function: FORM_ForceToKillFocus. 
--          You can call this member function To force To kill the focus of the 
--form field which got focus. 
--          It would kill the focus on the form field, save the value of form 
--field If it's changed by user. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
-- Return Value: 
--          TRUE indicates success-- otherwise false. 
--DLLEXPORT FPDF_BOOL STDCALL FORM_ForceToKillFocus(void *hHandle) 
FORM_ForceToKillFocus.l(hHandle.i) 
 
-- Function: FPDFPage_HasFormFieldAtPoint 
--     Get the form field type by point. 
-- Parameters: 
--     hHandle     -   Handle To the form fill Module. Returned by 
--                     FPDFDOC_InitFormFillEnvironment(). 
--     page        -   Handle To the page. Returned by FPDF_LoadPage(). 
--     page_x      -   X position in PDF "user space". 
--     page_y      -   Y position in PDF "user space". 
-- Return Value: 
--     Return the type of the form field-- -1 indicates no field. 
--     See field types above. 
--DLLEXPORT int STDCALL FPDFPage_HasFormFieldAtPoint(void *hHandle, void *page, page_x.d, page_y.d) 
FPDFPage_HasFormFieldAtPoint.l(hHandle.i, page.i, page_x.d, page_y.d) 
 
-- Function: FPDPage_HasFormFieldAtPoint 
--     DEPRECATED. Please use FPDFPage_HasFormFieldAtPoint. 
--DLLEXPORT int STDCALL FPDPage_HasFormFieldAtPoint(void *hHandle, void *page, page_x.d, page_y.d) 
FPDPage_HasFormFieldAtPoint.l(hHandle.i, page.i, page_x.d, page_y.d) 
 
-- Function: FPDFPage_FormFieldZOrderAtPoint 
--     Get the form field z-order by point. 
-- Parameters: 
--     hHandle     -   Handle To the form fill Module. Returned by 
--                     FPDFDOC_InitFormFillEnvironment(). 
--     page        -   Handle To the page. Returned by FPDF_LoadPage(). 
--     page_x      -   X position in PDF "user space". 
--     page_y      -   Y position in PDF "user space". 
-- Return Value: 
--     Return the z-order of the form field-- -1 indicates no field. 
--     Higher numbers are closer To the front. 
--DLLEXPORT int STDCALL FPDFPage_FormFieldZOrderAtPoint(void *hHandle, void *page, page_x.d, page_y.d) 
FPDFPage_FormFieldZOrderAtPoint.l(hHandle.i, page.i, page_x.d, page_y.d) 
 
-- Function: FPDF_SetFormFieldHighlightColor 
--          Set the highlight color of specified Or all the form fields in the 
--document. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--          doc         -   Handle To the document. Returned by 
--FPDF_LoadDocument function. 
--          fieldType   -   A 32-bit integer indicating the type of a form 
--field(defined above). 
--          color       -   The highlight color of the form field.Constructed by 
--0xxxrrggbb. 
-- Return Value: 
--          NONE. 
-- Comments: 
--          When the parameter fieldType is set To zero, the highlight color will be applied To all the form fields in the document. 
--          Please refresh the client window To show the highlight immediately if necessary. 
FPDF_SetFormFieldHighlightColor(hHandle.i, fieldType.l, color.i) 
 
-- Function: FPDF_SetFormFieldHighlightAlpha 
--          Set the transparency of the form field highlight color in the 
--document. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--          doc         -   Handle To the document. Returned by 
--FPDF_LoadDocument function. 
--          alpha       -   The transparency of the form field highlight color. 
--between 0-255. 
-- Return Value: 
--          NONE. 
FPDF_SetFormFieldHighlightAlpha(hHandle.i, alpha.a) 
 
-- Function: FPDF_RemoveFormFieldHighlight 
--          Remove the form field highlight color in the document. 
-- Parameters: 
--          hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
-- Return Value: 
--          NONE. 
-- Comments: 
--          Please refresh the client window To remove the highlight immediately 
--if necessary. 
FPDF_RemoveFormFieldHighlight(hHandle.i) 
 
-- Function: FPDF_FFLDraw 
--           Render FormFields And popup window on a page To a device independent 
--bitmap. 
-- Parameters: 
--           hHandle     -   Handle To the form fill Module. Returned by 
--FPDFDOC_InitFormFillEnvironment. 
--           bitmap      -   Handle To the device independent bitmap (As the 
--output buffer). 
--                           Bitmap handle can be created by FPDFBitmap_Create 
--function. 
--           page        -   Handle To the page. Returned by FPDF_LoadPage 
--function. 
--           start_x     -   Left pixel position of the display area in the 
--device coordinate. 
--           start_y     -   Top pixel position of the display area in the device 
--coordinate. 
--           size_x      -   Horizontal size (in pixels) For displaying the page. 
--           size_y      -   Vertical size (in pixels) For displaying the page. 
--           rotate      -   Page orientation: 0 (normal), 1 (rotated 90 degrees 
--clockwise), *                               2 (rotated 180 degrees), 3 (rotated 90 degrees 
--counter-clockwise). 
--           flags       -   0 For normal display, Or combination of flags 
--defined above. 
-- Return Value: 
--           None. 
-- Comments: 
--           This function is designed To render annotations that are 
--user-interactive, which are widget annotation (For FormFields) And popup 
--annotation. 
--           With FPDF_ANNOT flag, this function will render popup annotation 
--when users mouse-hover on non-widget annotation. Regardless of FPDF_ANNOT flag, *this function will always render widget annotations For FormFields. 
--           In order To implement the FormFill functions, implementation should 
--call this function after rendering functions, such As FPDF_RenderPageBitmap Or 
--FPDF_RenderPageBitmap_Start, finish rendering the page contents. 
FPDF_FFLDraw(hHandle.i, bitmap.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l) 
 
FPDF_FFLRecord(hHandle.i, recorder.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l) 
 
-- Function: FPDF_HasXFAField 
--                      This method is designed To check whether a pdf document has XFA fields. 
-- Parameters: 
--                      document                -       Handle To document. 
--Returned by FPDF_LoadDocument function. 
--                      docType                 -       Document type defined As 
--DOCTYPE_xxx. 
-- Return Value: 
--                      TRUE indicates that the input document has XFA fields, *otherwise FALSE. 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_HasXFAField(document.i, int* docType) 
FPDF_HasXFAField.l(document.i, *docType.long) 
 
-- Function: FPDF_LoadXFA 
--          If the document consists of XFA fields, there should call this 
--method To load XFA fields. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
-- Return Value: 
--          TRUE indicates success,otherwise FALSE. 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_LoadXFA(document.i) 
FPDF_LoadXFA.l(document.i) 
 
-- Function: FPDF_Widget_Undo 
--          This method will implement the undo feature For the specified xfa 
--field. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          hWidget         -   Handle To the xfa field. 
-- Return Value: 
--          None. 
FPDF_Widget_Undo(document.i, hWidget.i) 
 
-- Function: FPDF_Widget_Redo 
--          This method will implement the redo feature For the specified xfa 
--field. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          hWidget         -   Handle To the xfa field. 
-- Return Value: 
--          None. 
FPDF_Widget_Redo(document.i, hWidget.i) 
 
-- Function: FPDF_Widget_SelectAll 
--          This method will implement the Select all feature For the specified 
--xfa field. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          hWidget         -   Handle To the xfa field. 
-- Return Value: 
--          None. 
FPDF_Widget_SelectAll(document.i, hWidget.i) 
 
-- Function: FPDF_Widget_Copy 
--          This method will implement the copy feature For the specified xfa 
--field. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          hWidget         -   Handle To the xfa field. 
--          wsText          -   Pointer To Data buffer To receive the copied 
--data, in UTF-16LE format. 
--          size            -   The Data buffer size. 
-- Return Value: 
--          None. 
FPDF_Widget_Copy(document.i, hWidget.i, *wsText.string, *size.Integer) 
 
-- Function: FPDF_Widget_Cut 
--          This method will implement the cut feature For the specified xfa 
--field. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          hWidget         -   Handle To the xfa field. 
--          wsText          -   Pointer To Data buffer To receive the cut 
--data,in UTF-16LE format. 
--          size            -   The Data buffer size,Not the byte number. 
-- Return Value: 
--          None. 
FPDF_Widget_Cut(document.i, hWidget.i, *wsText.string, *size.Integer) 
 
-- Function: FPDF_Widget_Paste 
--          This method will implement the paste feature For the specified xfa 
--field. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          hWidget         -   Handle To the xfa field. 
--          wsText          -   The paste text buffer, in UTF-16LE format. 
--          size            -   The Data buffer size,Not the byte number. 
-- Return Value: 
--          None. 
FPDF_Widget_Paste(document.i, hWidget.i, *wsText.string, size.i) 
 
-- Function: FPDF_Widget_ReplaceSpellCheckWord 
--          This method will implement the spell check feature For the specified 
--xfa field. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          hWidget         -   Handle To the xfa field. 
--          x               -   The x value of the specified point. 
--          y               -   The y value of the specified point. 
--          bsText          -   The text buffer needed To be speck check, in 
--UTF-16LE format. 
-- Return Value: 
--          None. 
FPDF_Widget_ReplaceSpellCheckWord(document.i, hWidget.i, x.f, y.f, *bsText.p-ascii) 
 
-- Function: FPDF_Widget_GetSpellCheckWords 
--          This method will implement the spell check feature For the specified 
--xfa field. 
-- Parameters: 
--          document        -   Handle To document. Returned by 
--FPDF_LoadDocument function. 
--          hWidget         -   Handle To the xfa field. 
--          x               -   The x value of the specified point. 
--          y               -   The y value of the specified point. 
--          stringHandle    -   Pointer To FPDF_STRINGHANDLE To receive the 
--speck check text buffer, in UTF-16LE format. 
-- Return Value: 
--          None. 
FPDF_Widget_GetSpellCheckWords(document.i, hWidget.i, x.f, y.f, *stringHandle.string) 
 
-- Function: FPDF_StringHandleCounts 
--          This method will get the count of the text buffer. 
-- Parameters: 
--          stringHandle    -   Pointer To FPDF_STRINGHANDLE. 
-- Return Value: 
--          None. 
--DLLEXPORT int STDCALL FPDF_StringHandleCounts(void *stringHandle) 
FPDF_StringHandleCounts.l(*stringHandle.string) 
 
-- Function: FPDF_StringHandleGetStringByIndex 
--          This method will get the specified index of the text buffer. 
-- Parameters: 
--          stringHandle    -   Pointer To FPDF_STRINGHANDLE. 
--          index           -   The specified index of text buffer. 
--          bsText          -   Pointer To Data buffer To receive the textbuffer, in UTF-16LE format. 
--          size            -   The byte size of Data buffer. 
-- Return Value: 
--          TRUE indicates success, otherwise FALSE. 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_StringHandleGetStringByIndex(void *stringHandle, index.l, FPDF_BYTESTRING bsText, *size.Integer) 
FPDF_StringHandleGetStringByIndex.l(*stringHandle.string, index.l, *bsText.p-ascii, *size.Integer) 
 
-- Function: FPDF_StringHandleRelease 
--          This method will release the FPDF_STRINGHANDLE. 
-- Parameters: 
--          stringHandle    -   Pointer To FPDF_STRINGHANDLE. 
-- Return Value: 
--          None. 
FPDF_StringHandleRelease(*stringHandle.string) 
 
-- Function: FPDF_StringHandleAddString 
--          This method will add the specified text buffer. 
-- Parameters: 
--          stringHandle    -   Pointer To FPDF_STRINGHANDLE. 
--          bsText          -   Pointer To Data buffer of the text buffer, in 
--UTF-16LE format. 
--          size            -   The byte size of Data buffer. 
-- Return Value: 
--          TRUE indicates success, otherwise FALSE. 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_StringHandleAddString(void *stringHandle, FPDF_BYTESTRING bsText, size.i) 
FPDF_StringHandleAddString.l(*stringHandle.string, *bsText.p-ascii, size.i) 
 
 
 
-- Import pages to a FPDF_DOCUMENT. 
-- 
--   dest_doc  - The destination document for the pages. 
--   src_doc   - The document to be imported. 
--   pagerange - A page range string, Such as "1,3,5-7". If |pagerange| is NULL, all pages from |src_doc| are imported. 
--   index     - The page index to insert at. 
-- 
-- Returns TRUE on success. 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_ImportPages(FPDF_DOCUMENT dest_doc.i, FPDF_DOCUMENT src_doc, FPDF_BYTESTRING pagerange, index.l) 
FPDF_ImportPages.l(dest_doc.i, src_doc.i, *pagerange.p-ascii, index.l) 
 
-- Copy the viewer preferences from |src_doc| into |dest_doc|. 
-- 
--   dest_doc - Document to write the viewer preferences into. 
--   src_doc  - Document to read the viewer preferences from. 
-- 
-- Returns TRUE on success. 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_CopyViewerPreferences(FPDF_DOCUMENT dest_doc, FPDF_DOCUMENT src_doc) 
FPDF_CopyViewerPreferences.l(dest_doc.i, src_doc.i) 
 
 
-- Function: FPDF_RenderPageBitmap_Start 
--          Start to render page contents to a device independent bitmap 
--          progressively. 
-- Parameters: 
--          bitmap      -   Handle to the device independent bitmap (as the 
--          output buffer). 
--                          Bitmap handle can be created by FPDFBitmap_Create 
--                          function. 
--          page        -   Handle to the page. Returned by FPDF_LoadPage 
--          function. 
--          start_x     -   Left pixel position of the display area in the 
--          bitmap coordinate. 
--          start_y     -   Top pixel position of the display area in the bitmap 
--          coordinate. 
--          size_x      -   Horizontal size (in pixels) for displaying the page. 
--          size_y      -   Vertical size (in pixels) for displaying the page. 
--          rotate      -   Page orientation: 0 (normal), 1 (rotated 90 degrees 
--          clockwise), --                              2 (rotated 180 degrees), 3 (rotated 90 degrees 
--                              counter-clockwise). 
--          flags       -   0 for normal display, or combination of flags 
--                          defined in fpdfview.h. With FPDF_ANNOT flag, it 
--                          renders all annotations that does not require 
--                          user-interaction, which are all annotations except 
--                          widget and popup annotations. 
--          pause       -   The IFSDK_PAUSE interface.A callback mechanism 
--          allowing the page rendering process 
-- Return value: 
--          Rendering Status. See flags for progressive process status for the 
--          details. 
-- 
--DLLEXPORT int STDCALL FPDF_RenderPageBitmap_Start(void *bitmap, void *page, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l, IFSDK_PAUSE* pause) 
FPDF_RenderPageBitmap_Start.l(bitmap.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l, *pause.IFSDK_PAUSE) 
 
-- Function: FPDF_RenderPage_Continue 
--          Continue rendering a PDF page. 
-- Parameters: 
--          page        -   Handle to the page. Returned by FPDF_LoadPage 
--          function. 
--          pause       -   The IFSDK_PAUSE interface.A callback mechanism 
--          allowing the page rendering process 
--                          to be paused before it's finished. This can be NULL 
--                          if you don't want to pause. 
-- Return value: 
--          The rendering status. See flags for progressive process status for 
--          the details. 
--DLLEXPORT int STDCALL FPDF_RenderPage_Continue(void *page, IFSDK_PAUSE* pause) 
FPDF_RenderPage_Continue.l(page.i, *pause.IFSDK_PAUSE) 
 
-- Function: FPDF_RenderPage_Close 
--          Release the resource allocate during page rendering. Need to be 
--          called after finishing rendering or 
--          cancel the rendering. 
-- Parameters: 
--          page        -   Handle to the page. Returned by FPDF_LoadPage 
--          function. 
-- Return value: 
--          NULL 
FPDF_RenderPage_Close(page.i) 
 
 
 
 
-- Function: FPDF_SaveAsCopy 
--          Saves the copy of specified document in custom way. 
-- Parameters: 
--          document        -   Handle to document. Returned by 
--          FPDF_LoadDocument and FPDF_CreateNewDocument. 
--          pFileWrite      -   A pointer to a custom file write structure. 
--          flags           -   The creating flags. 
-- Return value: 
--          TRUE for succeed, FALSE for failed. 
-- 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy(document.i, FPDF_FILEWRITE* pFileWrite, flags.i) 
FPDF_SaveAsCopy.l(document.i, *pFileWrite.FPDF_FILEWRITE, flags.i) 
 
-- Function: FPDF_SaveWithVersion 
--          Same as function ::FPDF_SaveAsCopy, except the file version of the 
--          saved document could be specified by user. 
-- Parameters: 
--          document        -   Handle to document. 
--          pFileWrite      -   A pointer to a custom file write structure. 
--          flags           -   The creating flags. 
--          fileVersion     -   The PDF file version. File version: 14 for 1.4, --          15 for 1.5, ... 
-- Return value: 
--          TRUE if succeed, FALSE if failed. 
-- 
--DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(document.i, FPDF_FILEWRITE* pFileWrite, flags.i, fileVersion.l) 
FPDF_SaveWithVersion.l(document.i, *pFileWrite.FPDF_FILEWRITE, flags.i, fileVersion.l) 
 
 
 
 
-- Get the character index in |text_page| internal character list. 
-- 
--   text_page  - a text page information structure. 
--   nTextIndex - index of the text returned from |FPDFText_GetText|. 
-- 
-- Returns the index of the character in internal character list. -1 for error. 
--DLLEXPORT int STDCALL FPDFText_GetCharIndexFromTextIndex(void *text_page, nTextIndex.l) 
FPDFText_GetCharIndexFromTextIndex.l(text_page.i, nTextIndex.l) 
 
 
-- Function: FPDF_GetDefaultTTFMap 
--    Returns a pointer To the Default character set To TT Font name Map. The 
--    Map is an Array of FPDF_CharsetFontMap structs, With its End indicated 
--    by a { -1, NULL } entry. 
-- Parameters: 
--     None. 
-- Return Value: 
--     Pointer To the Charset Font Map. 
--DLLEXPORT const FPDF_CharsetFontMap* STDCALL FPDF_GetDefaultTTFMap() 
FPDF_GetDefaultTTFMap.i() 
 
-- Function: FPDF_AddInstalledFont 
--          Add a system font To the List in Foxit SDK. 
-- Comments: 
--          This function is only called during the system font List building 
--process. 
-- Parameters: 
--          mapper          -   Opaque pointer To Foxit font mapper 
--          face            -   The font face name 
--          charset         -   Font character set. See above defined constants. 
-- Return Value: 
--          None. 
FPDF_AddInstalledFont(mapper.i, *face.p-ascii, charset.l) 
 
-- Function: FPDF_SetSystemFontInfo 
--          Set the system font info Interface into Foxit SDK 
-- Comments: 
--          Platform support implementation should implement required methods of 
--FFDF_SYSFONTINFO Interface, *          then call this function during SDK initialization process. 
-- Parameters: 
--          pFontInfo       -   Pointer To a FPDF_SYSFONTINFO Structure 
-- Return Value: 
--          None 
FPDF_SetSystemFontInfo(*pFontInfo.FPDF_SYSFONTINFO) 
 
-- Function: FPDF_GetDefaultSystemFontInfo 
--          Get Default system font info Interface For current platform 
-- Comments: 
--          For some platforms Foxit SDK implement a Default version of system 
--font info Interface. 
--          The Default implementation can be used in FPDF_SetSystemFontInfo 
--function. 
-- Parameters: 
--          None 
-- Return Value: 
--          Pointer To a FPDF_SYSFONTINFO Structure describing the Default 
--interface. 
--          Or NULL If the platform doesn't have a default interface. 
--          Application should call FPDF_FreeMemory To free the returned 
--pointer. 
--DLLEXPORT FPDF_SYSFONTINFO* STDCALL FPDF_GetDefaultSystemFontInfo() 
FPDF_GetDefaultSystemFontInfo.i() 
 
 
 
 
-- Function: FPDFText_LoadPage 
--          Prepare information about all characters in a page. 
-- Parameters: 
--          page    -   Handle to the page. Returned by FPDF_LoadPage function 
--          (in FPDFVIEW module). 
-- Return value: 
--          A handle to the text page information structure. 
--          NULL if something goes wrong. 
-- Comments: 
--          Application must call FPDFText_ClosePage to release the text page 
--          information. 
-- 
--DLLEXPORT FPDF_TEXTPAGE STDCALL FPDFText_LoadPage(void *page) 
FPDFText_LoadPage.i(page.i) 
 
-- Function: FPDFText_ClosePage 
--          Release all resources allocated for a text page information 
--          structure. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
-- Return Value: 
--          None. 
-- 
FPDFText_ClosePage(text_page.i) 
 
-- Function: FPDFText_CountChars 
--          Get number of characters in a page. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
-- Return value: 
--          Number of characters in the page. Return -1 for error. 
--          Generated characters, like additional space characters, new line 
--          characters, are also counted. 
-- Comments: 
--          Characters in a page form a "stream", inside the stream, each 
--          character has an index. 
--          We will use the index parameters in many of FPDFTEXT functions. The 
--          first character in the page 
--          has an index value of zero. 
-- 
--DLLEXPORT int STDCALL FPDFText_CountChars(void *text_page) 
FPDFText_CountChars.l(text_page.i) 
 
-- Function: FPDFText_GetUnicode 
--          Get Unicode of a character in a page. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          index       -   Zero-based index of the character. 
-- Return value: 
--          The Unicode of the particular character. 
--          If a character is not encoded in Unicode and Foxit engine can't 
--          convert to Unicode, the return value will be zero. 
-- 
--DLLEXPORT unsigned int STDCALL FPDFText_GetUnicode(void *text_page, index.l) 
FPDFText_GetUnicode.l(text_page.i, index.l) 
 
-- Function: FPDFText_GetFontSize 
--          Get the font size of a particular character. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          index       -   Zero-based index of the character. 
-- Return value: 
--          The font size of the particular character, measured in points (about 
--          1/72 inch). 
--          This is the typographic size of the font (so called "em size"). 
-- 
--DLLEXPORT double STDCALL FPDFText_GetFontSize(void *text_page, index.l) 
FPDFText_GetFontSize.d(text_page.i, index.l) 
 
-- Function: FPDFText_GetCharBox 
--          Get bounding box of a particular character. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          index       -   Zero-based index of the character. 
--          left        -   Pointer to a double number receiving left position 
--          of the character box. 
--          right       -   Pointer to a double number receiving right position 
--          of the character box. 
--          bottom      -   Pointer to a double number receiving bottom position 
--          of the character box. 
--          top         -   Pointer to a double number receiving top position of 
--          the character box. 
-- Return Value: 
--          None. 
-- Comments: 
--          All positions are measured in PDF "user space". 
-- 
FPDFText_GetCharBox(text_page.i, index.l, *left.Double, *right.Double, *bottom.Double, *top.Double) 
 
-- Function: FPDFText_GetCharIndexAtPos 
--          Get the index of a character at or nearby a certain position on the 
--          page. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          x           -   X position in PDF "user space". 
--          y           -   Y position in PDF "user space". 
--          xTolerance  -   An x-axis tolerance value for character hit 
--          detection, in point unit. 
--          yTolerance  -   A y-axis tolerance value for character hit 
--          detection, in point unit. 
-- Return Value: 
--          The zero-based index of the character at, or nearby the point (x,y). 
--          If there is no character at or nearby the point, return value will 
--          be -1. 
--          If an error occurs, -3 will be returned. 
-- 
--DLLEXPORT int STDCALL FPDFText_GetCharIndexAtPos(void *text_page, x.d, y.d, double xTolerance, double yTolerance) 
FPDFText_GetCharIndexAtPos.l(text_page.i, x.d, y.d, xTolerance.d, yTolerance.d) 
 
-- Function: FPDFText_GetText 
--          Extract unicode text string from the page. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          start_index -   Index for the start characters. 
--          count       -   Number of characters to be extracted. 
--          result      -   A buffer (allocated by application) receiving the 
--          extracted unicodes. 
--                          The size of the buffer must be able to hold the 
--                          number of characters plus a terminator. 
-- Return Value: 
--          Number of characters written into the result buffer, including the 
--          trailing terminator. 
-- Comments: 
--          This function ignores characters without unicode information. 
-- 
--DLLEXPORT int STDCALL FPDFText_GetText(void *text_page, start_index.l, count.l, *result.long) 
FPDFText_GetText.l(text_page.i, start_index.l, count.l, *result.long) 
 
-- Function: FPDFText_CountRects 
--          Count number of rectangular areas occupied by a segment of texts. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          start_index -   Index for the start characters. 
--          count       -   Number of characters. 
-- Return value: 
--          Number of rectangles. Zero for error. 
-- Comments: 
--          This function, along with FPDFText_GetRect can be used by 
--          applications to detect the position 
--          on the page for a text segment, so proper areas can be highlighted 
--          or something. 
--          FPDFTEXT will automatically merge small character boxes into bigger 
--          one if those characters 
--          are on the same line and use same font settings. 
-- 
--DLLEXPORT int STDCALL FPDFText_CountRects(void *text_page, start_index.l, count.l) 
FPDFText_CountRects.l(text_page.i, start_index.l, count.l) 
 
-- Function: FPDFText_GetRect 
--          Get a rectangular area from the result generated by 
--          FPDFText_CountRects. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          rect_index  -   Zero-based index for the rectangle. 
--          left        -   Pointer to a double value receiving the rectangle 
--          left boundary. 
--          top         -   Pointer to a double value receiving the rectangle 
--          top boundary. 
--          right       -   Pointer to a double value receiving the rectangle 
--          right boundary. 
--          bottom      -   Pointer to a double value receiving the rectangle 
--          bottom boundary. 
-- Return Value: 
--          None. 
-- 
FPDFText_GetRect(text_page.i, rect_index.l, *left.Double, *top.Double, *right.Double, *bottom.Double) 
 
-- Function: FPDFText_GetBoundedText 
--          Extract unicode text within a rectangular boundary on the page. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          left        -   Left boundary. 
--          top         -   Top boundary. 
--          right       -   Right boundary. 
--          bottom      -   Bottom boundary. 
--          buffer      -   A unicode buffer. 
--          buflen      -   Number of characters (not bytes) for the buffer, excluding an additional terminator. 
-- Return Value: 
--          If buffer is NULL or buflen is zero, return number of characters 
--          (not bytes) of text present within 
--          the rectangle, excluding a terminating NUL.  Generally you should 
--          pass a buffer at least one larger 
--          than this if you want a terminating NUL, which will be provided if 
--          space is available. 
--          Otherwise, return number of characters copied into the buffer, including the terminating NUL 
--          when space for it is available. 
-- Comment: 
--          If the buffer is too small, as much text as will fit is copied into 
--          it. 
-- 
--DLLEXPORT int STDCALL FPDFText_GetBoundedText(void *text_page, left.d, top.d, right.d, bottom.d, unsigned short* buffer, buflen.l) 
FPDFText_GetBoundedText.l(text_page.i, left.d, top.d, right.d, bottom.d, *buffer.string, buflen.l) 
 
 
-- Function: FPDFText_FindStart 
--          Start a search. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
--          findwhat    -   A unicode match pattern. 
--          flags       -   Option flags. 
--          start_index -   Start from this character. -1 for end of the page. 
-- Return Value: 
--          A handle for the search context. FPDFText_FindClose must be called 
--          to release this handle. 
-- 
--DLLEXPORT FPDF_SCHHANDLE STDCALL FPDFText_FindStart(void *text_page, FPDF_WIDESTRING findwhat, flags.i, start_index.l) 
FPDFText_FindStart.i(text_page.i, *findwhat.string, flags.i, start_index.l) 
 
-- Function: FPDFText_FindNext 
--          Search in the direction from page start to end. 
-- Parameters: 
--          handle      -   A search context handle returned by 
--          FPDFText_FindStart. 
-- Return Value: 
--          Whether a match is found. 
-- 
--DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindNext(void *handle) 
FPDFText_FindNext.l(handle.i) 
 
-- Function: FPDFText_FindPrev 
--          Search in the direction from page end to start. 
-- Parameters: 
--          handle      -   A search context handle returned by 
--          FPDFText_FindStart. 
-- Return Value: 
--          Whether a match is found. 
-- 
--DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindPrev(void *handle) 
FPDFText_FindPrev.l(handle.i) 
 
-- Function: FPDFText_GetSchResultIndex 
--          Get the starting character index of the search result. 
-- Parameters: 
--          handle      -   A search context handle returned by 
--          FPDFText_FindStart. 
-- Return Value: 
--          Index for the starting character. 
-- 
--DLLEXPORT int STDCALL FPDFText_GetSchResultIndex(void *handle) 
FPDFText_GetSchResultIndex.l(handle.i) 
 
-- Function: FPDFText_GetSchCount 
--          Get the number of matched characters in the search result. 
-- Parameters: 
--          handle      -   A search context handle returned by 
--          FPDFText_FindStart. 
-- Return Value: 
--          Number of matched characters. 
-- 
--DLLEXPORT int STDCALL FPDFText_GetSchCount(void *handle) 
FPDFText_GetSchCount.l(handle.i) 
 
-- Function: FPDFText_FindClose 
--          Release a search context. 
-- Parameters: 
--          handle      -   A search context handle returned by 
--          FPDFText_FindStart. 
-- Return Value: 
--          None. 
-- 
FPDFText_FindClose(handle.i) 
 
-- Function: FPDFLink_LoadWebLinks 
--          Prepare information about weblinks in a page. 
-- Parameters: 
--          text_page   -   Handle to a text page information structure. 
--          Returned by FPDFText_LoadPage function. 
-- Return Value: 
--          A handle to the page's links information structure. 
--          NULL if something goes wrong. 
-- Comments: 
--          Weblinks are those links implicitly embedded in PDF pages. PDF also 
--          has a type of 
--          annotation called "link", FPDFTEXT doesn't deal with that kind of 
--          link. 
--          FPDFTEXT weblink feature is useful for automatically detecting links 
--          in the page 
--          contents. For example, things like "http:--www.foxitsoftware.com" 
--          will be detected, --          so applications can allow user to click on those characters to 
--          activate the link, --          even the PDF doesn't come with link annotations. 
-- 
--          FPDFLink_CloseWebLinks must be called to release resources. 
-- 
--DLLEXPORT FPDF_PAGELINK STDCALL FPDFLink_LoadWebLinks(void *text_page) 
FPDFLink_LoadWebLinks.i(text_page.i) 
 
-- Function: FPDFLink_CountWebLinks 
--          Count number of detected web links. 
-- Parameters: 
--          link_page   -   Handle returned by FPDFLink_LoadWebLinks. 
-- Return Value: 
--          Number of detected web links. 
-- 
--DLLEXPORT int STDCALL FPDFLink_CountWebLinks(void *link_page) 
FPDFLink_CountWebLinks.l(link_page.i) 
 
-- Function: FPDFLink_GetURL 
--          Fetch the URL information for a detected web link. 
-- Parameters: 
--          link_page   -   Handle returned by FPDFLink_LoadWebLinks. 
--          link_index  -   Zero-based index for the link. 
--          buffer      -   A unicode buffer for the result. 
--          buflen      -   Number of characters (not bytes) for the buffer, --                          including an additional terminator. 
-- Return Value: 
--          If |buffer| is NULL or |buflen| is zero, return the number of 
--          characters (not bytes) needed to buffer the result (an additional 
--          terminator is included in this count). 
--          Otherwise, copy the result into |buffer|, truncating at |buflen| if 
--          the result is too large to fit, and return the number of characters 
--          actually copied into the buffer (the additional terminator is also 
--          included in this count). 
--          If |link_index| does not correspond to a valid link, then the result 
--          is an empty string. 
-- 
--DLLEXPORT int STDCALL FPDFLink_GetURL(void *link_page, int link_index, unsigned short* buffer, buflen.l) 
FPDFLink_GetURL.l(link_page.i, link_index.l, *buffer.string, buflen.l) 
 
-- Function: FPDFLink_CountRects 
--          Count number of rectangular areas for the link. 
-- Parameters: 
--          link_page   -   Handle returned by FPDFLink_LoadWebLinks. 
--          link_index  -   Zero-based index for the link. 
-- Return Value: 
--          Number of rectangular areas for the link.  If |link_index| does 
--          not correspond to a valid link, then 0 is returned. 
-- 
--DLLEXPORT int STDCALL FPDFLink_CountRects(void *link_page, int link_index) 
FPDFLink_CountRects.l(link_page.i, link_index.l) 
 
-- Function: FPDFLink_GetRect 
--          Fetch the boundaries of a rectangle for a link. 
-- Parameters: 
--          link_page   -   Handle returned by FPDFLink_LoadWebLinks. 
--          link_index  -   Zero-based index for the link. 
--          rect_index  -   Zero-based index for a rectangle. 
--          left        -   Pointer to a double value receiving the rectangle 
--                          left boundary. 
--          top         -   Pointer to a double value receiving the rectangle 
--                          top boundary. 
--          right       -   Pointer to a double value receiving the rectangle 
--                          right boundary. 
--          bottom      -   Pointer to a double value receiving the rectangle 
--                          bottom boundary. 
-- Return Value: 
--          None.  If |link_index| does not correspond to a valid link, then 
--          |left|, |top|, |right|, and |bottom| remain unmodified. 
-- 
FPDFLink_GetRect(link_page.i, link_index.l, rect_index.l, *left.Double, *top.Double, *right.Double, *bottom.Double) 
 
-- Function: FPDFLink_CloseWebLinks 
--          Release resources used by weblink feature. 
-- Parameters: 
--          link_page   -   Handle returned by FPDFLink_LoadWebLinks. 
-- Return Value: 
--          None. 
-- 
FPDFLink_CloseWebLinks(link_page.i) 
 
 
 
--  Set "MediaBox" entry To the page dictionary. 
-- @param[in] page   - Handle To a page. 
-- @param[in] left   - The left of the rectangle. 
-- @param[in] bottom - The bottom of the rectangle. 
-- @param[in] right  - The right of the rectangle. 
-- @param[in] top    - The top of the rectangle. 
-- @retval None. 
FPDFPage_SetMediaBox(page.i, left.f, bottom.f, right.f, top.f) 
 
--  Set "CropBox" entry To the page dictionary. 
-- @param[in] page   - Handle To a page. 
-- @param[in] left   - The left of the rectangle. 
-- @param[in] bottom - The bottom of the rectangle. 
-- @param[in] right  - The right of the rectangle. 
-- @param[in] top    - The top of the rectangle. 
-- @retval None. 
FPDFPage_SetCropBox(page.i, left.f, bottom.f, right.f, top.f) 
 
--  Get "MediaBox" entry from the page dictionary. 
-- @param[in] page   - Handle To a page. 
-- @param[in] left   - Pointer To a double value receiving the left of the 
-- rectangle. 
-- @param[in] bottom - Pointer To a double value receiving the bottom of the 
-- rectangle. 
-- @param[in] right  - Pointer To a double value receiving the right of the 
-- rectangle. 
-- @param[in] top    - Pointer To a double value receiving the top of the 
-- rectangle. 
-- @retval True If success,Else fail. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetMediaBox(void *page, float* left, float* bottom, float* right, float* top) 
FPDFPage_GetMediaBox.l(page.i, *left.float, *bottom.float, *right.float, *top.float) 
 
--  Get "CropBox" entry from the page dictionary. 
-- @param[in] page   - Handle To a page. 
-- @param[in] left   - Pointer To a double value receiving the left of the 
-- rectangle. 
-- @param[in] bottom - Pointer To a double value receiving the bottom of the 
-- rectangle. 
-- @param[in] right  - Pointer To a double value receiving the right of the 
-- rectangle. 
-- @param[in] top    - Pointer To a double value receiving the top of the 
-- rectangle. 
-- @retval True If success,Else fail. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetCropBox(void *page, float* left, float* bottom, float* right, float* top) 
FPDFPage_GetCropBox.l(page.i, *left.float, *bottom.float, *right.float, *top.float) 
 
-- Transform the whole page With a specified matrix, then clip the page content 
-- region. 
-- 
-- @param[in] page        - A page handle. 
-- @param[in] matrix      - The transform matrix. 
-- @param[in] clipRect    - A rectangle page area To be clipped. 
-- @Note. This function will transform the whole page, And would take effect To 
-- all the objects in the page. 
--DLLEXPORT FPDF_BOOL STDCALL FPDFPage_TransFormWithClip(void *page, FS_MATRIX* matrix, FS_RECTF* clipRect) 
FPDFPage_TransFormWithClip.l(page.i, *matrix.FS_MATRIX, *clipRect.FS_RECTF) 
 
-- Transform (scale, rotate, shear, move) the clip path of page object. 
-- @param[in] page_object - Handle To a page object. Returned by 
-- FPDFPageObj_NewImageObj. 
-- @param[in] a  - The coefficient "a" of the matrix. 
-- @param[in] b  - The coefficient "b" of the matrix. 
-- @param[in] c  - The coefficient "c" of the matrix. 
-- @param[in] d  - The coefficient "d" of the matrix. 
-- @param[in] e  - The coefficient "e" of the matrix. 
-- @param[in] f  - The coefficient "f" of the matrix. 
-- @retval None. 
FPDFPageObj_TransformClipPath(page_object.i, a.d, b.d, c.d, d.d, e.d, f.d) 
 
-- Create a new clip path, With a rectangle inserted. 
-- 
-- @param[in] left   - The left of the clip box. 
-- @param[in] bottom - The bottom of the clip box. 
-- @param[in] right  - The right of the clip box. 
-- @param[in] top    - The top of the clip box. 
-- @retval a handle To the clip path. 
--DLLEXPORT FPDF_CLIPPATH STDCALL FPDF_CreateClipPath(float left, float bottom, float right, float top) 
FPDF_CreateClipPath.i(left.f, bottom.f, right.f, top.f) 
 
-- Destroy the clip path. 
-- 
-- @param[in] clipPath - A handle To the clip path. 
-- Destroy the clip path. 
-- @retval None. 
FPDF_DestroyClipPath(clipPath.i) 
 
-- Clip the page content, the page content that outside the clipping region 
-- become invisible. 
-- 
-- @param[in] page        - A page handle. 
-- @param[in] clipPath    - A handle To the clip path. 
-- @Note. A clip path will be inserted before the page content stream Or content 
-- Array. In this way, the page content will be clipped 
-- by this clip path. 
FPDFPage_InsertClipPath(page.i, clipPath.i) 
*/ 
 
public constant 
	PFPDF_LIBRARY_CONFIG = C_POINTER, 
	PFPDF_FILEACCESS = C_POINTER, 
	PFX_DOWNLOADHINTS = C_POINTER, 
	PFS_QUADPOINTSF = C_POINTER, 
	PFPDF_FORMFILLINFO = C_POINTER, 
	PIFSDK_PAUSE = C_POINTER, 
	PFPDF_FILEWRITE = C_POINTER, 
	PFPDF_SYSFONTINFO = C_POINTER, 
	PFX_FILEAVAIL = C_POINTER, 
	PUNSUPPORT_INFO = C_POINTER, 
	PFS_RECTF = C_POINTER, 
	PFS_MATRIX = C_POINTER, 
	DOUBLEPOINTER = C_POINTER, 
	FLOATPOINTER = C_POINTER, 
	LONGPOINTER = C_POINTER, 
	INTEGERPOINTER = C_POINTER, 
	FUNCPOINTER = C_POINTER, 
	STRINGPOINTER = C_POINTER, 
	WSTRINGPOINTER = C_POINTER, 
	BUFFERPOINTER = C_POINTER, 
	BYTEPOINTER = C_POINTER, 
	PFPDF_BSTR = C_POINTER, 
	C_LPSTR = C_POINTER 
 
public atom pdfium = open_dll("pdfium.dll") 
public constant   
  FPDF_InitLibrary = define_c_proc(pdfium, "FPDF_InitLibrary", {}), 
  FPDF_InitLibraryWithConfig = define_c_proc(pdfium, "FPDF_InitLibraryWithConfig", {PFPDF_LIBRARY_CONFIG}), 
  FPDF_DestroyLibrary = define_c_proc(pdfium, "FPDF_DestroyLibrary", {}), 
  FPDF_SetSandBoxPolicy = define_c_proc(pdfium, "FPDF_SetSandBoxPolicy", {C_INT, C_DWORD}), 
  FPDF_SetTypefaceAccessibleFunc = define_c_proc(pdfium, "FPDF_SetTypefaceAccessibleFunc", {FUNCPOINTER}), 
  FPDF_SetPrintTextWithGDI = define_c_proc(pdfium, "FPDF_SetPrintTextWithGDI", {C_DWORD}), 
  FPDF_LoadCustom = define_c_proc(pdfium, "FPDF_LoadCustomC_INT", {PFPDF_FILEACCESS, C_LPSTR=0}), 
  FPDF_RenderPage = define_c_proc(pdfium, "FPDF_RenderPage", {C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD}), 
  FPDF_RenderPageBitmap = define_c_proc(pdfium, "FPDF_RenderPageBitmap", {C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD}), 
  FPDF_ClosePage = define_c_proc(pdfium, "FPDF_ClosePage", {C_INT}), 
  FPDF_CloseDocument = define_c_proc(pdfium, "FPDF_CloseDocument", {C_INT}), 
  FPDF_DeviceToPage = define_c_proc(pdfium, "FPDF_DeviceToPage", {C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER}), 
  FPDF_PageToDevice = define_c_proc(pdfium, "FPDF_PageToDevice", {C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER, LONGPOINTER, LONGPOINTER}), 
  FPDFBitmap_FillRect = define_c_proc(pdfium, "FPDFBitmap_FillRect", {C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_INT}), 
  FPDFBitmap_Destroy = define_c_proc(pdfium, "FPDFBitmap_Destroy", {C_INT}), 
  FPDFAvail_Destroy = define_c_proc(pdfium, "FPDFAvail_Destroy", {PFX_FILEAVAIL}), 
  FPDFPage_Delete = define_c_proc(pdfium, "FPDFPage_Delete", {C_INT, C_DWORD}), 
  FPDFPage_SetRotation = define_c_proc(pdfium, "FPDFPage_SetRotation", {C_INT, C_DWORD}), 
  FPDFPage_InsertObject = define_c_proc(pdfium, "FPDFPage_InsertObject", {C_INT, C_INT}), 
  FPDFPageObj_Transform = define_c_proc(pdfium, "FPDFPageObj_Transform", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE}), 
  FPDFPage_TransformAnnots = define_c_proc(pdfium, "FPDFPage_TransformAnnots", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE}), 
  FPDFDOC_ExitFormFillEnvironment = define_c_proc(pdfium, "FPDFDOC_ExitFormFillEnvironment", {C_HANDLE}), 
  FORM_OnAfterLoadPage = define_c_proc(pdfium, "FORM_OnAfterLoadPage", {C_INT, C_HANDLE}), 
  FORM_OnBeforeClosePage = define_c_proc(pdfium, "FORM_OnBeforeClosePage", {C_INT, C_HANDLE}), 
  FORM_DoDocumentJSAction = define_c_proc(pdfium, "FORM_DoDocumentJSAction", {C_HANDLE}), 
  FORM_DoDocumentOpenAction = define_c_proc(pdfium, "FORM_DoDocumentOpenAction", {C_HANDLE}), 
  FORM_DoDocumentAAction = define_c_proc(pdfium, "FORM_DoDocumentAAction", {C_HANDLE, C_DWORD}), 
  FORM_DoPageAAction = define_c_proc(pdfium, "FORM_DoPageAAction", {C_INT, C_HANDLE, C_DWORD}), 
  FPDF_SetFormFieldHighlightColor = define_c_proc(pdfium, "FPDF_SetFormFieldHighlightColor", {C_HANDLE, C_DWORD, C_INT}), 
  FPDF_SetFormFieldHighlightAlpha = define_c_proc(pdfium, "FPDF_SetFormFieldHighlightAlpha", {C_HANDLE, C_UCHAR}), 
  FPDF_RemoveFormFieldHighlight = define_c_proc(pdfium, "FPDF_RemoveFormFieldHighlight", {C_HANDLE}), 
  FPDF_FFLDraw = define_c_proc(pdfium, "FPDF_FFLDraw", {C_HANDLE, C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD}), 
  FPDF_FFLRecord = define_c_proc(pdfium, "FPDF_FFLRecord", {C_HANDLE, C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD}), 
  FPDF_Widget_Undo = define_c_proc(pdfium, "FPDF_Widget_Undo", {C_INT, C_INT}), 
  FPDF_Widget_Redo = define_c_proc(pdfium, "FPDF_Widget_Redo", {C_INT, C_INT}), 
  FPDF_Widget_SelectAll = define_c_proc(pdfium, "FPDF_Widget_SelectAll", {C_INT, C_INT}), 
  FPDF_Widget_Copy = define_c_proc(pdfium, "FPDF_Widget_Copy", {C_INT, C_INT, WSTRINGPOINTER, INTEGERPOINTER}), 
  FPDF_Widget_Cut = define_c_proc(pdfium, "FPDF_Widget_Cut", {C_INT, C_INT, WSTRINGPOINTER, INTEGERPOINTER}), 
  FPDF_Widget_Paste = define_c_proc(pdfium, "FPDF_Widget_Paste", {C_INT, C_INT, WSTRINGPOINTER, C_INT}), 
  FPDF_Widget_ReplaceSpellCheckWord = define_c_proc(pdfium, "FPDF_Widget_ReplaceSpellCheckWord", {C_INT, C_INT, C_FLOAT, C_FLOAT, C_LPSTR}), 
  FPDF_Widget_GetSpellCheckWords = define_c_proc(pdfium, "FPDF_Widget_GetSpellCheckWords", {C_INT, C_INT, C_FLOAT, C_FLOAT, C_LPSTR}), 
  FPDF_StringHandleRelease = define_c_proc(pdfium, "FPDF_StringHandleRelease", {C_LPSTR}), 
  FPDF_RenderPage_Close = define_c_proc(pdfium, "FPDF_RenderPage_Close", {C_INT}), 
  FPDF_AddInstalledFont = define_c_proc(pdfium, "FPDF_AddInstalledFont", {C_INT, C_LPSTR, C_DWORD}), 
  FPDF_SetSystemFontInfo = define_c_proc(pdfium, "FPDF_SetSystemFontInfo", {PFPDF_SYSFONTINFO}), 
  FPDFText_ClosePage = define_c_proc(pdfium, "FPDFText_ClosePage", {C_INT}), 
  FPDFText_GetCharBox = define_c_proc(pdfium, "FPDFText_GetCharBox", {C_INT, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER}), 
  FPDFText_GetRect = define_c_proc(pdfium, "FPDFText_GetRect", {C_INT, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER}), 
  FPDFText_FindClose = define_c_proc(pdfium, "FPDFText_FindClose", {C_HANDLE}), 
  FPDFLink_GetRect = define_c_proc(pdfium, "FPDFLink_GetRect", {C_INT, C_DWORD, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER}), 
  FPDFLink_CloseWebLinks = define_c_proc(pdfium, "FPDFLink_CloseWebLinks", {C_INT}), 
  FPDFPage_SetMediaBox = define_c_proc(pdfium, "FPDFPage_SetMediaBox", {C_INT, C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT}), 
  FPDFPage_SetCropBox = define_c_proc(pdfium, "FPDFPage_SetCropBox", {C_INT, C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT}), 
  FPDFPageObj_TransformClipPath = define_c_proc(pdfium, "FPDFPageObj_TransformClipPath", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE}), 
  FPDF_DestroyClipPath = define_c_proc(pdfium, "FPDF_DestroyClipPath", {C_INT}), 
  FPDFPage_InsertClipPath = define_c_proc(pdfium, "FPDFPage_InsertClipPath", {C_INT, C_INT}), 
  FPDF_LoadDocument = define_c_func(pdfium, "FPDF_LoadDocument", {C_LPSTR, C_LPSTR}, C_HANDLE), 
  FPDF_LoadMemDocument = define_c_func(pdfium, "FPDF_LoadMemDocument", {BUFFERPOINTER, C_DWORD, C_LPSTR}, C_HANDLE), 
  FPDF_LoadCustomDocument = define_c_func(pdfium, "FPDF_LoadCustomDocument", {PFPDF_FILEACCESS, C_LPSTR}, C_HANDLE), 
  FPDF_GetFileVersion = define_c_func(pdfium, "FPDF_GetFileVersion", {C_INT, LONGPOINTER}, C_HANDLE), 
  FPDF_GetLastError = define_c_func(pdfium, "FPDF_GetLastError", {}, C_HANDLE), 
  FPDF_GetDocPermissions = define_c_func(pdfium, "FPDF_GetDocPermissions", {C_INT}, C_HANDLE), 
  FPDF_GetSecurityHandlerRevision = define_c_func(pdfium, "FPDF_GetSecurityHandlerRevision", {C_INT}, C_HANDLE), 
  FPDF_GetPageCount = define_c_func(pdfium, "FPDF_GetPageCount", {C_INT}, C_HANDLE), 
  FPDF_LoadPage = define_c_func(pdfium, "FPDF_LoadPage", {C_INT, C_DWORD}, C_HANDLE), 
  FPDF_GetPageWidth = define_c_func(pdfium, "FPDF_GetPageWidth", {C_INT}, C_DOUBLE), 
  FPDF_GetPageHeight = define_c_func(pdfium, "FPDF_GetPageHeight", {C_INT}, C_DOUBLE), 
  FPDF_GetPageSizeByIndex = define_c_func(pdfium, "FPDF_GetPageSizeByIndex", {C_INT, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER}, C_HANDLE), 
  FPDF_RenderPageSkp = define_c_func(pdfium, "FPDF_RenderPageSkp", {C_INT, C_DWORD, C_DWORD}, C_HANDLE), 
  FPDFBitmap_Create = define_c_func(pdfium, "FPDFBitmap_Create", {C_DWORD, C_DWORD, C_DWORD}, C_HANDLE), 
  FPDFBitmap_CreateEx = define_c_func(pdfium, "FPDFBitmap_CreateEx", {C_DWORD, C_DWORD, C_DWORD, BUFFERPOINTER, C_DWORD}, C_HANDLE), 
  FPDFBitmap_GetBuffer = define_c_func(pdfium, "FPDFBitmap_GetBuffer", {C_INT}, C_HANDLE), 
  FPDFBitmap_GetWidth = define_c_func(pdfium, "FPDFBitmap_GetWidth", {C_INT}, C_HANDLE), 
  FPDFBitmap_GetHeight = define_c_func(pdfium, "FPDFBitmap_GetHeight", {C_INT}, C_HANDLE), 
  FPDFBitmap_GetStride = define_c_func(pdfium, "FPDFBitmap_GetStride", {C_INT}, C_HANDLE), 
  FPDF_VIEWERREF_GetPrintScaling = define_c_func(pdfium, "FPDF_VIEWERREF_GetPrintScaling", {C_INT}, C_HANDLE), 
  FPDF_VIEWERREF_GetNumCopies = define_c_func(pdfium, "FPDF_VIEWERREF_GetNumCopies", {C_INT}, C_HANDLE), 
  FPDF_VIEWERREF_GetPrintPageRange = define_c_func(pdfium, "FPDF_VIEWERREF_GetPrintPageRange", {C_INT}, C_HANDLE), 
  FPDF_VIEWERREF_GetDuplex = define_c_func(pdfium, "FPDF_VIEWERREF_GetDuplex", {C_INT}, C_HANDLE), 
  FPDF_CountNamedDests = define_c_func(pdfium, "FPDF_CountNamedDests", {C_INT}, C_HANDLE), 
  FPDF_GetNamedDestByName = define_c_func(pdfium, "FPDF_GetNamedDestByName", {C_INT, C_LPSTR}, C_HANDLE), 
  FPDF_GetNamedDest = define_c_func(pdfium, "FPDF_GetNamedDest", {C_INT, C_DWORD, BUFFERPOINTER, LONGPOINTER}, C_HANDLE), 
  FPDF_BStr_Init = define_c_func(pdfium, "FPDF_BStr_Init", {PFPDF_BSTR}, C_HANDLE), 
  FPDF_BStr_Set = define_c_func(pdfium, "FPDF_BStr_Set", {PFPDF_BSTR, C_LPSTR, C_DWORD}, C_HANDLE), 
  FPDF_BStr_Clear = define_c_func(pdfium, "FPDF_BStr_Clear", {PFPDF_BSTR}, C_HANDLE), 
  FPDFAvail_Create = define_c_func(pdfium, "FPDFAvail_Create", {PFX_FILEAVAIL, PFPDF_FILEACCESS}, C_HANDLE), 
  FPDFAvail_IsDocAvail = define_c_func(pdfium, "FPDFAvail_IsDocAvail", {C_INT, PFX_DOWNLOADHINTS}, C_HANDLE), 
  FPDFAvail_GetDocument = define_c_func(pdfium, "FPDFAvail_GetDocument", {C_INT, C_LPSTR}, C_HANDLE), 
  FPDFAvail_GetFirstPageNum = define_c_func(pdfium, "FPDFAvail_GetFirstPageNum", {C_INT}, C_HANDLE), 
  FPDFAvail_IsPageAvail = define_c_func(pdfium, "FPDFAvail_IsPageAvail", {C_INT, C_DWORD, PFX_DOWNLOADHINTS}, C_HANDLE), 
  FPDFAvail_IsFormAvail = define_c_func(pdfium, "FPDFAvail_IsFormAvail", {C_INT, PFX_DOWNLOADHINTS}, C_HANDLE), 
  FPDFAvail_IsLinearized = define_c_func(pdfium, "FPDFAvail_IsLinearized", {C_INT}, C_HANDLE), 
  FPDFBookmark_GetFirstChild = define_c_func(pdfium, "FPDFBookmark_GetFirstChild", {C_INT, C_INT}, C_HANDLE), 
  FPDFBookmark_GetNextSibling = define_c_func(pdfium, "FPDFBookmark_GetNextSibling", {C_INT, C_INT}, C_HANDLE), 
  FPDFBookmark_GetTitle = define_c_func(pdfium, "FPDFBookmark_GetTitle", {C_INT, BUFFERPOINTER, C_INT}, C_HANDLE), 
  FPDFBookmark_Find = define_c_func(pdfium, "FPDFBookmark_Find", {C_INT, C_LPSTR}, C_HANDLE), 
  FPDFBookmark_GetDest = define_c_func(pdfium, "FPDFBookmark_GetDest", {C_INT, C_INT}, C_HANDLE), 
  FPDFBookmark_Get = define_c_func(pdfium, "FPDFBookmark_Get", {C_INT}, C_HANDLE), 
  FPDFAction_GetType = define_c_func(pdfium, "FPDFAction_GetType", {C_INT}, C_HANDLE), 
  FPDFAction_GetDest = define_c_func(pdfium, "FPDFAction_GetDest", {C_INT, C_INT}, C_HANDLE), 
  FPDFAction_GetFilePath = define_c_func(pdfium, "FPDFAction_GetFilePath", {C_INT, BUFFERPOINTER, C_INT}, C_HANDLE), 
  FPDFAction_GetURIPath = define_c_func(pdfium, "FPDFAction_GetURIPath", {C_INT, C_INT, BUFFERPOINTER, C_INT}, C_HANDLE), 
  FPDFDest_GetPageIndex = define_c_func(pdfium, "FPDFDest_GetPageIndex", {C_INT, C_INT}, C_HANDLE), 
  FPDFLink_GetLinkAtPoint = define_c_func(pdfium, "FPDFLink_GetLinkAtPoint", {C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FPDFLink_GetLinkZOrderAtPoint = define_c_func(pdfium, "FPDFLink_GetLinkZOrderAtPoint", {C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FPDFLink_GetDest = define_c_func(pdfium, "FPDFLink_GetDest", {C_INT, C_INT}, C_HANDLE), 
  FPDFLink_Get = define_c_func(pdfium, "FPDFLink_Get", {C_INT}, C_HANDLE), 
  FPDFLink_Enumerate = define_c_func(pdfium, "FPDFLink_Enumerate", {C_INT, LONGPOINTER, C_INT}, C_HANDLE), 
  FPDFLink_GetAnnotRect = define_c_func(pdfium, "FPDFLink_GetAnnotRect", {C_INT, PFS_RECTF}, C_HANDLE), 
  FPDFLink_CountQuadPoints = define_c_func(pdfium, "FPDFLink_CountQuadPoints", {C_INT}, C_HANDLE), 
  FPDFLink_GetQuadPoints = define_c_func(pdfium, "FPDFLink_GetQuadPoints", {C_INT, C_DWORD, PFS_QUADPOINTSF}, C_HANDLE), 
  FPDF_GetMetaText = define_c_func(pdfium, "FPDF_GetMetaText", {C_INT, BYTEPOINTER, BUFFERPOINTER, C_INT}, C_HANDLE), 
  FPDF_CreateNewDocument = define_c_func(pdfium, "FPDF_CreateNewDocument", {}, C_HANDLE), 
  FPDFPage_New = define_c_func(pdfium, "FPDFPage_New", {C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FPDFPage_GetRotation = define_c_func(pdfium, "FPDFPage_GetRotation", {C_INT}, C_HANDLE), 
  FPDFPage_CountObject = define_c_func(pdfium, "FPDFPage_CountObject", {C_INT}, C_HANDLE), 
  FPDFPage_GetObject = define_c_func(pdfium, "FPDFPage_GetObject", {C_INT, C_DWORD}, C_HANDLE), 
  FPDFPage_HasTransparency = define_c_func(pdfium, "FPDFPage_HasTransparency", {C_INT}, C_HANDLE), 
  FPDFPage_GenerateContent = define_c_func(pdfium, "FPDFPage_GenerateContent", {C_INT}, C_HANDLE), 
  FPDFPageObj_HasTransparency = define_c_func(pdfium, "FPDFPageObj_HasTransparency", {C_INT}, C_HANDLE), 
  FPDFPageObj_NewImgeObj = define_c_func(pdfium, "FPDFPageObj_NewImgeObj", {C_INT}, C_HANDLE), 
  FPDFImageObj_LoadJpegFile = define_c_func(pdfium, "FPDFImageObj_LoadJpegFile", {C_INT, C_DWORD, C_INT, PFPDF_FILEACCESS}, C_HANDLE), 
  FPDFImageObj_SetBitmap = define_c_func(pdfium, "FPDFImageObj_SetBitmap", {INTEGERPOINTER, C_DWORD, C_INT, C_INT}, C_HANDLE), 
  FSDK_SetUnSpObjProcessHandler = define_c_func(pdfium, "FSDK_SetUnSpObjProcessHandler", {PUNSUPPORT_INFO}, C_HANDLE), 
  FPDFDoc_GetPageMode = define_c_func(pdfium, "FPDFDoc_GetPageMode", {C_INT}, C_HANDLE), 
  FPDFPage_Flatten = define_c_func(pdfium, "FPDFPage_Flatten", {C_INT, C_DWORD}, C_HANDLE), 
  FPDFDOC_InitFormFillEnvironment = define_c_func(pdfium, "FPDFDOC_InitFormFillEnvironment", {C_INT, PFPDF_FORMFILLINFO}, C_HANDLE), 
  FORM_OnMouseMove = define_c_func(pdfium, "FORM_OnMouseMove", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FORM_OnLButtonDown = define_c_func(pdfium, "FORM_OnLButtonDown", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FORM_OnLButtonUp = define_c_func(pdfium, "FORM_OnLButtonUp", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FORM_OnRButtonDown = define_c_func(pdfium, "FORM_OnRButtonDown", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FORM_OnRButtonUp = define_c_func(pdfium, "FORM_OnRButtonUp", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FORM_OnKeyDown = define_c_func(pdfium, "FORM_OnKeyDown", {C_HANDLE, C_INT, C_DWORD, C_DWORD}, C_HANDLE), 
  FORM_OnKeyUp = define_c_func(pdfium, "FORM_OnKeyUp", {C_HANDLE, C_INT, C_DWORD, C_DWORD}, C_HANDLE), 
  FORM_OnChar = define_c_func(pdfium, "FORM_OnChar", {C_HANDLE, C_INT, C_DWORD, C_DWORD}, C_HANDLE), 
  FORM_ForceToKillFocus = define_c_func(pdfium, "FORM_ForceToKillFocus", {C_HANDLE}, C_HANDLE), 
  FPDFPage_HasFormFieldAtPoint = define_c_func(pdfium, "FPDFPage_HasFormFieldAtPoint", {C_HANDLE, C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FPDPage_HasFormFieldAtPoint = define_c_func(pdfium, "FPDPage_HasFormFieldAtPoint", {C_HANDLE, C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FPDFPage_FormFieldZOrderAtPoint = define_c_func(pdfium, "FPDFPage_FormFieldZOrderAtPoint", {C_HANDLE, C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FPDF_HasXFAField = define_c_func(pdfium, "FPDF_HasXFAField", {C_INT, LONGPOINTER}, C_HANDLE), 
  FPDF_LoadXFA = define_c_func(pdfium, "FPDF_LoadXFA", {C_INT}, C_HANDLE), 
  FPDF_StringHandleCounts = define_c_func(pdfium, "FPDF_StringHandleCounts", {C_LPSTR}, C_HANDLE), 
  FPDF_StringHandleGetStringByIndex = define_c_func(pdfium, "FPDF_StringHandleGetStringByIndex", {C_LPSTR, C_DWORD, C_LPSTR, INTEGERPOINTER}, C_HANDLE), 
  FPDF_StringHandleAddString = define_c_func(pdfium, "FPDF_StringHandleAddString", {C_LPSTR, C_LPSTR, C_INT}, C_HANDLE), 
  FPDF_ImportPages = define_c_func(pdfium, "FPDF_ImportPages", {C_INT, C_INT, C_LPSTR, C_DWORD}, C_HANDLE), 
  FPDF_CopyViewerPreferences = define_c_func(pdfium, "FPDF_CopyViewerPreferences", {C_INT, C_INT}, C_HANDLE), 
  FPDF_RenderPageBitmap_Start = define_c_func(pdfium, "FPDF_RenderPageBitmap_Start", {C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, PIFSDK_PAUSE}, C_HANDLE), 
  FPDF_RenderPage_Continue = define_c_func(pdfium, "FPDF_RenderPage_Continue", {C_INT, PIFSDK_PAUSE}, C_HANDLE), 
  FPDF_SaveAsCopy = define_c_func(pdfium, "FPDF_SaveAsCopy", {C_INT, PFPDF_FILEWRITE, C_INT}, C_HANDLE), 
  FPDF_SaveWithVersion = define_c_func(pdfium, "FPDF_SaveWithVersion", {C_INT, PFPDF_FILEWRITE, C_INT, C_DWORD}, C_HANDLE), 
  FPDFText_GetCharIndexFromTextIndex = define_c_func(pdfium, "FPDFText_GetCharIndexFromTextIndex", {C_INT, C_DWORD}, C_HANDLE), 
  FPDF_GetDefaultTTFMap = define_c_func(pdfium, "FPDF_GetDefaultTTFMap", {}, C_HANDLE), 
  FPDF_GetDefaultSystemFontInfo = define_c_func(pdfium, "FPDF_GetDefaultSystemFontInfo", {}, C_HANDLE), 
  FPDFText_Load = define_c_func(pdfium, "FPDFText_Load", {C_INT}, C_HANDLE), 
  FPDFText_CountChars = define_c_func(pdfium, "FPDFText_CountChars", {C_INT}, C_HANDLE), 
  FPDFText_GetUnicode = define_c_func(pdfium, "FPDFText_GetUnicode", {C_INT, C_DWORD}, C_HANDLE), 
  FPDFText_GetFontSize = define_c_func(pdfium, "FPDFText_GetFontSize", {C_INT, C_DWORD}, C_DOUBLE), 
  FPDFText_GetCharIndexAtPos = define_c_func(pdfium, "FPDFText_GetCharIndexAtPos", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE}, C_HANDLE), 
  FPDFText_GetText = define_c_func(pdfium, "FPDFText_GetText", {C_INT, C_DWORD, C_DWORD, LONGPOINTER}, C_HANDLE), 
  FPDFText_CountRects = define_c_func(pdfium, "FPDFText_CountRects", {C_INT, C_DWORD, C_DWORD}, C_HANDLE), 
  FPDFText_GetBoundedText = define_c_func(pdfium, "FPDFText_GetBoundedText", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, STRINGPOINTER, C_DWORD}, C_HANDLE), 
  FPDFText_FindStart = define_c_func(pdfium, "FPDFText_FindStart", {C_INT, STRINGPOINTER, C_INT, C_DWORD}, C_HANDLE), 
  FPDFText_FindNext = define_c_func(pdfium, "FPDFText_FindNext", {C_HANDLE}, C_HANDLE), 
  FPDFText_FindPrev = define_c_func(pdfium, "FPDFText_FindPrev", {C_HANDLE}, C_HANDLE), 
  FPDFText_GetSchResultIndex = define_c_func(pdfium, "FPDFText_GetSchResultIndex", {C_HANDLE}, C_HANDLE), 
  FPDFText_GetSchCount = define_c_func(pdfium, "FPDFText_GetSchCount", {C_HANDLE}, C_HANDLE), 
  FPDFLink_LoadWebLinks = define_c_func(pdfium, "FPDFLink_LoadWebLinks", {C_INT}, C_HANDLE), 
  FPDFLink_CountWebLinks = define_c_func(pdfium, "FPDFLink_CountWebLinks", {C_INT}, C_HANDLE), 
  FPDFLink_GetURL = define_c_func(pdfium, "FPDFLink_GetURL", {C_INT, C_DWORD, STRINGPOINTER, C_DWORD}, C_HANDLE), 
  FPDFLink_CountRects = define_c_func(pdfium, "FPDFLink_CountRects", {C_INT, C_DWORD}, C_HANDLE), 
  FPDFPage_GetMediaBox = define_c_func(pdfium, "FPDFPage_GetMediaBox", {C_INT, FLOATPOINTER, FLOATPOINTER, FLOATPOINTER, FLOATPOINTER}, C_HANDLE), 
  FPDFPage_GetCropBox = define_c_func(pdfium, "FPDFPage_GetCropBox", {C_INT, FLOATPOINTER, FLOATPOINTER, FLOATPOINTER, FLOATPOINTER}, C_HANDLE), 
  FPDFPage_TransFormWithClip = define_c_func(pdfium, "FPDFPage_TransFormWithClip", {C_INT, PFS_MATRIX, PFS_RECTF}, C_HANDLE), 
  FPDF_CreateClipPath = define_c_func(pdfium, "FPDF_CreateClipPath", {C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT}, C_HANDLE) 
new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu