mmioDescend 函式 (mmiscapi.h)
mmioDescend 函式會遞減為使用mmioOpen函式開啟的 RIFF 檔案區塊。 它也可以搜尋指定的區塊。
語法
MMRESULT mmioDescend(
HMMIO hmmio,
LPMMCKINFO pmmcki,
const MMCKINFO *pmmckiParent,
UINT fuDescend
);
參數
hmmio
開啟 RIFF 檔案的檔案控制碼。
pmmcki
接收 MMCKINFO 結構的緩衝區指標。
pmmckiParent
選擇性應用程式定義的 MMCKINFO 結構的指標,識別要搜尋之區塊的父代。 如果此參數不是 Null, mmioDescend 會假設它所參考的 MMCKINFO 結構是在呼叫 mmioDescend 時填入父區塊, 而 mmioDescend 會搜尋父區塊內的區塊。 如果未指定父區塊,請將此參數設定為 Null 。
fuDescend
搜尋旗標。 如果未指定旗標, mmioDescend 會從目前檔案位置開始遞減到區塊。 定義下列值。
值 | 意義 |
---|---|
MMIO_FINDCHUNK | 搜尋具有指定區塊識別碼的區塊。 |
MMIO_FINDLIST | 使用區塊識別碼 「LIST」 和指定的表單類型搜尋區塊。 |
MMIO_FINDRIFF | 使用區塊識別碼 「RIFF」 和指定的表單類型搜尋區塊。 |
傳回值
如果成功或發生錯誤,則傳回MMSYSERR_NOERROR。 可能的錯誤值包括下列專案。
傳回碼 | 描述 |
---|---|
|
如果找到所需的區塊之前,已達到指定的) ,則檔案結尾 (或父區塊的結尾。 |
備註
「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 |