#pragma once

struct kbvsti_Settings
{
    wchar_t szDllPath[MAX_PATH];
    int     nSampleRate;
    double  dVolume;
    int     nEditorPosX;
    int     nEditorPosY;
    int     nReset;
    bool    bShowEditor;
    bool    bCache;
};

class IKpiConfig;
class IKpiConfigEnumerator;

BOOL  __fastcall kbvsti_EnumConfig(IKpiConfig *pConfig, IKpiConfigEnumerator *pEnumerator);
DWORD __fastcall kbvsti_ApplyConfig(IKpiConfig *pConfig,
                              const wchar_t *cszSection, //セクション名
                              const wchar_t *cszKey, //キー名
                              INT64  nValue, //変更後の値(BOOL/INT の場合)
                              double dValue, //変更後の値(FLOAT の場合)
                              const wchar_t *cszValue);//変更後の値(文字列)
void __fastcall kbvsti_GetSettings(IKpiConfig *pConfig, kbvsti_Settings *pSettings);
void __fastcall kbvsti_GetVstiPath(IKpiConfig *pConfig, wchar_t *pszPath, int nSize);//nSize は文字数単位
void __fastcall kbvsti_GetEditorPos(IKpiConfig *pConfig, int *pPosX, int *pPosY);
void __fastcall kbvsti_SaveEditorPos(IKpiConfig *pConfig, int nPosX, int nPosY);