IBM Open Class

From Wikipedia, the free encyclopedia
Jump to: navigation, search
C Set++ v2.01 for OS/2, the first release of IOC/OCL/IUICL

IBM Open Class (IOC) is an IBM C++ product originally developed by Kevin Leong and originally known under several names in the C++ industry, including ICL (IBM Class Library), UICL (User Interface Class Library), and OCL (Open Class Library).

IOC was an extensive set of C++ classes used to build CLI and GUI applications which could then be easily cross-compiled to OS/2, Microsoft Windows, and AIX. IOC also formed the basis for IBM's VisualAge for C++ graphical application builder. The non-GUI portions of IOC were available for z/OS and OS/400.

History of IOC[edit]

Promotional poster from 1993 showing parts of the class hierarchy for the IUICL v2.01

The IOC was included as part of IBM's C++ compiler environment. Applications developed with IOC could be distributed with a royalty-free runtime, or could be statically linked against the IOC libraries. Initially only available for OS/2, the IOC was eventually made available for Windows, AIX, z/OS, and OS/400. Support for the OS/2 and Windows VisualAge for C++ compiler—as well as the accompanying IOC—was officially withdrawn by IBM on April 27, 2001.[1] IOC was removed from z/OS 1.9, introduced in 2007.

  • C/Set++ v2.01 for OS/2 (1993)
  • VisualAge C++ for OS/2, version 3.0
  • VisualAge for C++ for Windows, version 3.5
  • C and C++ Compilers for OS/2, AIX, and for Windows NT, version 3.6
  • C and C++ Compilers for OS/2 and Windows, version 3.65 (1998?)
  • VisualAge C++ Professional for OS/2 and Windows NT, version 4.0 (1998)


The most widely recognized example of a simple application that uses the IOC is hello world:

 #include <iframe.hpp>
 int main()
     IFrameWindow frame ("Hello, World!");

Other examples of commonly used IOC classes and methods include:

 #include <istring.hpp>
 IString someText ("hello world");
 #include <icmdhdr.hpp>
 virtual Boolean MyHandler::command (ICommandEvent &event);


  1. ^ IBM's Withdrawal Announcement #901-013 (announced on January 23, 2001, effective on April 27, 2001)

External links[edit]