MAKEMSI quickly and reliably creates MSI files in a non-programmatic way
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
[Bottom][Contents][Prev]: Your first MSI worked, now what?[Next]: Change History
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Introduction->Introduction to PPWIZARD

Introduction to PPWIZARD

Apart from the short introduction here, this document does not cover the PPWIZARD tool (which has extensive documentation of its own). PPWIZARD was installed along with MAKEMSI, see:

You should not need extensive knowledge of this tool unless you are creating your own commands for tasks you find yourself doing often or you need to interacat with environment variables, databases or other Windows components. If you are creating very complicated packages you might however find it worth your while to learn more than the basics.

#include - Modular Script

The "#include" command simply allows you to load the contents of the file and include it inline (the file is sometimes called a "header" file).

the #include command is a common way of splitting large tasks into smaller modules with each module (file) doing some related type of work.

#define - Define Commands / Constants / Code

The "#define" command allows you to define a simple replaceable parameter and refer to it elsewhere (it can also be used to create complex logic). You can then refer to the contents of the parameter by using "<$" and ">" as in the following example:

;--- Define the version number ---
#define  VersionNumber  1.05.1234.0101

;--- Use the version number  -----
...
... the version number is <$VersionNumber>, and ...
...

Within MAKEMSI header files (they have the extension ".MMH") you will see many definitions which you can and should use to refer to some values (for example component attributes). The functioning of the header and many macros actions can be adjusted by the setting of your own parameters. For example if you do not specify feature attributes when using the Feature macro then the default attributes of "DEFAULT_FEATURE_ATTRIBUTES" are used. Within the header file you will find a line similar to:

#define? DEFAULT_FEATURE_ATTRIBUTES FavorLocal

The "#define?" is a variation of the "#define" command, the difference being that the parameter is only set if it does not already exist. Therefore to specify your own default you would "#define" this value before you include the header file!

Some (but not all) macros can be redefined after the fact so that if you have a large block of code where all values need to be the same then the "#define+" command can be used. This command also defines a value but it eliminates the warning message you'd otherwise get warning you about a redefinition (its use should be restricted to only those cases where you know you are defining an existing value).

You may wish to read the MAKEMSI tweeks section of this document for more details about how processing defaults can be altered.

PPWIZARD Line Continuation

PPWIZARD requires all macro references to be contained within a single logical "line". You can place a "\" on the end of any line to continue it to the next (a space is inserted between the 2 lines), there are other types of continuation but the main alternative you will probably see and use is the use of "#(" and "#)" block commands which combine all lines within the block using the defined delimiter.

Some examples follow:

space            \
delimited        \
words

#(
    space
    delimited
    words
#)

#(  ";"
    semicolon
    delimited
    words
#)

#( '<?NewLine>'
    Line 1
    Line 2
#)


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: Your first MSI worked, now what?[Next]: Change History


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday May 28 2022 at 3:11pm
Visit MAKEMSI's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.