Programming/Windows API
MCI(Media Control Interface)는 Computer에 정착된 Multimedia장치를 의미하는 것으로 mciSendString함수는 이 장치에 특정 명령어를 전송하여 구동시키는 함수입니다.

Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommnad As String, ByVal lpstrReturnString As String, ByVal uReturnValue As Integer, ByVal hwndCallback As Integer) As Integer
▶VB.NET 선언

[DllImport("winmm.dll")]
public static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnValue, int hwndCallback);
▶C# 선언

mciSendString함수의 첫번째 인수로는 작동할 명령어를 전달하고 두번째 인수는 결과정보를 받을 문자열변수를 지정합니다. 만일 정보가 필요하지 않다면 이 부분을 공백으로 처리할 수 있습니다.

세번째 인수는 두번째 인수에서 지정한 변수에 정보가 들어갈 최대 크기를 기술합니다. 두번째 인수가 공백으로 처리된 경우에는 이 인수를 0으로 지정합니다.

마지막 네번째 인수는 함수가 처리완료후 해당 처리를 받을 Callback함수의 Window Handle을 기술합니다. 만일 이 인수가 필요치 않은 경우에는 인수값을 0으로 지정하면 됩니다.

이 인수들을 토대로 mdi File을 열고, 재생시킨 후 닫는 처리를 수행하려면 mciSendString함수는 다음과 같이 호출될 수 있습니다.

mciSendString("OPEN 경로 TYPE SEQUENCER ALIAS MIDFile", "", 0, 0) '경로에 MDI File이 존재하는 위치를 기술
mciSendString("PLAY MDIFile", "", 0, 0) '열린 File을 재생
mciSendString("Close MIDFile", "", 0, 0) '열린 File을 닫음
▶VB.NET 호출

mciSendString(@"OPEN 경로 TYPE SEQUENCER ALIAS MIDFile", "", 0, 0); //경로에 MDI File이 존재하는 위치를 기술
mciSendString("PLAY MDIFile", "", 0, 0); //열린 File을 재생
mciSendString("Close MIDFile", "", 0, 0); //열린 File을 닫음
▶C# 호출

이 함수가 정상적으로 처리되면 0값을 반환합니다.
0 0