Microsoft Knowledge Base |
|
README.TXT for Microsoft Test Version 2.0 for Windows |
|
|
Last reviewed: October 19, 1994
Article ID: Q112014 |
|
|
The information in this article applies to:
- Microsoft Test for Windows, version 2.0
SUMMARYThis article contains the complete text of the README.TXT file that shipped with Microsoft Test version 2.0 for Windows.
MORE INFORMATIONRelease notes for Microsoft Test, Version 2.0 C) Copyright Microsoft Corporation, 1993 This document contains the release notes for version 2.0 of Microsoft Test. The information in this document and in the Help menu is more up-to-date than that in the books.
CONTENTS
Part Description
---- -----------
1 Documentation Errata and Additions
a Microsoft Test User's Guide
b Microsoft Test User Interface Editor User's Guide
2 New Dynamic-Link Library Procedures
New TESTCTRL.DLL Procedures
New TESTDLGS.DLL Procedures
New TEST TALK Procedures
New TESTUIL.DLL Procedures
3 Enhanced Functionality
Test Dialogs
User Interface Editor
Detecting a Disk in Drive A: or B:
RUN Statement/Function
NOT (!) Operator
Test Trap Additions, Corrections, and Changes
4 Miscellaneous
Using MS-DOS Boxes on the Novell Network
Test Talk Issues
Callbacks as Parameters
PART 1: Documentation Errata and Additions
a: Microsoft Test User's Guide
TESTDLGS.EXE and TESTSCRN.EXE FilenamesPlease note the following changes: TESTDLGS.EXE was renamed to TESTDLG.EXE
TESTSCRN.EXE was renamed to TESTSCN.EXE
These filenames were changed so that the .EXE files did not have
the same name as the dynamic link libraries (DLLs) TESTDLGS and
TESTSCRN. When the names were the same, you couldn't run the
.EXE if the DLL was already loaded. This situation occurred when
you ran a script that called a DLL, stopped it at a breakpoint,
and then tried to run the .EXE.
Page 58, Compiling Your ScriptBefore the sentence located at the end of the second paragraph in this section that says:
You can run your pcode file by using WBRUN20.EXE
and passing it the pcode filename.
Insert the following paragraphs:
To run a pcode file, the following files must
be present:
The .PCD file
WBRUN20.EXE
WBEXEC20.DLL
RBHEAP.DLL
DLLs that you call from your script
(TESTCTRL, TESTEVNT, etc.)
Under Windows 3.0, the DLLs must be in either the current
directory, the WINDOWS or WINDOWS\SYSTEM directory, or a
directory in your path. Under Windows 3.1, the DLLs can be
in any of the above directories, and can also be in the
directory where WBRUN20.EXE is located.
Page 86, Saving a Reference Image to a FileAdd the following note after step 4 in the "To save an image to a file" procedure:
NOTE: Screen files cannot contain images that were
captured using different video modes. If you captured
and saved screen images in a file using one video mode,
and try to capture and save a new screen image to the
same file using a different video mode, an "Invalid
Screen Mode" error occurs. See Appendix B for a list
of video modes.
Page 105, STRING *, Fixed-LengthAdd the following paragraphs:
The maximum size of a fixed-length string is 32767
bytes. If this size is exceeded, an 'Invalid Size for
Fixed-Length String' error occurs during compilation.
DIM S AS STRING * 32767 'this is valid
DIM Y AS STRING * 32768 'this fails with an error
NOTE: this limitation does not apply to variable-length
strings.
Page 111, User-Defined Data TypesAdd the following paragraph and examples after the TYPE LOGRECORD example on this page:
The maximum size of a user-defined variable is 32,767 bytes.
If this size is exceeded, an "overflow" error occurs during
compilation. In the following examples Type1 is defined having
the maximum size. Type2 produces an "overflow" error.
TYPE Type1
x as string * 32767 'The maximum size
END TYPE
'This will produce an "overflow" error
TYPE Type2
x as string * 32767
y as string * 2
END TYPE
Page 212, Monitoring a Station's StatusThe following status code needs to be added to the list in this section:
Status Code Value Description
-------------------------------------------------------------
ST_RECONNECTED 5 If a station has disconnected
from the host and attempts to
reconnect, its old entry in the
station list is updated
to this status.
Page 324 and 325, SendData and SendDataFile Procedures
The syntax for the DECLARE FUNCTION statements for these two procedures is missing a parameter (wType%). These statements should look like this:
DECLARE FUNCTION SendData LIB "TESTHost.dll" (StationNum%,
wType%, lpData AS ANY, DSize&) AS INTEGER
DECLARE FUNCTION SendDataFile LIB "TESTHost.dll" (StationNum%,
wType%, FileName$) AS INTEGER
wType%
Communicates to the station what kind of data you are sending.
For example, if you are sending a script to be executed,
set this parameter to DT_SCRIPT. When the station gets the data,
this parameter determines what gets returned by the
GetDataType() function on the station side.
Page 388, Return ValuesAdd the following Error messages to the end of the table on this page (Value 29 is replaced):
Error message Value
-------------------------------------
ERR_CANT_MOVE_WND 29
ERR_CANT_SIZE_WND 30
ERR_CANT_ADJ_SIZE_POS_WND 31
ERR_CANT_FIND_LBBOX 32
ERR_NOT_OPERATOR_NOT_ALLOWED 33
ERR_CANT_ADD_NULL_ITEM 34
ERR_BAD_POINTER 35
MAX_ERROR 36
Pages 393-397, WFndWnd and WFndWndWait Procedures (TESTCTRL.DLL)Add the following wFlags to the list starting on page 393:
FW_MAXIMIZE If a window is found, it is maximized.
FW_MINIMIZE If a window is found, it is minimized.
FW_RESTORE If a window is found, it is restored.
FW_DIALOG Find dialog boxes (class #32770) only.
FW_DIALOGOK Find either windows or dialog boxes
Additional Comments:
The first 3 wFlags in this list do not imply FW_FOCUS.
If the window is an MDI window, it can be maximized,
minimized, or restored without automatically gaining the
focus. Although FW_MAXIMIZE and FW_RESTORE do not imply
FW_FOCUS, top-level windows will get the focus because
of the way Windows works.
Some applications put up dialog boxes with the same
caption as the application's main window. If this happens,
you may find the wrong window if you use WFndWnd().
Instead, use WFndWndC() and specify a class when locating
windows in these cases.
To make things easier and more readable when looking for
a dialog, instead of using WFndWndC() and specifying the
class name "#32770" (the dialog class), you can use
WFndWnd() and use the FW_DIALOG flags.
Page 394, WFndWnd Procedure (TESTCTRL.DLL)o In the description of FW_IGNOREFILE at the top of this page, replace the word "following" with "preceding."o In the first paragraph in the Comments section on this page, after the first sentence, add the following:
NULL and an empty string ("") for the lpszCaption$
parameter are not treated the same:
("") The window must have an empty caption to match.
NULL The window caption/text is ignored; can be anything.
Page 475, FILELIST StatementAdd this note before the "Examples" heading:
NOTE: The maximum number of files in the file list is 65,000.
If a FILELIST ADD statement causes the file list to exceed
this size, a run-time error 11, "Filelist processing error,"
occurs. The file list will contain only the first 65,000
files added to it. No more files can be added until a
FILELIST REMOVE or a FILELIST CLEAR statement is used.
Page 488, LEN FunctionAdd the following paragraphs to the "Remarks" section:
If <variablename> is a user-defined type, LEN returns
the size of the TYPE structure. For example:
TYPE MyType
elem1 As Integer
elem2 As String * 10
END TYPE
LEN(MyType) 'returns 12.
If <variablename> is an array, LEN returns the size of an
individual array element. For example:
DIM array(100) AS DOUBLE
LEN(array) 'returns 8.
Page 494, MSGBOX Statemento MB_APPLMODAL Description Add this note to the description in Table 9.4:
NOTE: When you set the MB_APPLMODAL flag, the
message box is modal to the script window for
that script, not to the Test Driver window in
which you are running the script.
o The example after the paragraph following Table 9.4 is not correct:
MB_OKCANCEL + MB_ICONSTOP + MB_DEFBUTTON1 + MB_APPLMODAL
It should look like this:
MB_OKCANCEL OR MB_ICONSTOP OR MB_DEFBUTTON1 OR MB_APPLMODL
o A new flag has been added for the MSGBOX statement and function.
It is:
Symbolic constant Value Description
-----------------------------------------------------------
MB_NOBEEP 32,768 Turns off the system beep
that sounds when you choose
an icon and its dialog box
appears.
Page 501, OPTION BASE StatementAdditional Remarks:
The Microsoft Test OPTION BASE statement is different in
some ways from the OPTION BASE statement in QuickBasic and
Visual Basic. In QuickBasic and Visual Basic, you can use
OPTION BASE only once in a program. Also, you must use it
before any arrays are dimensioned.
The Microsoft Test OPTION BASE is a toggle switch. You
can use it more than once. For example:
DIM array1(10) AS INTEGER 'Defaults to base 0
OPTION BASE 1
DIM array2(20) AS SINGLE
OPTION BASE 0
DIM array3(30) AS DOUBLE
Page 501, OPTION INTEGER StatementThe OPTION INTEGER statement affects the output of the RND function and the TIMER function as follows:
If OPTION INTEGER is used, RND generates a random integer
between 1 and 32,767. Otherwise it generates a random number
between 0 and 1.
If OPTION INTEGER is used, TIMER returns a long integer
containing the number of milliseconds since the system started.
Otherwise, it returns a double-precision floating-point value
containing the number of seconds since the system started.
PART 1: Documentation Errata and Additions
b: Microsoft Test User Interface Editor User's Guide
Page 101, MSTLoadIcon Function SyntaxAdd the following information to the paragraph that starts "icon ID is the resource ID number... ":
To get the resource ID number of an icon
1. From the Icons dialog box, select an icon.
2. Press F2.
The resource ID number and the icon is displayed.
PART 2: New Dynamic-Link Library ProceduresThe procedures in this section are "new" because they were created after the books went to press.
New TESTCTRL.DLL Procedureso WLabelLen()
Included if W_STATIC is defined.
Syntax:
Declare Function WLabelLen Lib "TestCtrl.DLL" Alias
"WLabelLen" (hwnd%) AS INTEGER
Returns:
Length of associated label; zero if no associated label.
Comments:
WLabelLen() obtains the length of the associated label
for the specified window. hwnd% is the Window to check.
If zero, check the control with the focus.
hwnd% must be a child (WS_CHILD) and cannot have a
caption (WS_CAPTION).
o WLabelText()
Included if W_STATIC is defined.
Syntax:
Declare Sub WLabelText Lib "TestCtrl.DLL" Alias
"WLabelText" (hwnd%, lpszBuffer$)
Declare Function LabelText (hwnd%) AS STRING
Returns:
Nothing.
Comments:
WLabelText() obtains the text of the associated label
for the specified window. hwnd% is the Window to check.
If hwnd% is zero, checks the control with the focus.
lpszBuffer$ is the buffer for label text.
hwnd% must be a child (WS_CHILD) and cannot have a
caption (WS_CAPTION).
Both of the above procedures can be used to determine whether a control
has an associated label. WLabelLen() returns zero if no label, and
LabelText() returns an empty string if no label.
o WListItem(action)Ex
Four new procedures are identical to their non-"Ex" counterparts,
except for the added parameter ixOffset%.
Syntax:
Declare Sub WListItemClkEx Lib "TESTCTRL.DLL" Alias
"WListItemClkEx" (lpszName$, lpszItem$, ixOffset%)
Declare Sub WListItemCtrlClkEx Lib "TESTCTRL.DLL" Alias
"WListItemCtrlClkEx" (lpszName$, lpszItem$, ixOffset%)
Declare Sub WListItemShftClkEx Lib "TESTCTRL.DLL" Alias
"WListItemShftClkEx" (lpszName$, lpszItem$, ixOffset%)
Declare Sub WListItemDblClkEx Lib "TESTCTRL.DLL" Alias
"WListItemDblClkEx" (lpszName$, lpszItem$, ixOffset%)
Comments:
The value of ixOffset% determines where the item is clicked:
= 0: item is clicked in the center of the item rectangle,
zooming is performed to support File Manager-type
list boxes.
> 0: item is clicked at ixOffset% from the left of the item
rectangle
< 0: item is clicked at ixOffset% from the right of the item
rectangle
New TESTDLGS.DLL Procedureso SetMatchPreferences()
Syntax:
Declare Sub SetMatchPreferences (ExDlg%, FzDlg%, ExMenu%, FzMenu%)
CONST MATCH_TEXT = 1 'Text
CONST MATCH_CASETEXT = 2 'Text, case insensitive
CONST MATCH_CLASS = 4 'Class name
CONST MATCH_STATE = 8 'State
CONST MATCH_STYLE = 16 'Style
CONST MATCH_RECT = 32 'Rectangle
CONST MATCH_ALL = 63 'Match all
Comments:
This procedure sets the criteria for a Test Dialogs comparison.
The integer for each comparison type is some combination of the
MATCH_ flags. The default state is equivalent to the following:
MATCH_ALL 'Exact, Dialogs
MATCH_CLASS OR MATCH_STATE 'Fuzzy, Dialogs
MATCH_TEXT OR MATCH_CASETEXT OR MATCH_STATE 'Exact, Menus
MATCH_TEXT OR MATCH_CASETEXT 'Fuzzy, Menus
o GetMatchPreferences()
Syntax:
Declare Sub GetMatchPreferences (ExDlg AS POINTER TO INTEGER,
FzDlg AS POINTER TO INTEGER,
ExMenu AS POINTER TO INTEGER,
FzMenu AS POINTER TO INTEGER)
Comments:
This procedure gets the criteria for a Test Dialogs comparison.
The MATCH_ flags are the same as defined for SetMatchPreferences().
New Test Talk Procedureso SetLanaNum()
If you have more than one LAN adapter or protocol on your
machine, you can choose which adapter or protocol to use when
running Test Talk. Both Test Talk DLLs (TESTHOST.DLL and
TESTSTAT.DLL) contain this new procedure.
Syntax:
DECLARE FUNCTION SetLanaNum(LNum%) AS INTEGER
Return Values:
SetLanaNum() returns TRUE if the lananum can be used;
FALSE if not. If the function returns FALSE, it means either
that there is no adapter or LAN protocol for that lananum,
or that the adapter or LAN protocol exists and doesn't
support NETBIOS.
Comments:
This function checks the specified lananum to see whether it
supports NETBIOS. If it does, then that lananum is used by
Test Talk from then on.
When the Test Talk DLLs load, they automatically search the first
eight lananums (0 - 7) for the first one that supports NETBIOS.
The first one found is used unless you change it by using
SetLanaNum().
o NetBIOSAvailable
This procedure is included in both TESTSTAT.DLL and TESTHOST.DLL. It checks the first eight (0 - 7) lananums for the first one that supports NETBIOS. The first one found is used by Test Talk unless you change it with SetLanaNum(). If NetBIOSAvailable returns FALSE, it means that no adapter or LAN protocol on the machine supports NETBIOS. New TESTUI.DLL ProceduresMSTSysMenu()
Included if either W_MENU or TESTUI is defined.
Syntax:
Declare Sub MSTSysMenu Lib "TESTUI.DLL" Alias
"MSTSysMenu" (hwnd%, iMenuType%)
Const MST_GLOBAL = 1
Const MST_APP = 2
Const MST_WINDOW = 4 (only applies to User Interface Editor's
test mode windows)
Comments:
MSTSysMenu() drops the specified sysmenu on the specified window.
hwnd% is the Window to check. If zero, check the active window.
iMenuType% is the Type of the sysmenu. It can be any one of the
following:
MST_GLOBAL
MST_APP
MST_WINDOW
If the window doesn't have the specified sysmenu installed, nothing
happens. If the window has the specified sysmenu and it is not the
active window, it is made the active window.
MSTSysMenuExists()
Included if either W_MENU or TESTUI is defined.
Syntax:
Declare Function MSTSysMenuExists Lib "TESTUI.DLL" Alias
"MSTSysMenuExists" (hwnd%) AS INTEGER
Return Values:
The function returns a bit pattern:
bit 0 1 if a global sysmenu is installed
bit 1 1 if an application-specific sysmenu is installed
bit 2 1 if a window-specific sysmenu is installed
(NOTE: Bit 2 only applies to the User Interface Editor when in
test mode.)
Comments:
MSTSysMenuExists() determines if the specified window has an
MSTSysMenu installed. hwnd% is the Window to check. If zero,
check the active window.
Examples:
MSTSysMenuExists() returns the following values:
Zero If no sysmenus are installed.
MST_GLOBAL(1) If only a global sysmenu is installed.
MST_APP(2) If only an application-specific sysmenu
is installed.
MST_WINDOW(4) If only a window-specific sysmenu is
installed.
3 If both a global and an application-specific
sysmenu are installed.
o MSTLoadBitmap()
Syntax:
int = MSTLoadBitmap(bitmap ID, .RES file)
Return Value:
MSTLoadBitmap returns hBitmap (the bitmap handle)
which is used when calling MSTDestroyBitmap.
Comments:
See MSTLoadIcon() on page 100 in the Microsoft Test User Interface
Editor User's Guide.
To get the resource ID number of a bitmap:
1. From the Sysmenu Bitmaps dialog box, select a bitmap.
2. Press F2.
The resource ID number and the bitmap is displayed.
o MSTDestroyBitmap()
Syntax:
MSTDestroyBitmap(hBitmap)
Comments:
See MSTDestroyIcon() on page 101 in the Microsoft Test User Interface
Editor User's Guide.
PART 3: Enhanced Functionality
Test Dialogso Converting Version 1.0 Files
Files created using version 1.0 are no longer readable by
Test Dialogs. To convert 1.0 files to 2.0 format:
1. Use the Test Dialogs user interface to create a new
2.0 file.
2. Use the new File.Convert 1.0 File command to import
the contents of the 1.0 file. This converts the dialogs
in the 1.0 file and appends them to the currently open
2.0 file.
It is better to recapture the dialogs using version 2.0, than to
convert them from version 1.0. Version 2.0 stores more information
about dialog controls making it possible to accurately preview and
export the dialogs. For this reason comparisons are more reliable.
For example, in 1.0 the coordinates for each control were saved
relative to the screen, and in 2.0 they are saved relative to their
parent. If the dialog is in a different screen location during
comparison, the rectangles will still match, provided their position
relative to the dialog window itself did not change. Also, style bits
are now stored for the controls, allowing Test Dialogs to distinguish
different controls within the same class.
In version 1.0, the following information was stored:
- Text (up to 256 characters)
- Class name (to 32 characters). Menu items are of the class
"MenuItem."
- State:
- for class BUTTON, 0 = unchecked, 1 = checked,
2 = undetermined
- for menu items, return value of GetMenuState() at time
of capture
- fVisible = TRUE if control is visible
- fEnabled = TRUE if control is enabled
- Rectangle. Screen-relative position and size of control
(GetWindowRect() at time of capture).
In version 2.0, the following information is stored:
- Text (up to 2048 characters)
- Class name (complete, no enforced length limit)
- Style bits:
- for menus, this field is used to identify pop-up menus;
contains the number of sub-menus in a pop-up menu
- for controls and windows, this field contains the
style bits
- State:
- for menu items, return value of GetMenuState() at the time
of capture
- for controls and windows, this field is a combination of bits:
1 if the control is visible
2 if the control is enabled
4 if the control is a button and is checked
8 if the control is a 3-state button and is indeterminate
- Font (for controls and windows only). Face name, height,
and weight of font used to paint the control at time of capture.
- Rectangle. Position and size of control relative to its parent.
o Text Import and Export
You can create a text file in RC-like format, representing dialogs
and menu structures. You can edit the text file using any text editor,
and then import it into a dialog file using the import feature.
If you capture a menu and then remove items from it using the User
Interface Editor, you cannot preview or export the menu. If you convert
a menu from a 1.0 file, the converted menu won't be completely accurate.
If there are second- or higher-level menus, they will appear as top-
level menus. To fix this in import/export, do the following:
1. Create a text file.
2. Edit the text file to place the higher-level menu in a
pop-up structure.
3. Re-import the menu.
User Interface Editoro Dragging and Dropping Icons
In the User Interface Editor, you can add icons to the .RES file by dragging them from the Preview window of the Icons dialog box and dropping them into the Icons list. To assign an icon to an item, you can drag it from the Icons list box and drop it onto a sysmenu item in a sysmenu or onto an icon control in a dialog box. Double-clicking to assign the icon still works as before.o Using the SPACE key with Icons and Bitmaps
In the User Interface Editor, pressing SPACE now acts just like double-clicking the left mouse button in the Icons/SysMenu Bitmaps dialog to assign icons to icon controls and sysmenu items.o New Check Box in "Arrange.Settings" Dialog Box
The "Arrange.Settings" dialog box has an additional check box:
Hide &UI-Editor while in test mode
The check box is selected by default. If it is selected, only the
Test Mode Dialog or Test Mode Menu window is visible while in test
mode. If not selected, UIEditor items are visible as usual.
This option prevents access to the properties bar 3D and Iconbar
check boxes while in test mode. Therefore, a method was added to
select these check boxes if the User Interface Editor is hidden in
test mode. When you test a dialog, the following menu item is
added to the Test Dialogs system menu:
&View 3D 'Toggles 3D mode
If the dialog being tested has no system menu, and the User Interface
Editor is hidden, then you cannot toggle between 3D and 2D.
For testing an MSTSysMenu, the following items have been added to the
Test Windows system menu:
S&ysMenu 'Toggles from iconbar to sysmenu if currently iconbar
&Iconbar 'Toggles from sysmenu to iconbar if currently sysmenu
&View 3D 'Toggles 3D mode if sysmenu. Grayed if iconbar.
For testing an Application menu, no items have been added to the
system menu. For testing any item, the "Close" system menu item for
the Test Dialog and Menu Test window has been changed to:
&Design Mode Alt+F4
o Dialog Coordinates and Control Units
The coordinates displayed in the upper left of the User Interface Editor's properties bar were formerly displayed in dialog units. Now dialogs and controls are displayed in either "dialog units" or "pixels." To change between the two, simply click with the right mouse button anywhere in the dialog you are editing. Detecting a Disk in Drive A: or B:The following example shows what happens for each statement, assuming that drives A: and B: exist, but there is no disk in either drive.
ON ERROR GOTO ErrorTrap
print exists("A:") 'This works, since the drive really is there
print exists("B:") 'This works, since the drive really is there
chdrive("A:") 'This works, since the drive really is there
print CURDIR$ 'This fails and can be trapped
OPEN "A:\temp.dat" for output as #1 'This fails and can be trapped
close
chdrive("B:") 'This works, since the drive really is there
print CURDIR$ 'This fails and can be trapped
OPEN "B:\temp.dat" for output as #1 'This fails and can be trapped
close
end
ErrorTrap:
PRINT
PRINT ERRORS
PRINT "The drive either does not have a disk"
PRINT "inserted or the drive door is open."
PRINT
RESUME NEXT
In summary:
RUN Statement/FunctionThe RUN function and statement have been modified to look in WIN.INI for file extensions. If you run an extension (for example, .TXT) that has an associated .EXE in WIN.INI, RUN will use the associated extension and pass the string argument to it as the command line.
NOT (!) OperatorUsing the NOT operator (!) with any of the W(type)SetClass procedures makes no sense and can actually cause problems. Therefore, this operator is no longer supported, and will cause the following error if it is used with any W(type)SetClass procedure.
ERR_NOT_OPERATOR_NOT_ALLOWED = 33The class name "NOT (!) operator" is supported only by WFndWndC() and WFndWndWaitC().
Test Trap Additions, Corrections, and ChangesFor information on Microsoft Test event traps, please see the file README.TXT in the V2SAMPLE\TRAPS subdirectory.
PART 4: Miscellaneous
Using MS-DOS Boxes on the Novell NetworkIf you are using the Novell network and experience intermittent problems using an MS-DOS box, please change or add the following line in your SYSTEM.INI 386enh section.
[386enh]
TimerCriticalSection = 5000
The SYSTEM.INI file is located in your Windows directory.
Test Talk Issueso Procedures Fail when NETBIOS is not Available
The Test Talk procedurss now fail when NETBIOS is not available. There is no error message; the routines simply do nothing or functions return FALSE. If Test Talk scripts don't appear to be working, you can call NetBIOSAvailable to see if this is the problem. See the description of NetBIOSAvailable in Part 2.o Declarations are Not Included in DECLARES.INC
Including the precompiled header DECLARES.INC (built as part of the setup process) in your script doesn't pull in the Test Talk declarations and constants. This is because several routines in TESTHOST.DLL and TESTSTAT.DLL have the same names. To use Test Talk, you must $DEFINE either TESTHOST or TESTSTAT and include MSTEST.INC, rather than using DECLARES.INC. You can also build your own precompiled headers for the host and station scripts (one header for host scripts and another for station scripts).o "Setup" Functions
Three functions in the Test Talk DLLs are considered "setup"
functions:
NetBiosAvailable(), SetLanaNum(), and SetMachineName()
You must call these at the beginning of your script, before you call
JoinGroup(). After you have joined a group, all three of these
functions will return FALSE. While you belong to a group, you can't
change the lananum or machine name.
Callbacks as ParametersIf a script gives the address of a routine (a callback) to a DLL procedure, and that procedure takes SINGLE or DOUBLE parameter types, it is the caller's responsibility to pass those values by reference. All TestBasic procedures expect their parameters by reference, which means a pointer to the data rather than the data itself. The only two exceptions are:
INTEGER and LONG, which are special cases to be passed by value
from callbacks
STRING, which is converted to a temporary variable-length
string and essentially passed by value
Incorrect use of parameters in callbacks will cause your script to crash.
|
|
Additional reference words: 2.00 readme
©1997 Microsoft Corporation. All rights reserved. Legal Notices. |