1e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// found in the LICENSE file. 4e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 5e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 7e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#ifndef PUBLIC_FPDF_DATAAVAIL_H_ 8e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#define PUBLIC_FPDF_DATAAVAIL_H_ 9e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <stddef.h> 11e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// NOLINTNEXTLINE(build/include) 13e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#include "fpdfview.h" 14e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_LINEARIZATION_UNKNOWN -1 16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_NOT_LINEARIZED 0 17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_LINEARIZED 1 18e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_DATA_ERROR -1 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_DATA_NOTAVAIL 0 21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_DATA_AVAIL 1 22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_FORM_ERROR -1 24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_FORM_NOTAVAIL 0 25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_FORM_AVAIL 1 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDF_FORM_NOTEXIST 2 27e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 28e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#ifdef __cplusplus 29e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovextern "C" { 304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // __cplusplus 31e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Interface for checking whether sections of the file are available. 33e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovtypedef struct _FX_FILEAVAIL { 344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Version number of the interface. Must be 1. 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int version; 36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Reports if the specified data section is currently available. A section is 384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // available if all bytes in the section are available. 394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // 404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Interface Version: 1 414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Implementation Required: Yes 424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // 434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // pThis - pointer to the interface structure. 444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // offset - the offset of the data section in the file. 454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // size - the size of the data section. 464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // 474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Returns true if the specified data section at |offset| of |size| 484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // is available. 494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL (*IsDataAvail)(struct _FX_FILEAVAIL* pThis, 504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann size_t offset, 514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann size_t size); 52e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} FX_FILEAVAIL; 53e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovtypedef void* FPDF_AVAIL; 54e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Create a document availability provider. 564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// file_avail - pointer to file availability interface. 584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// file - pointer to a file access interface. 594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns a handle to the document availability provider, or NULL on error. 614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FPDFAvail_Destroy| must be called when done with the availability provider. 63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT FPDF_AVAIL STDCALL FPDFAvail_Create(FX_FILEAVAIL* file_avail, 64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_FILEACCESS* file); 65e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Destroy the |avail| document availability provider. 674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// avail - handle to document availability provider to be destroyed. 69e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovDLLEXPORT void STDCALL FPDFAvail_Destroy(FPDF_AVAIL avail); 70e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Download hints interface. Used to receive hints for further downloading. 72e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovtypedef struct _FX_DOWNLOADHINTS { 734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Version number of the interface. Must be 1. 74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int version; 75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Add a section to be downloaded. 774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // 784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Interface Version: 1 794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Implementation Required: Yes 804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // 814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // pThis - pointer to the interface structure. 824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // offset - the offset of the hint reported to be downloaded. 834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // size - the size of the hint reported to be downloaded. 844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // 854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // The |offset| and |size| of the section may not be unique. Part of the 864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // section might be already available. The download manager must deal with 874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // overlapping sections. 88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void (*AddSegment)(struct _FX_DOWNLOADHINTS* pThis, 89ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann size_t offset, 90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann size_t size); 91e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} FX_DOWNLOADHINTS; 92e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Checks if the document is ready for loading, if not, gets download hints. 944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// avail - handle to document availability provider. 964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// hints - pointer to a download hints interface. 974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns one of: 994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_DATA_ERROR: A common error is returned. Data availability unknown. 1004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_DATA_NOTAVAIL: Data not yet available. 1014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_DATA_AVAIL: Data available. 1024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1034d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Applications should call this function whenever new data arrives, and process 1044d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// all the generated download hints, if any, until the function returns 1054d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. 1064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Once all data is available, call |FPDFAvail_GetDocument| to get a document 1084d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// handle. 109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT int STDCALL 110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFPDFAvail_IsDocAvail(FPDF_AVAIL avail, FX_DOWNLOADHINTS* hints); 111e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Get document from the availability provider. 1134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// avail - handle to document availability provider. 1154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// password - password for decrypting the PDF file. Optional. 1164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns a handle to the document. 1184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// When |FPDFAvail_IsDocAvail| returns TRUE, call |FPDFAvail_GetDocument| to 1204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// retrieve the document handle. 121e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovDLLEXPORT FPDF_DOCUMENT STDCALL FPDFAvail_GetDocument(FPDF_AVAIL avail, 122e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov FPDF_BYTESTRING password); 123e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Get the page number for the first available page in a linearized PDF. 1254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// doc - document handle. 1274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns the zero-based index for the first available page. 1294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// For most linearized PDFs, the first available page will be the first page, 1314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// however, some PDFs might make another page the first available page. 1324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// For non-linearized PDFs, this function will always return zero. 133e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovDLLEXPORT int STDCALL FPDFAvail_GetFirstPageNum(FPDF_DOCUMENT doc); 134e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Check if |page_index| is ready for loading, if not, get the 1364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FX_DOWNLOADHINTS|. 1374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// avail - handle to document availability provider. 1394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// page_index - index number of the page. Zero for the first page. 1404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// hints - pointer to a download hints interface. Populated if 1414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |page_index| is not available. 1424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns one of: 1444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_DATA_ERROR: A common error is returned. Data availability unknown. 1454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_DATA_NOTAVAIL: Data not yet available. 1464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_DATA_AVAIL: Data available. 1474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// This function can be called only after |FPDFAvail_GetDocument| is called. 1494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Applications should call this function whenever new data arrives and process 1504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// all the generated download |hints|, if any, until this function returns 1514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. Applications can then perform page 1524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// loading. 153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT int STDCALL FPDFAvail_IsPageAvail(FPDF_AVAIL avail, 154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int page_index, 155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DOWNLOADHINTS* hints); 156e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Check if form data is ready for initialization, if not, get the 1584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FX_DOWNLOADHINTS|. 1594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// avail - handle to document availability provider. 1614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// hints - pointer to a download hints interface. Populated if form is not 1624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// ready for initialization. 1634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns one of: 1654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_FORM_ERROR: A common eror, in general incorrect parameters. 1664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_FORM_NOTAVAIL: Data not available. 1674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_FORM_AVAIL: Data available. 1684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_FORM_NOTEXIST: No form data. 1694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// This function can be called only after |FPDFAvail_GetDocument| is called. 1714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// The application should call this function whenever new data arrives and 1724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// process all the generated download |hints|, if any, until the function 1734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |PDF_FORM_ERROR|, |PDF_FORM_AVAIL| or |PDF_FORM_NOTEXIST|. 1744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Applications can then perform page loading. It is recommend to call 1754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FPDFDOC_InitFormFillEnvironment| when |PDF_FORM_AVAIL| is returned. 176ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT int STDCALL FPDFAvail_IsFormAvail(FPDF_AVAIL avail, 177ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DOWNLOADHINTS* hints); 178e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Check whether a document is a linearized PDF. 1804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// avail - handle to document availability provider. 1824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Returns one of: 1844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_LINEARIZED 1854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_NOT_LINEARIZED 1864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// PDF_LINEARIZATION_UNKNOWN 1874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// 1884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |FPDFAvail_IsLinearized| will return |PDF_LINEARIZED| or |PDF_NOT_LINEARIZED| 1894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// when we have 1k of data. If the files size less than 1k, it returns 1904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// |PDF_LINEARIZATION_UNKNOWN| as there is insufficient information to determine 1914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// if the PDF is linearlized. 192ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannDLLEXPORT int STDCALL FPDFAvail_IsLinearized(FPDF_AVAIL avail); 193e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 194e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#ifdef __cplusplus 1954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann} // extern "C" 1964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // __cplusplus 197e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 198e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#endif // PUBLIC_FPDF_DATAAVAIL_H_ 199