direct_sound_enumerate
id:mb2sync さんのアイデアで、direct_sound_enumerate()を実装してみました。
// ↓direct_sound.hppヘッダ内 namespace hamigaki { namespace audio { namespace direct_sound { struct device_info { std::string driver_guid; std::string description; std::string module_name; }; } // namespace direct_sound template<class Function> Function direct_sound_enumerate(Function f); } } // End namespaces audio, hamigaki. // ↑ヘッダ終わり struct device_name_print { bool operator()(const ds::device_info& info) const { std::cout << info.description << std::endl; return false; // 列挙は終わっていない } }; int main() { audio::direct_sound_enumerate((device_name_print())); }
これを使って、copy()とfind()を作ることにします。
ファンクタの戻り値はDirectSoundEnumerateと逆(列挙が終わった場合true)になっているので分かりにくいかもしれません。
#EnumChildWindows()もEnumFontFamiliesEx()も、みんな0以外で継続ですねぇ。やっぱり、こっちにあわせたほうがよいかも。