When a file is dragged from the shell (or copied to the clipboard from the shell), the shell creates a default IDataObject interface that supports standard clipboard formats (CF_HDROP, "Shell IDList Array", and so on). An application can add more clipboard formats by providing a data handler for the file type. A data handler must support both the IPersistFile and IDataObject interfaces. The shell initializes a data handler by calling the IPersistFile::Load member function. When a data handler is provided, the default IDataObject interface delegates some member function calls to the data handler so that the additional clipboard data formats become available to the drop target.
You register a data handler by adding a DataHandler key and class identifier for the handler under the shellex key for the file type as shown in the following example.
shellex
DataHandler = {00000000-1111-2222-3333-00000000000003}