System Object Model (SOM) is an object-oriented programming (OOP) technology for building, packaging, and manipulating binary class libraries. With SOM, class implementors describe the interfaces of their classes (for example, the names of the methods they support, their return types, and their parameter types) in a standard language called the Interface Definition Language (IDL).
The Ultimedia Services programming interface, which supports C and C++, is presented as a binary class library through SOM. This class library provides various objects that can be used to play, record, and edit media files. The object methods and arguments are presented without the SOM language syntax that is required for any given language to instance an object and call its methods. For example, C language bindings to these SOM object methods generally include two additional arguments: the instance pointer and the environment pointer.
Ultimedia Services uses SOM to give you the following benefits:
On systems where the SOM run time is not standard, Ultimedia Services includes a limited SOM run-time library shipped with the product. (Limited in that you cannot derive new or create your own SOM classes.) This library provides a set of classes, methods, and procedures used to create objects and call methods on them. The library allows any programming language to use SOM classes if that language can do the following:
The SOM run-time environment allows applications to access information about classes dynamically (at run time).
For introductory information, see Using Ultimedia Services Objects.
The form of the SOM application programming interface (API) can vary widely from language to language as a result of the SOM bindings. Bindings are a set of macros and procedure calls that make implementing and using SOM classes more convenient by tailoring the interface to a particular programming language.
For application programs that are written in C or C++ and use the language-specific bindings provided by SOM, the SOM run-time environment is automatically initialized the first time any object is created. Programmers using other languages must initialize the run-time environment explicitly by calling the somEnvironmentNew function, provided by the SOM run time library, before using any other SOM functions or methods.
For introductory information, see Using Ultimedia Services Objects.