Могу показаться совсем необразованным, но всё же озаглавлю тему ибо встал намертво перед задачей такого плана: в Windows есть механизм открытия файлов при помощи программы - обработчика расширений. Например, doc открывается Word-ом и т.д. Как эти обработчики назначить это понятно, но вопрос в другом - как корректно осуществить передачу параметров: имя файла, его местоположение и т.д.
1. Регистрируем свой тип файлов в системе.
2. При запуске своего приложения (к примеру в событии формы OnCreate) определяем параметры командной строки с помощью функции ParamStr(n), где n может быть от 0 и больше. ParamStr(0) - это всегда полный путь к самой программе. К примеру, надо при клике на файл запустить свою программу, чтобы она загрузила этот файл - в этом случае в ParamStr(1) - будет полный путь к файлу, который необходимо загрузить.
А вообще, если рассматривать шире, то как встроить свою программу в Win, на примере реализации в WinRar: меню извлечь - находится непосредственно в оболочке.
Тут надо реализовывать интерфейсы оболочки IShellExtInit и IContextMenu.