// CodeGear C++Builder
// Copyright (c) 1995, 2022 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'FPdfDataAvail.pas' rev: 35.00 (Windows)

#ifndef FpdfdataavailHPP
#define FpdfdataavailHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <FPdfView.hpp>

//-- user supplied -----------------------------------------------------------

namespace Fpdfdataavail
{
//-- forward type declarations -----------------------------------------------
struct FX_FILEAVAIL;
struct FX_DOWNLOADHINTS;
//-- type declarations -------------------------------------------------------
typedef FX_FILEAVAIL *PFX_FILEAVAIL;

typedef int __cdecl (*IsDataAvail)(PFX_FILEAVAIL pThis, unsigned offset, unsigned size);

struct DECLSPEC_DRECORD FX_FILEAVAIL
{
public:
	int version;
	IsDataAvail IsDataAvail;
};


typedef void * __cdecl (*TFPDFAvail_Create)(FX_FILEAVAIL &file_avail, Fpdfview::FPDF_FILEACCESS &file_);

typedef void __cdecl (*TFPDFAvail_Destroy)(void * avail);

typedef FX_DOWNLOADHINTS *PFX_DOWNLOADHINTS;

typedef void __cdecl (*AddSegment)(PFX_DOWNLOADHINTS pThis, unsigned offset, unsigned size);

struct DECLSPEC_DRECORD FX_DOWNLOADHINTS
{
public:
	int version;
	AddSegment AddSegment;
};


typedef int __cdecl (*TFPDFAvail_IsDocAvail)(void * avail, FX_DOWNLOADHINTS &hints);

typedef void * __cdecl (*TFPDFAvail_GetDocument)(void * avail, char * password);

typedef int __cdecl (*TFPDFAvail_GetFirstPageNum)(void * doc);

typedef int __cdecl (*TFPDFAvail_IsPageAvail)(void * avail, int page_index, FX_DOWNLOADHINTS &hints);

typedef int __cdecl (*TFPDFAvail_IsFormAvail)(void * avail, FX_DOWNLOADHINTS &hints);

typedef int __cdecl (*TFPDFAvail_IsLinearized)(void * avail);

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 PDF_LINEARIZATION_UNKNOWN = System::Int8(-1);
static const System::Int8 PDF_NOT_LINEARIZED = System::Int8(0x0);
static const System::Int8 PDF_LINEARIZED = System::Int8(0x1);
static const System::Int8 PDF_DATA_ERROR = System::Int8(-1);
static const System::Int8 PDF_DATA_NOTAVAIL = System::Int8(0x0);
static const System::Int8 PDF_DATA_AVAIL = System::Int8(0x1);
static const System::Int8 PDF_FORM_ERROR = System::Int8(-1);
static const System::Int8 PDF_FORM_NOTAVAIL = System::Int8(0x0);
static const System::Int8 PDF_FORM_AVAIL = System::Int8(0x1);
static const System::Int8 PDF_FORM_NOTEXIST = System::Int8(0x2);
}	/* namespace Fpdfdataavail */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FPDFDATAAVAIL)
using namespace Fpdfdataavail;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// FpdfdataavailHPP
