Click to return to the Content     
Web Workshop  |  Content & Component Delivery

Mobile Channels Scripting Reference


Preview Release (see note)
July 13, 1998

Contents
Data Types
Data Structures
Keywords
Comments
Operators and Precedence
Escaping Special Characters
Statements
Functions
Now
Mobile Channels Scripting Object
Channel Browser and Active Desktop HTML Extensions
Example CDF File
Parse Tree of the Example CDF File

The Mobile Channels scripting model is based on Active Server Pages (ASP), as defined in the Internet Information Server (IIS). ASP code is written in Visual Basic Script (VBScript). In Mobile Channels, both ASP and VBScript are scaled down to fit the constraints of Windows CE-based devices. The streamlined ASP is also referred to as pocket ASP (pASP). Together, pASP and VBScript are referred to as the Mobile Channels scripting environment. The discussions presented here focus on the differences between pASP/VBScript for Mobile Channels and ASP/VBScript for Active Channels.

TopBack to top

Data Types

There are three legal data types for Mobile Channels scripting: STRING, NUMERIC, and BOOLEAN. However, only STRING is supported internally. The other two are derived from STRING. String literals may be specified using the double quote character (") to bracket the expression. Numeric strings may be specified without quotes. Numbers must be integers with values between -32,768 and 32,767. Boolean expressions evaluate to 1 for TRUE and 0 for FALSE. They may not be assigned to TRUE or FALSE, as in Visual Basic.

The data types and their values are described in the following table.

Data Type Value Description
STRING "Example string literal" As the string is expressed as itself rather than a variable value or the result of an equation, the result evaluates to "Example string literal."
NUMERIC
Result=3+4
The result evaluates to 7. But Result is stored as a string value.
BOOLEAN
(a) 3 = 3, (b) 3 = 5
(a) evaluates to 1 and (b) to 0.

TopBack to top

Data Structures

Data structures supported by Mobile Channels are described in the following table.

Data structure Description
Variable Elemental data structure of the simple data types. Variable names are alphanumeric and must start with an alphabetical character. The underscore character can be used, but not as the leading character. Variable names should be short to conserve memory and cannot be longer than 255 characters.
Array An ordered collection with numeric keys. The index counts from zero (0). For example:
Result = a(0)+a(1).

The method, Array.Count, returns the total number of elements in the array.

TopBack to top

Keywords

The following keywords are reserved and may not be used as variable names:

TopBack to top

Comments

Comments are started with the single quote (') and may appear anywhere on a line. The VBScript REM keyword for comments is not supported for Mobile Channels scripting. The following code example shows a Mobile Channels comment.

' This is an example comment.

TopBack to top

Operators and Precedence

Expressions are evaluated according to operator precedence. Operators of higher precedence — 1 being the highest — are evaluated first. Operators of the same level are evaluated from left to right. Precedence may be overridden using parentheses, which can be nested. The inner most parenthesis is evaluated first. Operators, types, and precedence are described in the following table.

Operator Type Precedence Description
* NUMERIC 1 Multiplication
/ NUMERIC 1 Division
Mod NUMERIC 1 Modulo division
+ NUMERIC 2 Addition
- NUMERIC 2 Subtraction
& STRING 2 Concatenation
< BOOLEAN 3 Less than
<= BOOLEAN 3 Less than or equal to
> BOOLEAN 3 Greater than
>= BOOLEAN 3 Greater than or equal to
= BOOLEAN 3 Equal to
<> BOOLEAN 6 Not equal to
And BOOLEAN 4 Logical AND
Or BOOLEAN 4 Logical OR
Not BOOLEAN 5 Logical NOT

Unlike VBScript, all expressions within a Mobile Channels statement are always evaluated. The following code example shows if arr.count is not greater than zero, arr(1) and arr(2) are evaluated and the references to arr(j) result in error.

If arr.count > 0 and arr(1) = "foo" then
   arr(2) = "bar"
End If

If the first logical expression is FALSE, the ensuing expressions are invalid. The following code example shows correct implementation.

If arr.count > 0 then
   If arr(1) = "foo" then
      arr(2) = "bar"
   End If
End If

TopBack to top

Escaping Special Characters

Special characters, such as the double quote, may be escaped within a string literal by preceding it with the backward slash character (\). The following code example shows how the backward slash character can be included in a string by escaping it as well.

"This is a string that contains \" double quotes\"."
"This is a string that contains slashes as in a path: \\c:\\windows."

TopBack to top

Statements

In the Mobile Channels scripting environment, there are five classes of statements:

Assignment

The assignment statement is of the following form:

<variable> = <expression>

Conditional

The If statement provides conditional flow of control. The End If part is required. The statements after a logical expression are not evaluated unless the logical expression evaluates to 1. The conditional statement is one of the following forms:

If <logical expression> Then
<statement>
End If

– Or –

If <logical expression> Then
      <statement1>
Else
      <statement2>
End If

– Or –

If <logical expression1> Then
      <statement1>
ElseIf <logical expression2> Then
      <statement2>
End If

– Or –

If <logical expression1> Then
      <statement1>
ElseIf <logical expression2> Then
      <statement2>
Else
      <statement3>
End If

Loop

There are two types of loop statements: For/Next and Do/While:

In the following code example, the For loop iterates through the loop by setting the variable initially at numeric expression1 and incrementing this value by the Step amount (expression 3) with each pass through the loop. When the optional Step clause is omitted, the default clause of Step 1 is invoked. The loop terminates when the variable reaches a value greater than expression2.

For <variable>=<expression1> To <expression2> [Step <expression3>]
<statements1>
     Exit For   ' Optional
     <statements2>
Next

In the following code example, the Do While loop continues until the logical expression, logExpression, returns 0. The Exit statement provides a way to terminate a loop without satisfying the normal termination criteria. When Exit is encountered, the loop breaks and execution resumes at the statement immediately following the loop. Exit is usually used in conjunction with a conditional statement.

Do While <logExpression>
     <statements1>
     Exit While  ' Optional
     <statements2>
Loop

Active Server

Active Server statements refer to the methods of pASP objects, such as Response and Request. The following code example shows how the Response.Write statement returns an output to the HTML stream.

Response.Write("<A HREF=mctp://MSNBC/ch2>Click here to jump to Sports</A>")

The Mobile Channels scripting environment exposes certain server variables. The Request.ServerVariables statement may be used to query the server variables. It takes a name string expression and returns a value string expression associated with the name. For example,

newURL = Request.ServerVariables("URL")

obtains the root URL for the channel of the page. The platform strings returned by:

platStr = Request.ServerVariables("Platform")

are shown in the following table.

String Platform
"WIN32_CE" Windows CE
"WIN32_WINDOWS" Windows 95/Windows 98
"WIN32_NT" Windows NT

Similarly, the Request.QueryString statement returns the value of a specified argument passed to the page as part of the URL. For example, if the URL for a page is named "mctp://MSNBC/ch2?city=seattle," then the statement:

theCity = Request.QueryString("city")

Assigns "seattle" to the theCity variable.

Set

The Set statement assigns a variable to an instance of an object. Because the Mobile Channels scripting environment supports only the MobileChannels.Utilities pseudoobject, use the Set statement to create a MobileChannels.Utilities object. Then assign the object to an instance variable, as shown in the following code example.

Set MC = Server.Create("MobileChannels.Utilities")

In general, because line breaks are ignored when a statement is evaluated, statements can wrap to more than one line. The statement continuation character ("_") is recommended, but not mandatory. For example,

MyVar = "This is an example of " & _
"a statement appearing " & _
        "on multiple lines." & MyVar

TopBack to top

Functions

Functions exposed in the Mobile Channels scripting environment are described in the following table.

Function Description
Now Returns the current date and time.
LocDate Using the current regional settings, formats and returns the date.
Len Returns the length of a string.
Mid Returns a substring of an existing string.
Split Parses a string into substrings based on a specified delimiter.
Asc Converts a character string into its numeric ASCII value and returns an numeric expression.
Chr Converts an ASCII numeric value to the associated character.
StrComp Compares two strings, string 1 and string 2, optionally specifying the comparison mode, compare.
Random Generates a random number in the range 0 to -1.

TopBack to top

Now

This function returns the current date and time and takes no argument.

Syntax

Now

Example

Response.Write("Today's date is " & Now)

LocDate

This function, using the current regional settings, formats and returns the date.

Syntax

LocDate

Example

Response.Write("Date: " & LocDate)

Len

This function returns the length of a string.

Syntax

Len(<string>)

Example

The following code example returns 6.

Len("Hello?")

Mid

This function returns a substring of an existing string. The resulting substring is of length characters long and begins at the Start character number — counting from one, not zero — in the original string expression.

Syntax

Mid(aStringExpression, startNumExpression,[length])

Example

The following code example shows how to set Foo to "my."

Foo = Mid("This is my String", 9, 2)

Split

This function parses a string into substrings based on a specified delimiter. The result is an array of strings.

Syntax

Split(aStringExpression, delimiterStringExpression)

Example

The following code example results in the subsequent four substrings.

Names = Split("Bob;Fred;Joe;", ";")

Names(0)="Bob"
Names(1)="Fred"
Names(2)="Joe"
Names(3)=""

Asc

This function converts a character string into its numeric ASCII value and returns an numeric expression. If the aStringExpression is longer than one character, the function returns the ASCII value of the first character only.

Syntax

Asc(aStringExpression)

Chr

This function converts an ASCII numeric value to the associated character and returns a string expression of one character.

Syntax

Chr(numericExpression)

Example

The following code example shows how to create a string containing one new line character.

str = Chr(10)

StrComp

This function compares two strings, string 1 and string 2, optionally specifying the comparison mode, compare. The compare argument can be 0 or 1. If compare is omitted, a binary comparison is performed.

Syntax

StrComp(string 1, string 2[compare])

Return Values

The values returned by this function are shown in the following table.

Condition Return Value
string 1 is less than string 2 -1
string 1 is equal to string 2 0
string 1 is greater than string 2 1

Random

The function generates a random number in the range 0 to -1.

Syntax

Random(range)

Example

The following code example generates random numbers from 0 to 9 inclusive.

num = Random(10)

TopBack to top

Mobile Channels Scripting Object

MobileChannels.Utilities is a pseudoobject in the Mobile Channels scripting environment that provides support for navigation and manipulation of objects within a Channel Definition Format (CDF) file. The Utilities object provides a number of methods for Mobile Channels scripting. These methods are summarized in the following table.

Method Description
Data Reads a block of data from a data item.
Debug Emits debug output to aid script development.
Href Returns an element's HREF.
HrefExists Returns 1 if an item exists in the cache.
IsSubscribed Returns subscribed state of a channel or subchannel.
IsUnread Returns read or unread state of an item, channel, or subchannel.
LibraryCall Accesses a dynamic-link library (DLL) special function.
Locate Jump to a specified identifier within the CDF file.
Navigate Traverses a CDF file.
Tag Returns the tag of an element in a CDF file.
Title Returns an element's title.
Value Returns the value of an element in a CDF file.

The following code example shows how, in order to use these methods, the Utilities object must first be instantiated using the Set function.

Set MC = Server.Create("MobileChannels.Utilities")

Hereafter, MC is used as shorthand for the MobileChannels.Utilities scripting object; however, the object may be assigned to any variable name.

Navigate

The MC.Navigate method is a powerful, frequently used, and by far the most important method in pASP. It is designed to help examine the structure of a mobile channel, as represented in CDF, at run time. To understand the behavior of this method, a brief discussion of the background and terminology is helpful.

The basic operand of the Navigate method is an element that is the smallest unit of information in a CDF file. Every element has a tag and, optionally, a value. The MC.Tag and MC.Value methods of pASP may be used to retrieve these strings for any element. The elements are organized into a tree structure as specified by Extensible Markup Language (XML) as the CDF file is parsed. Using the Navigate method, you can move to specific elements within the tree and between elements with certain relationships. This information can be very useful to the channel scripts that use CDF to dynamically generate the HTML pages for the channel at run time.

The following discussions refer frequently to the sample CDF file and its associated parse tree, which are provided at the end of this document. The parse tree shows the internal representation of the sample CDF file. Each line of the parse tree is equivalent to an element, and all start with the tag for the element. The more indented elements are children of their less indented parents. Elements at the same level of indentation are siblings. In the CDF file, for example, the BASE element is a child of the top-level CHANNEL element. The first HREF element is a sibling of the BASE element. The INTERVALTIME element is a child of the SCHEDULE element.

Many elements are considered to have a default value. These are indicated in the parse tree by an "= [string]" expression following the tag of the element.

To determine the default value of an element

  1. If the specified element has a string directly associated with it, the string is the default value.
  2. If there is no direct string, but there is a child VALUE element, the child's value becomes the default value.
  3. If no VALUE element is provided, but a child HREF element is found, its value becomes the default value.
  4. If none of these can be found, the VALUE is empty.

For example, the value of the first ID tag has a direct string, the TITLE tag has an explicit VALUE element, so this is used, and the value of first LOGO tag is its HREF element. The SCHEDULE tag has no direct string, VALUE or HREF children, so its value is empty.

The Navigate method has the following syntax:

NewElem = MC.Navigate(StartElem, NavAction, [,Match])

The method returns a new element, or 0 if the command could not find the specified element. The following code example shows how to test this return value using standard VBScript comparisons. Other standard VBScript comparisons may be used.

IF NOT NewElem THEN
     ' not found
  END IF

The StartElem parameter is the starting element from which to base relative movement commands. If you are using the absolute movement command "Jump," you must use " " for the StartElem parameter. But in all other cases, it must be a valid element returned from a previous Navigate method.

The NavAction parameter is one of the following strings:

Tag

This method returns the tag name of an element.

Syntax

DataItem(index).Tag

Example

dataItems(n).Tag

Value

This method returns the value of an element.

Syntax

DataItem(index).Value

Example

dataItems(n).Value

Data

This method gets data from a Mobile Channels data file and returns an array of name and value pairs based on the current location and the specified block number. The names are the field names as specified in an ITEMFORMAT statement and the values are the data items, or lines, as retrieved from the data file.

Syntax

MC.Data(elementID, blockNum)

Remarks

The following code example shows that dataItems is an array to hold the data items, elementID is the current location within the CDF file — for example, the ID item for the Mobile Channels Data file (.mcd) — and blockNum is the block number within the file.

dataItems = MC.Data(elementID, blockNum)

Because blocks start with zero, the first repeating block is always block number one, even if there is no header. The resulting array, dataItems, contains an element for each item, or line, within the block. The items in a block count from zero.

Each data item is, in effect, an object that supports the Tag, Type, and Value methods to expose its own properties.

Value

This method returns the value of the field for the indexed array position.

Syntax

Value

Example

dataItems(index).Value

Type

This method returns the type as specified in the ITEMFORMAT tag. If no type is listed or if the ITEMFORMAT tag is missing, then the Type method returns HTML.

Syntax

DataItem(index).Type

Return Values

The return types are described in the following table.

Type Description
HTML The line item is HTML-formatted content. This is the default type.
HREF The line is a URL, either http:// or mctp://.
IMG The line contains the identifier of an image item in the CDF file.
TEXT Same as HTML.

Example

dataItems(n).Type

Locate

This method is a shorthand for the "Jump" action of the Navigate method, which has the following form:

newElem = MC.Navigate("", "Jump", "ID")

Syntax

MC.Locate("ID")

Example

newElem = MC.Locate("ID")

LibraryCall

This method enables a script to access a custom DLL to perform functions not available through standard scripting.

Syntax

MC.LibraryCall(LibName, FuncName [,param]*)

Example

Result = MC.LibraryCall(LibName, FuncName [,param]*)

Remarks

First, the method checks for security to verify that the DLL has been properly registered for access by means of pASP scripting. An accessible DLL must have a registry entry in \HKLM\Software\Microsoft\Mobile Channels\Components, matching the name of the DLL.

The LibraryCall method then dynamically loads the specified DLL by calling the GetProcAddress function to look up the specified function. Any additional parameters are then marshaled before being forwarded to the DLL function. Up to eight optional parameters may be passed.

The DLL function must return a LPWSTR value. If the return value is NULL, LibraryCall returns 0. Otherwise, it returns the string itself as a standard pVBS string value.

Debug

This method allows a debug string to be written during the execution of the script. This may be useful during development to help examine program flow. The debug messages appear in the console window of any attached debugger, similar to the OutputDebugString Microsoft® Win32® API.

Syntax

MC.Debug(Msg)

Example

MC.Debug("Starting phase 1")

Return Values

None.

HrefExists

This method determines whether the specified URL can be found in the cache. It enables a script to gracefully handle missing images, data elements, or other components needed by the script. The URL must be a fully qualified HTTP-style URL.

Syntax

MC.HrefExists(Href)

Example

MC.HrefExists("http://myhome.site.com/personal/index.htm")

Return Values

This method returns 1 if the URL is found in the cache; otherwise, a 0 is returned.

Href

This function finds the full hypertext reference (HREF) for an item as captured in the CDF file. Href allows shorthand identifiers to be used in the scripts and resolved to full HREFs at run time. If the HREF in the CDF is relative, Href applies the BASE tag in the CDF to fully resolve the HREF.

Syntax

MC.Href(Elem)

Return Values

This method returns the full URL for a specified element if it is in the CDF file; otherwise, a 0 is returned.

IsSubscribed

This method tests to see if a user is currently subscribed to the specified channel or subchannel element.

Syntax

MC.IsSubscribed(ChanElem)

Return Values

This method returns 1 if there is a subscription; a 0 indicates that there was no subscription or that the channel or subchannel was not found.

Remarks

This method does not work with items, only with channel elements. Furthermore, in Internet Explorer 4.0, it always returns 1 when running on the desktop computer.

Title

This method attempts to retrieve the title of a specified element by the following means:

Syntax

MC.Title(ElemString)

Example

titleString = MC.Title(ElemString)

Remarks

This method does not mark a data item as "Read" as it retrieves the title. When using the Navigate method to get the title, the item is marked as "Read," even if the user has not actually looked at it.

IsUnread

This method allows a script author to determine if an element has been read by a user. The author can then provide UI feedback to the user, such as showing unread or new items.

Syntax

MC.IsUnread(Elem)

Return Values

This method returns a 1 if the associated item or channel has been read. It returns nonzero value if called directly on an unread item, or called on a subchannel with unread contents.

Example

newContent = MC.IsUnread(Elem)

SetUnread

This method sets the read or unread state for an item and returns no value.

Syntax

MC.SetUnread(Elem [,Flag])

Parameters

Elem
Valid element from a prior call to Navigate or Locate.
Flag
Optional flag used to mark the state of Elem. The default value of 0 indicates "Unread"; 1 indicates "Read."

Remarks

Mobile Channels Data (MDC) items are automatically marked as "Read," but image items are not. This results in the image remaining marked as "Unread" even if it has been read. Furthermore, all the parent subchannels are also marked as "Unread" as long as any images within are unread. To remedy this situation, the script author should call this method to manually mark each image as "unread" each time it is displayed.

TopBack to top

Channel Browser and Active Desktop HTML Extensions

Using several HTML extensions allows you to write advanced scripts for Active Desktop and to control page updates in Channel Browser.

Application links

The Active Desktop for a Windows CE-based device supports a special HREF for launching an application from a hyperlink. The form is as follows:

<A HREF="mcexe://[appname]">Launch Text</A>

The appname parameter is the name of the application to be launched when the link is clicked.

The application must have been registered by placing a value of the same name as the executable file (.exe) in the registry at \HKLM\Software\Microsoft\Mobile Channels\Components.

META tags

Channel Browser and the device's Active Desktop recognize the following special META tags. Embedding these META tags in the header of a page, either directly or through scripting, cause the page to be automatically handled or updated in a particular manner. These META tags — with the exception of Refresh — are ignored by Internet Explorer 4.0.

The META tags are summarized in the following table, proceeded by a detailed discussion of each.

HTTP-EQUIV value Description Support
Notify Catch cache or database updates. Active Desktop, Channel Browser
Refresh Reload after a specified time interval. Active Desktop
LaunchApp Execute application for desktop component. Active Desktop
Autosize Control image scaling. Channel Browser

Notify

This META tag allows a page to be automatically updated when there is an update to a particular database, or when a particular item is updated in the cache. It is used to regenerate a page automatically when a new version of the page or one of its components comes in by means of a mechanism such as sync. The following code examples show the two forms of this META tag.

<META HTTP-EQUIV="Notify"
CONTENT="DBUPDATE=[DBname];URL=[RefreshUrl]">

<META HTTP-EQUIV="Notify" CONTENT="CACHEUPDATE=[WatchUrl];URL=[RefreshUrl]">

Possible values are described in the following table.

Value Meaning
DBname Name of the database to monitor for updates.
WatchUrl URL of the item to monitor for cache updates.
RefreshUrl URL to load if an update is detected.

Refresh

This META tag causes a page to be automatically reloaded after a specified time interval. The form is as follows:

<META HTTP-EQUIV="Refresh" CONTENT="[secs];URL=[RefreshUrl]">

Possible values are described in the following table.

Value Meaning
secs Sets the number of seconds until the page is reloaded.
RefreshUrl URL to load after the specified interval.

LaunchApp

This META tag allows an application to be launched by clicking on the header of an Active Desktop component on a Windows CE-based device. The form is:

<META HTTP-EQUIV="LaunchApp" CONTENT="[appname][?params]">

Possible values are described in the following table.

Value Meaning
appname Name of the executable to launch.
params Optional comma-separated list of params to be passed to the application upon invocation. The application must have been registered by placing a value of the same name as the .exe in the registry at \HKLM\Software\Microsoft\Mobile Channels\Components.

Autosize

This META tag allows the default image scaling behavior to be disabled for a particular page. The HTML control attempts, by default, to scale images for display on the smaller form factor screen. However, if this META tag is specified in the page header, the images are at the full size. Scrollbars appear, if needed. The form is as follows:

<META HTTP-EQUIV="Autosize" CONTENT="Off">

Because the default value is always "On," there is no need for any other value with the CONTENT attribute.

TopBack to top

Example CDF File

<?XML version="1.0"?>
<CHANNEL
    HREF="mctp://mySite/34droad/34droad.cdf"
    BASE="http://mySite/" ID="34droad">
    <SELF HREF="http://mySite/34droad/34droad.cdf" />
    <SCHEDULE><INTERVALTIME MIN="40"/></SCHEDULE>
    <USAGE VALUE="MobileChannel"/>
    <TITLE>3 4 D Road</>
    <ABSTRACT>Things to think about while you're away...</>
    <LOGO STYLE="IMAGE" HREF="34droad/34logo.gif" ID="LOGO"/>
    <LOGO STYLE="ICON"  HREF="34droad/34icon.gif" ID="ICON"/>
    <CHANSCRIPT VALUE="SS"/>
    <ITEMSCRIPT VALUE="SS"/>
    <ITEM HREF="34droad/34.mcs" ID="SS">
         <ABSTRACT>Things to think about while you're away...</>
    </ITEM>
    <ITEM HREF="cgi-bin/deep1.mcd?1" ID="D1">
         <USAGE VALUE="MobileChannel"/>
         <LOG VALUE="document:view"/>
    </ITEM>
    <ITEM HREF="cgi-bin/deep1.mcd?2" ID="D2">
         <USAGE VALUE="MobileChannel"/>
         <LOG VALUE="document:view"/>
    </ITEM>
    <ITEM HREF="cgi-bin/deep1.mcd?3" ID="D3">
         <USAGE VALUE="MobileChannel"/>
         <LOG VALUE="document:view"/>
    </ITEM>
    <ITEM HREF="34droad/34logo.gif" ID="LOGO">
         <USAGE VALUE="None"/>
    </ITEM>
    <ITEM HREF="34droad/34icon.gif" ID="ICON">
         <USAGE VALUE="None"/>
    </ITEM>
    <ITEM HREF="34droad/34main.gif" ID="MGIF">
         <USAGE VALUE="None"/>
         <LOG VALUE="document:view"/>
    </ITEM>
</CHANNEL>

TopBack to top

Parse Tree of the Example CDF File

CHANNEL = mctp://mySite/34droad/34droad.cdf
    HREF = mctp://mySite/34droad/34droad.cdf
    BASE = http://mySite/
    ID = 34droad
    SELF = http://mySite/34droad/34droad.cdf
        HREF = http://mySite/34droad/34droad.cdf
    SCHEDULE
        INTERVALTIME
            MIN = 40
    USAGE = MobileChannel
        VALUE = MobileChannel
    TITLE = 3 4 D Road
        VALUE = 3 4 D Road
    ABSTRACT = Things to think about while you're away...
        VALUE = Things to think about while you're away...
    LOGO = 34droad/34logo.gif
        STYLE = IMAGE
        HREF = 34droad/34logo.gif
        ID = LOGO
    LOGO = 34droad/34icon.gif
        STYLE = ICON
        HREF = 34droad/34icon.gif
        ID = ICON
    CHANSCRIPT = SS
        VALUE = SS
    ITEMSCRIPT = SS
        VALUE = SS
    ITEM = 34droad/34.mcs
        HREF = 34droad/34.mcs
        ID = SS
        ABSTRACT = Things to think about while you're away...
            VALUE = Things to think about while you're away...
    ITEM = cgi-bin/deep1.mcd?1
        HREF = cgi-bin/deep1.mcd?1
        ID = D1
        USAGE = MobileChannel
            VALUE = MobileChannel
        LOG = document:view
            VALUE = document:view
    ITEM = cgi-bin/deep1.mcd?2
        HREF = cgi-bin/deep1.mcd?2
        ID = D2
        USAGE = MobileChannel
            VALUE = MobileChannel
        LOG = document:view
            VALUE = document:view
    ITEM = cgi-bin/deep1.mcd?3
        HREF = cgi-bin/deep1.mcd?3
        ID = D3
        USAGE = MobileChannel
            VALUE = MobileChannel
        LOG = document:view
            VALUE = document:view
    ITEM = 34droad/34logo.gif
        HREF = 34droad/34logo.gif
        ID = LOGO
        USAGE = None
            VALUE = None
    ITEM = 34droad/34icon.gif
        HREF = 34droad/34icon.gif
        ID = ICON
        USAGE = None
            VALUE = None
    ITEM = 34droad/34main.gif
        HREF = 34droad/34main.gif
        ID = MGIF
        USAGE = None
            VALUE = None
        LOG = document:view
            VALUE = document:view


Back to topBack to top

Did you find this material useful? Gripes? Compliments? Suggestions for other articles? Write us!

© 1999 Microsoft Corporation. All rights reserved. Terms of use.