加藤歓隆です。

すずきさん:
> > WaveProcコールバック実装するのは無理があるのでしょうか?
> > 知恵を貸して下さい。
>  コールバック関数内では、::EnterCriticalSectionなど極一部の
>  APIしか使えません。(詳しくはHELPを見て下さい)

(api32wh.hlp)
: 上記以外の低レベル オーディオ コールバック関数を
: アプリケーションで使う場合には、 実行が完了するまでに
: 時間のかかるようなAPIを呼び出さないように注意してください。

: 特に、 ウェーブAPIやMIDI APIを呼び出すとデッドロックに
: 陥ることがあります。

う~む、ということは、今まで動いていたのはたまたまだ、
ということでしたか。これから作り直すことにします。

下に続くコードでは、スレッドを作ってから
書き込みを行わないと同期再生になってしまうようですね。

そこは、安葉さんのご指摘のとおりです。

> 私の記憶では, 加藤歓隆さんは, だいぶ前に「低レベル
> オーディオコールバック関数内では低レベルオーディオ
> 関数を呼ばない事」との指摘を多数の方から受けていた
> ような気がしますが...

いやはや、全く面目ないです。
あれから普通に動いてしまったので、あれはあれで解決した、
と思ってしまいまして。やはりちゃんと作らないと、
思わぬところで失敗しますね。

ただ、PostThreadMessageはなんとなく、
メッセージを飛ばしてから届くまでの時間が掛かりそうなので、
セマフォかイベントで処理したいと思います。
# このDLLはCPUビジー下で動きますので。

いつもありがとうございます。