DOC: Values for Scripting Object Constants Defined (163009)



The information in this article applies to:

  • Microsoft Active Server Pages
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Server 5.0

This article was previously published under Q163009
We strongly recommend that all users upgrade to Microsoft Internet Information Services (IIS) version 6.0 running on Microsoft Windows Server 2003. IIS 6.0 significantly increases Web infrastructure security. For more information about IIS security-related topics, visit the following Microsoft Web site:

SUMMARY

The version of VBScript (VBS) provided with Active Server Pages currently does not have access to the values of constants defined by the Scripting object. As a result, you must provide a definition of the constants you wish to use in your scripts. Because the documentation does not provide the values for these constants, it can be difficult to determine what the numerical value is for a given constant.
Consider the following code example:
   Set fs = Server.CreateObject("Scripting.FileSystemObject")
   Set a = fs.OpenTextFile("c:\testfile.txt", ForAppending, FALSE)
				
If you cut and paste this code into an .asp file, you get the following error because VBS doesn't recognize "ForAppending":
Microsoft VBScript runtime error '800a0005' Invalid procedure call or argument: 'fs.OpenTextFile'
The best approach is to use a server-side include file to provide a definition of the constants for your script. This is similar to using the Adovbs.inc or Adojavas.inc files provided with ADO.

MORE INFORMATION

Here is a list of the values of the most commonly used constants for the Scripting object:

iomode
  • ForAppending = 8
  • ForReading = 1
  • ForWriting = 2
format
  • TristateFalse = 0
  • TristateMixed = -2
  • TristateTrue = -1
  • TristateUseDefault = -2

These are determined by viewing the Microsoft Scripting Runtime type library, contained in Scrrun.dll, in the Visual Basic Object Browser.

To provide an include file that defines these values, paste the text below into a file called Filevbs.inc, and save it to a virtual root. Then add an include directive, similar to the one below, to the ASP file that needs to access the definitions of these constants.
   <!--#include virtual="/ASPSAMP/SAMPLES/FILEVBS.INC"-->
				
(Save the text below to file: Filevbs.inc)
   <%
   '----------------------------------------------
   '
   ' FileSystemObject constants include file for VBScript
   '
   '----------------------------------------------------->
   '---- iomode Values ----
   Const ForAppending = 8
   Const ForReading = 1
   Const ForWriting = 2

   '---- format Values ----
   Const TristateFalse = 0
   Const TristateMixed = -2
   Const TristateTrue = -1
   Const TristateUseDefault = -2
   %>
				

REFERENCES

An alternative approach is described in the following Microsoft Knowledge Base article:

261250 HOWTO: Expose and Use ENUMS from Visual Basic Components in Active Server Pages

For the latest Knowledge Base articles and other support information on Visual InterDev and Active Server Pages, see the following page on the Microsoft Technical Support site:

Modification Type:MajorLast Reviewed:5/2/2006
Keywords:kbdocfix kberrmsg KB163009