Microsoft DirectX 8.0 (C++)

IDirectMusicBuffer8::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 として使用する。「IDirectMusicPort8::GetLatencyClock」を参照すること。

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

動作環境

  ヘッダー : dmusicc.h で宣言。

参照

IDirectMusicBuffer8::PackStructured