home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / appwiz / customwz / template / readme.txt < prev    next >
Text File  |  1998-03-05  |  9KB  |  208 lines

  1. ========================================================================
  2.                     CUSTOM APPWIZARD: $$root$$
  3. ========================================================================
  4.  
  5.  
  6. AppWizard has created a $$root$$ DLL for you.  This DLL is the starting point
  7. for writing your custom AppWizard.  It demonstrates the basics of creating a
  8. custom AppWizard.
  9.  
  10. Although your custom AppWizard is a DLL, it has the special suffix AWX.  When
  11. you build $$root$$.awx, it will automatically be copied to your Template
  12. directory.  Your custom AppWizard will then appear as a choice in the Project
  13. Type drop-list in the New Workspace and Insert Project dialogs.  To run your
  14. custom AppWizard, simply create a new workspace (or insert a project into the
  15. current workspace), and select your custom AppWizard from the Project Type
  16. drop-list.
  17.  
  18. This file contains a summary of what you will find in each of the files that
  19. make up your $$root$$ DLL.
  20.  
  21. $$root$$.dsw
  22.     This file (the project workspace file) contains information on the contents
  23.     and organization of the project workspace. Other users can share the project
  24.     workspace (.dsw) file, but they should export the makefiles locally.
  25.  
  26.     Files associated with the project workspace file are a project file (.dsp)
  27.     for each project in the workspace and a workspace options file (.opt).
  28.  
  29. $$root$$.dsp
  30.     This file (the project file) contains information at the project level and
  31.     is used to build a single project or subproject. Other users can share the
  32.     project (.dsp) file, but they should export the makefiles locally.
  33.  
  34. $$root$$.opt
  35.     This file (the workspace options file) contains the workspace settings that
  36.     you specify in the Project Settings dialog. These settings specify the
  37.     appearance of the project workspace using your hardware and configuration.
  38.  
  39.     This binary file is automatically generated when you open the .dsw or .dsp
  40.     file in the IDE. You should not share the .opt file, because it contains
  41.     information specific to your computer.
  42.  
  43. $$root$$.ncb
  44.     This file provides information on the NCB (No Compile Browse) parser, the
  45.     mechanism that updates ClassView and WizardBar.
  46.  
  47.     This is a binary file that is generated automatically and should not be
  48.     shared.
  49.  
  50. $$root$$.cpp
  51.     This file is the main DLL source file that contains the definition of
  52.     DllMain().  It also exports the function GetCustomAppWizClass(), which
  53.     returns a pointer to the one instance of this custom AppWizard's
  54.     CCustomAppWiz-derived class.
  55.  
  56. $$root$$.h
  57.     This file is the main header file for the DLL.  It includes your
  58.     RESOURCE.H file.
  59.  
  60. $$root$$.rc
  61.     This file is a listing of all of the Microsoft Windows resources that the
  62.     program uses.  It includes all of your custom AppWizard's templates as
  63.     custom resources of type "TEMPLATE".  These resources are pointers to the
  64.     files in your project's TEMPLATE directory.  This file can be directly
  65.     edited in the Visual C++ development environment.  However, you will
  66.     probably want to edit your templates by opening the template files directly
  67.     in the source editor rather than by editing the "TEMPLATE" resources from
  68.     the Visual C++ resource editor.
  69.  
  70. $$root$$.clw
  71.     This file contains information used by ClassWizard to edit existing
  72.     classes or add new classes.  ClassWizard also uses this file to store
  73.     information needed to create and edit message maps and dialog data
  74.     maps and to create prototype member functions.
  75.  
  76. /////////////////////////////////////////////////////////////////////////////
  77. Custom AppWizard Interface:
  78.  
  79. $$filebase$$Aw.h, $$filebase$$Aw.cpp - the CCustomAppWiz class
  80.     These files contain your CCustomAppWiz-derived class,
  81.     C$$Safe_root$$AppWiz.  This class contains virtual member functions which
  82.     MFCAPWZ.DLL calls to initialize your custom AppWizard and to query which
  83.     step to pop up at a given time.  This class also contains m_Dictionary,
  84.     a CMapStringToString member variable, which maps template macro names
  85.     to their values.
  86. $$IF(HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE)
  87.  
  88. /////////////////////////////////////////////////////////////////////////////
  89. Dialogs:
  90.  
  91. Chooser.h, Chooser.cpp - the dialog chooser
  92.     These files contain your CDialogChooser class.  The class maintains
  93.     pointers to each of your steps, keeps track of which step is currently
  94.     up, and handles calls to your custom AppWizard class's member functions
  95.     Next(...) and Back(...).
  96. $$IF(HAS_NEW_STEPS)
  97.  
  98. Cstm*Dlg.h, Cstm*Dlg.cpp - the dialog classes
  99.     These files contain the dialog classes for all of your custom AppWizard's
  100.     new steps.  They derive from CAppWizStepDlg and override
  101.     CAppWizStepDlg::OnDismiss.
  102. $$ENDIF //HAS_NEW_STEPS
  103. $$ENDIF //HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE
  104. $$IF(HAS_NEW_STEPS)
  105.  
  106. /////////////////////////////////////////////////////////////////////////////
  107. Help Support:
  108.  
  109. MakeHelp.bat
  110.     Use this batch file to create your custom AppWizard's Help file,
  111.     $$root$$.hlp.
  112.  
  113. $$root$$.hpj
  114.     This file is the Help Project file used by the Help compiler to create
  115.     your custom AppWizard's Help file.
  116.  
  117. HLP\$$root$$.rtf
  118.     This file contains an empty topic for each new step you generated.
  119.     You may fill out the topics using any rich-text-format
  120.     editor such as Microsoft Word.
  121. $$ENDIF //HAS_NEW_STEPS
  122.  
  123. /////////////////////////////////////////////////////////////////////////////
  124. Template Files:
  125.  
  126. Template\
  127.     Put your template files in this directory.  Template files are stored
  128.     in your custom AppWizard as custom resources of type "TEMPLATE", and are
  129.     used by your custom AppWizard to determine the contents of the files it
  130.     generates. When you add a new template file to this directory, you must
  131.     import that file as a "TEMPLATE" custom resource into $$root$$.rc.  Be
  132.     sure to select the "External File" checkbox on the custom resource's
  133.     property page.
  134.  
  135. Template\Confirm.inf
  136.     In this template you should put a description of the project your
  137.     custom AppWizard generates.  The file uses template macros to customize the
  138.     text to reflect which options were selected by the custom AppWizard user.
  139.     When the custom AppWizard user clicks the "Finish" button, MFCAPWZ.DLL
  140.     parses this template and sends the output to the New Project Information
  141.     dialog.
  142. $$IF(CUSTOMTYPE_SEQUENCE)
  143.         Initially, this file is identical to the Confirm.inf template used
  144.     by AppWizard.  If you add your own custom steps to the standard AppWizard
  145.     steps, youÆll need to add text, macros, and directives to this template
  146.     that reflect each feature a user can choose in each custom step.
  147. $$ENDIF //CUSTOMTYPE_SEQUENCE
  148.  
  149. Template\NewProj.inf
  150.     This template lists all of the templates other than Confirm.inf and
  151.     NewProj.inf which your custom AppWizard will use to generate a project.
  152.     After MFCAPWZ.DLL parses this template, the output lists the other
  153.     templates to be parsed and what the output files should be called.
  154. $$IF(CUSTOMTYPE_SEQUENCE)
  155.         Initially, this file is identical to the NewProj.inf template used
  156.     by AppWizard.  If you add your own custom steps to the standard AppWizard
  157.     steps which require that additional files be generated, you will need to
  158.     add statements, macros, and directives to this template that can build a
  159.     project for any combination of features a user can select from the custom
  160.     steps.
  161. $$ELIF(CUSTOMTYPE_ZAP)
  162. $$IF(ZAP_FULL_PATH)
  163.         Initially, this file contains the names of the templates that were
  164.     generated from the project "$$ZAP_FULL_PATH$$".
  165.     You will not need to edit this template unless you add functionality to
  166.     the project generated by your custom AppWizard.
  167. $$ENDIF //ZAP_FULL_PATH
  168. $$ENDIF //CUSTOMTYPE_SEQUENCE,_ZAP
  169.         See the documentation on custom AppWizards for a more complete
  170.     description of this template and the project generation process in general.
  171. $$IF(CUSTOMTYPE_SEQUENCE)
  172.  
  173. You have also been provided with copies of the templates used by AppWizard
  174. $$IF(APWZSEQ_EXE)
  175. to generate an executable.  You are free to modify any of these templates
  176. $$ELSE //APWZSEQ_DLL
  177. to generate a DLL.  You are free to modify any of these templates
  178. $$ENDIF //APWZSEQ_EXE,DLL
  179. to customize them any way you like.  For example, you may wish to change
  180. the source code tabbing style, or to include your company's copyright
  181. message at the top of each source code file.  If you delete any of these
  182. templates, AppWizard's copy of the template will automatically be used
  183. when your custom AppWizard generates projects.
  184. $$ELIF(CUSTOMTYPE_ZAP)
  185. $$IF(ZAP_FULL_PATH)
  186.  
  187. You have also been provided with template files in this directory based
  188. off of the project "$$ZAP_FULL_PATH$$".
  189. $$ENDIF //ZAP_FULL_PATH
  190. $$ENDIF //CUSTOMTYPE_SEQUENCE,ZAP
  191.  
  192. /////////////////////////////////////////////////////////////////////////////
  193. Other Standard Files:
  194.  
  195. StdAfx.h, StdAfx.cpp
  196.     These files are used to build a precompiled header (PCH) file
  197.     named $$root$$.pch and a precompiled types file named StdAfx.obj.
  198.  
  199. Resource.h
  200.     This is the standard header file, which defines new resource IDs.
  201.     Visual C++ reads and updates this file.
  202.  
  203. /////////////////////////////////////////////////////////////////////////////
  204. Other Notes:
  205.  
  206. AppWizard uses "TODO:" to indicate parts of the source code you
  207. should add to or customize.
  208.