#pragma once

#include "kpi.h"
#include "config/config.h"

struct kbmsxplug_Settings
{
    CONFIG *config;
    wchar_t szMbkPath[MAX_PATH];
    wchar_t szMbkDummy[MAX_PATH];
    wchar_t szILL[MAX_PATH];
    wchar_t szFont[LF_FACESIZE];
    int     nMgsDlgFontHeight;
    int     nMgsDlgTopLeft;
    DWORD   dwCalcLengthSec;
    BOOL    bEnableMgsLyr;
};
struct kbmsxplug_DriverPaths
{
    wchar_t szMGSDRV[MAX_PATH];
    wchar_t szKINROU[MAX_PATH];
    wchar_t szMPK106[MAX_PATH];
    wchar_t szMPK103[MAX_PATH];
    wchar_t szOPXDRV[MAX_PATH];
    wchar_t szFMBIOS[MAX_PATH];
    wchar_t szMBMDRV[MAX_PATH];
};
BOOL  __fastcall kbmsxplug_EnumConfig(IKpiConfigEnumerator *pEnumerator);
DWORD __fastcall kbmsxplug_ApplyConfig(IKpiConfig *pConfig,
                               const wchar_t *cszSection,//セクション名
                               const wchar_t *cszKey,    //キー名
                               INT64  nValue, //変更後の値(BOOL/INT の場合)
                               double dValue, //変更後の値(FLOAT の場合)
                               const wchar_t *cszValue);////変更後の値(文字列)
void __fastcall kbmsxplug_GetSettings(IKpiConfig *pConfig, kbmsxplug_Settings *pSettings);//CONFIG の save/delete は呼び出し側で行う
void __fastcall kbmsxplug_GetDriverPaths(IKpiConfig *pConfig, kbmsxplug_DriverPaths *pDriverPaths);
void __fastcall kbmsxplug_GetSupportExts(IKpiConfig *pConfig, wchar_t *pszExts, int nSize);
void __fastcall kbmsxplug_DeleteDlg(IKpiConfig *pConfig);//アンロード前に呼び出す
void __fastcall kbmsgplug_SetMgsDlgSettings(IKpiConfig *pConfig, int nTopLeft, int  nFontHeight);