Platform SDK: DirectX

ステップ 9 : 通知の処理

[Visual Basic]

ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectMusic Visual Basic チュートリアル」を参照すること。

[C++]

ステップ 4 : 通知の設定」では、セグメントが最後に達したとき、または拍か小節の境界に達したときに、DMDonuts が通知を要求する方法を観察した。この通知の目的は、一度に演奏される「爆発」モチーフの数を制限するのを支援することにある。

通知は WinMain 関数によって取り出される。キュー内のほかのメッセージを処理した後で、アプリケーションは保留中の通知が存在するかどうかをチェックする。この処理は、IDirectMusicPerformance::GetNotificationPMsg メソッドの呼び出しによって行う。保留中の通知メッセージがない場合、このメソッドは S_FALSE を返し、それ以上の処理は必要ない。S_OK が返された場合は、通知メッセージが *pEvent に格納されていることを表している。拍に関連する通知を要求しただけであるので、実際にアプリケーションでメッセージを確認する必要はない。メッセージは直ちに破棄される。さらに、次の拍までに演奏できる爆発モチーフの数を追跡する snMaxBlowUps をリセットする。

if (gpPerformance)
{
    DMUS_NOTIFICATION_PMSG* pEvent;
    while ( S_OK == gpPerformance->GetNotificationPMsg(&pEvent))
    {
        gpPerformance->FreePMsg((DMUS_PMSG*)pEvent);
        snMaxBlowUps = BLOWUPS_PER_BEAT;
    }
}

次項 : ステップ 10 : DirectMusic のシャットダウン