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

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

#ifndef FPdfDataAvailHPP
#define FPdfDataAvailHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#endif
#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 Fpdfview::FPDF_BOOL __cdecl (*IsDataAvail)(PFX_FILEAVAIL pThis, System::LongWord offset, System::LongWord size);

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


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

typedef void __cdecl (*TFPDFAvail_Destroy)(Fpdfview::FPDF_AVAIL avail);

typedef FX_DOWNLOADHINTS *PFX_DOWNLOADHINTS;

typedef void __cdecl (*AddSegment)(PFX_DOWNLOADHINTS pThis, System::LongWord offset, System::LongWord size);

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


typedef int __cdecl (*TFPDFAvail_IsDocAvail)(Fpdfview::FPDF_AVAIL avail, FX_DOWNLOADHINTS &hints);

typedef Fpdfview::FPDF_DOCUMENT __cdecl (*TFPDFAvail_GetDocument)(Fpdfview::FPDF_AVAIL avail, Fpdfview::FPDF_BYTESTRING password);

typedef int __cdecl (*TFPDFAvail_GetFirstPageNum)(Fpdfview::FPDF_DOCUMENT doc);

typedef int __cdecl (*TFPDFAvail_IsPageAvail)(Fpdfview::FPDF_AVAIL avail, int page_index, FX_DOWNLOADHINTS &hints);

typedef int __cdecl (*TFPDFAvail_IsFormAvail)(Fpdfview::FPDF_AVAIL avail, FX_DOWNLOADHINTS &hints);

typedef int __cdecl (*TFPDFAvail_IsLinearized)(Fpdfview::FPDF_AVAIL avail);

//-- var, const, procedure ---------------------------------------------------
static _DELPHI_CONST System::Int8 PDF_LINEARIZATION_UNKNOWN = System::Int8(-1);
static _DELPHI_CONST System::Int8 PDF_NOT_LINEARIZED = System::Int8(0x0);
static _DELPHI_CONST System::Int8 PDF_LINEARIZED = System::Int8(0x1);
static _DELPHI_CONST System::Int8 PDF_DATA_ERROR = System::Int8(-1);
static _DELPHI_CONST System::Int8 PDF_DATA_NOTAVAIL = System::Int8(0x0);
static _DELPHI_CONST System::Int8 PDF_DATA_AVAIL = System::Int8(0x1);
static _DELPHI_CONST System::Int8 PDF_FORM_ERROR = System::Int8(-1);
static _DELPHI_CONST System::Int8 PDF_FORM_NOTAVAIL = System::Int8(0x0);
static _DELPHI_CONST System::Int8 PDF_FORM_AVAIL = System::Int8(0x1);
static _DELPHI_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
