The library recognizes special interfaces for setting up and cleaning up DLLs, allowing DLLs to expose strings to applications,
and assigning names to controls.
A control is a programming representation of the interfaces implemented by an addon DLL or defined statically in the code.
Note: 
There is no default implementation for these interfaces; you must define their functions like any other interfaces.
The difference is only in how the library internally handles them.
There are four recognized interfaces:
- AODeInitializer
 
- 
Contains initialization and cleanup functions for DLLs. This interface replaces Unloading,
and is implemented as a pointer to a structure that defines the function prototypes.
 
- InitializeInterface
 
- Allows DLLs to choose interfaces at runtime instead of compile time.
 
- Name
 
- Lets controls define their own names, so they can be looked up by name.
 
- Strings
 
- Lets DLLs make strings available to applications even when the DLLs aren't loaded.