Platform SDK: DirectX

IDirectMusicBuffer::PackStructured

IDirectMusicBuffer::PackStructured メソッドは、固定長データ (通常は MIDI チャンネル メッセージ) を、タイミング情報およびルーティング情報と共にバッファ内に挿入する。

HRESULT PackStructured(
  REFERENCE_TIME rt,
  DWORD dwChannelGroup,
  DWORD dwChannelMessage
);

パラメータ

rt
メッセージの絶対タイム。「注意」を参照すること。
dwChannelGroup
データが所属するチャンネル グループ。
dwChannelMessage
パックすべきデータ (MIDI メッセージ)。

戻り値

成功すれば S_OK を返す。

失敗すれば次のエラー値のいずれかを返す。

DMUS_E_INVALID_EVENT
E_OUTOFMEMORY

注意

バッファ内に少なくとも 32 バイト (DMUS_EVENTHEADERdwChannelMessage の合計サイズ) の空きが存在しなければならない。

rt パラメータには、データがポートに送信される絶対タイムを設定する必要がある。メッセージを即座に演奏するには、遅延時間クロックからこのタイムを取り出し、rt として使用する。「IDirectMusicPort::GetLatencyClock」を参照すること。

同じタイムのスタンプが付いたメッセージは、バッファ内に置かれた順序と同じ順序で演奏されるとは限らない。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dmusicc.h で宣言。

参照

IDirectMusicBuffer::PackUnstructured