ページ 11

スレッドのメッセージ処理について

Posted: 2011年8月08日(月) 13:46
by hana
現在、winapi32を使ってボイスチャットを作ろうとしています。

音声取得にbeginthreadex関数で音声取得専用のスレッドを作成し、waveInStart関数を使って音声を取得しようとしているのですが、beginthreadexで作成されたスレッドがメッセージキューを持たないため、waveInStartのバッファが一杯になった時に発生するMM_WIM_DATAをどのように処理していいか分かりません。

このメッセージを処理する方法を知っている方がいましたら教えていただけないでしょうか?

Re: スレッドのメッセージ処理について

Posted: 2011年8月08日(月) 18:42
by anyone
http://msdn.microsoft.com/ja-jp/library/cc428805.aspx
waveInOpen関数にコールバックを選ぶdwCallbackという引数があるので
そこにデータがいっぱいになったときの処理を書いたコールバック関数を
指定してあげればいいと思います。

Re: スレッドのメッセージ処理について

Posted: 2011年8月08日(月) 18:51
by ISLe
waveInOpenでは、ウインドウハンドル以外にも、イベントハンドル,スレッドハンドル,関数のポインタを指定できます。
コールバック関数を使うのが分かりやすいのではないでしょうか。
"waveInOpen CALLBACK_FUNCTION"で検索してサンプルプログラムを探してみてください。