Microsoft DirectX 8.0 (C++) |
非構造化データ (通常は MIDI システム エクスクルーシブ メッセージ) を、タイミング情報およびルーティング情報と共にバッファ内に挿入する。
HRESULT PackUnstructured( REFERENCE_TIME rt, DWORD dwChannelGroup, DWORD cb, LPBYTE lpb );
成功した場合は S_OK を返す。
失敗した場合は、次のいずれかのエラー値を返す。
E_OUTOFMEMORY |
E_POINTER |
このメソッドを使って、任意のデータをポートに送信できる。
少なくとも 28 バイト (DMUS_EVENTHEADER のサイズ) とデータのサイズを 4 バイトの倍数まで追加したサイズの空きがバッファ内に存在しなければならない。必要なバッファは DMUS_EVENT_SIZE(cb) マクロを使って取得できる。ここで cb はデータのサイズである。
rt パラメータには、データがポートに送信される絶対タイムを設定する必要がある。メッセージを即座に演奏するには、遅延時間クロックからこのタイムを取得し、rt として使用する。「IDirectMusicPort8::GetLatencyClock」を参照すること。
同じタイムのスタンプが付いたメッセージは、バッファ内に置かれた順序と同じ順序で演奏されるとは限らない。
ヘッダー : dmusicc.h で宣言。