Platform SDK: DirectX

IDirectMusicBuffer::PackUnstructured

IDirectMusicBuffer::PackUnstructured メソッドは、非構造化データ (通常は MIDI システムエクスクルーシブ メッセージ) を、タイミング情報およびルーティング情報と共にバッファ内に挿入する。

HRESULT PackUnstructured(
  REFERENCE_TIME rt, 
  DWORD dwChannelGroup,
  DWORD cb, 
  LPBYTE lpb
);

パラメータ

rt
メッセージの絶対タイム。
dwChannelGroup
メッセージが所属するチャンネル グループ。
cb
データのサイズ。バイト単位で指定する。
lpb
データへのポインタ。

戻り値

成功すれば S_OK を返す。

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

E_OUTOFMEMORY
E_POINTER

注意

このメソッドを使って、任意のデータをポートに送信できる。

少なくとも 28 バイト (DMUS_EVENTHEADER のサイズ)とデータのサイズを 4 バイトの倍数まで追加したサイズの空きがバッファ内に存在しなければならない。必要なバッファは DMUS_EVENT_SIZE(cb) マクロを使って取得できる。ここで cb はデータのサイズである。

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

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

動作環境

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

参照

IDirectMusicBuffer::PackStructured