#pragma once
#include "kpi.h"
#include "kpi_unarc.h"
#include "kpi_impl.h"

class KbUnGcaModule : public KbKpiUnknownImpl<IKpiUnArcModule>
{
private:
    KPI_UNARC_MODULEINFO m_ModuleInfo;
    IKpiConfig      *m_pConfig;
public:
    KbUnGcaModule(IKpiConfig *pConfig);
    ~KbUnGcaModule(void);
    void  WINAPI GetModuleInfo(const KPI_UNARC_MODULEINFO **ppInfo);
    BOOL  WINAPI Open(IKpiFile   *pFile,  //アーカイブファイル
                      IKpiFolder *pFolder,//アーカイブファイルがあるフォルダ
                      const wchar_t *cszOutputPath,//作業用フォルダ
                      IKpiUnArc **ppUnArc);
    BOOL  WINAPI EnumConfig(IKpiConfigEnumerator *pEnumerator);
    DWORD WINAPI ApplyConfig(const wchar_t *cszSection,//セクション名
                             const wchar_t *cszKey,    //キー名
                             INT64  nValue, //変更後の値(BOOL/INT の場合)
                             double dValue, //変更後の値(FLOAT の場合)
                             const wchar_t *cszValue);//変更後の値(文字列)
};
