Registering Objects in the ROT

Typically, when a client asks a server to create an object instance, the server typically creates moniker for the object, and registers it in the running object table (ROT) through a call to IRunningObjectTable::Register.

A few additional issues arise when registering ROT objects for use by remote clients. When the server calls CreateFileMoniker to create a file moniker to be registered in the ROT, servers should pass local file names that are drive-based, not in UNC format. This ensures that the moniker comparison data that is generated by the ROT register call will match what is used while doing a ROT lookup on the part of a remote client. This is because when the distribed COM service receives an activation request for a file local to the server from a remote client, the file is converted to a local-drive-based path.