## 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