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

// (DO NOT EDIT: machine generated header) 'FPdfPageOps.pas' rev: 26.00 (Windows)

#ifndef FpdfpageopsHPP
#define FpdfpageopsHPP

#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>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <FPdfView.hpp>	// Pascal unit

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

namespace Fpdfpageops
{
//-- type declarations -------------------------------------------------------
struct FPDF_FILEWRITE;
typedef FPDF_FILEWRITE *PFPDF_FILEWRITE;

typedef int __cdecl (*WriteBlock)(PFPDF_FILEWRITE pThis, void * pData, unsigned size);

struct DECLSPEC_DRECORD FPDF_FILEWRITE
{
public:
	int version;
	WriteBlock WriteBlock;
};


typedef int __cdecl (*TFPDF_SaveAsCopy)(void * document, FPDF_FILEWRITE &pFileWrite, unsigned flags);

typedef int __cdecl (*TFPDF_SaveWithVersion)(void * document, FPDF_FILEWRITE &pFileWrite, unsigned flags, int fileVersion);

typedef int __cdecl (*TFPDF_ImportPagesByIndex)(void * dest_doc, void * src_doc, const System::PInteger page_indices, unsigned length, int index);

typedef int __cdecl (*TFPDF_ImportPages)(void * dest_doc, void * src_doc, char * pagerange, int index);

typedef void * __cdecl (*TFPDF_ImportNPagesToOne)(void * src_doc, float output_width, float output_height, NativeUInt num_pages_on_x_axis, NativeUInt num_pages_on_y_axis);

typedef void * __cdecl (*TFPDF_NewXObjectFromPage)(void * dest_doc, void * src_doc, int src_page_index);

typedef void __cdecl (*TFPDF_CloseXObject)(void * xobject);

typedef void * __cdecl (*TFPDF_NewFormObjectFromXObject)(void * xobject);

typedef int __cdecl (*TFPDF_CopyViewerPreferences)(void * dest_doc, void * src_doc);

struct IFSDK_PAUSE;
typedef IFSDK_PAUSE *PIFSDK_PAUSE;

typedef int __cdecl (*NeedToPauseNow)(PIFSDK_PAUSE pThis);

struct DECLSPEC_DRECORD IFSDK_PAUSE
{
public:
	int version;
	NeedToPauseNow NeedToPauseNow;
	void *user;
};


typedef int __cdecl (*TFPDF_RenderPageBitmapWithColorScheme_Start)(void * bitmap, void * page, int start_x, int start_y, int size_x, int size_y, int rotate, int flags, const Fpdfview::PFPDF_COLORSCHEME color_scheme, IFSDK_PAUSE &pause);

typedef int __cdecl (*TFPDF_RenderPageBitmap_Start)(void * bitmap, void * page, int start_x, int start_y, int size_x, int size_y, int rotate, int flags, IFSDK_PAUSE &pause);

typedef int __cdecl (*TFPDF_RenderPage_Continue)(void * page, IFSDK_PAUSE &pause);

typedef void __cdecl (*TFPDF_RenderPage_Close)(void * page);

typedef void __cdecl (*TFPDFPage_SetMediaBox)(void * page, float left, float bottom, float right, float top);

typedef void __cdecl (*TFPDFPage_SetCropBox)(void * page, float left, float bottom, float right, float top);

typedef void __cdecl (*TFPDFPage_SetBleedBox)(void * page, float left, float bottom, float right, float top);

typedef void __cdecl (*TFPDFPage_SetTrimBox)(void * page, float left, float bottom, float right, float top);

typedef void __cdecl (*TFPDFPage_SetArtBox)(void * page, float left, float bottom, float right, float top);

typedef int __cdecl (*TFPDFPage_GetMediaBox)(void * page, float &left, float &bottom, float &right, float &top);

typedef int __cdecl (*TFPDFPage_GetCropBox)(void * page, /* out */ float &left, /* out */ float &bottom, /* out */ float &right, /* out */ float &top);

typedef int __cdecl (*TFPDFPage_GetBleedBox)(void * page, /* out */ float &left, /* out */ float &bottom, /* out */ float &right, /* out */ float &top);

typedef int __cdecl (*TFPDFPage_GetTrimBox)(void * page, /* out */ float &left, /* out */ float &bottom, /* out */ float &right, /* out */ float &top);

typedef int __cdecl (*TFPDFPage_GetArtBox)(void * page, /* out */ float &left, /* out */ float &bottom, /* out */ float &right, /* out */ float &top);

typedef int __cdecl (*TFPDFPage_TransFormWithClip)(void * page, Fpdfview::FS_MATRIX &matrix, Fpdfview::FS_RECTF &clipRect);

typedef void __cdecl (*TFPDFPageObj_TransformClipPath)(void * page_object, double a, double b, double c, double d, double e, double f);

typedef void * __cdecl (*TFPDFPageObj_GetClipPath)(void * page_object);

typedef int __cdecl (*TFPDFClipPath_CountPaths)(void * clip_path);

typedef int __cdecl (*TFPDFClipPath_CountPathSegments)(void * clip_path, int path_index);

typedef void * __cdecl (*TFPDFClipPath_GetPathSegment)(void * clip_path, int path_index, int segment_index);

typedef void * __cdecl (*TFPDF_CreateClipPath)(float left, float bottom, float right, float top);

typedef void __cdecl (*TFPDF_DestroyClipPath)(void * clipPath);

typedef void __cdecl (*TFPDFPage_InsertClipPath)(void * page, void * clipPath);

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 FPDF_INCREMENTAL = System::Int8(0x1);
static const System::Int8 FPDF_NO_INCREMENTAL = System::Int8(0x2);
static const System::Int8 FPDF_REMOVE_SECURITY = System::Int8(0x3);
static const System::Int8 FPDF_RENDER_READY = System::Int8(0x0);
static const System::Int8 FPDF_RENDER_TOBECONTINUED = System::Int8(0x1);
static const System::Int8 FPDF_RENDER_DONE = System::Int8(0x2);
static const System::Int8 FPDF_RENDER_FAILED = System::Int8(0x3);
}	/* namespace Fpdfpageops */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FPDFPAGEOPS)
using namespace Fpdfpageops;
#endif
#pragma pack(pop)
#pragma option pop

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