명령 문자열

[이 페이지와 연결된 기능 MCI는 레거시 기능입니다. MediaPlayer로 대체되었습니다. MediaPlayer는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 MCI 대신 MediaPlayer를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

MCI 디바이스에 문자열 명령을 보내려면 문자열 명령에 대한 매개 변수와 반환된 정보에 대한 버퍼를 포함하는 mciSendString 함수를 사용합니다.

성공하면 mciSendString 함수는 0을 반환합니다. 함수가 실패하면 반환 값의 하위 단어에 오류 코드가 포함됩니다. 이 오류 코드를 mciGetErrorString 함수에 전달하여 오류에 대한 텍스트 설명을 가져올 수 있습니다.

명령 문자열 구문

MCI 명령 문자열은 일관된 동사-개체 한정자 구문을 사용합니다. 각 명령 문자열에는 명령, 디바이스 식별자 및 명령 인수가 포함됩니다. 인수는 일부 명령에 선택 사항이며 다른 명령에는 필요합니다.

명령 문자열의 형식은 다음과 같습니다.

명령 device_id 인수

이러한 구성 요소에는 다음 정보가 포함됩니다.

  • 명령은열기, 닫기 또는 재생과 같은 MCI 명령을 지정합니다.

  • device_id MCI 드라이버의 instance 식별합니다. 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;
} 

명령 변수에 대한 데이터 형식

명령 문자열의 변수에 대해 다음 데이터 형식을 사용할 수 있습니다.

데이터 형식 설명
문자열 문자열 데이터 형식은 선행 및 후행 공백과 따옴표로 구분됩니다. MCI는 문자열에서 작은따옴표를 제거합니다. 문자열에 따옴표를 넣으려면 따옴표를 포함할 두 개의 따옴표 집합을 사용합니다. 빈 문자열을 사용하려면 선행 및 후행 공백으로 구분된 두 개의 따옴표를 사용합니다.
서명된 긴 정수 서명된 긴 정수 데이터 형식은 선행 및 후행 공백으로 구분됩니다. 달리 지정하지 않는 한 정수는 양수 또는 음수일 수 있습니다. 음수 정수 를 사용하는 경우 빼기 기호와 첫 번째 숫자를 공백으로 구분해서는 안 됩니다.
사각형 사각형 데이터 형식은 서명된 4개의 짧은 값의 순서가 지정된 목록입니다. 공백은 이 데이터 형식을 구분하고 목록의 각 정수로 구분합니다.