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

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