* MCIコマンドで音を再生 [#db361b13]
再生終了時に指定したウィンドウにNOTIFYメッセージを送る機能の処理方法つき。
#code(Csharp,nooutline){{
[DllImport("winmm.dll",CharSet=CharSet.Auto,CallingConvention=CallingConvention.Winapi)]
public static extern int mciSendString(
string lpszCommand, // コマンド文字列
string lpszReturnString, // 情報を受け取るバッファ
int cchReturn, // バッファのサイズ
IntPtr hwndCallback // コールバックウィンドウのハンドル
);
private static int MM_MCINOTIFY=0x3B9;
private static int MCI_NOTIFY_SUCCESSFUL = 1;
mciSendString("open "+filename+" alias _snd",null,0,IntPtr.Zero);
mciSendString("play _snd from 0 notify",null,0,this.Handle);
protected override void WndProc(ref Message m) {
if(m.Msg==MM_MCINOTIFY && (int)m.WParam==MCI_NOTIFY_SUCCESSFUL){
//ここに再生終了時の処理を記入
//終る時は
mciSendString("stop _snd",null,0,IntPtr.Zero);
mciSendString("close _snd",null,0,IntPtr.Zero);
}
base.WndProc (ref m);
}
}}