Coverage profiler SDK - Pakovací komponenty

Pakovací komponenta VFP

Tato pakovací komponenta využívá DLL knihovny FPSKCO32.DLL pro kompresi a setupapi.DLL pro dekompresi souboru. Příslušné API funkce pracují vždy jen s jedním souborem.

#INCLUDE "Main.h"

*************************************************************
* Procedura, která vrátí objekt pro pakování a rozpakování
*************************************************************
PROCEDURE GetInterface(loObj)
*@loObj - Vlastnost do které se zapíše odkaz na objekt pro pakování
loObj=CREATEOBJECT("_VFP_Archiver")


*************************************************************
* Vlastní třída pro pakování a rozpakování
*************************************************************
DEFINE CLASS _VFP_Archiver AS Custom
   Name="_VFP_Archiver"
  
   * Dekompresní metoda
   PROCEDURE Decompress(loPack)
      * loPack - Objekt pro rozpakování

      * Pokus se zavést potřebnou funkci z DLL knihovny
      IF !LoadDllFunc("DECLARE INTEGER SetupDecompressOrCopyFileA IN "+loPack.PU.D_File+" AS _Decompress STRING, STRING, INTEGER")
         RETURN _PP_ProcessFailed
      ENDIF

      * Proveď dekompresi
      RETURN IIF(_Decompress(loPack.File_S, loPack.File_D,0)#0,_PP_PAUNFailed,_PP_ErrOK)
   ENDPROC

   * Kompresní metoda
   PROCEDURE Compress(loPack)
      * loPack - Objekt pro zpakování

      * Pokus se zavést potřebnou funkci z DLL knihovny
      IF !LoadDllFunc("DECLARE INTEGER LcbCompressFile IN "+loPack.PU.C_File+" AS _Compress STRING, STRING, INTEGER")
         RETURN _PP_ProcessFailed
      ENDIF

      * Komprimuje soubor zadaný soubor. Vrátí velikost vytvořeného souboru ( >0 ) nebo
      * chybu ( <= 0 )

      * Proveď dekompresi
      RETURN IIF(_Compress(loPack.File_S, loPack.File_D,0)<=0,_PP_PAUNFailed,_PP_ErrOK)
   ENDPROC
ENDDEFIN