Microsoft KB Archive/102666

{|
 * width="100%"|

HOWTO: How to Register Another File Type for an Application

 * }

Q102666

-

The information in this article applies to:


 * The ClassWizard, used with:
 * Microsoft Visual C++, version 1.52

-

SUMMARY
If you do not associate a file extension with a document when you create an application in App Wizard 1.0, App Wizard does not generate any code to register the file extension. The text below presents the changes necessary to register a file extension in the Registration database.

To define the default file extension for an application, use App Studio to change the application's string resources. For example, change the following:

  IDR_APPTYPE = \nApp\nApp Document to read as follows: 

  IDR_APPTYPE = \nApp\App Document\n.APP Files (*.app)\n.app\nAppFileType\nAppFileType This code is required for the document template when the application calls AddDocTemplate. You must also add the following code to the InitInstance function:

Sample Code
/* * Compiler options needed: None */

// Cut and paste from line 155 of APPUI.CPP into your source file, // before the InitInstance call. // static BOOL NEAR PASCAL SetRegKey(LPCSTR lpszKey, LPCSTR lpszValue) {  if (::RegSetValue(HKEY_CLASSES_ROOT, lpszKey, REG_SZ, lpszValue, lstrlen(lpszValue)) != ERROR_SUCCESS) {     TRACE1("Warning: registration database update failed for key          '%Fs'\n", lpszKey); return FALSE; }

return TRUE; }

// Modify your InitInstance definition to include the // following code:

BOOL CAppApp::InitInstance {  // Standard Initialization .    .     .   m_pMainWnd = pMainFrame;

// Add the follow code. m_pMainWnd->DragAcceptFiles; EnableShellOpen; RegisterShellFileTypes;

// Registration Type Name CString     strFileTypeName;

// Position used if more than one document template. POSITION    pos; CDocTemplate *pTemplate = (CDocTemplate*)m_templateList.GetNext(pos); pTemplate->GetDocString(strFileTypeName,     CDocTemplate::regFileTypeName);

// Add another file extension to registration database. // If you double-click a .APP or .SAV file in File Manager it  // automatically starts this application. //   // SetRegKey adds a file extension to the Registration Database ((void)SetRegKey(".sav", strFileTypeName);

// create a new (empty) document)  OnFileNew;     .     .     .   return TRUE; }

MORE INFORMATION
In Visual C++ for Windows, version 1.5, if you create a project using App Wizard the code to register a file extension in the Registration database may be automatically generated by performing the following steps:


 * 1) Choose AppWizard from the Project menu to create a new project.
 * 2) Type in the Project Name.
 * 3) Click the Classes button in the MFC AppWizard dialog box.
 * 4) Click and select the document class to be created from the New Application Classes (the document class typically ends with doc).
 * 5) The new File Extension and Doc Type Name boxes should be displayed with suggested text in the Doc Type Name box.
 * 6) Fill in your file extension and doc type name.

NOTE: If you do not enter any text in the file extensions box the code to register your file extension in the Registration database will NOT be automatically generated.
 * 1) Click OK.
 * 2) Click OK.
 * 3) Review the New Application Information and click Create to generate your application.

Additional query words: kbinf 1.00 1.50

Keywords : kbwizard kbMFC kbVC

Issue type : kbhowto

Technology : kbVCsearch kbAudDeveloper kbClassWizard