Inno Setup Preprocessor: Predefined Variables

There are a number of predefined variables provided ISPP:

__COUNTER__ int. Automatically increments each time it is used (afterwards).
__FILE__ str. Returns the name of the current file. Empty string for the root file.
__INCLUDE__ str. Returns the current include path (or paths delimited with semicolons) set via #pragma include.
__LINE__ int. Returns the number of the line in the current file (not a translation) on which the variable is used (or macro that uses this variable is called).
__OPT_X__ void. Defined if specified option set via #pragma option -x+ is in effect. In place of "X" may be any letter from "A" to "Z." Use Defined function to test whether the variable is defined.
__PATHFILENAME__ str. Similar to __FILE__ but, returns the full pathname of the file. Empty string for the root file.
__POPT_X__ void. Defined if specified parser option set via #pragma parseroption -x+ is in effect. In place of "X" may be any letter from "A" to "Z." Use Defined function to test whether the variable is defined.
__WIN32__ void. Always defined.
ISPP_INVOKED void. Always defined.
ISPPCC_INVOKED void. Defined if compilation was invoked using the console-mode compiler, ISCC.exe.
PREPROCVER int. Returns the 32-bit encoded version of ISPP. Highest byte holds the major version, lowest byte holds the build number.
WINDOWS void. Always defined.
UNICODE void. Always defined for Unicode ISPP. Use Defined function to test whether the variable is defined.
CompilerPath str. Points to the directory where the compiler is located.
SourcePath str. Points to the directory where the current script is located, or the My Documents directory if the script has not yet been saved.
Ver int. Returns the 32-bit encoded version of Inno Setup compiler. Highest byte holds the major version, lowest byte usually holds zero.