Language Loop Macros

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 .

The following macros are used in a language loop, which is a block of text delimited by the $$BEGINLOOP(NUM_LANGS) and $$ENDLOOP directives.

Macro Type Description
LANGUAGE text Name of language (for example, "U.S. English").
LANG_SUFFIX text Three-letter abbreviation of language (for example, "ENU").
HLP_DIR_LOC text Name of directory to be created in the generated project, which will contain the localized elements of the application's context-sensitive help (for example, "HLP\ENU"; in an application with only one language, this is always "HLP").
RES_DIR_LOC text Name of directory to be created in the generated project, which will contain those files included by the application's .RC file that are localized (for example, "RES\ENU"; in an application with only one language, this is always "RES").
RES_DIR_LOC_DBLSLASH text Same as RES_DIR_LOC, except any backslashes are doubled (for example, "RES\\ENU"; again, this is always "RES" in an application with only one language).
MFC_DIR_LOC text Name of directory that contains the localizable resources the application will include from MFC. All backslashes are doubled. (For example, "L.FRA\\"; all English resources from MFC are in the main include directory. This macro expands to "" in the case of English.)
LANG_PREAMBLE text Code that is inserted in the application's .RC file, which precedes a localized resource.

For example:

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif

(In an application with only one language, this is "".)

LANG_PREAMBLE_INQUOTES text Same as LANG_PREAMBLE, except each line is tabbed and enclosed in quotes:

For example:

"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)"
   "#ifdef _WIN32"
   "LANGUAGE 9, 1"
   "#pragma code_page(1252)"
   "#endif"
LANG_POSTAMBLE text Code that's inserted in the application's .RC file, which follows a localized resource.

For example:

#endif

(In an application with only one language, this is "".)

LANG_POSTAMBLE_INQUOTES text Same as LANG_POSTAMBLE, except each line is tabbed and enclosed in quotes:

For example:

   "#endif"

(In an application with only one language, this is "".)

NUM_LANGS text The number of languages the user has chosen.  (Commonly used as the argument to $$BEGINLOOP.)
MULTIPLE_LANGS BOOL Whether the user chose more than one language. Currently, never defined. Reserved for future use.
USE_DEFAULT_LANGUAGE text If you set this dictionary value to be non-blank, the default language will be automatically chosen for you as the only choice when working with the Language Loop macros. If you do not set this macro and do not call SetSupportedLanguages, iterating over the language loops will give you entries for each language you have an apwz*.dll for on your system.

See Also   AppWizard Language Support for Far East Languages, The Dictionary, CCustomAppwiz::ProcessTemplate, CCustomAppwiz::PostProcessTemplate, How Macros Get Their Values