Is there any other way to create mates without using selection?
Also how can two already existing in assembly parts be implicitly mated (via smartmates)? AddSmartComponent is no use, because it can't involve already opened part.
You cannot avoid using selections to create mates, but you can use API only selections (so it is neither selected in the view nor deselects current objects nor raises the UserSelection event, but still can be used for feature creation). So it is not a typical selection. Take a look at this article: Selecting Objects For API Only
So the answer is to use SuspendSelectionList method. Thank you.
And what about smart mating? Is there a way to implement smart mating without dragging?
Never used it but perhaps IAssemblyDoc::AddSmartComponent could help?
Unfortunately, no, since it involves opening and adding new part to an assembly. You can not implement it with already existing in assebmly part.
Retrieving data ...