質問は私には少し不明です。あなたは内部的にモーダルメッセージループに入るAPIについて話していますか?これがあなたに何らかの再入国問題を作り出しているのでしょうか?そのような場合は、おそらくあなたの問題を解決するためのより良い方法があります。 APIがモーダルループに入っている場合は、間違いなく良い理由があります。そうすることを許可する必要があります。 (あなたの場合は、DirectShowが別のCOMオブジェクトと内部的に通信していると思います)。正しく書かれている場合、モーダルループは同じスレッド上の他のウィンドウにメッセージをディスパッチします。最後のステップは重要である
PostQuitMessage(0); // Signal quit to force the upcoming loop to exit
APIFunc(); // Enters modal loop internally
MSG msg;
PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE); // Eat the next WM_QUIT
:あなたは本当にこれをしたい場合はどのような場合には
は、ここに方法です。 WM_QUITメッセージのためにモーダルループが終了すると、終了後に(アプリケーションが終了することを知るために)独自の終了メッセージを送信する必要があります。あなたがそれを食べないと、あなたのアプリケーションは終了します。