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

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