midiOutSetVolume 函式 (mmeapi.h)

midiOutSetVolume 函式會設定MIDI輸出裝置的磁碟區。

語法

MMRESULT midiOutSetVolume(
  HMIDIOUT hmo,
  DWORD    dwVolume
);

參數

hmo

處理開啟的 MIDI 輸出裝置。 只要它轉換成 HMIDIOUT,此參數也可以包含 MIDI 數據流的句柄。 此參數也可以是裝置標識碼。

dwVolume

新的磁碟區設定。 低序字包含左通道磁碟區設定,而高階字則包含右通道設定。 0xFFFF的值代表完整磁碟區,而0x0000的值則為無聲。

如果裝置不支援左右音量控制, dwVolume 的低序字會指定單聲道音量層級,並忽略高序字。

傳回值

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

傳回碼 Description
MMSYSERR_INVALHANDLE
指定的裝置句柄無效。
MMSYSERR_NOMEM
系統無法配置或鎖定記憶體。
MMSYSERR_NOTSUPPORTED
不支援函式。

備註

如果使用裝置標識碼, midiOutSetVolume 呼叫的結果會套用至裝置的所有實例。 如果使用裝置句柄,則結果只會套用至裝置句柄所參考的裝置實例。

並非所有裝置都支援磁碟區變更。 您可以使用 midiOutGetDevCaps 函式和MIDICAPS_VOLUME旗標來查詢裝置,以判斷裝置是否支援它。

您也可以使用 midiOutGetDevCaps 函式和MIDICAPS_LRVOLUME旗標查詢裝置,來判斷裝置是否同時支援左右通道上的音量控制。

不支援完整16位磁碟區層級控件的裝置會使用所要求磁碟區設定的高序位。 例如,支援 4 位磁碟區控制的裝置會針對下列磁碟區層級值產生相同的磁碟區設定:0x4000、0x43be和0x4fff。 midiOutGetVolume 函式會傳回完整的 16 位值,如 midiOutSetVolume 所設定,不論裝置的功能為何。

磁碟區設定會對數方式解譯。 這表示當將磁碟區層級從0x5000增加到0x6000,因為從0x4000增加到0x5000時,感知的磁碟區增加是相同的。

規格需求

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

另請參閱

MIDI 函式