#ifndef ZIP_INTERFACE_DEF_H
#define ZIP_INTERFACE_DEF_H

/*
** This file was machine generated by idltool 53.6.
** Do not edit
*/ 

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_EXEC_H
#include <exec/exec.h>
#endif
#ifndef EXEC_INTERFACES_H
#include <exec/interfaces.h>
#endif

#ifndef LIBRARIES_ZIP_H
#include <libraries/zip.h>
#endif

#ifdef __cplusplus
#ifdef __USE_AMIGAOS_NAMESPACE__
namespace AmigaOS {
#endif
extern "C" {
#endif

struct ZipIFace
{
	struct InterfaceData Data;

	uint32 APICALL (*Obtain)(struct ZipIFace *Self);
	uint32 APICALL (*Release)(struct ZipIFace *Self);
	void APICALL (*Expunge)(struct ZipIFace *Self);
	struct Interface * APICALL (*Clone)(struct ZipIFace *Self);
	zip_int32_t APICALL (*zip_archive_set_tempdir)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR tempdir);
	zip_int32_t APICALL (*zip_close)(struct ZipIFace *Self, struct zip * za);
	zip_int32_t APICALL (*zip_delete)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx);
	zip_int64_t APICALL (*zip_dir_add)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR name, zip_flags_t flags);
	void APICALL (*zip_discard)(struct ZipIFace *Self, struct zip * za);
	void APICALL (*zip_error_clear)(struct ZipIFace *Self, struct zip * za);
	void APICALL (*zip_error_get)(struct ZipIFace *Self, struct zip * za, zip_int32_t * zep, zip_int32_t * sep);
	zip_int32_t APICALL (*zip_error_get_sys_type)(struct ZipIFace *Self, zip_int32_t ze);
	zip_int32_t APICALL (*zip_error_to_str)(struct ZipIFace *Self, STRPTR buf, zip_uint64_t len, zip_int32_t ze, zip_int32_t se);
	zip_int32_t APICALL (*zip_fclose)(struct ZipIFace *Self, struct zip_file * zf);
	struct zip * APICALL (*zip_fdopen)(struct ZipIFace *Self, zip_int32_t fd_orig, zip_int32_t _flags, zip_int32_t * zep);
	zip_int64_t APICALL (*zip_file_add)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR name, struct zip_source * source, zip_flags_t flags);
	void APICALL (*zip_file_error_clear)(struct ZipIFace *Self, struct zip_file * zf);
	void APICALL (*zip_file_error_get)(struct ZipIFace *Self, struct zip_file * zf, zip_int32_t * zep, zip_int32_t * sep);
	zip_int32_t APICALL (*zip_file_extra_field_delete)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_uint16_t ef_idx, zip_flags_t flags);
	zip_int32_t APICALL (*zip_file_extra_field_delete_by_id)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_uint16_t ef_id, zip_uint16_t ef_idx, zip_flags_t flags);
	zip_int32_t APICALL (*zip_file_extra_field_set)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_uint16_t ef_id, zip_uint16_t ef_idx, const zip_uint8_t * data, zip_uint16_t len, zip_flags_t flags);
	zip_int16_t APICALL (*zip_file_extra_fields_count)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_flags_t flags);
	zip_int16_t APICALL (*zip_file_extra_fields_count_by_id)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_uint16_t ef_id, zip_flags_t flags);
	const zip_uint8_t * APICALL (*zip_file_extra_field_get)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_uint16_t ef_idx, zip_uint16_t * idp, zip_uint16_t * lenp, zip_flags_t flags);
	const zip_uint8_t * APICALL (*zip_file_extra_field_get_by_id)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_uint16_t ef_id, zip_uint16_t ef_idx, zip_uint16_t * lenp, zip_flags_t flags);
	CONST_STRPTR APICALL (*zip_file_get_comment)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_uint32_t * lenp, zip_flags_t flags);
	zip_int32_t APICALL (*zip_file_get_external_attributes)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_flags_t flags, zip_uint8_t * opsys, zip_uint32_t * attributes);
	zip_int32_t APICALL (*zip_file_rename)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, CONST_STRPTR name, zip_flags_t flags);
	zip_int32_t APICALL (*zip_file_replace)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, struct zip_source * source, zip_flags_t flags);
	zip_int32_t APICALL (*zip_file_set_comment)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, CONST_STRPTR comment, zip_uint16_t len, zip_flags_t flags);
	zip_int32_t APICALL (*zip_file_set_external_attributes)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_flags_t flags, zip_uint8_t opsys, zip_uint32_t attributes);
	CONST_STRPTR APICALL (*zip_file_strerror)(struct ZipIFace *Self, struct zip_file * zf);
	struct zip_file * APICALL (*zip_fopen)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR fname, zip_flags_t flags);
	struct zip_file * APICALL (*zip_fopen_encrypted)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR fname, zip_flags_t flags, CONST_STRPTR password);
	struct zip_file * APICALL (*zip_fopen_index)(struct ZipIFace *Self, struct zip * za, zip_uint64_t index, zip_flags_t flags);
	struct zip_file * APICALL (*zip_fopen_index_encrypted)(struct ZipIFace *Self, struct zip * za, zip_uint64_t index, zip_flags_t flags, CONST_STRPTR password);
	zip_int64_t APICALL (*zip_fread)(struct ZipIFace *Self, struct zip_file * zf, APTR outbuf, zip_uint64_t toread);
	CONST_STRPTR APICALL (*zip_get_archive_comment)(struct ZipIFace *Self, struct zip * za, zip_int32_t * lenp, zip_flags_t flags);
	zip_int32_t APICALL (*zip_get_archive_flag)(struct ZipIFace *Self, struct zip * za, zip_uint32_t flag, zip_flags_t flags);
	CONST_STRPTR APICALL (*zip_get_name)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_flags_t flags);
	zip_int64_t APICALL (*zip_get_num_entries)(struct ZipIFace *Self, struct zip * za, zip_flags_t flags);
	zip_int64_t APICALL (*zip_name_locate)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR fname, zip_flags_t flags);
	struct zip * APICALL (*zip_open)(struct ZipIFace *Self, CONST_STRPTR fn, zip_int32_t _flags, zip_int32_t * zep);
	zip_int32_t APICALL (*zip_set_archive_comment)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR comment, zip_uint16_t len);
	zip_int32_t APICALL (*zip_set_archive_flag)(struct ZipIFace *Self, struct zip * za, zip_uint32_t flag, zip_int32_t value);
	zip_int32_t APICALL (*zip_set_default_password)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR passwd);
	zip_int32_t APICALL (*zip_set_file_compression)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx, zip_int32_t method, zip_flags_t flags);
	struct zip_source * APICALL (*zip_source_buffer)(struct ZipIFace *Self, struct zip * za, CONST_APTR data, zip_uint64_t len, zip_int32_t freep);
	struct zip_source * APICALL (*zip_source_file)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR fname, zip_uint64_t start, zip_int64_t len);
	struct zip_source * APICALL (*zip_source_filep)(struct ZipIFace *Self, struct zip * za, FILE * file, zip_uint64_t start, zip_int64_t len);
	void APICALL (*zip_source_free)(struct ZipIFace *Self, struct zip_source * src);
	struct zip_source * APICALL (*zip_source_function)(struct ZipIFace *Self, struct zip * za, zip_source_callback zcb, APTR ud);
	struct zip_source * APICALL (*zip_source_zip)(struct ZipIFace *Self, struct zip * za, struct zip * srcza, zip_uint64_t srcidx, zip_flags_t flags, zip_uint64_t start, zip_int64_t len);
	zip_int32_t APICALL (*zip_stat)(struct ZipIFace *Self, struct zip * za, CONST_STRPTR fname, zip_flags_t flags, struct zip_stat * st);
	zip_int32_t APICALL (*zip_stat_index)(struct ZipIFace *Self, struct zip * za, zip_uint64_t index, zip_flags_t flags, struct zip_stat * st);
	void APICALL (*zip_stat_init)(struct ZipIFace *Self, struct zip_stat * st);
	CONST_STRPTR APICALL (*zip_strerror)(struct ZipIFace *Self, struct zip * za);
	zip_int32_t APICALL (*zip_unchange)(struct ZipIFace *Self, struct zip * za, zip_uint64_t idx);
	zip_int32_t APICALL (*zip_unchange_all)(struct ZipIFace *Self, struct zip * za);
	zip_int32_t APICALL (*zip_unchange_archive)(struct ZipIFace *Self, struct zip * za);
};

#ifdef __cplusplus
}
#ifdef __USE_AMIGAOS_NAMESPACE__
}
#endif
#endif

#endif /* ZIP_INTERFACE_DEF_H */
