# Multimedia file presentation block structures

There are two structures in the presentation block of a multimedia file:

- FILE_INFO_BLOCK_HEADER

- FILE_INFO_PRESENTATION

These structures are returned by mmGetFileInfo.

## FILE_INFO_BLOCK_HEADER

Identifies the block as a presentation block and contains the total size of the block.

#### Definition

typedef struct
{
WORD blkSize;
WORD blkType;
#define BLK_TYPE_PRESENTATION 1
#define BLK_TYPE_STREAM 2
} FILE_INFO_BLOCK_HEADER;

#### Fields

Field | Description
blkSize | Total size of the block in which this header is included, in bytes.
blkType | Identifies the block of information. Valid values are: BLK_PRESENTATION - Block is a presentation block. BLK_TYPE_STREAM - Block is either an audio stream block or a video stream block.

## FILE_INFO_PRESENTATION

Contains presentation-level information.

#### Definition

typedef struct
{
FILE_INFO_BLOCK_HEADER blockHeader;
DWORD creationTime;
DWORD duration;
WORD streamCount;
WORD streams;
DWORD flags;
DWORD maxBitrate;
DWORD maxInterleave;
} FILE_INFO_PRESENTATION;

#### Fields

Field | Description
blkHeader | A pointer to the FILE_INFO_BLOCK_HEADER structure that identifies the block as a presentation block and contains the total size of the block.
creationTime | Creation date of the presentation, in seconds.
duration | Global play duration of the presentation, in seconds. Corresponds to the duration of the longest stream or track.
streamCount | Number of streams or tracks found in the file info block.
streams | Number of streams as indicated in presentation. The streams field is equal to 0 (zero), if this counter is not supported by the file format. This number can be different from the streamCount field.
flags | Reserved for future use.
maxBitrate | Reserved for future use.
maxInterleave | Maximum stream interleave depth in presentation, in milliseconds.