Tech Articles


Calling .NET Components from PowerBuilder Via COM Wrappers - Redux


Back in August of 2006, I wrote an article about calling .NET components from PowerBuilder using COM wrappers (i.e., CCW). Since I was basing it on a registry entry approach, the technique demonstrated required the component to be added to the GAC, which in turn required that we create a strong name and sign the assembly (besides having it compiled as a COM-visible assembly).

You don't always have access to the GAC or the registry of the machine that you need to deploy your application to. Well, fortunately we have some options. Beginning with Windows XP and Windows Server 2003, the Microsoft operating systems allowed the use of manifest files rather than registry entries for loading COM components. It not only works for regular COM components, but for .NET components that have been exposed as COM-visible. The only difference is how the manifest file is structured.

If you want further information on the details, I'd recommend the following resources:

Read more

OLE - Extending the Capabilities of PowerBuilder Part 2


This two-part article provides a primer on OLE, some practical examples of its use, and demonstrates some methods for addressing the limitations of PowerBuilder's implementation of OLE.

In Part 1 I provided some background information for OLE and discussed the use of custom controls, in Part 2 I talk about OLE Automation and OLE objects.

OLE Automation
OLE Automation is the interface through which one application (e.g., Microsoft Outlook) makes the methods, properties, and events of its objects (e.g., Folders, Messages, Address Book) available for use within another application. Using OLE Automation, a developer could automate another application (e.g., creating and then printing form letters from Microsoft Word) or they may just use a portion of another application within their own (e.g., using the spell-check capability within Microsoft Word to spell-check text in a control within PowerBuilder).

Read more

OLE - Extending the capabilities of PowerBuilder Part 1


Using Object Linking and Embedding (OLE) from PowerBuilder - whether in OLE Automation or the use of ActiveX controls - has long been a source of frustration for many PowerBuilder developers.

There are several reasons for this:

  • There is a lack of a full understanding of OLE.
  • There is little documentation and practical examples of using OLE with PowerBuilder.
  • There are some limitations inherent in the method that PowerBuilder implements OLE.

This article is intended to address some of these issues by providing a primer on OLE, providing some practical examples of its use, and demonstrating some methods for addressing the limitations of PowerBuilder's implementation of OLE.

The first thing we need to do is cover some background information, beginning with some definitions of terms and then some explanation of how OLE works.

Read more

Find Articles by Tag

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