Tech Articles


How to capture error messages from an ActiveX control


Normally when you use OLEObject to connect to an ActiveX control and encounter an error, you will get the generic run time error ‘R0035 – Application terminated. Error calling external object function xxx’.

 

I have run across a very simple way to capture the actual error code and message generated by the ActiveX control.

 

First, create a new Standard Class object and select oleobject for the type.

 

Next add the following instance variables:

 

ULong ErrorCode

String ErrorText

 

Then add this code to the externalexception event:

 

ErrorCode = ResultCode

ErrorText = Description

 

Finally save the object as n_oleobject.

 

In your script that calls the ActiveX control functions you will do the following:

 

n_OLEObject oleTheObj

Integer li_rc

 

oleTheObj = Create n_OLEObject

li_rc = oleTheObj.ConnectToNewObject(“TheObject.Name”)

If li_rc = 0 Then

   try

      oleTheObj.TheFunction()

   catch ( RuntimeError rte )

      PopulateError(oleTheObj.ErrorCode, oleTheObj.ErrorText)

      MessageBox(“OLE Runtime Error #” + &

            String(Error.Number), Error.Text, StopSign!)

      oleTheObj.DisconnectObject()

      Return

   end try

   oleTheObj.DisconnectObject()

Else

   MessageBox(“OLE Connect Error #” + String(li_rc), &

         “Connect To Object Failed!”, StopSign!)

End If

 

You’ll notice that in the catch section I used PopulateError to get the instance variables with the error information. I did this so I would also have the objectname/scriptname/linenumber for error logging if this were a real application.

Comments (0)
There are no comments posted here yet

Find Articles by Tag

Design NativePDF BLOB Elevate Conference 32-bit Azure Text PostgreSQL SVN Sort Authentication RESTClient JSONParser TLS/SSL Event Handler SDK Database Table Data IDE UI Modernization InfoMaker C# Menu Source Code PFC PDFlib Icon Event WebBrowser Git Web Service Proxy Interface JSON UI GhostScript TortoiseGit Database Profile Database Application Database Connection iOS RibbonBar PowerBuilder Compiler HTTPClient Expression Array TreeView Database Table Jenkins API SnapObjects Script PBNI Encryption PBVM Oracle External Functions MessageBox Database Table Schema Installation Transaction SOAP CI/CD 64-bit .NET Assembly CrypterObject DevOps ActiveX Import Export JSON Outlook SQL Server Variable Migration Authorization License Stored Procedure Configuration PBDOM Data Platform TFS Window SqlExecutor Performance DataWindow JSON Import JSON Windows OS JSONGenerator Trial .NET DataStore Debugger PowerServer Mobile Service Bug OAuth DataType OAuth 2.0 PostgreSQL ODBC driver Linux OS .NET Std Framework Filter SqlModelMapper DLL SnapDevelop Error Encoding Debugging Source Control Android Model Database Painter DataWindow Export PDF Visual Studio RichTextEdit Control Mobile Syntax PowerBuilder (Appeon) Testing CoderObject Debug ODBC Excel PowerScript (PS) Open Source Class COM Event Handling PowerServer Web WinAPI Database Object Validation PowerBuilder SQL Resize REST UI Themes Web API DragDrop Repository OrcaScript RibbonBar Builder Charts Branch & Merge File Windows 10 Icons Deployment Graph XML Messagging OLE Automated Testing