midiOutPrepareHeader 函式 (mmeapi.h)

midiOutPrepareHeader 函式會準備 MIDI 系統獨佔或數據流緩衝區以進行輸出。

語法

MMRESULT midiOutPrepareHeader(
  HMIDIOUT  hmo,
  LPMIDIHDR pmh,
  UINT      cbmh
);

參數

hmo

MIDI 輸出裝置的句柄。 若要取得裝置句柄,請呼叫 midiOutOpen。 此參數也可以是MIDI資料流轉換成 HMIDIOUT 類型的句柄。

pmh

MIDIHDR 結構的指標,可識別要準備的緩衝區。

呼叫函式之前,請先設定MIDIHDR結構的 lpDatadwBufferLengthdwFlags 成員。 dwFlags 成員必須設定為零。

cbmh

MIDIHDR 結構的大小,以位元組為單位。

傳回值

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

傳回碼 Description
MMSYSERR_INVALHANDLE
指定的裝置句柄無效。
MMSYSERR_INVALPARAM
指定的位址無效,或指定的數據流緩衝區大於 64K。
MMSYSERR_NOMEM
系統無法配置或鎖定記憶體。

備註

將 MIDI 數據區塊傳遞至設備驅動器之前,您必須將它傳遞至 midiOutPrepareHeader 函 式來準備緩衝區。 準備標頭之後,請勿修改緩衝區。 使用緩衝區完成驅動程序之後,請呼叫 midiOutUnprepareHeader 函式。

應用程式可以重複使用相同的緩衝區,或配置多個緩衝區,併為每個緩衝區呼叫 midiOutPrepareHeader 。 如果您重複使用相同的緩衝區,則不需要每次準備緩衝區。 您可以在開頭呼叫 midiOutPrepareHeader 一次,然後在結尾呼叫 midiOutUnprepareHeader 一次。

數據流緩衝區不能大於 64K。

準備已經備妥的標頭沒有任何作用,而且函式會傳回MMSYSERR_NOERROR。

規格需求

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

另請參閱

配置和準備 MIDI 數據區塊

MIDI 函式

midiOutUnprepareHeader