mmioDescend

The mmioDescend function descends into a chunk of a RIFF file that was opened by using themmioOpen function. It can also search for a given chunk.

本函数跳动入一个RIFF文件的一个块中。这个文件已经被mmioOpen函数打开,它也能搜索一个给定的块。

Syntax

MMRESULT mmioDescend(   HMMIO hmmio,   LPMMCKINFO lpck,   LPMMCKINFO lpckParent,   UINT wFlags ); 

 
     
 
     
 
     
 
     
 
     
 
     
 
    

Parameters

hmmio

File handle of an open RIFF file.

一个打开的RIFF文件的文件句柄

lpck

Pointer to a buffer that receives an MMCKINFO structure.

指秘一个缓冲区,它用来接收一个MMCKINFO结构

lpckParent

Pointer to an optional application-defined MMCKINFO structure identifying the parent of the chunk being searched for. If this parameter is not NULLmmioDescend assumes the MMCKINFOstructure it refers to was filled when mmioDescend was called to descend into the parent chunk, and mmioDescend searches for a chunk within the parent chunk. Set this parameter to NULL if no parent chunk is being specified.

指向一个可选的由应用程序定义的MMCKINFO结构,它标识这个正在搜索的块的父,如果这个参数不为NULL,本函数搜索一个块,局限于这个父块内部。设置这个参数为NULL,如果没有父块被指定。

wFlags

Search flags. If no flags are specified, mmioDescend descends into the chunk beginning at the current file position. The following values are defined.

搜索标志,如果没有标志被指定,本函数搜索这个块在当前文件位置。随后是被定义的值。

ValueMeaning
MMIO_FINDCHUNKSearches for a chunk with the specified chunk identifier.
MMIO_FINDLISTSearches for a chunk with the chunk identifier "LIST" and with the specified form type.
MMIO_FINDRIFFSearches for a chunk with the chunk identifier "RIFF" and with the specified form type.

 

Return value

Returns MMSYSERR_NOERROR if successful or an error otherwise. Possible error values include the following.

Return codeDescription
MMIOERR_CHUNKNOTFOUND

The end of the file (or the end of the parent chunk, if given) was reached before the desired chunk was found.

 

Remarks

注意

A "RIFF" chunk consists of a four-byte chunk identifier (type FOURCC), followed by a four-byte chunk size (type DWORD), followed by the data portion of the chunk, followed by a null pad byte if the size of the data portion is odd. If the chunk identifier is "RIFF" or "LIST", the first four bytes of the data portion of the chunk are a form type or list type (type FOURCC).

一个“RIFF”块由一个四字节块标识,和随后的一个四字节块尺寸构成。随后是块的数据部分。再往后是一个null字节,如果数据部分的大小是奇数。如果块标识是"RIFF"或"LIST",块的数据部分的第一个四字节是一个结构类型或者list类型。


If you use mmioDescend to search for a chunk, make sure the file position is at the beginning of a chunk before calling the function. The search begins at the current file position and continues to the end of the file. If a parent chunk is specified, the file position should be somewhere within the parent chunk before calling mmioDescend. In this case, the search begins at the current file position and continues to the end of the parent chunk.

如果你使用本函数去搜索一个块,确定文件位置是在一个块的开始部分。搜索从当前文件位置然后到文件的结尾。如果一个父块被指定,呼叫本函数前,文件位置应该是父块中的某处,在这种情况下,搜索赔开始于当前文件位置,直到父块的结尾。


If mmioDescend is unsuccessful in searching for a chunk, the current file position is undefined. IfmmioDescend is successful, the current file position is changed. If the chunk is a "RIFF" or "LIST" chunk, the new file position will be just after the form type or list type (12 bytes from the beginning of the chunk). For other chunks, the new file position will be the start of the data portion of the chunk (8 bytes from the beginning of the chunk).

如果本函数搜索一个块时未成功,当前文件位置是不明确的。如果本函数成功,当前文件位置被改变。如果块是一个“RIFF”块或“LIST”块,新的文件位置将是格式类型或list类型(从这个块开始的12字节)后,对于其它块,新的文件位置将是这个块的数据开始部分。


本函数填充MMCKINFO结构,这个结构由lpck参数指定,用随后的信息。

The mmioDescend function fills the MMCKINFO structure pointed to by the lpck parameter with the following information:

  • The ckid member is the chunk. If the MMIO_FINDCHUNK, MMIO_FINDRIFF, or MMIO_FINDLIST flag is specified for wFlags, the MMCKINFO structure is also used to pass parameters tommioDescend. In this case, the ckid member specifies the four-character code of the chunk identifier, form type, or list type to search for.
  • The cksize member is the size, in bytes, of the data portion of the chunk. The size includes the form type or list type (if any), but does not include the 8-byte chunk header or the pad byte at the end of the data (if any).
  • The fccType member is the form type if ckid is "RIFF", or the list type if ckid is "LIST". Otherwise, it is NULL.
  • The dwDataOffset member is the file offset of the beginning of the data portion of the chunk. If the chunk is a "RIFF" chunk or a "LIST" chunk, this member is the offset of the form type or list type.
  • The dwFlags member contains other information about the chunk. Currently, this information is not used and is set to zero.

Requirements

Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Header

Mmsystem.h (include Windows.h)

Library

Winmm.lib

DLL

Winmm.dll

 

 

Send comments about this topic to Microsoft

Build date: 9/7/2011

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值