とりあえず、ドライバ設定画面に表示されるようにした。
本格的な実装はこれから。
・DSOUNDではドライバの列挙はコールバック関数で行っていたけれども、WASAPIでは以下のようにドライバを列挙する。
1.IMMDeviceEnumeratorをCoCreateInstanceする
2.IMMDeviceEnumerator->EnumAudioEndpointsでデバイスのコレクション(IMMDeviceCollection)を取得する。
・個々のエンドポイントデバイスを取り出すには、IMMDeviceCollection->Item(DWORD index,IMMDevice**)でデバイス(IMMDevice)を取得する
・デバイスの属性を取得するにはIMMDevice->OpenPropertyStore()でIPropertyStoreを取得する
・各属性を取り出すには、IPropertyStore ->GetValue()で取り出す。
取り出した値はPROPVARIANT型である
とまあ、COM全開でなんとも面倒くさいのである。