The MessageLib library defines several interfaces that are implemented by the MessageImpl library, which is hosted on the .NET Remoting server. IObjectManager is the core interface that can be acquired from the server. This interface offers access to other objects such as users, the message store, and messages. A separate interface assembly is required because when a client application accesses a remote object, it requires the type information of the object it acquires. By implementing a library that only defines the interfaces, the implementation remains on the server side. It would be possible to ship the MessageImpl to the client, but that would imply that the implementation exists on both the client and the server side, which is not the preferred approach.
Some methods return an integer value that indicates the success of the method call. 0 indicates a successful call. Values other than 0 indicate errors. The method GetErrorMsg on the IObjectManager interface returns an error description of the error code.