Download source files - 3 Kb
Download demo project - 17 Kb
Introduction
This source contains a class CGCFileTypeAccess
that can associate a file
extension with a program.
The association allows a new instance of the program to be activated when
the icon is clicked upon in the Windows Explorer window. The full file path to the file will be sent to the
program on the command line.
The Open command also appears on the shell context menu for the file type. Selection of
the open command from the context menu sends the file on the command line to a new
instance of the program.
An example of associating a file extension using the class would be done as follows,
and can be found in the InitInstance
of the demo program:
CGCFileTypeAccess TheFTA;
TCHAR szProgPath[MAX_PATH * 2];
::GetModuleFileName(NULL, szProgPath, sizeof(szProgPath)/sizeof(TCHAR));
CString csTempText;
TheFTA.SetExtension("CGFILETYPETEST");
csTempText = szProgPath;
csTempText += " \"%1\"";
TheFTA.SetShellOpenCommand(csTempText);
TheFTA.SetDocumentShellOpenCommand(csTempText);
TheFTA.SetDocumentClassName("CGFileType.Document");
csTempText = szProgPath;
csTempText += ",0";
TheFTA.SetDocumentDefaultIcon(csTempText);
TheFTA.RegSetAllInfo();
The relevant registry entries are all under HKEY_CLASSES_ROOT.
The two primary root keys are .'FileExtension' and 'Document Class Name'.
Keys and values underneath these two primary keys control the file association
and the shell open command.
The demo program will execute the file association code listed above. After
it has been run at least once, each time you 'open' one of the associated file
types, the program will display the file path from the command line in
a message box.