命令字串
[與此頁面 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 命令或旗標的數位或字串。
例如, play 命令會使用引數 「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;
}
命令變數的資料類型
您可以針對命令字串中的變數使用下列資料類型。
Data type | 說明 |
---|---|
字串 | 字串資料類型是以開頭和尾端空白字元和引號分隔。 MCI 會從字串中移除單引號。 若要將引號放在字串中,請使用您想要內嵌引號的兩個引號集合。 若要使用空字串,請使用以開頭和尾端空白字元分隔的兩個引號。 |
帶正負號的長整數 | 帶正負號的長整數資料類型是以開頭和尾端空白字元分隔。 除非另有指定,否則整數可以是正數或負數。 如果您使用負數整數,則不應該將減號和第一個數位與空格分隔。 |
矩形 | 矩形資料類型是四個帶正負號簡短值的已排序清單。 空白字元會分隔此資料類型,並分隔清單中的每個整數。 |