Clipboard format IDs for non-standard formats can vary from machine to machine, so it;s likely that -16370 is not the correct value for the FileDescriptor format on your machine.
To find the ID on your machine you need to call the RegisterClipBoard format and then use the returned ID value converted from a long to an unsigned integer value.
I tried implementing this solution, and it didn't work. I'm using Outlook 2000 and VB6 SP5 on Win98SE. The problem (I think) is that in the OLEDragOver event, Data.GetFormat(-16370) returns False. Data.GetFormat(3) returns True, however. 3 is equivalent to vbCFMetafile. Sure enough, if I set a control's Picture property to GetData(), it shows me the icon displayed for the attachment in Outlook. Obviously, having a graphical representation of the icon doesn't do me any good. I need the contents of the file or, better yet, the path to the attached file in a file list. In my case the attachment is a .wav file being dropped onto a ListView control, but the example using a TreeView didn't work, and neither did other types of attachments.
I only get this to work when I use Copy (Ctrl+C) and Paste (Ctrl+V). If I try to drag an e-mail from Outlook and into my application, the "FileContents" data is not available in the clipboard. Anybode have any suggestions on this? (Has this something to do with delayed rendering?)
Many thanks for your effort. The details which we covered didn't fulfil my requirement. What I want if a mail or a collection of mails is dragged from Outlook Express to my application contains a com component should accept all the mail. When the files dragged to Windows Explorer it creates fils with extension eml.