Platform SDK: DirectX |
ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectMusic Visual Basic チュートリアル」を参照すること。
終了する前に、プログラムは音色のアンロード、作成したすべてのオブジェクトの解放、および COM の参照の解除を実行しなければならない (CoInitialize の呼び出し 1 つにつき、CoUninitialize の呼び出し 1 つを対応させなければならない点に注意すること)。
必要なクリーンアップを実行するには、次の関数を使用する。
HRESULT FreeDirectMusic() { // 演奏中の音楽がある場合は、演奏を中止する。実際には、 // 音色をアンロードするとき、または // パフォーマンスをクローズするときに音楽は停止するので、 // この処理は必ずしも必要ではない。 g_pPerf->Stop( NULL, NULL, 0, 0 ); // 音色をアンロードする。これにより、無音になる。 // CloseDown はすべての音色をアンロードする。 // したがって、この呼び出しは必要である。 g_pMIDISeg->SetParam(GUID_Unload, -1, 0, 0, (void*)g_pPerf); // セグメントを解放する。 g_pMIDISeg->Release(); // パフォーマンス オブジェクトをクローズし、解放する。 g_pPerf->CloseDown(); g_pPerf->Release(); // ローダー オブジェクトを解放する。 g_pLoader->Release(); // COM を解放する。 CoUninitialize(); return S_OK; }