SRC\CLASSES contains only C code which was originally generated by the SOM compiler from the IDL files in the IDL\ directory. Of course, that code has been extended so that the new classes do anything meaningful.

As opposed to versions before 0.9.0, this directory contains SOM code only. The idea is that (except for fairly small method code) code in one of these class files should call some implementation function in a directory other than SRC\CLASSES. Only in doing so it is possible that several developers can implement features within the same WPS class.

For example, src\classes\xfldr.c branches over to src\filesys\folder.c, which is the "folder implementation" code and has most of the folder features.

The XWorkplace package contains many classes, but puts them all into a single DLL. This is possible by specifying the same target DLL in the IDL files. (XWorkplace's IDL files are now in the separate IDL\ directory.) One can put several classes into one .IDL file (which happens in xtrash.idl for example) or spread them across several IDL files too.

Note that the .DEF files in IDL\ are not used. These files are created automatically by the SOM compiler, which cannot however create a single DEF file if you use several IDL files for the same DLL. For finally linking the whole main DLL, the makefiles instead use \src\shared\xwp.def, which I manually created from all the DEF files which were created by the SOM compiler. This file exports lots of mysterious SOM structures which allow the SOM kernel see the classes in the DLL.