Microsoft DirectX 8.0 (C++) |
RIFF ファイルの基本的な構成単位は "チャンク" である。チャンクは、データの論理的な単位である。各チャンクには、次のフィールドが含まれている。
ほかのチャンクに含まれているチャンクを、"サブチャンク" と呼ぶ。サブチャンクを含むことができるチャンクは、チャンク識別子が RIFF または LIST のチャンクだけである。
ファイルの最初のチャンクは、RIFF として識別されなければならない。ファイル内のその他のチャンクはすべて、このチャンクのサブチャンクとなる。RIFF チャンクは、形式とも呼ばれる。
LIST チャンクは、サブチャンクをグループ化したものである。これらのサブチャンクのいくつかは繰り返し現れる場合があるが、LIST は配列ではない。用語が紛らわしいこともある。たとえば、<part-list> というラベルの付いたチャンクは、パートのリストであると予想するかもしれないが、実際には、"パート" チャンクの要素のリストであり、1 つのパートを示している。
RIFF チャンクでは、データ フィールドの最初の 4 バイトに追加フィールドが含まれる。追加フィールドでは、チャンクの形式タイプが提供される。形式タイプは、ファイルに格納されるデータの形式を識別する、4 文字のコードである。たとえば、DirectMusic のスタイルの形式タイプは DMST である。
LIST チャンクも、データ フィールドの最初の 4 バイトに追加フィールドを含んでいる。このフィールドには、フィールドの "リスト タイプ" が含まれる。リスト タイプは、リストの内容を識別する 4 文字のコードである。たとえば、DirectMusic のスタイルは、パフォーマンスの特定のパート (音色トラック) に関するデータを含む、リスト タイプが "part" の LIST チャンクを持っている。
注 DirectMusic ファイルで使用されているすべての FOURCC コードには、対応するマクロが Dmusicf.h に用意されている。たとえば、DMST の FOURCC は、DMUS_FOURCC_STYLE_FORM マクロによって返される。
一般的な RIFF ファイルの詳細については、Platform SDK ドキュメントの「Resource Interchange File Format Services」を参照すること。