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

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