VTS Value Types

The following table lists the value types used in VTS.  When referring to these in code, you should use the predefined constants rather than the type numbers.  The general usage is:

Cast(Val, \#VtypeText)


 

Type

Constant Name

Name 

Description

0

 #VTypeStatus

Boolean

Logical data type, stores two states: "true" (0) or "false" (non-zero).

1

#VTypeShort

Short, 16-bit signed 

Integer data type storing values from -32768 to 32767

2

#VTypeLong

Long, 32-bit signed

Integer data type storing values from -2147483648 to 2147483647

3

#VTypeDouble

Double precision floating point

Values range from about -10^308 through +10^308

4

#VTypeText

Text 

Any string of bytes whose values range from 0 to 255. Typically used to hold text strings.

5

#VTypeVariable

Variable

A handle to the data represented by a variable declaration, not to any particular instantiation of that declaration. Can be used to access variable metadata (type information, for example) or default values.

6

#VTypeFunction

Function

A pointer to the code for a particular function within a VTS statement.  Used by functions such as GetOneParmText to manipulate the code itself.  

Used when compiling and editing script code, not for typical VTS programs.

7

#VTypeObject

Object value

An instance of a module

8

#VTypeStream

Stream

A handle to a stream (of which there are several types). See Streams.

9

#VTypeModTree

Module tree

A handle to the modules in a state diagram

10

#VTypeStateDgrm

State diagram

A graphical depiction of VTS code

11

#VTypeModule

Module

The code and variables that make up a unit of a VTS program. See Modules.

12

#VTypeModState

Code Value (a)

Module and state

A handle to a state within a module. See States.

13

#VTypeModStateStmnt

Code Value (b)

Module, state, and statement

A handle to a statement within a state.  Cannot refer to any arbitrary function, as type 6 can.  See Statements and Graphic Objects.

14

#VTypeRefParm

Reference parameter

When a steady-state call is made to a module, each of the actual parameters in the call is “bound” to its corresponding formal parameter.

15

<undefined>

Array

Refers to an entire list of consecutive data values.  Each data value has a consecutively numbered index address and may be any VTS value.  

 See Array Variables

16

#VTypePath

Path 

A series of vertex values. See Path Variables.

17

#VTypeTraj

Trajectory

A combination of a Normalize value and a Path value. See Trajectory Variables.

18

#VTypeRotate

Rotate

Specifies a rotation amount, measured in degrees, around a point.  See Rotate Variables

19

#VTypeBrush

Brush

Brush values are used in layered graphics statements that paint areas of the screen with a uniform color or pattern.  See the Brush function.

20

#VTypePen

Pen

Pen values are used in layered graphics statements that draw lines. Defines the color, style and thickness of a line. See the Pen function.

21

#VTypeNormalize

Normalize

A graphical scaling value. See Normalize.

22

#VTypePoint

Point

A location, stored as an (X, Y) pair.  See Points.

23

#VTypeVertex

Vertex 

A group of three Point values.  See Vertex.

24

#VTypeTransform

Transform

A transformation matrix, used to map coordinates from one area of the screen to another.

Can only be obtained from the GetTransform function. Used by the GetPathBound function.

25

#VTypeCodePtr

Code pointer 

A handle to an active graphics statement in a particular module or state.  Similar to type 13, but with the additional information of the module instance as represented by value type 7.

26

#VTypePtr

Pointer

Stores data by reference instead of by value, allowing, for example, multiple values to reference the same piece of data as opposed to multiple copies of the data.

27

#VTypeEditor

Editor 

A handle to an editor object, as created by MakeEditor.

28

#VTypeParseStack

Parser stack 

Used by the compiler to allow the compilation to be suspended in the middle of a statement to handle specific code sections such as I/O addresses.

29

#VTypeTag

Tag

(Unused)  Intended to provide engine-level support for scaled variables that could be implemented using a GUI.

30

#VTypeBitmap

Bitmap  

A handle to a bitmap object as returned from MakeBitmap.

31

#VTypeFont

Font 

A handle to a font object, as returned by the Font function.

32

#VTypeVTSdb

VTS database 

A handle to the VTS database as returned by the DBSystem function.

33

#VTypeODBCHndl

ODBC Handle

Provides a connection to an ODBC database.

34

#VTypeSAPIStrm

SAPI text-to-speech stream 

A type of stream for use with Speech Application Programming Interfaces

35

#VTypeComClient

COM Client Interface 

An object that provides an interface to a COM client application

36

#VTypeCryptoProv

Cryptographic Provider 

A handle to the particular cryptographic service provider that includes the key specification to use.

37

#VTypeCryptoKey

Cryptographic Key

May be either a Session Keys or a Public/Private Key.  See Cryptographic Keys.

38

#VTypeDLLhandle

DLL Handle 

A pointer to a structure returned from the LoadDLL function.  Used to call functions within the DLL that was loaded.  See DLL.

39

#VTypeDeflateHandle

ZLib Compression Handle

Used by the Deflate function

40 

#VTypeThread

Thread Handle

A script-level hook to the data structure used to represent a thread in a dump

41  .

#VTypeBreakWatch

Source Debugger Breakpoint Handle

References a set location in the source debugger. See Working with Breakpoints and Data Breakpoints

42 

#VTypeMiniDumpHandle

Minidump Data Handle 

A pointer to a data structure that holds information from a crash dump

43 

#VTypeTimeStamp

Timestamp

A numeric representation of time, measured in seconds since January 1, 1970

44

#VTypeXMLproc

XML Processor Handle 

Serves as a conduit between an XML document and an application. See VTS Engine XML API

45

#VTypeTypeDefinition

 

Dynamic Module Definition

A handle to the definition of a form of module used as a data container. Created by the MakeType DAG. This storage is used almost exclusively for handling XML and cannot contain script code (unlike other forms of Module).

46

#VTypeTypeInstance

 

Dynamic Module Instance

An instance of a dynamic module, created using the MakeTypeInstance DAG. This is an object value (type 7) that can only be used to store data - it cannot contain or execute script. Typically these are used when generating module trees for delivery via XML. It is a form of data container, however in general structures (defined by the Struct DAG) and Dictionaries (type 47) are more efficient and convenient for this role.

47

#VTypeDictionary

Dictionary

A key-based data container of flexible size, used either on its own to hold volatile data collections or in the definition of structures (see Structures). 

Note: ValueType will not return this value unless the dictionary is a “pure” dictionary. A pure dictionary is one for which the root value has never been set. Otherwise, it returns the ValueType of the dictionary's root instead.  See Dictionaries

48

#VTypeComProperty

COM Property

A value exposed by a COM Interface "object". This may be accessed similarly to a typical VTS value but is maintained by the COM object, not the VTS engine.

49

<undefined>

Module in Context

Contains both a module value and an instance of the context module where scope should be resolved.

Normally, scope will be the parent module in which the Module was declared. A Module in Context is used for drawing methods and plug-ins in VTS where the drawing method is declared in Appmod.SRC, but linked into a tag type such that the drawing method becomes a Module in Context in the tag instance. References to variables in the drawing method will then refer to variables in the tag rather than to variables in Appmod where the drawing method was declared.

If a Module In Context value is called in steady-state, the parent instance will provide the associated context.