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

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