共用方式為


mmioDescend 函式 (mmiscapi.h)

mmioDescend 函式會遞減為使用mmioOpen函式開啟的 RIFF 檔案區塊。 它也可以搜尋指定的區塊。

語法

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

參數

hmmio

開啟 RIFF 檔案的檔案控制碼。

pmmcki

接收 MMCKINFO 結構的緩衝區指標。

pmmckiParent

選擇性應用程式定義的 MMCKINFO 結構的指標,識別要搜尋之區塊的父代。 如果此參數不是 NullmmioDescend 會假設它所參考的 MMCKINFO 結構是在呼叫 mmioDescend 時填入父區塊, 而 mmioDescend 會搜尋父區塊內的區塊。 如果未指定父區塊,請將此參數設定為 Null

fuDescend

搜尋旗標。 如果未指定旗標, mmioDescend 會從目前檔案位置開始遞減到區塊。 定義下列值。

意義
MMIO_FINDCHUNK 搜尋具有指定區塊識別碼的區塊。
MMIO_FINDLIST 使用區塊識別碼 「LIST」 和指定的表單類型搜尋區塊。
MMIO_FINDRIFF 使用區塊識別碼 「RIFF」 和指定的表單類型搜尋區塊。

傳回值

如果成功或發生錯誤,則傳回MMSYSERR_NOERROR。 可能的錯誤值包括下列專案。

傳回碼 描述
MMIOERR_CHUNKNOTFOUND
如果找到所需的區塊之前,已達到指定的) ,則檔案結尾 (或父區塊的結尾。

備註

「RIFF」 區塊是由四位元組區塊識別碼所組成, (類型 FOURCC) ,後面接著四位元組區塊大小 (類型 DWORD) ,後面接著區塊的資料部分,如果資料部分的大小是奇數,則後面接著 Null 板位元組。 如果區塊識別碼為 「RIFF」 或 「LIST」,則區塊資料部分的前四個位元組是表單類型或清單類型, (TYPE FOURCC) 。

如果您使用 mmioDescend 來搜尋區塊,請先確定檔案位置在區塊開頭,再呼叫 函式。 搜尋會從目前的檔案位置開始,並繼續到檔案的結尾。 如果指定父區塊,則檔案位置應該在父區塊內某處,再呼叫 mmioDescend。 在此情況下,搜尋會從目前的檔案位置開始,並繼續到父區塊的結尾。

如果 mmioDescend 在搜尋區塊時失敗,則目前的檔案位置未定義。 如果 mmioDescend 成功,則會變更目前的檔案位置。 如果區塊是 「RIFF」 或 「LIST」 區塊,則新的檔案位置會緊接在表單類型或清單類型之後,從區塊開頭 () 12 個位元組。 對於其他區塊,新檔案位置將是區塊開頭 (8 個位元組的資料部分開頭) 。

mmioDescend 函式會以下列資訊填入lpck參數所指向的MMCKINFO結構:

  • ckid成員是區塊。 如果為 wFlags指定MMIO_FINDCHUNK、MMIO_FINDRIFF或MMIO_FINDLIST旗標, MMCKINFO 結構也會用來將參數傳遞至 mmioDescend。 在此情況下, ckid 成員會指定要搜尋之區塊識別碼、表單類型或清單類型的四個字元代碼。
  • cksize成員是區塊資料部分的大小,以位元組為單位。 如果有任何) ,則大小包括表單類型或清單類型 (,但不包含資料結尾的 8 位元組區塊標頭或面板位元組, (如果有任何) 。
  • 如果ckid是 「RIFF」,則其會是表單類型,如果ckid是 「LIST」,則為清單類型。 否則為 Null
  • dwDataOffset成員是區塊資料部分開頭的檔案位移。 如果區塊是 「RIFF」 區塊或 「LIST」 區塊,則此成員是表單類型或清單類型的位移。
  • dwFlags成員包含區塊的其他資訊。 目前未使用這項資訊,且設定為零。

需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 mmiscapi.h (包括 Mmiscapi.h、Windows.h)
程式庫 Winmm.lib
Dll Winmm.dll