Macro Errors

The following messages result from errors in the use of Help macros in footnotes, hot spots, and the [CONFIG] section of the Help project file.

3511 Macro macrostring exceeds limit of 254 characters.

PROBLEM: The macro string exceeds the limit of 254 characters.

RESULT: The compiler passes the macro to the Help file, where, in most cases, it will cause the Help application to display an error when it is executed.

SOLUTION: Shorten the length of the macro string, and then recompile. In some cases, you may be able to substitute an abbreviation for the macro name to shorten the macro string. For the supported macro abbreviations, check Chapter 15, “Help Macros Reference.”

3532 Undefined function in macro macroname.

PROBLEM: The specified macro is not on the list of macros supported by the compiler, nor is it specified in the RegisterRoutine macro.

RESULT: The compiler passes the macro to the Help file, where, in most cases, it will cause the Help application to display an error when it is executed.

SOLUTION: If the function resides in a custom DLL, check the Help project file to make sure that you have registered the function using the RegisterRoutine macro. Otherwise, change the macro function to one that is supported or remove it, and then recompile.

3552 Undefined variable in macro macroname.

PROBLEM: The specified macro contains a variable that is not recognized by the compiler.

RESULT: The compiler passes the macro to the Help file, where, in most cases, it will cause the Help application to display an error when it is executed.

SOLUTION: Change the macro so that it uses only defined variables, and then recompile. If the variable is defined in a custom DLL, check the RegisterRoutine macro in the Help project file to be sure that the variable is defined and that you are using the function correctly. Otherwise, check Chapter 15, “Help Macro Reference.”

3571 Wrong number of parameters to function in macro macroname.

PROBLEM: There are too many or too few parameters in the macro.

RESULT: The compiler passes the macro to the Help file, where, in most cases, it will cause the Help application to display an error when it is executed.

SOLUTION: Change the macro so that it uses the correct number of parameters, and then recompile. If the macro is defined in a custom DLL, check the RegisterRoutine macro in the Help project file for the correct number of parameters. Otherwise, check Chapter 15, “Help Macro Reference.”

3591 Syntax error in macro macroname.

PROBLEM: The syntax of the macro is invalid.

RESULT: The compiler passes the macro to the Help file, where, in most cases, it will cause the Help application to display an error when it is executed.

SOLUTION: Correct the syntax, and then recompile. For the correct syntax of the macro you are using, refer to Chapter 15, “Help Macro Reference.”

3611 Function parameter type mismatch in macro macroname.

PROBLEM: There is a type mismatch in the function call. In other words, a string is given for a numeric parameter or a number is given for a string parameter.

RESULT: The compiler passes the macro to the Help file, where, in most cases, it will cause the Help application to display an error when it is executed.

SOLUTION: Change the macro so that it uses the correct parameter types, and then recompile. If the macro is defined in a custom DLL, check the RegisterRoutine macro in the Help project file for the correct parameter types. Otherwise, check Chapter 15, “Help Macro Reference.”

3631 Bad macro prototype.

PROBLEM: The prototype string passed to RegisterRoutine is invalid.

RESULT: The compiler passes the macro to the Help file, where, in most cases, it will cause the Help application to display an error when it is executed.

SOLUTION: Change the macro so that it uses a valid prototype string, and then recompile.

3652 Empty macro string.

PROBLEM: The ! footnote or a hidden text code starting with ! does not contain a valid macro.

RESULT: The compiler passes the macro to the Help file, where, in most cases, it will cause the Help application to display an error when it is executed.

SOLUTION: Correct the macro string in the topic footnote, and then recompile.

3672 Macro macroname nested too deeply.

PROBLEM: Macro strings may not contain more than three other macro strings as parameters.

RESULT: The compiler passes the macro to the Help file.

SOLUTION: Remove one or more of the nested macro strings, and then recompile. Or ignore the error if you want to include the macro in the Help file. The following macro correctly nests three macros:

IfThen(1, `IfThen(1, `IfThen(1, `BrowseButtons()')')')

The following macro string is nested too deeply:

IfThen(1, `IfThen(1, `IfThen(1, `IfThen(1, `BrowseButtons()')')')')

The Help application will not display an error message if a macro string is nested too deeply. Therefore, both of the above macros will work, even though one generates an error during compilation and one does not.

3000 UNKNOWN ERROR, Contact Microsoft Product Support Services

PROBLEM: This error message is the equivalent of an assertion failure.

RESULT: The compiler aborts the build.

SOLUTION: Contact Microsoft Product Support Services.