ミキサーデバイス情報を得るために、MIXERCAPSのポインタをWindowsAPIに渡す必要がある。
で、ミキサー名はC#で言うところのstring型なわけで、何も考えずに構造体こさえてmixerGetDevCaps()に渡すとメモリ不正書き込みで怒られた。
よくわかってないけど、文字列宣言の前に
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=256)] って入れるといいらしい。 とりあえず、デバッグレベルで動作確認完了。
Blogged with Flock