Rejestrowanie rozszerzenia pliku w Windowsie

Gdy tworzymy program, który będzie zapisywał swoje dane do pliku o nietypowym formacie (wymyślonym oczywiście przez samego programistę) warto zarejestrować w Windowsie jego rozszerzenie. Daje nam to następujące korzyści:

A oto przykład zarejestrowania rozszerzenia *.het: przypisania mu takiej ikony jaką używa progaram, w którym te pliki są otwierane i umożliwienie otwarcia pliku np. po jego dwukrotnym kliknięciu w Eksploratorze:

Unit1.cpp

#include <registry.hpp>

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   //rejestracja rozszerzenia
   TRegistry* Reg = new TRegistry();
   Reg->RootKey = HKEY_CLASSES_ROOT;
   Reg->OpenKey(".het", true);
   Reg->WriteString("", "Moje rozszerzenie");
   Reg->CloseKey();

   //otwarcie pliku po jego dwukrotnym kliknięciu w Eksploratorze
   Reg->OpenKey("Moje rozszerzenie", true);
   Reg->WriteString("", "Opis mojego rozszerzenia");
   Reg->OpenKey("shell", true);
   Reg->WriteString("", "open");
   Reg->OpenKey("open", true);
   Reg->WriteString("", "&Open");
   Reg->OpenKey("command", true);
   Reg->WriteString("", ParamStr(0) + " \"\%1\"");
   Reg->CloseKey();

   //wymyślona przez nas dodatkowa akcja jaką można wykonać na pliku
   Reg->OpenKey("Moje rozszerzenie", true);
   Reg->OpenKey("shell", true);
   Reg->OpenKey("info", true);
   Reg->WriteString("", "&Informacje");
   Reg->OpenKey("command", true);
   Reg->WriteString("", "c:\\czytaj.txt");
   Reg->CloseKey();

   //kojarzenie ikony z rozszerzeniem (taka sama jak ikona programu)
   Reg->OpenKey("Moje rozszerzenie", true);
   Reg->OpenKey("DefaultIcon", true);
   Reg->WriteString("", ParamStr(0) + ",0");

   delete Reg;
}