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
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