This C++ code shows how OLE can be used to simulate a file drag and drop to simulate a 'Send to...' operation. This will open the standard mail client with the selected file(s) as an attachment, a very interesting alternative to the mailto: protocol handler.
Which is the best (short and safe) way to create the neccessary instance of IDataObject in Delphi?
I have found some code here but maybe there is a better solution.
Porting the C++ code to Delphi probably isn't too difficult. Start with
and implement the required methods as shown in the C++ example.