Arrastar e soltar aplicativos cruzados no Delphi

Gostaria de criar um aplicativo Delphi para Windows XP que permita a remoção de arquivos arrastados do Windows Explorer (na área de trabalho ou nas janelas de pastas) ou outros aplicativos que suportam essa operação (como o Total Commander). E vice-versa? Quando o usuário arrasta um ícone do meu aplicativo, eu devo poder definir o conteúdo do objeto arrastado para dados personalizados.

Meu objetivo é criar uma barra de ferramentas de aplicativos personalizada, na qual eu possa soltar aplicativos e mostrar seus ícones ou arrastar aplicativos ou outras entidades a partir dele.

Como isso pode ser feito?

questionAnswers(2)

yourAnswerToTheQuestion