命令字串
[與此頁面相關聯的功能 MCI是舊版功能。 MediaPlayer已取代它。 MediaPlayer 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式代碼盡可能使用 MediaPlayer,而不是 MCI。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
若要將字串命令傳送至MCI裝置,請使用 mciSendString 函式,其中包含字串命令的參數,以及任何傳回資訊的緩衝區。
如果成功,mciSendString 函式會傳回零。 如果函式失敗,傳回值的低序字會包含錯誤碼。 您可以將此錯誤碼傳遞至 mciGetErrorString 函式,以取得錯誤的文字描述。
命令字串的語法
MCI 命令字串會使用一致的 verb-object-modifier 語法。 每個命令字串都包含命令、裝置標識碼和命令自變數。 某些命令的自變數是選擇性的,而其他命令則為必要自變數。
命令字串的格式如下:
命令device_id自變數
這些元件包含下列資訊:
device_id 會識別MCI驅動程序的實例。 開啟裝置時會建立 device_id。
自變數 指定命令所使用的旗標和變數。 旗標是使用MCI命令辨識的關鍵詞。 變數是套用至 MCI 命令或旗標的數位或字串。
例如,播放 命令會使用自變數 「from position」 和 “to position” 來指出開始和結束播放的位置。 您可以依任何順序列出與命令搭配使用的旗標。 當您使用具有與其相關聯之變數的旗標時,您必須提供變數的值。
未指定 (和選擇性) 命令自變數會假設預設值。
下列範例函式會使用 「from」 和 「to」 旗標傳送 play 命令。
BOOL PlayFromTo(LPTSTR lpstrAlias, DWORD dwFrom, DWORD dwTo)
{
TCHAR achCommandBuff[128];
int result;
MCIERROR err;
// Form the command string.
result = _stprintf_s(
achCommandBuff,
TEXT("play %s from %u to %u"),
lpstrAlias, dwFrom, dwTo);
if (result == -1)
{
return FALSE;
}
// Send the command string.
err = mciSendString(achCommandBuff, NULL, 0, NULL);
if (err != 0)
{
return FALSE;
}
return TRUE;
}
命令變數的數據類型
您可以針對命令字串中的變數使用下列資料類型。
數據類型 | 描述 |
---|---|
字串 | 字串數據類型是以開頭和尾端空格符和引號分隔。 MCI 會從字串中移除單引號。 若要將引號放在字串中,請使用一組兩個引號,其中您想要內嵌引號。 若要使用空字串,請使用以開頭和尾端空格符分隔的兩個引號。 |
帶正負號的長整數 | 帶正負號的長整數數據類型會以開頭和尾端空格符分隔。 除非另有指定,否則整數可以是正數或負數。 如果您使用負整數,則不應該以空格分隔減號和第一個數位。 |
矩形 | 矩形數據類型是四個帶正負號簡短值的已排序列表。 空格符會分隔此資料類型,並分隔清單中的每個整數。 |