The ILinkEmbedController type exposes the following members.
Determines where object should be stored. This method is called once for each object id. It is not guaranteed that there won't be two objects with same data, semanticName and contentType but with different id.
Returns an URL to an external object. This method always called if GetObjectStoringLocation(Int32, Byte, String, String, String) returned Link and may be called if GetObjectStoringLocation(Int32, Byte, String, String, String) returned Embed but embedding is impossible. Can be called multiple time for same object id.
Saves external object.