Function Reference


_DebugCOMError

Sets, resets or queries the debug level for COM errors

#include <Debug.au3>
_DebugCOMError ( [$iComDebug = 1 [, $bExit = False]] )

Parameters

$iComDebug [optional] Debug level. Possible values are:
-1 - Return the current settings
 0 - Disable debugging
 1 - Enable debugging. Output the debug info (default)
$bExit [optional] True if the script must be terminated

Return Value

Success: 1 if $iComDebug = 0 or 1 and sets @extended to:
0 - The COM error handler is not initialized
1 - The COM error handler has been initialized
2 - The COM error handler was already active
3 - The COM error handler is already disabled
1 if $iComDebug = -1 and sets the @error flag and @extented to current setting:
@error = current Debug level
@extended = current script termination.
Failure: 0 and sets the @error flag to non-zero.
@error: 1 - $iComDebug is not an integer or < -1 or > 1
2 - The COM error handler is already set to another function (= not set by this function)
3 - _DebugSetup() did not run properly. Make sure _DebugSetup() ran properly before calling this function
4 - Installation of the custom error handler failed. @extended is set to the error code returned by ObjEvent()

Remarks

Before calling this function, _DebugSetup() must be called first to create the debug session.

Related

_DebugSetup

Example

#include <Debug.au3>
#include <MsgBoxConstants.au3>

_DebugSetup(Default, True, 1, Default, True) ; 1 = GUI output with timestamping

Example()

; *****************************************************************************
; Example
; Generate a COM error and let _DebugCOMError display the error
; *****************************************************************************
Func Example()
    ; Create application object for the Microsoft Internet Explorer
    Local $oIE = ObjCreate("InternetExplorer.Application")
    If @error <> 0 Then Exit MsgBox($MB_SYSTEMMODAL, "_DebugCOMError UDF", "Error creating a new IE application object." & _
            @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ; Set up the COM error handler to write error messages using a GUI and exit on error
    _DebugCOMError(1)
    ; Provoke a COM error. Functions is unknown
    $oIE.xyz()
    If @error <> 0 Then Return MsgBox($MB_SYSTEMMODAL, "_DebugCOMError UDF", "Error occurred and handled." & _
            @CRLF & "@error = " & @error)
    ; Close the IE
    $oIE.Quit()
    $oIE = 0
EndFunc   ;==>Example