This section contains reference entries that describe the built-in classes, interfaces, and enumerations supported in ABL, including both native ABL classes and interfaces and OpenEdge .NET classes and interfaces. For information on working with ABL classes and interfaces, see OpenEdge Development: Object-oriented Programming. For information on working with ABL enumerations, see the ENUM statement reference entry. For information on working with .NET classes and interfaces, see OpenEdge Development: GUI for .NET Programming.
The built-in ABL classes and interfaces support access to user-defined ABL classes and interfaces and also provide the foundation for structured error handling in ABL. They also support features of the ABL model for accessing .NET objects, including the handling of .NET exceptions using ABL structured error handling. For information on the properties and methods of these built-in ABL classes and interfaces, see the Class Properties and Methods Reference.
The built-in ABL enumerations support ABL's reflection capabilities. For example, the Progress.Reflect.AccessMode enumeration has Public, Protected, and Private members that can be used as parameters to specify the access mode of the class member(s) for which information is being requested. The entry for each built-in enumeration describes the members defined by that enumeration.
The built-in OpenEdge .NET classes and interfaces support ABL access to .NET objects. Some of the OpenEdge .NET classes extend Microsoft .NET classes. The reference entries for these classes list the OpenEdge built-in and extended properties, methods, and events that allow you to monitor and control the behavior of these class-based objects. For more information on the properties and methods listed for each OpenEdge .NET class and interface, see the Class Properties and Methods Reference. For more information on the .NET events listed for each OpenEdge .NET class, see the Class Events Reference in this manual. For information on the Microsoft .NET properties, methods, and events not listed in this manual for an extended Microsoft .NET class, see the .NET Framework class library.
ABL views all .NET classes and interfaces as ABL object types by treating the .NET root class, System.Object, as an immediate subclass of the ABL root class, Progress.Lang.Object. In this way, ABL merges the .NET type system with the ABL object type system, making the .NET type system act from within ABL as an extension of Progress.Lang.Object. However, .NET does not have any knowledge of the ABL type system. That is, ABL extends its own type system with .NET, but .NET does not recognize object types defined in ABL. For more information on ABL support for .NET types, see the Data types reference entry.
In addition to the OpenEdge .NET classes specifically referenced in this book, OpenEdge provides a set of third party .NET controls (OpenEdge Advanced UI Controls) for use with .NET forms and control containers. These Advanced UI Controls are supported for access as visual design objects in the Visual Designer of Progress Developer Studio for OpenEdge. For more information, see the appendix that lists these controls in OpenEdge Development: GUI for .NET Programming.
The following descriptions refer to both compile-time and run-time behavior, features that the language generally supports and determines at compile time and actions directed by using these features at run time. When describing ABL compile-time features or actions, ABL or the ABL compiler is the actor. When describing ABL or .NET actions taken at run time, the AVM (ABL Virtual Machine) or .NET (respectively) is the actor.