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

// (DO NOT EDIT: machine generated header) 'FPdfEdit.pas' rev: 24.00 (Windows)

#ifndef FpdfeditHPP
#define FpdfeditHPP

#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 Fpdfedit
{
//-- type declarations -------------------------------------------------------
struct DECLSPEC_DRECORD FPDF_IMAGEOBJ_METADATA
{
public:
	unsigned width;
	unsigned height;
	float horizontal_dpi;
	float vertical_dpi;
	unsigned bits_per_pixel;
	int colorspace;
	int marked_content_id;
};


typedef void * __cdecl (*TFPDF_CreateNewDocument)(void);

typedef void * __cdecl (*TFPDFPage_New)(void * document, int page_index, double width, double height);

typedef void __cdecl (*TFPDFPage_Delete)(void * document, int page_index);

typedef int __cdecl (*TFPDF_MovePages)(void * document, const System::PInteger page_indices, unsigned page_indices_len, int dest_page_index);

typedef int __cdecl (*TFPDFPage_GetRotation)(void * page);

typedef void __cdecl (*TFPDFPage_SetRotation)(void * page, int rotate);

typedef void __cdecl (*TFPDFPage_InsertObject)(void * page, void * page_object);

typedef int __cdecl (*TFPDFPage_RemoveObject)(void * page, void * page_object);

typedef int __cdecl (*TFPDFPage_CountObjects)(void * page);

typedef void * __cdecl (*TFPDFPage_GetObject)(void * page, int index);

typedef int __cdecl (*TFPDFPage_HasTransparency)(void * page);

typedef int __cdecl (*TFPDFPage_GenerateContent)(void * page);

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

typedef int __cdecl (*TFPDFPageObj_HasTransparency)(void * page_object);

typedef int __cdecl (*TFPDFPageObj_GetType)(void * page_object);

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

typedef int __cdecl (*TFPDFPageObj_TransformF)(void * page_object, Fpdfview::FS_MATRIX &matrix);

typedef int __cdecl (*TFPDFPageObj_GetMatrix)(void * page_object, /* out */ Fpdfview::FS_MATRIX &matrix);

typedef int __cdecl (*TFPDFPageObj_SetMatrix)(void * page_object, Fpdfview::FS_MATRIX &matrix);

typedef void __cdecl (*TFPDFPage_TransformAnnots)(void * page, double a, double b, double c, double d, double e, double f);

typedef void * __cdecl (*TFPDFPageObj_NewImageObj)(void * document);

typedef int __cdecl (*TFPDFPageObj_GetMarkedContentID)(void * page_object);

typedef int __cdecl (*TFPDFPageObj_CountMarks)(void * page_object);

typedef void * __cdecl (*TFPDFPageObj_GetMark)(void * page_object, unsigned index);

typedef void * __cdecl (*TFPDFPageObj_AddMark)(void * page_object, char * name);

typedef int __cdecl (*TFPDFPageObj_RemoveMark)(void * page_object, void * mark);

typedef int __cdecl (*TFPDFPageObjMark_GetName)(void * mark, void * buffer, unsigned buflen, /* out */ unsigned &out_buflen);

typedef int __cdecl (*TFPDFPageObjMark_CountParams)(void * mark);

typedef int __cdecl (*TFPDFPageObjMark_GetParamKey)(void * mark, unsigned index, void * buffer, unsigned buflen, /* out */ unsigned &out_buflen);

typedef int __cdecl (*TFPDFPageObjMark_GetParamValueType)(void * mark, char * key);

typedef int __cdecl (*TFPDFPageObjMark_GetParamIntValue)(void * mark, char * key, /* out */ int &out_value);

typedef int __cdecl (*TFPDFPageObjMark_GetParamStringValue)(void * mark, char * key, void * buffer, unsigned buflen, /* out */ unsigned &out_buflen);

typedef int __cdecl (*TFPDFPageObjMark_GetParamBlobValue)(void * mark, char * key, void * buffer, unsigned buflen, /* out */ unsigned &out_buflen);

typedef int __cdecl (*TFPDFPageObjMark_SetIntParam)(void * document, void * page_object, void * mark, char * key, int value);

typedef int __cdecl (*TFPDFPageObjMark_SetStringParam)(void * document, void * page_object, void * mark, char * key, char * value);

typedef int __cdecl (*TFPDFPageObjMark_SetBlobParam)(void * document, void * page_object, void * mark, char * key, void * value, unsigned value_len);

typedef int __cdecl (*TFPDFPageObjMark_RemoveParam)(void * page_object, void * mark, char * key);

typedef void * *PFPDF_PAGE;

typedef int __cdecl (*TFPDFImageObj_LoadJpegFile)(PFPDF_PAGE pages, int count, void * image_object, Fpdfview::FPDF_FILEACCESS &file_access);

typedef int __cdecl (*TFPDFImageObj_LoadJpegFileInline)(PFPDF_PAGE pages, int count, void * image_object, Fpdfview::FPDF_FILEACCESS &file_access);

typedef int __cdecl (*TFPDFImageObj_SetMatrix)(void * image_object, double a, double b, double c, double d, double e, double f);

typedef int __cdecl (*TFPDFImageObj_SetBitmap)(PFPDF_PAGE pages, int count, void * image_object, void * bitmap);

typedef void * __cdecl (*TFPDFImageObj_GetBitmap)(void * image_object);

typedef void * __cdecl (*TFPDFImageObj_GetRenderedBitmap)(void * document, void * page, void * image_object);

typedef unsigned __cdecl (*TFPDFImageObj_GetImageDataDecoded)(void * image_object, void * buffer, unsigned buflen);

typedef unsigned __cdecl (*TFPDFImageObj_GetImageDataRaw)(void * image_object, void * buffer, unsigned buflen);

typedef int __cdecl (*TFPDFImageObj_GetImageFilterCount)(void * image_object);

typedef unsigned __cdecl (*TFPDFImageObj_GetImageFilter)(void * image_object, int index, void * buffer, unsigned buflen);

typedef int __cdecl (*TFPDFImageObj_GetImageMetadata)(void * image_object, void * page, FPDF_IMAGEOBJ_METADATA &metadata);

typedef int __cdecl (*TFPDFImageObj_GetImagePixelSize)(void * image_object, /* out */ unsigned &width, /* out */ unsigned &height);

typedef void * __cdecl (*TFPDFPageObj_CreateNewPath)(float x, float y);

typedef void * __cdecl (*TFPDFPageObj_CreateNewRect)(float x, float y, float w, float h);

typedef int __cdecl (*TFPDFPageObj_GetBounds)(void * page_object, float &left, float &bottom, float &right, float &top);

typedef int __cdecl (*TFPDFPageObj_GetRotatedBounds)(void * page_object, Fpdfview::FS_QUADPOINTSF &quad_points);

typedef void __cdecl (*TFPDFPageObj_SetBlendMode)(void * page_object, char * blend_mode);

typedef int __cdecl (*TFPDFPageObj_SetStrokeColor)(void * page_object, unsigned r, unsigned g, unsigned b, unsigned a);

typedef int __cdecl (*TFPDFPageObj_GetStrokeColor)(void * page_object, unsigned &r, unsigned &g, unsigned &b, unsigned &a);

typedef int __cdecl (*TFPDFPageObj_SetStrokeWidth)(void * page_object, float width);

typedef int __cdecl (*TFPDFPageObj_GetStrokeWidth)(void * page_object, float &width);

typedef int __cdecl (*TFPDFPageObj_GetLineJoin)(void * page_object);

typedef int __cdecl (*TFPDFPageObj_SetLineJoin)(void * page_object, int line_join);

typedef int __cdecl (*TFPDFPageObj_GetLineCap)(void * page_object);

typedef int __cdecl (*TFPDFPageObj_SetLineCap)(void * page_object, int line_cap);

typedef int __cdecl (*TFPDFPageObj_SetFillColor)(void * page_object, unsigned r, unsigned g, unsigned b, unsigned a);

typedef int __cdecl (*TFPDFPageObj_GetFillColor)(void * page_object, unsigned &r, unsigned &g, unsigned &b, unsigned &a);

typedef int __cdecl (*TFPDFPageObj_GetDashPhase)(void * page_object, /* out */ float &phase);

typedef int __cdecl (*TFPDFPageObj_SetDashPhase)(void * page_object, float phase);

typedef int __cdecl (*TFPDFPageObj_GetDashCount)(void * page_object);

typedef int __cdecl (*TFPDFPageObj_GetDashArray)(void * page_object, System::PSingle dash_array, NativeUInt dash_count);

typedef int __cdecl (*TFPDFPageObj_SetDashArray)(void * page_object, const System::PSingle dash_array, NativeUInt dash_count, float phase);

typedef int __cdecl (*TFPDFPath_CountSegments)(void * path);

typedef void * __cdecl (*TFPDFPath_GetPathSegment)(void * path, int index);

typedef int __cdecl (*TFPDFPathSegment_GetPoint)(void * segment, float &x, float &y);

typedef int __cdecl (*TFPDFPathSegment_GetType)(void * segment);

typedef int __cdecl (*TFPDFPathSegment_GetClose)(void * segment);

typedef int __cdecl (*TFPDFPath_MoveTo)(void * path, float x, float y);

typedef int __cdecl (*TFPDFPath_LineTo)(void * path, float x, float y);

typedef int __cdecl (*TFPDFPath_BezierTo)(void * path, float x1, float y1, float x2, float y2, float x3, float y3);

typedef int __cdecl (*TFPDFPath_Close)(void * path);

typedef int __cdecl (*TFPDFPath_SetDrawMode)(void * path, int fillmode, int stroke);

typedef int __cdecl (*TFPDFPath_GetDrawMode)(void * path, /* out */ int &fillmode, /* out */ int &stroke);

typedef void * __cdecl (*TFPDFPageObj_NewTextObj)(void * document, char * font, float font_size);

typedef int __cdecl (*TFPDFText_SetText)(void * text_object, System::WideChar * text);

typedef int __cdecl (*TFPDFText_SetCharcodes)(void * text_object, const System::PCardinal charcodes, NativeUInt count);

typedef void * __cdecl (*TFPDFText_LoadFont)(void * document, const System::PByte data, unsigned size, int font_type, int cid);

typedef void * __cdecl (*TFPDFText_LoadStandardFont)(void * document, char * font);

typedef void * __cdecl (*TFPDFText_LoadCidType2Font)(void * document, const System::PByte font_data, unsigned font_data_size, char * to_unicode_cmap, const System::PByte cid_to_gid_map_data, unsigned cid_to_gid_map_data_size);

typedef int __cdecl (*TFPDFTextObj_GetFontSize)(void * text, /* out */ float &size);

typedef void __cdecl (*TFPDFFont_Close)(void * font);

typedef void * __cdecl (*TFPDFPageObj_CreateTextObj)(void * document, void * font, float font_size);

typedef int __cdecl (*TFPDFTextObj_GetTextRenderMode)(void * text);

typedef int __cdecl (*TFPDFTextObj_SetTextRenderMode)(void * text, int render_mode);

typedef unsigned __cdecl (*TFPDFTextObj_GetText)(void * text_object, void * text_page, System::WideChar * buffer, unsigned length);

typedef void * __cdecl (*TFPDFTextObj_GetRenderedBitmap)(void * document, void * page, void * text_object, float scale);

typedef void * __cdecl (*TFPDFTextObj_GetFont)(void * text);

typedef unsigned __cdecl (*TFPDFFont_GetFamilyName)(void * font, char * buffer, unsigned length);

typedef int __cdecl (*TFPDFFont_GetFontData)(void * font, char * buffer, NativeUInt buflen, /* out */ NativeUInt &out_buflen);

typedef int __cdecl (*TFPDFFont_GetIsEmbedded)(void * font);

typedef int __cdecl (*TFPDFFont_GetFlags)(void * font);

typedef int __cdecl (*TFPDFFont_GetWeight)(void * font);

typedef int __cdecl (*TFPDFFont_GetItalicAngle)(void * font, /* out */ int &angle);

typedef int __cdecl (*TFPDFFont_GetAscent)(void * font, float font_size, /* out */ float &ascent);

typedef int __cdecl (*TFPDFFont_GetDescent)(void * font, float font_size, /* out */ float &descent);

typedef int __cdecl (*TFPDFFont_GetGlyphWidth)(void * font, unsigned glyph, float font_size, /* out */ float &width);

typedef void * __cdecl (*TFPDFFont_GetGlyphPath)(void * font, unsigned glyph, float font_size);

typedef int __cdecl (*TFPDFGlyphPath_CountGlyphSegments)(void * glyphpath);

typedef void * __cdecl (*TFPDFGlyphPath_GetGlyphPathSegment)(void * glyphpath, int index);

typedef int __cdecl (*TFPDFFormObj_CountObjects)(void * form_object);

typedef void * __cdecl (*TFPDFFormObj_GetObject)(void * form_object, unsigned index);

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 FPDF_COLORSPACE_UNKNOWN = System::Int8(0x0);
static const System::Int8 FPDF_COLORSPACE_DEVICEGRAY = System::Int8(0x1);
static const System::Int8 FPDF_COLORSPACE_DEVICERGB = System::Int8(0x2);
static const System::Int8 FPDF_COLORSPACE_DEVICECMYK = System::Int8(0x3);
static const System::Int8 FPDF_COLORSPACE_CALGRAY = System::Int8(0x4);
static const System::Int8 FPDF_COLORSPACE_CALRGB = System::Int8(0x5);
static const System::Int8 FPDF_COLORSPACE_LAB = System::Int8(0x6);
static const System::Int8 FPDF_COLORSPACE_ICCBASED = System::Int8(0x7);
static const System::Int8 FPDF_COLORSPACE_SEPARATION = System::Int8(0x8);
static const System::Int8 FPDF_COLORSPACE_DEVICEN = System::Int8(0x9);
static const System::Int8 FPDF_COLORSPACE_INDEXED = System::Int8(0xa);
static const System::Int8 FPDF_COLORSPACE_PATTERN = System::Int8(0xb);
static const System::Int8 FPDF_PAGEOBJ_UNKNOWN = System::Int8(0x0);
static const System::Int8 FPDF_PAGEOBJ_TEXT = System::Int8(0x1);
static const System::Int8 FPDF_PAGEOBJ_PATH = System::Int8(0x2);
static const System::Int8 FPDF_PAGEOBJ_IMAGE = System::Int8(0x3);
static const System::Int8 FPDF_PAGEOBJ_SHADING = System::Int8(0x4);
static const System::Int8 FPDF_PAGEOBJ_FORM = System::Int8(0x5);
static const System::Int8 FPDF_SEGMENT_UNKNOWN = System::Int8(-1);
static const System::Int8 FPDF_SEGMENT_LINETO = System::Int8(0x0);
static const System::Int8 FPDF_SEGMENT_BEZIERTO = System::Int8(0x1);
static const System::Int8 FPDF_SEGMENT_MOVETO = System::Int8(0x2);
static const System::Int8 FPDF_FILLMODE_NONE = System::Int8(0x0);
static const System::Int8 FPDF_FILLMODE_ALTERNATE = System::Int8(0x1);
static const System::Int8 FPDF_FILLMODE_WINDING = System::Int8(0x2);
static const System::Int8 FPDF_FONT_TYPE1 = System::Int8(0x1);
static const System::Int8 FPDF_FONT_TRUETYPE = System::Int8(0x2);
static const System::Int8 FPDF_LINECAP_BUTT = System::Int8(0x0);
static const System::Int8 FPDF_LINECAP_ROUND = System::Int8(0x1);
static const System::Int8 FPDF_LINECAP_PROJECTING_SQUARE = System::Int8(0x2);
static const System::Int8 FPDF_LINEJOIN_MITER = System::Int8(0x0);
static const System::Int8 FPDF_LINEJOIN_ROUND = System::Int8(0x1);
static const System::Int8 FPDF_LINEJOIN_BEVEL = System::Int8(0x2);
static const System::Int8 FPDF_PRINTMODE_EMF = System::Int8(0x0);
static const System::Int8 FPDF_PRINTMODE_TEXTONLY = System::Int8(0x1);
static const System::Int8 FPDF_PRINTMODE_POSTSCRIPT2 = System::Int8(0x2);
static const System::Int8 FPDF_PRINTMODE_POSTSCRIPT3 = System::Int8(0x3);
static const System::Int8 FPDF_PRINTMODE_POSTSCRIPT2_PASSTHROUGH = System::Int8(0x4);
static const System::Int8 FPDF_PRINTMODE_POSTSCRIPT3_PASSTHROUGH = System::Int8(0x5);
static const System::Int8 FPDF_PRINTMODE_EMF_IMAGE_MASKS = System::Int8(0x6);
static const System::Int8 FPDF_PRINTMODE_POSTSCRIPT3_TYPE42 = System::Int8(0x7);
static const System::Int8 FPDF_PRINTMODE_POSTSCRIPT3_TYPE42_PASSTHROUGH = System::Int8(0x8);
extern DELPHI_PACKAGE unsigned __fastcall FPDF_ARGB(System::Byte a, System::Byte r, System::Byte g, System::Byte b);
extern DELPHI_PACKAGE System::Byte __fastcall FPDF_GetBValue(unsigned argb);
extern DELPHI_PACKAGE System::Byte __fastcall FPDF_GetGValue(unsigned argb);
extern DELPHI_PACKAGE System::Byte __fastcall FPDF_GetRValue(unsigned argb);
extern DELPHI_PACKAGE System::Byte __fastcall FPDF_GetAValue(unsigned argb);
}	/* namespace Fpdfedit */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FPDFEDIT)
using namespace Fpdfedit;
#endif
#pragma pack(pop)
#pragma option pop

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