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

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