您的位置:首页 > 其它

Win32API调用错误号与信息

2007-05-12 21:28 330 查看
Author:水如烟

Namespace LzmTW.uSystem.uWindows.Win32API
Public Class Win32ErrHelper

Public Shared ReadOnly Property Message(ByVal errNum As Integer) As String
Get
If errNum = 0 Then Return "操作成功完成"

Return GetString(errNum)
End Get
End Property

Private Shared Function GetString(ByVal errNum As Integer) As String
Dim collectionIndex As Integer
collectionIndex = errNum / 1000

Dim msg As String
Select Case collectionIndex
Case 0
msg = ErrCollection00.GetString(errNum)
Case 1
msg = ErrCollection01.GetString(errNum)
Case 2
msg = ErrCollection02.GetString(errNum)
Case 3
msg = ErrCollection03.GetString(errNum)
Case 4
msg = ErrCollection04.GetString(errNum)
Case 5
msg = ErrCollection05.GetString(errNum)
Case 6
msg = ErrCollection06.GetString(errNum)
Case 7
msg = ErrCollection07.GetString(errNum)
Case 8
msg = ErrCollection08.GetString(errNum)
Case 9
msg = ErrCollection09.GetString(errNum)
Case 10
msg = ErrCollection10.GetString(errNum)
Case Else
msg = "错误序号超出范围!"
End Select

Return msg
End Function

Public Shared Function Current() As ErrMessage
Dim msg As New ErrMessage
With msg
.ErrNum = System.Runtime.InteropServices.Marshal.GetLastWin32Error
.Message = Message(.ErrNum)
End With
Return msg
End Function

Public Shared Sub ThrowExceptionIfExists()
Dim msg As ErrMessage = Current()
If msg.ErrNum = 0 Then Return

Throw New Exception(msg.ToString)
End Sub

Public Structure ErrMessage
Public ErrNum As Integer
Public Message As String

Public Overrides Function ToString() As String
Return String.Format("{0} 错误号:{1}", Message, ErrNum)
End Function
End Structure
End Class
End Namespace
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: