#pragma once

#include "kpi_device.h"

class KbWaveOutEnumerator
{
private:
    struct WAVEOUT_DEVICE
    {
        enum{
            MAX_DEVICE_LENGTH = 256,//デバイス名の最大長
            MAX_ID_LENGTH = 128,    //識別文字列名の最大長
        };
        wchar_t szDeviceName[MAX_DEVICE_LENGTH];//デバイス名
        wchar_t szId[MAX_ID_LENGTH];            //識別文字列
    };
    WAVEOUT_DEVICE *m_pDevices;
    int  m_nCount;//デバイスの数
    static void __fastcall GetWaveDeviceNameFromIndex(wchar_t *pszName, wchar_t *pszId, int nIndex);
public:
    int  __fastcall GetDeviceIndexFromDeviceName(const wchar_t *cszDeviceName, const wchar_t *cszId);
    void __fastcall EnumerateDevices(IKpiDeviceEnumerator *pDeviceEnumerator);
    KbWaveOutEnumerator(void);
    ~KbWaveOutEnumerator(void);
};
