La mayor parte de las APIs de 32 bits retornan información detallada sobre el error producido en caso de fallo. Para obtener esta información en un formato adecuado y útil, se pueden utilizar las funciones de la API GetLastError y FormatMessage.
Cuando quieras comprobar el error que ha producido una función API usa lo siguiente:
Aquí tienes el código de La función InfErrorAPI:
Option Explicit
Public Declare Function GetLastError Lib "kernel32" () As Long
Public Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, _
ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long
Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Public Function InfErrorAPI() As String
Dim sError As String * 500
Dim lErrNum As Long, lErrMsg As Long
' Obtenemos el Código del último error producido
lErrNum = GetLastError
' Obtenemos el texto aclaratorio del error
lErrMsg = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, lErrNum, 0, sError, Len(sError), 0)
InfErrorAPI = Format(lErrNum) & ": " & Trim(sError)
End Function
Posted
jue, ene 4 2001 22:31
by
Maverick