Share via


Função mmioDescend (mmiscapi.h)

A função mmioDescend desce em uma parte de um arquivo RIFF que foi aberto usando a função mmioOpen . Ele também pode pesquisar uma determinada parte.

Sintaxe

MMRESULT mmioDescend(
  HMMIO          hmmio,
  LPMMCKINFO     pmmcki,
  const MMCKINFO *pmmckiParent,
  UINT           fuDescend
);

Parâmetros

hmmio

Identificador de arquivo de um arquivo RIFF aberto.

pmmcki

Ponteiro para um buffer que recebe uma estrutura MMCKINFO .

pmmckiParent

Ponteiro para uma estrutura MMCKINFO definida pelo aplicativo opcional que identifica o pai da parte que está sendo pesquisada. Se esse parâmetro não for NULL, mmioDescend pressupõe que a estrutura MMCKINFO à qual se refere foi preenchida quando mmioDescend foi chamado para descer para a parte pai e mmioDescend pesquisa uma parte dentro da parte pai. Defina esse parâmetro como NULL se nenhuma parte pai estiver sendo especificada.

fuDescend

Sinalizadores de pesquisa. Se nenhum sinalizador for especificado, mmioDescend descerá para a parte começando na posição do arquivo atual. Os valores a seguir são definidos.

Valor Significado
MMIO_FINDCHUNK Pesquisa uma parte com o identificador de parte especificado.
MMIO_FINDLIST Pesquisa uma parte com o identificador de parte "LIST" e com o tipo de formulário especificado.
MMIO_FINDRIFF Pesquisa uma parte com o identificador de parte "RIFF" e com o tipo de formulário especificado.

Valor retornado

Retorna MMSYSERR_NOERROR se tiver êxito ou um erro de outra forma. Os valores de erro possíveis incluem o seguinte.

Código de retorno Descrição
MMIOERR_CHUNKNOTFOUND
O final do arquivo (ou o final da parte pai, se dado) foi atingido antes da parte desejada ser encontrada.

Comentários

Uma parte "RIFF" consiste em um identificador de bloco de quatro bytes (tipo FOURCC), seguido por um tamanho de parte de quatro bytes (tipo DWORD), seguido pela parte de dados da parte, seguida por um byte nulo do pad se o tamanho da parte de dados for ímpar. Se o identificador de parte for "RIFF" ou "LIST", os quatro primeiros bytes da parte de dados da parte serão um tipo de formulário ou tipo de lista (tipo FOURCC).

Se você usar mmioDescend para pesquisar uma parte, verifique se a posição do arquivo está no início de uma parte antes de chamar a função. A pesquisa começa na posição do arquivo atual e continua até o final do arquivo. Se uma parte pai for especificada, a posição do arquivo deverá estar em algum lugar dentro da parte pai antes de chamar mmioDescend. Nesse caso, a pesquisa começa na posição do arquivo atual e continua até o final da parte pai.

Se mmioDescend não for bem-sucedido na pesquisa de uma parte, a posição do arquivo atual será indefinida. Se mmioDescend for bem-sucedido, a posição do arquivo atual será alterada. Se a parte for uma parte "RIFF" ou "LIST", a nova posição do arquivo será logo após o tipo de formulário ou o tipo de lista (12 bytes do início da parte). Para outras partes, a nova posição do arquivo será o início da parte de dados da parte (8 bytes desde o início da parte).

A função mmioDescend preenche a estrutura MMCKINFO apontada pelo parâmetro lpck com as seguintes informações:

  • O membro ckid é a parte. Se o sinalizador MMIO_FINDCHUNK, MMIO_FINDRIFF ou MMIO_FINDLIST for especificado para wFlags, a estrutura MMCKINFO também será usada para passar parâmetros para mmioDescend. Nesse caso, o membro ckid especifica o código de quatro caracteres do identificador de parte, tipo de formulário ou tipo de lista a ser pesquisado.
  • O membro cksize é o tamanho, em bytes, da parte de dados da parte. O tamanho inclui o tipo de formulário ou o tipo de lista (se houver), mas não inclui o cabeçalho de parte de 8 bytes ou o byte do pad no final dos dados (se houver).
  • O membro fccType será o tipo de formulário se ckid for "RIFF" ou o tipo de lista se ckid for "LIST". Caso contrário, ele será NULL.
  • O membro dwDataOffset é o deslocamento de arquivo do início da parte de dados da parte. Se a parte for uma parte "RIFF" ou uma parte "LIST", esse membro será o deslocamento do tipo de formulário ou do tipo de lista.
  • O membro dwFlags contém outras informações sobre a parte. Atualmente, essas informações não são usadas e são definidas como zero.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mmiscapi.h (inclua Mmiscapi.h, Windows.h)
Biblioteca Winmm.lib
DLL Winmm.dll