﻿id	summary	reporter	owner	description	type	status	milestone	component	version	severity	resolution	keywords	cc
2030	_WinAPI_GetLastErrorMessage - accept specified error code parameter	anonymous	Gary	"
{{{

; #FUNCTION# ====================================================================================================================
; Name...........: _WinAPI_GetLastErrorMessage
; Description ...: Returns the calling threads last error message
; Syntax.........: _WinAPI_GetLastErrorMessage([$iError])
; Parameters ....: $iError 
; Return values .: Success      - Last error message
; Author ........: Paul Campbell (PaulIA)
; Modified.......: jpm, danielkza, Valik
; Remarks .......:
; Related .......: _WinAPI_GetLastError
; Link ..........:
; Example .......:
; ===============================================================================================================================
Func _WinAPI_GetLastErrorMessage($nError = False)
    Local $tBufferPtr = DllStructCreate(""ptr"")
	Local $pBufferPtr = DllStructGetPtr($tBufferPtr)
	
	If Not $nError Then $iError = _WinAPI_GetLastError()

	Local $nCount = _WinAPI_FormatMessage(BitOR($__WINAPICONSTANT_FORMAT_MESSAGE_ALLOCATE_BUFFER, $__WINAPICONSTANT_FORMAT_MESSAGE_FROM_SYSTEM), _
		0, $nError, 0, $pBufferPtr, 0, 0)
    If @error Then Return SetError(@error, 0, """")

     Local $sText = """"
    Local $pBuffer = DllStructGetData($tBufferPtr, 1)
    If $pBuffer Then
        If $nCount > 0 Then
            Local $tBuffer = DllStructCreate(""wchar["" & ($nCount+1) & ""]"", $pBuffer)
            $sText = DllStructGetData($tBuffer, 1)
        EndIf
        _WinAPI_LocalFree($pBuffer)
    EndIf

    Return $sText
EndFunc   ;==>_WinAPI_GetLastErrorMessage

}}}
"	Feature Request	closed		Standard UDFs		None	Rejected	fuvalik	
