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

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