BUG: Viewer Setup Causes Error in SYMTAB11.C (113252)
The information in this article applies to:
- Microsoft Multimedia Viewer Publishing Toolkit 2.0
This article was previously published under Q113252 SYMPTOMS
The setup script included with the Microsoft Multimedia Publishing Toolkit
version 2.0 displays the error message:
Setup has encountered a problem.
Please report File='COMMON\SYMTAB11.C', Line='616' to Microsoft Product
Support Services.
CAUSE
This error is generated when a setup script tries to replace a list item
that is past the end of the list using ReplaceListItem.
The setup script shipped with Viewer, TITLE.MST, expects the value returned
by GetWindowsDir() to be in uppercase letters. It contains the line:
ReplaceListItem szExtras$, ASC(MID$(GetWindowsDir(), 1, 1)) -
ASC("A") + 1, STR$(4096)
The MID$ function call creates a substring of length 1 and starting at
position 1 of the string returned by GetWindowsDir(). This substring will
be the drive letter of the drive from which Windows was started. The ASC
function call generates the numeric ASCII code for this character. Then the
numeric ASCII code for "A" is subtracted from this number. The script
expects the result of this to be between 0 and 25, and it increments this
number by 1 and uses it as an index into the szExtras$ list, which contains
26 items. If GetWindowsDir() returns an uppercase string, the result of the
subtraction will indeed be between 0 and 25. However, if GetWindowsDir()
returns a lowercase string, the result will be out of range.
The value returned by GetWindowsDir() would be lowercase if the PATH
statement in the user's AUTOEXEC.BAT used lowercase for the name of the
Windows directory.
You can see the value that would be returned by the GetWindowsDir()
function by typing SET from an MS-DOS prompt in Windows, and checking the
value of the "windir" environment variable. This environment variable is
set by Windows when it starts up, and it has the same value as is returned
by GetWindowsDir().
RESOLUTION
On line 252 of TITLE.MST, change the ReplaceListItem call from
ReplaceListItem szExtras$, ASC(MID$(GetWindowsDir(), 1, 1)) -
ASC("A") + 1, STR$(4096)
to the following:
ReplaceListItem szExtras$, ASC(MID$(UCASE$
(GetWindowsDir()), 1, 1)) - ASC("A") + 1, STR$(4096)
This will capitalize the value returned from GetWindowsDir(). If the
Windows directory is on drive C, this code will subtract "A" from "C", and
then add 1, resulting in a value of 3. The szExtras$ symbol has items 1-26,
one for each possible drive letter. The value 3 is a valid item in this
list.
If you are getting the SYMTAB11.C error but cannot edit the .MST file, you
can avoid the error by capitalizing the PATH statement in your AUTOEXEC.BAT
file.
Modification Type: | Minor | Last Reviewed: | 10/13/2003 |
---|
Keywords: | kbbug KB113252 |
---|
|