Overview of Creating a Custom AppWizard

OverviewsHow Do IDetails

Feature Only in Professional and Enterprise Editions   Creating a Custom AppWizard is supported only in Visual C++ Professional and Enterprise Editions. For more information, see .

Creating a custom AppWizard requires the following steps:

  1. On the File menu, click New, click the Projects tab and then choose the Custom AppWizard icon.
    For more information, see How to Create a Custom AppWizard Project.

  2. Edit two text templates, CONFIRM.INF and NEWPROJ.INF. Your finished custom AppWizard uses these to create the custom AppWizard user’s program.
    For more information, see Understanding CONFIRM.INF and NEWPROJ.INF

  3. Create any other templates that your custom AppWizard requires.
    For more information, see Understanding Custom Resource Templates.

  4. Use the Visual C++ programming tools to add functionality to your custom AppWizard.

  5. Use the AppWizard API to add calls into MFCAPWZ.DLL to create communication between the finished custom AppWizard and the standard MFC AppWizard (MFCAPWZ.DLL).
    For more information, see AppWizard Programming Reference.

  6. After building a release version of your custom AppWizard, use the Visual C++ programming tools. A custom AppWizard is given an extension of .AWX, rather than .DLL, and is automatically added to the Microsoft Visual Studio\Common\msdev98\Template directory. Once in this directory, your custom AppWizard becomes a project type and shows up on the Projects tab in the New dialog box.

You’ll have to learn some of the inner workings of AppWizard to perform steps 3 and 5. But first, you need an overview of the players and the tools. The following table describes the players; the table after it describes the tools.

The Players

Players Description
You You are the custom AppWizard writer. Your job is to design and implement a custom AppWizard. In this documentation, “you” refers to a custom AppWizard writer.
Custom AppWizard user You, or any other developer, who uses a custom AppWizard with the purpose of creating a program for one or more end users.
User The end user who uses the program created from the project generated by the custom AppWizard. In this documentation, “user” refers to the end user.

As you can see, creating a custom AppWizard is a layered interaction between you (the custom AppWizard writer), the custom AppWizard user, and the end user who ultimately uses the program.

The following table describes the tools that you use (in addition to the compiler, linker, etc.) to create a custom AppWizard for a custom AppWizard user.

The Tools

Tools Description
AppWizard A tool that you use to create a program that is based on the Microsoft Foundation Class Library (MFC).

AppWizard is composed of MFCAPWZ.DLL and all of the dynamic-link libraries (DLLs) containing localized resources (those with names described by APPWZ*.DLL).

Custom AppWizard A tool that you use to create custom programs. Your custom AppWizard is used to create a program. The custom AppWizard appears, to its user, as one or more steps that are embedded within a framework that looks like AppWizard.
MFCAPWZ.DLL The DLL that implements AppWizard. It also interacts with a finished custom AppWizard to lend it an AppWizard-like look and feel.

MFCAPWZ.DLL has two different interfaces: an on-screen appearance that looks much like AppWizard (with a title bar and Help, Cancel, Back, Next, and Finish buttons), and an AppWizard API that you use to establish lines of communication and control between MFCAPWZ.DLL and your custom AppWizard.

CUSTMWZ.AWX The dynamic-link library, which is itself a custom AppWizard, that implements the Custom AppWizard project type. You select this project type from Projects tab of the New dialog box in order to choose the features of your custom AppWizard. The CUSTMWZ.AWX source code is included as a sample program.
AppWizard API The application programming interface that provides you with calls into MFCAPWZ.DLL. You use the API to specify custom AppWizard and MFCAPWZ.DLL behavior in reaction to a custom AppWizard user’s on-screen manipulation of the Help, Cancel, Back, Next, and Finish buttons. For more information on the AppWizard API, see AppWizard Programming Reference.
Custom resource templates There are two types of custom resource templates: binary and text. A finished custom AppWizard uses these templates to create a final application. For more information, see Standard Custom Resource Templates.
Binary templates Binary templates are not parsed by MFCAPWZ.DLL during the application generation process. They are copied verbatim to a new application. Binary templates can include, but are not restricted to, files such as .BMP and .RTF. For more information, see Understanding Binary Templates.
Text templates Text templates are parsed by MFCAPWZ.DLL during the application generation process. They can, for example, contain source code, macros, and directives that a custom AppWizard can use to generate a new project’s source-code files. Typically, the new project’s final application is built from these source files. Text templates can include, but are not restricted to, files such as .H, .CPP, .RC, .CLW, .ODL, .RTF, and .RC2. For more information, see Understanding Text Templates.

What do you want to know more about?