Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 >
mciSendString関数のエラーメッセージを取得する
この記事が対象とするファイル形式
mp3 | (*.mp3) | ◎ | 対象です。 |
wave | (*.wav) | ◎ | 対象です。 |
midi | (*.mid) | ◎ | 対象です。 |
この例ではButton1をクリックすると 再生していないファイルを停止しようとする。mciSendString関数はこの操作に対しエラーを返すのでそのエラーメッセージを表示する。
Private
Declare Function
mciSendString Lib "winmm.dll"
Alias "mciSendStringA"
(ByVal lpstrCommand
As String,
ByVal lpstrReturnString As
String, ByVal
uReturnLength As
Integer, ByVal hwndCallback
As Integer)
As
Integer Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal fdwError As Integer, ByVal lpszErrorText As String, ByVal cchErrorText As Integer) As Integer |
Private Sub
Button1_Click(ByVal sender
As System.Object,
ByVal e As System.EventArgs)
Handles Button1.Click 'mciSendString関数がエラーを返すようにプログラムします。 'このエラーはVB自体がエラーになるわけではないのでOn ErrorやTryではトラップできません。 Dim Result As Integer '再生していないファイルを停止しようとします。 Result = mciSendString("stop MySound", "", 0, 0) If Result <> 0 Then 'エラーメッセージを取得して表示します。 Dim ErrorMessage As String = GetErrorString(Result) MsgBox(ErrorMessage, MsgBoxStyle.Exclamation, "Error " & Result) End If End Sub |
'■GetErrorString ''' <summary>mciSendString関数の戻り値からエラーメッセージを取得します。</summary> ''' <param name="APIResult">mciSendString関数の戻り値。エラーコード。</param> ''' <returns>APIResultに対応するエラーメッセージを返します。</returns> Private Function GetErrorString(ByVal APIResult As Integer) As String Dim Buffer As String = New String(Chr(0), 255) Dim ErrorMessage As String Call mciGetErrorString(APIResult, Buffer, Len(Buffer)) ErrorMessage = Replace(Buffer, Chr(0), "") Return ErrorMessage End Function |
メモ:mciSendString関数が返すエラーはVBのエラーではないのでOn ErrorやTryではトラップできません。mciSendString関数の戻り値でエラーがあるかないか判断できます。
メモ:「エラーメッセージ」とは言いますが、正常に動作が完了した場合のメッセージを取得することもできます。