(*
 * aPLib compression library  -  the smaller the better :)
 *
 * Delphi interface to aPLib Delphi objects
 *
 * Copyright (c) 1998-2003 by Joergen Ibsen / Jibz
 * All Rights Reserved
 *
 * -> Delphi by Solodovnikov Alexey 21.03.1999 (alenka@mail.line.ru)
 *)

unit aPLibu;

interface

uses
  Windows;

const
  aP_pack_break    : DWORD = 0;
  aP_pack_continue : DWORD = 1;

type

  TaPack_Status = function(w1, w2 : DWORD) : DWORD;cdecl;

  function _aP_pack(var Source;
                    var Destination;
                    Length : DWORD;
                    var WorkMem;
                    Callback : TaPack_Status) : DWORD;cdecl;
  function _aP_workmem_size(InputSize : DWORD) : DWORD;cdecl;
  function _aP_max_packed_size(InputSize : DWORD) : DWORD;cdecl;
  function _aP_depack_asm(var Source, Destination) : DWORD;cdecl;
  function _aP_depack_asm_fast(var Source, Destination) : DWORD;cdecl;
  function _aP_crc32(var Source; Length : DWORD) : DWORD;cdecl;
  function _aPsafe_pack(var Source;
                        var Destination;
                        Length : DWORD;
                        var WorkMem;
                        Callback : TaPack_Status) : DWORD;cdecl;
  function _aPsafe_check(var Source) : DWORD;cdecl;
  function _aPsafe_get_orig_size(var Source) : DWORD;cdecl;
  function _aPsafe_depack_asm(var Source, Destination) : DWORD;cdecl;
  function _aPsafe_depack_asm_fast(var Source, Destination) : DWORD;cdecl;

implementation

  function _aP_pack(var Source;
                    var Destination;
                    Length : DWORD;
                    var WorkMem;
                    CallBack : TaPack_Status) : DWORD;external;

  function _aP_workmem_size(InputSize : DWORD) : DWORD;external;

  function _aP_max_packed_size(InputSize : DWORD) : DWORD;external;

  function _aP_depack_asm(var Source, Destination) : DWORD;external;

  function _aP_depack_asm_fast(var Source, Destination) : DWORD;external;

  function _aP_crc32(var Source; Length : DWORD) : DWORD;external;

  function _aPsafe_pack(var Source;
                        var Destination;
                        Length : DWORD;
                        var WorkMem;
                        CallBack : TaPack_Status) : DWORD;external;

  function _aPsafe_check(var Source) : DWORD;external;

  function _aPsafe_get_orig_size(var Source) : DWORD;external;

  function _aPsafe_depack_asm(var Source, Destination) : DWORD;external;

  function _aPsafe_depack_asm_fast(var Source, Destination) : DWORD;external;

{$L aplib.obj}
{$L depack.obj}
{$L depackf.obj}
{$L crc32.obj}
{$L spack.obj}
{$L scheck.obj}
{$L sgetsize.obj}
{$L sdepack.obj}
{$L sdepackf.obj}

end.
