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

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