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

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