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

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