Annotation of mstools/mstest/include/mstest.inc, revision 1.1.1.1

1.1       root        1: '--------------------------------------------------------------------------
                      2: '
                      3: '  MSTEST.INC Version 2.00
                      4: '  API Declarations for TEST Tools
                      5: '
                      6: '  NOTE: All API are ALIAS'd to themselves to support NT
                      7: '        API Not yet supported under NT are IFDEF'd out using the
                      8: '        predefine symbol of NT.
                      9: '
                     10: '  To include the various portions of this file, any combination of the
                     11: '  following $DEFINE's must be used in your script prior to $INCLUDEing
                     12: '  MSTEST.INC:
                     13: '
                     14: '  i.e. IN YOUR SCRIPT add a line such as the following to DEFINE one of
                     15: '       the SYMBOLS below, so you only include what you need.
                     16: '
                     17: '  REM$ DEFINE MSTest         - to get everything in this include file
                     18: '  REM$ DEFINE TestCtrl       - to get ALL the TESTCTRL declarations etc.
                     19: '  REM$ DEFINE TestScrn       - to get ALL the TESTSCRN declarations etc.
                     20: '  REM$ DEFINE TestDlgs       - to get ALL the TESTDLGS declarations etc.
                     21: '  REM$ DEFINE TestEvnt       - to get ALL the TESTEVNT declarations etc.
                     22: '  REM$ DEFINE TestUI         - to get ALL the TESTUI   declarations etc.
                     23: '
                     24: ' OR USE ANY OF THE FOLLOWING SYMBOLS TO GET PARTIAL
                     25: '
                     26: '     MSTEST: includes all of MSTEST.INC
                     27: '
                     28: '         TESTCTRL: includes all of TESTCTRL
                     29: '             W_MISC    TESTCTRL Miscellaneous routines
                     30: '             W_WINDOW  TESTCTRL Window routines
                     31: '             W_MENU    TESTCTRL Menu routines
                     32: '             W_ERROR:  TESTCTRL error routines
                     33: '             W_CONTROL: includes all of the control declares & routines
                     34: '                 W_BUTTON:  includes all of the BUTTON declares etc.
                     35: '                 W_CHECK:             "         CHECKBOX
                     36: '                 W_OPTION             "         OPTION BUTTON
                     37: '                 W_EDIT               "         EDIT CONTROL
                     38: '                 W_LIST               "         LIST BOX
                     39: '                 W_COMBO              "         COMBO BOX
                     40: '
                     41: '         TESTSCRN:  includes all of TESTSCRN, Declares & Error codes
                     42: '             TESTSCRN_DECL: includes all SCR Declares
                     43: '             TESTSCRN_ERRS: includes all SCR Error codes
                     44: '
                     45: '         TESTDLGS: includes all of TESTDLGS, Declares & Error codes
                     46: '             TESTDLGS_DECL: includes all DLGS Declares
                     47: '             TESTDLGS_ERRS: includes all DLGS Error codes
                     48: '
                     49: '         TESTEVNT: includes all TESTEVNT Declares
                     50: '
                     51: '     W_ERROR_TRAP: Just like W_ERROR, but includes a generic
                     52: '                   WErrorTrap to display WError and ErrorText
                     53: '                   NOTE: This is not included from any other define.
                     54: '
                     55: '  NOTE: Including MSTEST.INC without out using any of the above $DEFINE's
                     56: '        will include only TESTDRVR.EXE trappable and untrappable error
                     57: '        codes, and declares for CRLF, TRUE (-1), FALSE(0), Key values for
                     58: '        DoKeys() from TESTEVNT and few routines from TESTCtrl.
                     59: '
                     60: '---------------------------------------------------------------------------
                     61: '
                     62: '              Copyright (C) 1991-1992 Microsoft Corporation
                     63: '
                     64: '  You have a royalty-free right to use, modify, reproduce and distribute
                     65: '  this file (and/or any modified version) in any way you find useful,
                     66: '  provided that you agree that Microsoft has no warranty, obligation or
                     67: '  liability for its contents.  Refer to the Microsoft Windows Programmer's
                     68: '  Reference for further information.
                     69: '
                     70: '  This file is not garanteed by Microsoft to be error free.  Every effort
                     71: '  has been made to ensure proper data-types and declarations etc., but no
                     72: '  testing has been performed using this include file.  Additionally, some
                     73: '  API's, though listed, may not be compatible with the TESTDrvr language.
                     74: '
                     75: '----------------------------------------------------------------------------
                     76: 
                     77: '                                                       *********************
                     78: '$IFNDEF MSTEST_INCLUDED
                     79: '$DEFINE MSTEST_INCLUDED
                     80: '                                                       *********************
                     81: 
                     82: '----------------------------------------------------------------------------
                     83: ' Generic Global Variables
                     84: '----------------------------------------------------------------------------
                     85: Global CRLF As String        ' UNDONE: Change to Const X = Chr$()
                     86: CRLF = Chr$(13) + Chr$(10)   '         once supported
                     87: 
                     88: Const TRUE  = -1
                     89: Const FALSE = 0
                     90: 
                     91: 
                     92: '----------------------------------------------------------------------------
                     93: ' Unrecoverable TESTDRVR error codes
                     94: '----------------------------------------------------------------------------
                     95: Const ERR_STACK_OVERFLOW         = 0
                     96: Const ERR_STACK_UNDERFLOW        = 1
                     97: Const ERR_OUT_OF_STRING_SPACE    = 2
                     98: Const ERR_CANT_LOAD_TESTVIEW_DLL = 3
                     99: Const ERR_OUT_OF_MEMORY          = 4
                    100: 
                    101: 
                    102: '----------------------------------------------------------------------------
                    103: ' Recoverable TESTDRVR error codes
                    104: '----------------------------------------------------------------------------
                    105: Const ERR_GOSUB_STACK_OVERFLOW   = 5
                    106: Const ERR_RETURN_WITHOUT_GOSUB   = 6
                    107: Const ERR_BAD_FILE_NUMBER        = 7
                    108: Const ERR_FILE_IO                = 8
                    109: Const ERR_RUN_CMD_TOO_LONG       = 9
                    110: Const ERR_SHELL_CMD_TOO_LONG     = 10
                    111: Const ERR_SETFILE                = 11
                    112: Const ERR_FILE_NUMBER_IN_USE     = 12
                    113: Const ERR_CANT_OPEN_FILE         = 13
                    114: Const ERR_ILLEGAL_FUNCTION_CALL  = 14
                    115: Const ERR_INVALID_PATH           = 15
                    116: Const ERR_INVALID_DRIVE          = 16
                    117: Const ERR_NO_CURRENT_WORKING_DIR = 17
                    118: Const ERR_BAD_RUN_CMD            = 18
                    119: Const ERR_DIVISION_BY_ZERO       = 19
                    120: Const ERR_CANT_LOAD_DLL          = 20
                    121: Const ERR_PROC_NOT_FOUND_IN_DLL  = 21
                    122: Const ERR_CANNOT_RESUME          = 22
                    123: Const ERR_MEM_ALLOC              = 23
                    124: Const ERR_INVALID_POINTER        = 24
                    125: Const ERR_INVALID_ALLOC_SIZE     = 25
                    126: Const ERR_NULL_PIONTER_REF       = 26
                    127: Const ERR_SUBSCRIPT_RANGE        = 27
                    128: Const ERR_INPUT_PAST_EOF         = 28
                    129: Const ERR_FILELIST_PROC          = 29
                    130: Const ERR_INVALID_ATTRIBUTE      = 30
                    131: 
                    132: '$ifdef WINUSER_SHOW_COMMANDS AND NOT NT
                    133: 
                    134: '----------------------------------------------------------------------------
                    135: ' RUN statement Show commands: RUN "command"[, [NOWAIT][, ShowCommand]]
                    136: ' NOTE:  These are the same as the SW_ constants in Windows.h
                    137: '----------------------------------------------------------------------------
                    138: Const SW_HIDE            = 0
                    139: Const SW_SHOWNORMAL      = 1
                    140: Const SW_NORMAL          = 1
                    141: Const SW_SHOWMINIMIZED   = 2
                    142: Const SW_SHOWMAXIMIZED   = 3
                    143: Const SW_MAXIMIZE        = 3
                    144: Const SW_SHOWNOACTIVATE  = 4
                    145: Const SW_SHOW            = 5
                    146: Const SW_MINIMIZE        = 6
                    147: Const SW_SHOWMINNOACTIVE = 7
                    148: Const SW_SHOWNA          = 8
                    149: Const SW_RESTORE         = 9
                    150: 
                    151: '$endif WINUSER_SHOW_COMMANDS AND NOT NT
                    152: 
                    153: '----------------------------------------------------------------------------
                    154: ' Key contants used with WKey, PlayKeys, & PlayKeyshWnd
                    155: '----------------------------------------------------------------------------
                    156: Const K_ENTER  = "{ENTER}"
                    157: Const K_ESC    = "{ESC}"
                    158: Const K_UP     = "{UP}"
                    159: Const K_DOWN   = "{DOWN}"
                    160: Const K_LEFT   = "{LEFT}"
                    161: Const K_RIGHT  = "{RIGHT}"
                    162: Const K_END    = "{END}"
                    163: Const K_PGUP   = "{PGUP}"
                    164: Const K_PGDN   = "{PGDN}"
                    165: Const K_INSERT = "{INSERT}"
                    166: Const K_INS    = "{INSERT}"
                    167: Const K_DELETE = "{DELETE}"
                    168: Const K_DEL    = "{DELETE}"
                    169: Const K_HOME   = "{HOME}"
                    170: Const K_TAB    = "{TAB}"
                    171: Const K_BS     = "{BS}"
                    172: Const K_F1     = "{F1}"
                    173: Const K_F2     = "{F2}"
                    174: Const K_F3     = "{F3}"
                    175: Const K_F4     = "{F4}"
                    176: Const K_F5     = "{F5}"
                    177: Const K_F6     = "{F6}"
                    178: Const K_F7     = "{F7}"
                    179: Const K_F8     = "{F8}"
                    180: Const K_F9     = "{F9}"
                    181: Const K_F10    = "{F10}"
                    182: Const K_F11    = "{F11}"
                    183: Const K_F12    = "{F12}"
                    184: Const K_F13    = "{F13}"
                    185: Const K_F14    = "{F14}"
                    186: Const K_F15    = "{F15}"
                    187: Const K_F16    = "{F16}"
                    188: Const K_SHIFT  = "+"
                    189: Const K_CTRL   = "^"
                    190: Const K_ALT    = "%"
                    191: 
                    192: ' TESTCtrl API & Constants that are always declared.
                    193: '
                    194: ' WGetFocus() simply preforms the exact function as the windows
                    195: ' GetFocus() API.  Is contained in TESTCtrl since it is such a
                    196: ' commonly used API in scripts, and it makes it much easier to
                    197: ' use since it is defined simply by including MSTEST.INC.  It is
                    198: ' renamed to prevent duplicate definitions due to scripts that
                    199: ' do define GetFocus() and include MSTEST.INC.
                    200: '---------------------------------------------------------------
                    201: Declare Function WGetFocus    Lib "TESTCtrl.dll" Alias "WGetFocus"    () As Integer
                    202: Declare Sub      WSetActWnd   Lib "TESTCtrl.dll" Alias "WSetActWnd"   (hWnd%)
                    203: Declare Function WGetActWnd   Lib "TESTCtrl.dll" Alias "WGetActWnd"   (hWnd%) As Integer
                    204: Declare Function WFndWnd      Lib "TESTCtrl.dll" Alias "WFndWnd"      (lpszCaption$, wFlags%) As Integer
                    205: Declare Function WFndWndC     Lib "TESTCtrl.dll" Alias "WFndWndC"     (lpszText$, lpszClass$, wFlags%) As Integer
                    206: Declare Function WFndWndWait  Lib "TESTCtrl.dll" Alias "WFndWndWait"  (lpszCaption$, wFlags%, wSeconds%) As Integer
                    207: Declare Function WFndWndWaitC Lib "TESTCtrl.dll" Alias "WFndWndWaitC" (lpszText$, lpszClass$, wFlags%, wSeconds%) As Integer
                    208: 
                    209: Const FW_DEFAULT     = &h0000  'Default
                    210: Const FW_RESTOREICON = &h0081  '&h0080 Or FW_FOCUS
                    211: Const FW_NOEXIST     = &h0040
                    212: Const FW_EXIST       = &h0000  'Default
                    213: Const FW_CHILDNOTOK  = &h0020
                    214: Const FW_CHILDOK     = &h0000  'Default
                    215: Const FW_HIDDENOK    = &h0010
                    216: Const FW_HIDDENNOTOK = &h0000  'Default
                    217: Const FW_ACTIVE      = &h0008
                    218: Const FW_ALL         = &h0000  'Default
                    219: Const FW_CASE        = &h0004
                    220: Const FW_NOCASE      = &h0000  'Default
                    221: Const FW_PART        = &h0002
                    222: Const FW_FULL        = &h0000  'Default
                    223: Const FW_FOCUS       = &h0001
                    224: Const FW_NOFOCUS     = &h0000  'Default
                    225: 
                    226: ' TESTEvnt API that are always defined.
                    227: '--------------------------------------
                    228: Declare Sub DoKeys     Lib "TESTEvnt.Dll" Alias "DoKeys" (lpStr$)
                    229: Declare Sub DoKeysHwnd Lib "TESTEvnt.Dll" Alias "DoKeyshWnd" (hWnd%, lpStr$)
                    230: 
                    231: ' Useful function when working with the Windows API,
                    232: ' to extract the HI/LO wordt from a Long Integer.
                    233: '---------------------------------------------------
                    234: Declare Function HIWORD(LongVar&) As Integer
                    235: Function HIWORD (LongVar&) Static As Integer
                    236:     HIWORD = LongVar& / 65536
                    237: End Function
                    238: 
                    239: Declare Function LOWORD(LongVar&) As Integer
                    240: Function LOWORD (LongVar&) Static As Integer
                    241:     LOWORD = LongVar& And &H0000FFFF
                    242: End Function
                    243: 
                    244: ' Useful function when working with the Windows API,
                    245: ' to extract the HI/LO byte from am Integer.
                    246: '---------------------------------------------------
                    247: Declare Function HIBYTE(IntVar%) As Integer
                    248: Function HIBYTE (IntVar%) Static As Integer
                    249:     HIBYTE = IntVar% / 256
                    250: End Function
                    251: 
                    252: Declare Function LOBYTE(IntVar%) As Integer
                    253: Function LOBYTE (IntVar%) Static As Integer
                    254:     LOBYTE = IntVar% And &H00FF
                    255: End Function
                    256: 
                    257: '                                                       *********************
                    258: '$ENDIF MSTEST_INCLUDED
                    259: '                                                       *********************
                    260: 
                    261: '----------------------------------------------------------------------------
                    262: '  DEFINE's that control the inclusion of the remainder of MSTEST.INC
                    263: '----------------------------------------------------------------------------
                    264: '$IFDEF MSTEST
                    265:     '$DEFINE TESTCTRL
                    266:     '$DEFINE TESTSCRN
                    267:     '$DEFINE TESTDLGS
                    268:     '$DEFINE TESTEVNT
                    269:     '$DEFINE TESTUI
                    270: '$ENDIF
                    271: 
                    272: '$IFDEF TESTCTRL
                    273:     '$DEFINE W_MISC
                    274:     '$DEFINE W_WINDOW
                    275:     '$DEFINE W_MENU
                    276:     '$DEFINE W_ERROR
                    277:     '$DEFINE W_CONTROL
                    278: '$ENDIF
                    279: 
                    280: '$IFDEF W_ERROR_TRAP
                    281:     '$DEFINE W_ERROR
                    282: '$ENDIF
                    283: 
                    284: '$IFDEF W_CONTROL
                    285:     '$DEFINE W_BUTTON
                    286:     '$DEFINE W_CHECK
                    287:     '$DEFINE W_OPTION
                    288:     '$DEFINE W_EDIT
                    289:     '$DEFINE W_LIST
                    290:     '$DEFINE W_COMBO
                    291: '$ENDIF
                    292: 
                    293: '$IFDEF TESTSCRN
                    294:     '$DEFINE TESTSCRN_DECL
                    295:     '$DEFINE TESTSCRN_ERRS
                    296: '$ENDIF
                    297: 
                    298: '$IFDEF TESTDLGS
                    299:     '$DEFINE TESTDLGS_DECL
                    300:     '$DEFINE TESTDLGS_ERRS
                    301: '$ENDIF
                    302: 
                    303: '$IFDEF  W_BUTTON OR W_CHECK OR W_OPTION OR W_EDIT OR W_LIST OR W_COMBO
                    304:     '$DEFINE W_A_CONTROL
                    305: '$ENDIF
                    306: 
                    307: '                                                       *********************
                    308: '$IFDEF TESTUI AND NOT TESTUI_INCLUDED AND NOT NT
                    309: '                                                       *********************
                    310: '----------------------------------------------------------------------------
                    311: ' TESTUI.dll:
                    312: '   Function declarations for use with TESTUI
                    313: '----------------------------------------------------------------------------
                    314: Declare Function DlgBox         Lib "TESTUI.dll" Alias "DlgBox"         (DlgId%,  hwndOwner%, proc As CallBack, ResFile$) As Integer
                    315: Declare Function DlgBox3D       Lib "TESTUI.dll" Alias "DlgBox3D"       (DlgId%,  hwndOwner%, proc As CallBack, ResFile$) As Integer
                    316: Declare Function SetScriptMenu  Lib "TESTUI.dll" Alias "SetScriptMenu"  (MenuId%, hwnd%, ResFile$) As Integer
                    317: Declare Function SetIconBar     Lib "TESTUI.dll" Alias "SetIconBar"     (IconBarId%, proc As Callback, AppName$, ResFile$, fAlwaysOnTop%) As Integer
                    318: Declare Function SetSysMenu     Lib "TESTUI.dll" Alias "SetSysMenu"     (MenuId%, proc As Callback, AppName$, ResFile$) As Integer
                    319: Declare Function SetSysMenu3D   Lib "TESTUI.dll" Alias "SetSysMenu3D"   (MenuId%, proc As Callback, AppName$, ResFile$) As Integer
                    320: Declare Function MSTLoadIcon    Lib "TESTUI.dll" Alias "MSTLoadIcon"    (IconId%, ResFile$) As Integer
                    321: Declare Sub      MSTDestroyIcon Lib "TESTUI.dll" Alias "MSTDestroyIcon" (hIcon%)
                    322: 
                    323: '                                                       *********************
                    324: '$DEFINE TESTUI_INCLUDED
                    325: '$ENDIF
                    326: '$IFDEF W_MISC AND NOT W_MISC_INCLUDED
                    327: '                                                       *********************
                    328: 
                    329: 
                    330: '----------------------------------------------------------------------------
                    331: ' W_MISC:  Miscellanious Routines, types and Constants.
                    332: '----------------------------------------------------------------------------
                    333: Const MAX_CAPTION = 128
                    334: 
                    335: Type INFO
                    336:     hWnd            As Integer
                    337:     hWndParent      As Integer
                    338:     szClass         As String * MAX_CAPTION
                    339:     szCaption       As String * MAX_CAPTION
                    340:     szParentClass   As String * MAX_CAPTION
                    341:     szParentCaption As String * MAX_CAPTION
                    342:     szModuleName    As String * MAX_CAPTION
                    343:     lStyle          As Long
                    344:     fChild          As Integer
                    345:     wID             As Integer
                    346:     wLeft           As Integer
                    347:     wTop            As Integer
                    348:     wRight          As Integer
                    349:     wBottom         As Integer
                    350:     wWidth          As Integer
                    351:     wHeight         As Integer
                    352: End Type
                    353: 
                    354: ' The 4 WMessage[W|L] API are slight variations on the windows
                    355: ' SendMessage() API.  Two things are provided:
                    356: '
                    357: '   Validation of hWnd%: - If invalid an error value that
                    358: '                          is trappable by WErrorTrap is
                    359: '                        - If hWnd is NULL, the message goes
                    360: '                          to the ActiveWindow.
                    361: '   Only need paramaters: Pass in only the paramaters that are needed:
                    362: '       WMessage:   Wp and Lp are set to zero
                    363: '       WMessageW:  Lp is set to zero
                    364: '       WMessageL:  Wp is set to zero
                    365: '       WMessageWL: just like SendMessage() but with hWnd validation
                    366: '---------------------------------------------------------------------
                    367: Declare Function WMessage       Lib "TESTCtrl.dll" Alias "WMessage"       (hWnd%, wMsg%)
                    368: Declare Function WMessageW      Lib "TESTCtrl.dll" Alias "WMessageW"      (hWnd%, wMsg%, wp%)
                    369: Declare Function WMessageL      Lib "TESTCtrl.dll" Alias "WMessageL"      (hWnd%, wMsg%, lp As Any)
                    370: Declare Function WMessageWL     Lib "TESTCtrl.dll" Alias "WMessageWL"     (hWnd%, wMsg%, wp%, lp As Any)
                    371: Declare Function WIsVisible     Lib "TESTCtrl.dll" Alias "WIsVisible"     (hWnd%) As Integer
                    372: Declare Function WTextLen       Lib "TESTCtrl.dll" Alias "WTextLen"       (hWnd%) As Long
                    373: Declare Sub      WGetText       Lib "TESTCtrl.dll" Alias "WGetText"       (hWnd%, lpszBuffer$)
                    374: Declare Sub      WSetText       Lib "TESTCtrl.dll" Alias "WSetText"       (hWnd%, lpszText$)
                    375: Declare Function WNumAltKeys    Lib "TESTCtrl.dll" Alias "WNumAltKeys"    () As Integer
                    376: Declare Sub      WGetAltKeys    Lib "TESTCtrl.dll" Alias "WGetAltKeys"    (lpszBuff$)
                    377: Declare Function WNumDupAltKeys Lib "TESTCtrl.dll" Alias "WNumDupAltKeys" () As Integer
                    378: Declare Sub      WGetDupAltKeys Lib "TESTCtrl.dll" Alias "WGetDupAltKeys" (lpszBuff$)
                    379: Declare Sub      WDisplayInfo   Lib "TESTCtrl.dll" Alias "WDisplayInfo"   (hWnd%, wDisplay%)
                    380: Declare Sub      WGetInfo       Lib "TESTCtrl.dll" Alias "WGetInfo"       (hWnd%, lpInfo As INFO)
                    381: 
                    382: ' Layered routines to simulate string functions for the coresponding
                    383: ' TESTCtrl API
                    384: '----------------------------------------------------------------------------
                    385: Declare Function GetText       (hWnd%) As String
                    386: Declare Function GetAltKeys    () As String
                    387: Declare Function GetDupAltKeys () As String
                    388: 
                    389: Const DI_DIALOG  = 1
                    390: Const DI_DEBUG   = 2
                    391: Const DI_BOTH    = 3
                    392: 
                    393: '----------------------------------------------------------------------------
                    394: ' GetText: Layered routine for WGetText()
                    395: '----------------------------------------------------------------------------
                    396: Function GetText(hWnd%) Static As String
                    397: Dim lpszBuffer As String
                    398: Dim textLength As Long
                    399:     GetText = ""
                    400:     textLength = WTextLen(hWnd%)
                    401:     If textLength > 0 Then
                    402:         lpszBuffer = String$(textLength+1, " ")
                    403:         WGetText hWnd%, lpszBuffer
                    404:         GetText = lpszBuffer
                    405:     End If
                    406:     lpszBuffer = ""
                    407: End Function
                    408: 
                    409: '----------------------------------------------------------------------------
                    410: ' GetAltKeys: Layered routine for WGetAltKeys()
                    411: '----------------------------------------------------------------------------
                    412: Function GetAltKeys() Static As String
                    413: Dim lpszBuffer As String
                    414:     lpszBuffer = String$(WNumAltKeys()+1, " ")
                    415:     WGetAltKeys lpszBuffer
                    416:     GetAltKeys = lpszBuffer
                    417:     lpszBuffer = ""
                    418: End Function
                    419: 
                    420: '----------------------------------------------------------------------------
                    421: ' GetDupAltKeys: Layered routine for WGetDupAltKeys()
                    422: '----------------------------------------------------------------------------
                    423: Function GetDupAltKeys() Static As String
                    424: Dim lpszBuffer As String
                    425:     lpszBuffer = String$(WNumDupAltKeys()+1, " ")
                    426:     WGetDupAltKeys lpszBuffer
                    427:     GetDupAltKeys = lpszBuffer
                    428:     lpszBuffer = ""
                    429: End Function
                    430: 
                    431: '                                                       *********************
                    432: '$DEFINE W_MISC_INCLUDED
                    433: '$ENDIF
                    434: '$IFDEF TESTEVNT AND NOT TESTEVNT_INCLUDED
                    435: '                                                       *********************
                    436: 
                    437: '----------------------------------------------------------------------------
                    438: ' TESTEvnt.Dll:
                    439: '   Function declarations for use with TESTEvnt
                    440: '----------------------------------------------------------------------------
                    441: '$IFNDEF NT
                    442: 
                    443: TYPE  MEMORYINFO
                    444:     LargestAvail        AS LONG     ' Largest available free block in bytes
                    445:     MaxPagesUnlock      AS LONG     ' Maximum unlocked page allocation in pages
                    446:     MaxPagesLocked      AS LONG     ' Maximum locked page allocation in pages
                    447:     TotalLinBytes       AS LONG     ' Linear address space size in bytes
                    448:     TotalUnlockBytes    AS LONG     ' Total number of unlocked bytes
                    449:     TotalFreePhysBytes  AS LONG     ' Total number of free physical bytes
                    450:     TotalPhysBytes      AS LONG     ' Total number of physical bytes
                    451:     FreeLinBytes        AS LONG     ' Free linear address space in bytes
                    452:     SwapFileSize        AS LONG     ' Size of paging file/partition in bytes
                    453:     Reserved1           AS LONG     ' reserved for future expansion, all bits set
                    454:     Reserved2           AS LONG     ' reserved for future expansion, all bits set
                    455:     Reserved3           AS LONG     ' reserved for future expansion, all bits set
                    456:     Reserved4           AS LONG     ' reserved for future expansion, all bits set
                    457:     NumSelectors        AS INTEGER  ' Total number of selectors on current LDT
                    458:     NumFreeSelectors    AS INTEGER  ' Number of free selectors on current LDT
                    459:     GlobalHeapFree      AS LONG     ' Number of free Global bytes
                    460:     USERHeapFree        AS LONG     ' Number of free bytes in USER.EXE's heap
                    461:     GDIHeapFree         AS LONG     ' Number of free bytes in GDI.EXE's heap
                    462:     SysResFree          AS INTEGER  ' *PERCENTAGE* of free system resources
                    463: END TYPE
                    464: 
                    465: Declare Sub      WaitUntilIdle        Lib "TESTEVNT.DLL" Alias "WaitUntilIdle"        ()
                    466: Declare Function GetMemoryInfo        Lib "TESTEvnt.Dll" Alias "GetMemoryInfo"        (lpMemInfo As MEMORYINFO) As Integer
                    467: Declare Function VMGetScreenCols      Lib "TESTEvnt.Dll" Alias "VMGetScreenCols"      (HWND%) As Integer
                    468: Declare Function VMGetCursPos         Lib "TESTEvnt.Dll" Alias "VMGetCursPos"         (HWND%) As Integer
                    469: Declare Function VMGetScreen          Lib "TESTEvnt.Dll" Alias "VMGetScreen"          (HWND%, UINT%, UINT%, UINT%, UINT%, LPSTR$) As Integer
                    470: Declare Function VMGetScreenClip      Lib "TESTEvnt.Dll" Alias "VMGetScreenClip"      (HWND%, UINT%, UINT%, UINT%, UINT%) As Integer
                    471: Declare Sub      VMSetBackground      Lib "TESTEvnt.Dll" Alias "VMSetBackground"      (HWND%, BOOL%)
                    472: Declare Function VMPipeOpen           Lib "TESTEvnt.Dll" Alias "VMPipeOpen"           (HWND%, SCRIPTSUB As Callback ) As Integer
                    473: Declare Function VMPipeClose          Lib "TESTEvnt.Dll" Alias "VMPipeClose"          (HWND%) As Integer
                    474: Declare Function VMPipeGetText        Lib "TESTEvnt.Dll" Alias "VMPipeGetText"        (HWND%, LPSTR$ ) As Integer
                    475: 
                    476: CONST PIPESTRINGSIZE        = 129           ' 128 chars + NULL
                    477: 
                    478: ' **  VMPipeGetText() Return values... **
                    479: '----------------------------------------
                    480: CONST PGT_FAILED            = &H0000
                    481: CONST PGT_COMPLETE          = &H0001
                    482: CONST PGT_MOREREADY         = &H0002
                    483: 
                    484: '$ENDIF NT 'for TESTEvnt VM Stuff
                    485: 
                    486: Declare Sub      QueKeys              Lib "TESTEvnt.Dll" Alias "QueKeys"              (lpStr$)
                    487: Declare Sub      QueKeyDn             Lib "TESTEvnt.Dll" Alias "QueKeyDn"             (lpStr$)
                    488: Declare Sub      QueKeyUp             Lib "TESTEvnt.Dll" Alias "QueKeyUp"             (lpStr$)
                    489: Declare Sub      QueSetSpeed          Lib "TESTEvnt.Dll" Alias "QueSetSpeed"          (ms%)
                    490: Declare Sub      QuePause             Lib "TESTEvnt.Dll" Alias "QuePause"             (ms&)
                    491: Declare Sub      QueFlush             Lib "TESTEvnt.Dll" Alias "QueFlush"             (fRestoreKeyState%)
                    492: Declare Sub      QueEmpty             Lib "TESTEvnt.Dll" Alias "QueEmpty"             ()
                    493: Declare Sub      QueMouseMove         Lib "TESTEvnt.Dll" Alias "QueMouseMove"         (x%, y%)
                    494: Declare Sub      QueMouseDn           Lib "TESTEvnt.Dll" Alias "QueMouseDn"           (iBtn%, x%, y%)
                    495: Declare Sub      QueMouseUp           Lib "TESTEvnt.Dll" Alias "QueMouseUp"           (iBtn%, x%, y%)
                    496: Declare Sub      QueMouseClick        Lib "TESTEvnt.Dll" Alias "QueMouseClick"        (iBtn%, x%, y%)
                    497: Declare Sub      QueMouseDblClk       Lib "TESTEvnt.Dll" Alias "QueMouseDblClk"       (iBtn%, x%, y%)
                    498: Declare Sub      QueMouseDblDn        Lib "TESTEvnt.Dll" Alias "QueMouseDblDn"        (iBtn%, x%, y%)
                    499: Declare Sub      QueSetFocus          Lib "TESTEvnt.Dll" Alias "QueSetFocus"          (hwnd%)
                    500: Declare Sub      QueSetRelativeWindow Lib "TESTEvnt.Dll" Alias "QueSetRelativeWindow" (hwnd%)
                    501: 
                    502: '$ifndef VK_WINAPI
                    503: Const VK_LBUTTON = 1
                    504: Const VK_RBUTTON = 2
                    505: Const VK_MBUTTON = 4
                    506: '$define VK_WINAPI
                    507: '$endif
                    508: 
                    509: '                                                       *********************
                    510: '$DEFINE TESTEVNT_INCLUDED
                    511: '$ENDIF
                    512: '$IFDEF TESTSCRN_DECL AND NOT TESTSCRN_DECL_INCLUDED
                    513: '                                                       *********************
                    514: 
                    515: 
                    516: '----------------------------------------------------------------------------
                    517: ' TESTScrn.DLL:
                    518: '       Type, Const, and Function declarations for use with TESTScrn
                    519: '----------------------------------------------------------------------------
                    520: Type wRect
                    521:     x1 As Integer
                    522:     y1 As Integer
                    523:     x2 As Integer
                    524:     y2 As Integer
                    525: End Type
                    526: 
                    527: Const SCRNAPPEND  = 0
                    528: Const SCRNREPLACE = 1
                    529: Const SCRNINSERT  = 2
                    530: 
                    531: '*** TESTSCRN.DLL Routines
                    532: '
                    533: Declare Function fCompFiles             Lib "TESTScrn.DLL" Alias "fCompFiles"             (lpszFileName1$, Scr1%, lpszFileName2$, Scr2%, CompareType%) As Integer
                    534: Declare Function fCompScreenActivate    Lib "TESTScrn.DLL" Alias "fCompScreenActivate"    (lpszFileName$, OpenKeys$, CloseKeys$, lpRect As wRect, Scr1%, Hide%, Flag%) As Integer
                    535: Declare Function fCompScreen            Lib "TESTScrn.DLL" Alias "fCompScreen"            (lpszFileName$, lpRect As wRect, Scr1%, Hide%, Flag%) As Integer
                    536: Declare Function fCompWindowActivate    Lib "TESTScrn.DLL" Alias "fCompWindowActivate"    (lpszFileName$, OpenKeys$, CloseKeys$, Scr1%, Hide%, Flag%) As Integer
                    537: Declare Function fCompWindow            Lib "TESTScrn.DLL" Alias "fCompWindow"            (lpszFileName$, hWnd%, Scr1%, Hide%, Flag%) As Integer
                    538: Declare Function fDelScreen             Lib "TESTScrn.DLL" Alias "fDelScreen"             (lpszFileName$, Scr%) As Integer
                    539: Declare Function fDumpFileToClip        Lib "TESTScrn.DLL" Alias "fDumpFileToClip"        (lpszFileName$, Scr%) As Integer
                    540: Declare Function fDumpScreenActivate    Lib "TESTScrn.DLL" Alias "fDumpScreenActivate"    (lpszFileName$, OpenKeys$, CloseKeys$, lpRect As wRect, Action%, Scr1%, Flag%) As Integer
                    541: Declare Function fDumpScreen            Lib "TESTScrn.DLL" Alias "fDumpScreen"            (lpszFileName$, lpRect As wRect, Action%, Scr1%, Flag%) As Integer
                    542: Declare Function fDumpSrnToClipActivate Lib "TESTScrn.DLL" Alias "fDumpSrnToClipActivate" (OpenKeys$, CloseKeys$, lpRect As wRect, Hide%) As Integer
                    543: Declare Function fDumpSrnToClip         Lib "TESTScrn.DLL" Alias "fDumpSrnToClip"         (lpRect As wRect, Hide%) As Integer
                    544: Declare Function fDumpWindowActivate    Lib "TESTScrn.DLL" Alias "fDumpWindowActivate"    (lpszFileName$, OpenKeys$, CloseKeys$, Action%, Scr1%, Flag%) As Integer
                    545: Declare Function fDumpWindow            Lib "TESTScrn.DLL" Alias "fDumpWindow"            (lpszFileName$, wHnd%, Action%, Scr1%, Flag%) As Integer
                    546: Declare Function fDumpWndToClipActivate Lib "TESTScrn.DLL" Alias "fDumpWndToClipActivate" (OpenKeys$, CloseKeys$, Hide%) As Integer
                    547: Declare Function fDumpWndToClip         Lib "TESTScrn.DLL" Alias "fDumpWndToClip"         (hWnd%, Hide%) As Integer
                    548: Declare Function fFileInfo              Lib "TESTScrn.DLL" Alias "fFileInfo"              (lpszName$, lpRect AS wRect, VideoMode AS POINTER TO INTEGER, Count AS POINTER TO INTEGER) As Integer
                    549: Declare Function fGetDLLVersion         Lib "TESTScrn.DLL" Alias "fGetDLLVersion"         (lpszFileName$) As Integer
                    550: Declare Function fGetMaxScreen          Lib "TESTScrn.DLL" Alias "fGetMaxScreen"          (lpszFileName$) As Integer
                    551: Declare Function fGetOS                 Lib "TESTScrn.DLL" Alias "fGetOS"                 (lpszFileName$) As Integer
                    552: Declare Function fSaveFileToDIB         Lib "TESTScrn.DLL" Alias "fSaveFileToDIB"         (lpszFileName1$, Scr%, lpszFileName2$) As Integer
                    553: Declare Function fSaveSrnToDIBActivate  Lib "TESTScrn.DLL" Alias "fSaveSrnToDIBActivate"  (lpszFileName$, OpenKeys$, CloseKeys$, lpRect As wRect, Hide%) As Integer
                    554: Declare Function fSaveSrnToDIB          Lib "TESTScrn.DLL" Alias "fSaveSrnToDIB"          (lpszFileName$, lpRect As wRect, Hide%) As Integer
                    555: Declare Function fSaveWndToDIBActivate  Lib "TESTScrn.DLL" Alias "fSaveWndToDIBActivate"  (lpszFileName$, OpenKeys$, CloseKeys$, Hide%) As Integer
                    556: Declare Function fSaveWndToDIB          Lib "TESTScrn.DLL" Alias "fSaveWndToDIB"          (lpszFileName$, hWnd%, Hide%) As Integer
                    557: Declare Function fViewScreen            Lib "TESTScrn.DLL" Alias "fViewScreen"            (lpszFileName$, hWnd%, Scr1%, Action%) As Integer
                    558: 
                    559: 
                    560: '                                                       *********************
                    561: '$DEFINE TESTSCRN_DECL_INCLUDED
                    562: '$ENDIF
                    563: '$IFDEF TESTSCRN_ERRS AND NOT TESTSCRN_ERRS_INCLUDED
                    564: '                                                       *********************
                    565: 
                    566: 
                    567: '*** TESTScrn.DLL Error Codes
                    568: '
                    569: Const ERR_SCR_NOERROR    = 0
                    570: Const ERR_SCR_FILEACCESS = 301
                    571: Const ERR_SCR_INVALIDFIL = 302
                    572: Const ERR_SCR_INVALSRNID = 303
                    573: Const ERR_SCR_INVALSRNMD = 304
                    574: Const ERR_SCR_OUTOMEMORY = 305
                    575: Const ERR_SCR_READSRNFIL = 306
                    576: Const ERR_SCR_RELMEMORY  = 307
                    577: Const ERR_SCR_CREATEDDB  = 308
                    578: Const ERR_SCR_RWSRNTABLE = 309
                    579: Const ERR_SCR_RWCOLTABLE = 310
                    580: Const ERR_SCR_WSRNIMAGE  = 311
                    581: Const ERR_SCR_WFILEHEAD  = 312
                    582: Const ERR_SCR_CREATEDIB  = 313
                    583: Const ERR_SCR_SCREENSIZE = 314
                    584: Const ERR_SCR_DISPSCREEN = 315
                    585: Const ERR_SCR_INVALIDACT = 316
                    586: Const ERR_SCR_IMAGEDIFF  = 317
                    587: Const ERR_SCR_SRNSIZEDIF = 318
                    588: Const ERR_SCR_FILEEXIST  = 319
                    589: Const ERR_SCR_CTEMPFILE  = 320
                    590: Const ERR_SCR_HIDEWIN    = 321
                    591: Const ERR_SCR_INVALWHAND = 322
                    592: Const ERR_SCR_OFILEFORM  = 323
                    593: Const ERR_SCR_SRNFILEFUL = 324
                    594: Const ERR_SCR_INVALSCALE = 325
                    595: Const ERR_SCR_OPENCB     = 326
                    596: Const ERR_SCR_EMPTYCB    = 327
                    597: Const ERR_SCR_COPYTOCB   = 328
                    598: Const ERR_SCR_CLOSECB    = 329
                    599: Const ERR_SCR_CREATEPAL  = 330
                    600: Const ERR_SCR_LIBLOADERR = 331
                    601: 
                    602: 
                    603: '                                                       *********************
                    604: '$DEFINE TESTSCRN_ERRS_INCLUDED
                    605: '$ENDIF
                    606: '$IFNDEF NT
                    607: '$IFDEF TESTDLGS_DECL AND NOT TESTDLGS_DECL_INCLUDED
                    608: '                                                       *********************
                    609: 
                    610: 
                    611: '----------------------------------------------------------------------------
                    612: ' TESTDlgs.DLL:
                    613: '       Type, Const, and Function declarations for use with TESTDlgs
                    614: '----------------------------------------------------------------------------
                    615: Const cchCLASSMAC = 32
                    616: Const cchTEXTMAC  = 256
                    617: Const wVEREB      = 1
                    618: 
                    619: Type DCR
                    620:     xLeft  As Integer
                    621:     yMin   As Integer
                    622:     xRight As Integer
                    623:     yLast  As Integer
                    624: End Type
                    625: 
                    626: Declare Function AwaitSaveCompletion Lib "TESTDlgs.DLL" Alias "AwaitSaveCompletion" () As Integer
                    627: Declare Function ComparisonResults   Lib "TESTDlgs.DLL" Alias "ComparisonResults"   () As Integer
                    628: Declare Function CmpWindow           Lib "TESTDlgs.DLL" Alias "CmpWindow"           (hWnd%, nDialog%, fIncludeParent%) As Integer
                    629: Declare Function CmpWindowActivate   Lib "TESTDlgs.DLL" Alias "CmpWindowActivate"   (lpszOpenKeys$, lpszCloseKey$, nDialog%, fIncludeParent%) As Integer
                    630: Declare Function CmpWindowCaption    Lib "TESTDlgs.DLL" Alias "CmpWindowCaption"    (lpszCap$, nDialog%, fIncludeParent%) As Integer
                    631: Declare Function CmpWindowDelayed    Lib "TESTDlgs.DLL" Alias "CmpWindowDelayed"    (nDelay%, nDialog%, fIncludeParent%, lpszCloseKeys$) As Integer
                    632: Declare Function FindWindowCaption   Lib "TESTDlgs.DLL" Alias "FindWindowCaption"   (lpszCap$, hWndStart%) As Integer
                    633: Declare Function SaveMenu            Lib "TESTDlgs.DLL" Alias "SaveMenu"            (hWnd%, nDialog%, lpszDesc$, fReplace%) As Integer
                    634: Declare Function SaveMenuActivate    Lib "TESTDlgs.DLL" Alias "SaveMenuActivate"    (lpszOpenKeys$, lpszCloseKeys$, nDialog%, lpszDesc$, fReplace%) As Integer
                    635: Declare Function SaveMenuCaption     Lib "TESTDlgs.DLL" Alias "SaveMenuCaption"     (lpszCap$, nDialog%, lpszDesc$, fReplace%) As Integer
                    636: Declare Function SaveMenuDelayed     Lib "TESTDlgs.DLL" Alias "SaveMenuDelayed"     (nDelay%, nDialog%, lpszDesc$, fReplace%, CloseKeys$) As Integer
                    637: Declare Function SaveWindow          Lib "TESTDlgs.DLL" Alias "SaveWindow"          (hWnd%, nDialog%, lpszDesc$, fReplace%, fIncludeParent%) As Integer
                    638: Declare Function SaveWindowActivate  Lib "TESTDlgs.DLL" Alias "SaveWindowActivate"  (lpszOpenKeys$, lpszCloseKeys$, nDialog%, lpszDesc$, fReplace%, fIncludeParent%) As Integer
                    639: Declare Function SaveWindowCaption   Lib "TESTDlgs.DLL" Alias "SaveWindowCaption"   (lpszCap$, nDialog%, lpszDesc$, fReplace%, fIncludeParent%) As Integer
                    640: Declare Function SaveWindowDelayed   Lib "TESTDlgs.DLL" Alias "SaveWindowDelayed"   (nDelay%, nDialog%, lpszDesc$, fReplace%, fIncludeParent%, lpszCloseKeys$) As Integer
                    641: Declare Function SetDialogFile       Lib "TESTDlgs.DLL" Alias "SetDialogFile"       (lpszDialogName$) As Integer
                    642: Declare Function SetLogFile          Lib "TESTDlgs.DLL" Alias "SetLogFile"          (lpszLogName$) As Integer
                    643: 
                    644: 
                    645: '                                                       *********************
                    646: '$DEFINE TESTDLGS_DECL_INCLUDED
                    647: '$ENDIF
                    648: '$IFDEF TESTDLGS_ERRS AND NOT TESTDLGS_ERRS_INCLUDED
                    649: '                                                       *********************
                    650: 
                    651: 
                    652: '*** Function return codes
                    653: '
                    654: Const ERR_DLGS_NOERR          =   0
                    655: Const ERR_DLGS_FUZZY          =  -1
                    656: Const ERR_DLGS_EXCESS         =  -2
                    657: Const ERR_DLGS_CTLNOTFOUND    =  -3
                    658: Const ERR_DLGS_NODLGFILE      = -10
                    659: Const ERR_DLGS_FILENOTFOUND   = -11
                    660: Const ERR_DLGS_BADWDLFILE     = -12
                    661: Const ERR_DLGS_LIBLOADERR     = -13
                    662: Const ERR_DLGS_SAVEERR        = -14
                    663: Const ERR_DLGS_DLGFILEERR     = -15
                    664: Const ERR_DLGS_TMPFILEERR     = -16
                    665: Const ERR_DLGS_VERSIONERR     = -17
                    666: Const ERR_DLGS_DLGFILEFULL    = -18
                    667: Const ERR_DLGS_OUTOFMEMORY    = -20
                    668: Const ERR_DLGS_BUFFERERR      = -21
                    669: Const ERR_DLGS_NOTIMER        = -22
                    670: Const ERR_DLGS_NODYNDIALOG    = -30
                    671: Const ERR_DLGS_INVALIDHWND    = -31
                    672: Const ERR_DLGS_BADCAPTION     = -32
                    673: Const ERR_DLGS_BADDLGNUM      = -33
                    674: Const ERR_DLGS_BADCTLINDEX    = -34
                    675: Const ERR_DLGS_BADCTLTYPE     = -35
                    676: Const ERR_DLGS_BADSAVEACTION  = -36
                    677: Const ERR_DLGS_APPSPECIFIC    = -37
                    678: 
                    679: 
                    680: '                                                       *********************
                    681: '$DEFINE TESTDLGS_ERRS_INCLUDED
                    682: '$ENDIF
                    683: '$ENDIF NT for TESTDLGS
                    684: '$IFDEF W_WINDOW AND NOT W_WINDOW_INCLUDED
                    685: '                                                       *********************
                    686: 
                    687: 
                    688: '----------------------------------------------------------------------------
                    689: ' TESTCtrl.dll routines, types, & constants
                    690: '----------------------------------------------------------------------------
                    691: 
                    692: '*** Window size and position types
                    693: '
                    694: Type WNDPOS
                    695:     wLeft   As Integer
                    696:     wTop    As Integer
                    697: End Type
                    698: 
                    699: Type WNDSIZ
                    700:     wWidth  As Integer
                    701:     wHeight As Integer
                    702: End Type
                    703: 
                    704: Type WNDPOSSIZ
                    705:     wLeft   As Integer
                    706:     wTop    As Integer
                    707:     wWidth  As Integer
                    708:     wHeight As Integer
                    709: End Type
                    710: 
                    711: '*** Window Positioning and Sizing routines & contants
                    712: '
                    713: Declare Sub      WMinWnd       Lib "TESTCtrl.dll" Alias "WMinWnd"       (hWnd%)
                    714: Declare Sub      WMaxWnd       Lib "TESTCtrl.dll" Alias "WMaxWnd"       (hWnd%)
                    715: Declare Sub      WResWnd       Lib "TESTCtrl.dll" Alias "WResWnd"       (hWnd%)
                    716: Declare Sub      WSetWndPos    Lib "TESTCtrl.dll" Alias "WSetWndPos"    (hWnd%, wLeft%, wTop%)
                    717: Declare Sub      WSetWndSiz    Lib "TESTCtrl.dll" Alias "WSetWndSiz"    (hWnd%, wWidth%, wHeight%)
                    718: Declare Sub      WSetWndPosSiz Lib "TESTCtrl.dll" Alias "WSetWndPosSiz" (hWnd%, wLeft%, wTop%, wWidth%, wHeight%)
                    719: Declare Sub      WAdjWndPos    Lib "TESTCtrl.dll" Alias "WAdjWndPos"    (hWnd%, deltaLeft%,  deltaTop%)
                    720: Declare Sub      WAdjWndSiz    Lib "TESTCtrl.dll" Alias "WAdjWndSiz"    (hWnd%, deltaWidth%, deltaHeight%)
                    721: Declare Sub      WAdjWndPosSiz Lib "TESTCtrl.dll" Alias "WAdjWndPosSiz" (hWnd%, deltaLeft%,  deltaTop%, deltaWidth%, deltaHeight%)
                    722: Declare Sub      WGetWndPos    Lib "TESTCtrl.dll" Alias "WGetWndPos"    (hWnd%, lpWndPos    As WNDPOS,    fRelative%)
                    723: Declare Sub      WGetWndSiz    Lib "TESTCtrl.dll" Alias "WGetWndSiz"    (hWnd%, lpWndSiz    As WNDSIZ)
                    724: Declare Sub      WGetWndPosSiz Lib "TESTCtrl.dll" Alias "WGetWndPosSiz" (hWnd%, lpWndPosSiz As WNDPOSSIZ, fRelative%)
                    725: Declare Function WIsMaximized  Lib "TESTCtrl.dll" Alias "WIsMaximized"  (hWnd%) As Integer
                    726: Declare Function WIsMinimized  Lib "TESTCtrl.dll" Alias "WIsMinimized"  (hWnd%) As Integer
                    727: 
                    728: 
                    729: Const W_RELATIVE = TRUE
                    730: Const W_ABSOLUTE = FALSE
                    731: 
                    732: 
                    733: '                                                       *********************
                    734: '$DEFINE W_WINDOW_INCLUDED
                    735: '$ENDIF
                    736: '$IFDEF W_MENU AND NOT W_MENU_INCLUDED
                    737: '                                                       *********************
                    738: 
                    739: 
                    740: '*** Menu routines & constants
                    741: '
                    742: Declare Sub      WSysMenu           Lib "TESTCtrl.dll" Alias "WSysMenu"           (hWnd%)
                    743: Declare Function WSysMenuExists     Lib "TESTCtrl.dll" Alias "WSysMenuExists"     (hWnd%) As Integer
                    744: Declare Sub      WMenu              Lib "TESTCtrl.dll" Alias "WMenu"              (lpszName$)
                    745: Declare Sub      WMenuEx      CDECL Lib "TESTCtrl.dll" Alias "WMenuEx"            (lpszName$, ...)
                    746: Declare Function WMenuExists        Lib "TESTCtrl.dll" Alias "WMenuExists"        (lpszName$) As Integer
                    747: Declare Function WMenuGrayed        Lib "TESTCtrl.dll" Alias "WMenuGrayed"        (lpszName$) As Integer
                    748: Declare Function WMenuChecked       Lib "TESTCtrl.dll" Alias "WMenuChecked"       (lpszName$) As Integer
                    749: Declare Function WMenuEnabled       Lib "TESTCtrl.dll" Alias "WMenuEnabled"       (lpszName$) As Integer
                    750: Declare Function WMenuCount         Lib "TESTCtrl.dll" Alias "WMenuCount"         () As Integer
                    751: Declare Sub      WMenuText          Lib "TESTCtrl.dll" Alias "WMenuText"          (lpszName$, lpszBuffer$)
                    752: Declare Function WMenuLen           Lib "TESTCtrl.dll" Alias "WMenuLen"           (lpszName$) As Integer
                    753: Declare Sub      WMenuFullText      Lib "TESTCtrl.dll" Alias "WMenuFullText"      (lpszName$, lpszBuffer$)
                    754: Declare Function WMenuFullLen       Lib "TESTCtrl.dll" Alias "WMenuFullLen"       (lpszName$) As Integer
                    755: Declare Sub      WMenuEnd           Lib "TESTCtrl.dll" Alias "WMenuEnd"           ()
                    756: Declare Function WMenuNumAltKeys    Lib "TESTCtrl.dll" Alias "WMenuNumAltKeys"    () As Integer
                    757: Declare Sub      WMenuGetAltKeys    Lib "TESTCtrl.dll" Alias "WMenuGetAltKeys"    (lpszBuff$)
                    758: Declare Function WMenuNumDupAltKeys Lib "TESTCtrl.dll" Alias "WMenuNumDupAltKeys" () As Integer
                    759: Declare Sub      WMenuGetDupAltKeys Lib "TESTCtrl.dll" Alias "WMenuGetDupAltKeys" (lpszBuff$)
                    760: 
                    761: ' Layered routines to simulate string functions for the coresponding
                    762: ' TESTCtrl API
                    763: '----------------------------------------------------------------------------
                    764: Declare Function MenuText          (lpszName$) As String
                    765: Declare Function MenuFullText      (lpszName$) As String
                    766: Declare Function MenuGetAltKeys    () As String
                    767: Declare Function MenuGetDupAltKeys () As String
                    768: 
                    769: ' Unlike the rest of the menu routines, WMenuSeparator() does not ignore
                    770: ' menu separators when specifing indexes.  The first menu item is item #1
                    771: ' the second #2, and so on including all separators.
                    772: '------------------------------------------------------------------------
                    773: Declare Function WMenuSeparator Lib "TESTCtrl.dll" Alias "WMenuSeparator" (sIndex%) As Integer
                    774: 
                    775: ' Obsolete Menu API
                    776: '------------------
                    777: Declare Sub      WMenuX         Lib "TESTCtrl.dll" Alias "WMenuX"        (iIndex%)
                    778: Declare Function WMenuGrayedX   Lib "TESTCtrl.dll" Alias "WMenuGrayedX"  (iIndex%) As Integer
                    779: Declare Function WMenuCheckedX  Lib "TESTCtrl.dll" Alias "WMenuCheckedX" (iIndex%) As Integer
                    780: Declare Function WMenuEnabledX  Lib "TESTCtrl.dll" Alias "WMenuEnabledX" (iIndex%) As Integer
                    781: 
                    782: 
                    783: '----------------------------------------------------------------------------
                    784: ' MenuText: Layered routine for WMenuText()
                    785: '----------------------------------------------------------------------------
                    786: Function MenuText(lpszName$) Static As String
                    787: Dim lpszBuffer As String
                    788: Dim menuLength As Integer
                    789:     MenuText = ""
                    790:     menuLength = WMenuLen(lpszName$)
                    791:     If menuLength >= 0 Then
                    792:         lpszBuffer = String$(menuLength+1, " ")
                    793:         WMenuText lpszName$, lpszBuffer
                    794:         MenuText = lpszBuffer
                    795:     End if
                    796:     lpszBuffer = ""
                    797: End Function
                    798: 
                    799: '----------------------------------------------------------------------------
                    800: ' MenuFullText: Layered routine for WMenuFullText()
                    801: '----------------------------------------------------------------------------
                    802: Function MenuFullText(lpszName$) Static As String
                    803: Dim lpszBuffer As String
                    804: Dim menuLength As Integer
                    805:     MenuFullText = ""
                    806:     menuLength = WMenuFullLen(lpszName$)
                    807:     If menuLength >= 0 Then
                    808:         lpszBuffer = String$(menuLength+1, " ")
                    809:         WMenuFullText lpszName$, lpszBuffer
                    810:         MenuFullText = lpszBuffer
                    811:     End If
                    812:     lpszBuffer = ""
                    813: End Function
                    814: 
                    815: '----------------------------------------------------------------------------
                    816: ' MenuGetAltKeys: Layered routine for WMenuGetAltKeys()
                    817: '----------------------------------------------------------------------------
                    818: Function MenuGetAltKeys() Static As String
                    819: Dim lpszBuffer As String
                    820:     lpszBuffer = String$(WMenuNumAltKeys()+1, " ")
                    821:     WMenuGetAltKeys lpszBuffer
                    822:     MenuGetAltKeys = lpszBuffer
                    823:     lpszBuffer = ""
                    824: End Function
                    825: 
                    826: '----------------------------------------------------------------------------
                    827: ' MenuGetDupAltKeys: Layered routine for WMenuGetDupAltKeys()
                    828: '----------------------------------------------------------------------------
                    829: Function MenuGetDupAltKeys() Static As String
                    830: Dim lpszBuffer As String
                    831:     lpszBuffer = String$(WMenuNumDupAltKeys()+1, " ")
                    832:     WMenuGetDupAltKeys lpszBuffer
                    833:     MenuGetDupAltKeys = lpszBuffer
                    834:     lpszBuffer = ""
                    835: End Function
                    836: 
                    837: '                                                       *********************
                    838: '$DEFINE W_MENU_INCLUDED
                    839: '$ENDIF
                    840: '$IFDEF W_A_CONTROL AND NOT W_A_CONTROL_INCLUDED
                    841: '                                                       *********************
                    842: 
                    843: 
                    844: '*** Global routine & constants used by all controls
                    845: '
                    846: Declare Sub WStaticSetClass Lib "TESTCtrl.dll" Alias "WStaticSetClass" (lpszClassName$)
                    847: Declare Sub WResetClasses   Lib "TESTCtrl.dll" Alias "WResetClasses"   ()
                    848: 
                    849: 
                    850: '                                                       *********************
                    851: '$DEFINE W_A_CONTROL_INCLUDED
                    852: '$ENDIF
                    853: '$IFDEF W_BUTTON AND NOT W_BUTTON_INCLUDED
                    854: '                                                       *********************
                    855: 
                    856: 
                    857: '*** Button routines
                    858: '
                    859: Declare Sub      WButtonSetClass Lib "TESTCtrl.dll" Alias "WButtonSetClass" (lpszClassName$)
                    860: Declare Function WButtonExists   Lib "TESTCtrl.dll" Alias "WButtonExists"   (lpszName$) As Integer
                    861: Declare Function WButtonEnabled  Lib "TESTCtrl.dll" Alias "WButtonEnabled"  (lpszName$) As Integer
                    862: Declare Function WButtonFocus    Lib "TESTCtrl.dll" Alias "WButtonFocus"    (lpszName$) As Integer
                    863: Declare Sub      WButtonClick    Lib "TESTCtrl.dll" Alias "WButtonClick"    (lpszName$)
                    864: Declare Sub      WButtonHide     Lib "TESTCtrl.dll" Alias "WButtonHide"     (lpszName$)
                    865: Declare Sub      WButtonShow     Lib "TESTCtrl.dll" Alias "WButtonShow"     (lpszName$)
                    866: Declare Sub      WButtonEnable   Lib "TESTCtrl.dll" Alias "WButtonEnable"   (lpszName$)
                    867: Declare Sub      WButtonDisable  Lib "TESTCtrl.dll" Alias "WButtonDisable"  (lpszName$)
                    868: Declare Function WButtonDefault  Lib "TESTCtrl.dll" Alias "WButtonDefault"  (lpszName$) As Integer
                    869: Declare Function WButtonDefaults Lib "TESTCtrl.dll" Alias "WButtonDefaults" () As Integer
                    870: Declare Sub      WButtonSetFocus Lib "TESTCtrl.dll" Alias "WButtonSetFocus" (lpszName$)
                    871: 
                    872: '                                                       *********************
                    873: '$DEFINE W_BUTTON_INCLUDED
                    874: '$ENDIF
                    875: '$IFDEF W_CHECK AND NOT W_CHECK_INCLUDED
                    876: '                                                       *********************
                    877: 
                    878: 
                    879: ' CheckBox routines
                    880: '
                    881: Declare Sub      WCheckSetClass Lib "TESTCtrl.dll" Alias "WCheckSetClass" (lpszClassName$)
                    882: Declare Function WCheckExists   Lib "TESTCtrl.dll" Alias "WCheckExists"   (lpszName$) As Integer
                    883: Declare Function WCheckEnabled  Lib "TESTCtrl.dll" Alias "WCheckEnabled"  (lpszName$) As Integer
                    884: Declare Function WCheckFocus    Lib "TESTCtrl.dll" Alias "WCheckFocus"    (lpszName$) As Integer
                    885: Declare Function WCheckState    Lib "TESTCtrl.dll" Alias "WCheckState"    (lpszName$) As Integer
                    886: Declare Sub      WCheckClick    Lib "TESTCtrl.dll" Alias "WCheckClick"    (lpszName$)
                    887: Declare Sub      WCheckHide     Lib "TESTCtrl.dll" Alias "WCheckHide"     (lpszName$)
                    888: Declare Sub      WCheckShow     Lib "TESTCtrl.dll" Alias "WCheckShow"     (lpszName$)
                    889: Declare Sub      WCheckEnable   Lib "TESTCtrl.dll" Alias "WCheckEnable"   (lpszName$)
                    890: Declare Sub      WCheckDisable  Lib "TESTCtrl.dll" Alias "WCheckDisable"  (lpszName$)
                    891: Declare Sub      WCheckCheck    Lib "TESTCtrl.dll" Alias "WCheckCheck"    (lpszName$)
                    892: Declare Sub      WCheckUnCheck  Lib "TESTCtrl.dll" Alias "WCheckUnCheck"  (lpszName$)
                    893: Declare Sub      WCheckSetFocus Lib "TESTCtrl.dll" Alias "WCheckSetFocus" (lpszName$)
                    894: 
                    895: Const UNCHECKED = 0
                    896: Const CHECKED   = 1
                    897: Const GRAYED    = 2
                    898: 
                    899: 
                    900: '                                                       *********************
                    901: '$DEFINE W_CHECK_INCLUDED
                    902: '$ENDIF
                    903: '$IFDEF W_OPTION AND NOT W_OPTION_INCLUDED
                    904: '                                                       *********************
                    905: 
                    906: 
                    907: '*** Option Button routines
                    908: '
                    909: Declare Sub      WOptionSetClass Lib "TESTCtrl.dll" Alias "WOptionSetClass" (lpszClassName$)
                    910: Declare Function WOptionExists   Lib "TESTCtrl.dll" Alias "WOptionExists"   (lpszName$) As Integer
                    911: Declare Function WOptionEnabled  Lib "TESTCtrl.dll" Alias "WOptionEnabled"  (lpszName$) As Integer
                    912: Declare Function WOptionFocus    Lib "TESTCtrl.dll" Alias "WOptionFocus"    (lpszName$) As Integer
                    913: Declare Function WOptionState    Lib "TESTCtrl.dll" Alias "WOptionState"    (lpszName$) As Integer
                    914: Declare Sub      WOptionClick    Lib "TESTCtrl.dll" Alias "WOptionClick"    (lpszName$)
                    915: Declare Sub      WOptionHide     Lib "TESTCtrl.dll" Alias "WOptionHide"     (lpszName$)
                    916: Declare Sub      WOptionShow     Lib "TESTCtrl.dll" Alias "WOptionShow"     (lpszName$)
                    917: Declare Sub      WOptionEnable   Lib "TESTCtrl.dll" Alias "WOptionEnable"   (lpszName$)
                    918: Declare Sub      WOptionDisable  Lib "TESTCtrl.dll" Alias "WOptionDisable"  (lpszName$)
                    919: Declare Sub      WOptionSelect   Lib "TESTCtrl.dll" Alias "WOptionSelect"   (lpszName$)
                    920: Declare Sub      WOptionSetFocus Lib "TESTCtrl.dll" Alias "WOptionSetFocus" (lpszName$)
                    921: 
                    922: '                                                       *********************
                    923: '$DEFINE W_OPTION_INCLUDED
                    924: '$ENDIF
                    925: '$IFDEF W_LIST AND NOT W_LIST_INCLUDED
                    926: '                                                       *********************
                    927: 
                    928: 
                    929: '*** Listbox routines
                    930: '
                    931: Declare Sub      WListSetClass     Lib "TESTCtrl.dll" Alias "WListSetClass"     (lpszClass$)
                    932: Declare Function WListExists       Lib "TESTCtrl.dll" Alias "WListExists"       (lpszName$) As Integer
                    933: Declare Function WListCount        Lib "TESTCtrl.dll" Alias "WListCount"        (lpszName$) As Integer
                    934: Declare Sub      WListText         Lib "TESTCtrl.dll" Alias "WListText"         (lpszName$, lpszBuffer$)
                    935: Declare Function WListLen          Lib "TESTCtrl.dll" Alias "WListLen"          (lpszName$) As Integer
                    936: Declare Function WListIndex        Lib "TESTCtrl.dll" Alias "WListIndex"        (lpszName$) As Integer
                    937: Declare Function WListTopIndex     Lib "TESTCtrl.dll" Alias "WListTopIndex"     (lpszName$) As Integer
                    938: Declare Sub      WListItemText     Lib "TESTCtrl.dll" Alias "WListItemText"     (lpszName$, iItem%, lpszBuffer$)
                    939: Declare Function WListItemLen      Lib "TESTCtrl.dll" Alias "WListItemLen"      (lpszName$, iItem%) As Integer
                    940: Declare Function WListItemExists   Lib "TESTCtrl.dll" Alias "WListItemExists"   (lpszName$, lpszItem$) As Integer
                    941: Declare Sub      WListItemClk      Lib "TESTCtrl.dll" Alias "WListItemClk"      (lpszName$, iItem%)
                    942: Declare Sub      WListItemCtrlClk  Lib "TESTCtrl.dll" Alias "WListItemCtrlClk"  (lpszName$, iItem%)
                    943: Declare Sub      WListItemShftClk  Lib "TESTCtrl.dll" Alias "WListItemShftClk"  (lpszName$, iItem%)
                    944: Declare Sub      WListItemDblClk   Lib "TESTCtrl.dll" Alias "WListItemDblClk"   (lpszName$, iItem%)
                    945: Declare Sub      WListItemClkT     Lib "TESTCtrl.dll" Alias "WListItemClkT"     (lpszName$, lpszItem$)
                    946: Declare Sub      WListItemCtrlClkT Lib "TESTCtrl.dll" Alias "WListItemCtrlClkT" (lpszName$, lpszItem$)
                    947: Declare Sub      WListItemShftClkT Lib "TESTCtrl.dll" Alias "WListItemShftClkT" (lpszName$, lpszItem$)
                    948: Declare Sub      WListItemDblClkT  Lib "TESTCtrl.dll" Alias "WListItemDblClkT"  (lpszName$, lpszItem$)
                    949: Declare Function WListSelCount     Lib "TESTCtrl.dll" Alias "WListSelCount"     (lpszName$) As Integer
                    950: Declare Sub      WListSelItems     Lib "TESTCtrl.dll" Alias "WListSelItems"     (lpszName$, lpIntArray As Pointer To Integer)
                    951: Declare Sub      WListClear        Lib "TESTCtrl.dll" Alias "WListClear"        (lpszName$)
                    952: Declare Sub      WListAddItem      Lib "TESTCtrl.dll" Alias "WListAddItem"      (lpszName$, lpszItem$)
                    953: Declare Sub      WListDelItem      Lib "TESTCtrl.dll" Alias "WListDelItem"      (lpszName$, iItem%)
                    954: Declare Sub      WListDelItemT     Lib "TESTCtrl.dll" Alias "WListDelItemT"     (lpszName$, lpszItem$)
                    955: Declare Function WListEnabled      Lib "TESTCtrl.dll" Alias "WListEnabled"      (lpszName$) As Integer
                    956: Declare Sub      WListSetFocus     Lib "TESTCtrl.dll" Alias "WListSetFocus"     (lpszName$)
                    957: 
                    958: ' Layered routines to simulate string functions for the coresponding
                    959: ' TESTCtrl API
                    960: '----------------------------------------------------------------------------
                    961: Declare Function ListText     (lpszName$) As String
                    962: Declare Function ListItemText (lpszName$, iItem%) As String
                    963: 
                    964: '----------------------------------------------------------------------------
                    965: ' ListText: Layered routine for WListText()
                    966: '----------------------------------------------------------------------------
                    967: Function ListText(lpszName$) Static As String
                    968: Dim lpszBuffer As String
                    969: Dim itemLength As Integer
                    970:     ListText = ""
                    971:     itemLength = WListLen(lpszName)
                    972:     If itemLength >= 0 Then
                    973:         lpszBuffer = String$(itemLength+1, " ")
                    974:         WListText lpszName, lpszBuffer
                    975:         ListText = lpszBuffer
                    976:     End If
                    977:     lpszBuffer = ""
                    978: End Function
                    979: 
                    980: '----------------------------------------------------------------------------
                    981: ' ListItemText: Layered routine for WListItemText()
                    982: '----------------------------------------------------------------------------
                    983: Function ListItemText(lpszName$, sItem%) Static As String
                    984: Dim lpszBuffer As String
                    985: Dim itemLength As Integer
                    986:     ListItemText = ""
                    987:     itemLength = WListItemLen(lpszName, sItem)
                    988:     If itemLength >= 0 Then
                    989:         lpszBuffer = String$(itemLength+1, " ")
                    990:         WListItemText lpszName, sItem, lpszBuffer
                    991:         ListItemText = lpszBuffer
                    992:     End If
                    993:     lpszBuffer = ""
                    994: End Function
                    995: 
                    996: 
                    997: '                                                       *********************
                    998: '$DEFINE W_LIST_INCLUDED
                    999: '$ENDIF
                   1000: '$IFDEF W_COMBO AND NOT W_COMBO_INCLUDED
                   1001: '                                                       *********************
                   1002: 
                   1003: 
                   1004: '*** Combobox routines
                   1005: '
                   1006: Declare Sub      WComboSetClass    Lib "TESTCtrl.dll" Alias "WComboSetClass"    (lpszClass$)
                   1007: Declare Sub      WComboSetLBClass  Lib "TESTCtrl.dll" Alias "WComboSetLBClass"  (lpszClass$)
                   1008: Declare Function WComboExists      Lib "TESTCtrl.dll" Alias "WComboExists"      (lpszName$) As Integer
                   1009: Declare Function WComboCount       Lib "TESTCtrl.dll" Alias "WComboCount"       (lpszName$) As Integer
                   1010: Declare Sub      WComboSetText     Lib "TESTCtrl.dll" Alias "WComboSetText"     (lpszName$, lpszText$)
                   1011: Declare Sub      WComboText        Lib "TESTCtrl.dll" Alias "WComboText"        (lpszName$, lpszBuffer$)
                   1012: Declare Function WComboLen         Lib "TESTCtrl.dll" Alias "WComboLen"         (lpszName$) As Integer
                   1013: Declare Sub      WComboSelText     Lib "TESTCtrl.dll" Alias "WComboSelText"     (lpszName$, lpszBuffer$)
                   1014: Declare Function WComboSelLen      Lib "TESTCtrl.dll" Alias "WComboSelLen"      (lpszName$) As Integer
                   1015: Declare Function WComboIndex       Lib "TESTCtrl.dll" Alias "WComboIndex"       (lpszName$) As Integer
                   1016: Declare Sub      WComboItemText    Lib "TESTCtrl.dll" Alias "WComboItemText"    (lpszName$, iItem%, lpszBuffer$)
                   1017: Declare Function WComboItemLen     Lib "TESTCtrl.dll" Alias "WComboItemLen"     (lpszName$, iItem%) As Integer
                   1018: Declare Function WComboItemExists  Lib "TESTCtrl.dll" Alias "WComboItemExists"  (lpszName$, lpszItem$) As Integer
                   1019: Declare Sub      WComboItemClk     Lib "TESTCtrl.dll" Alias "WComboItemClk"     (lpszName$, iItem%)
                   1020: Declare Sub      WComboItemDblClk  Lib "TESTCtrl.dll" Alias "WComboItemDblClk"  (lpszName$, iItem%)
                   1021: Declare Sub      WComboItemClkT    Lib "TESTCtrl.dll" Alias "WComboItemClkT"    (lpszName$, lpszItem$)
                   1022: Declare Sub      WComboItemDblClkT Lib "TESTCtrl.dll" Alias "WComboItemDblClkT" (lpszName$, lpszItem$)
                   1023: Declare Sub      WComboClear       Lib "TESTCtrl.dll" Alias "WComboClear"       (lpszName$)
                   1024: Declare Sub      WComboAddItem     Lib "TESTCtrl.dll" Alias "WComboAddItem"     (lpszName$, lpszItem$)
                   1025: Declare Sub      WComboDelItem     Lib "TESTCtrl.dll" Alias "WComboDelItem"     (lpszName$, iItem%)
                   1026: Declare Sub      WComboDelItemT    Lib "TESTCtrl.dll" Alias "WComboDelItemT"    (lpszName$, lpszItem$)
                   1027: Declare Function WComboEnabled     Lib "TESTCtrl.dll" Alias "WComboEnabled"     (lpszName$) As Integer
                   1028: Declare Sub      WComboSetFocus    Lib "TESTCtrl.dll" Alias "WComboSetFocus"    (lpszName$)
                   1029: 
                   1030: ' Layered routines to simulate string functions for the coresponding
                   1031: ' TESTCtrl API
                   1032: '----------------------------------------------------------------------------
                   1033: Declare Function ComboText     (lpszName$) As String
                   1034: Declare Function ComboSelText  (lpszName$) As String
                   1035: Declare Function ComboItemText (lpszName$, iItem%) As String
                   1036: 
                   1037: '----------------------------------------------------------------------------
                   1038: ' ComboText: Layered routine for WComboText()
                   1039: '----------------------------------------------------------------------------
                   1040: Function ComboText(lpszName$) Static As String
                   1041: Dim lpszBuffer As String
                   1042: Dim itemLength As Integer
                   1043:     ComboText = ""
                   1044:     itemLength = WComboLen(lpszName$)
                   1045:     If itemLength >= 0 Then
                   1046:         lpszBuffer = String$(itemLength+1, " ")
                   1047:         WComboText lpszName, lpszBuffer
                   1048:         ComboText = lpszBuffer
                   1049:     End If
                   1050:     lpszBuffer = ""
                   1051: End Function
                   1052: 
                   1053: '----------------------------------------------------------------------------
                   1054: ' ComboSelText: Layered routine for WComboSelText()
                   1055: '----------------------------------------------------------------------------
                   1056: Function ComboSelText(lpszName$) Static As String
                   1057: Dim lpszBuffer As String
                   1058: Dim itemLength As Integer
                   1059:     ComboSelText = ""
                   1060:     itemLength = WComboSelLen(lpszName$)
                   1061:     If itemLength >= 0 Then
                   1062:         lpszBuffer = String$(itemLength+1, " ")
                   1063:         WComboSelText lpszName, lpszBuffer
                   1064:         ComboSelText = lpszBuffer
                   1065:     End If
                   1066:     lpszBuffer = ""
                   1067: End Function
                   1068: 
                   1069: '----------------------------------------------------------------------------
                   1070: ' ComboItemText: Layered routine for WComboItemText()
                   1071: '----------------------------------------------------------------------------
                   1072: Function ComboItemText(lpszName$, sItem%) Static As String
                   1073: Dim lpszBuffer As String
                   1074: Dim itemLength As Integer
                   1075:     ComboItemText = ""
                   1076:     itemLength = WComboItemLen(lpszName, sItem)
                   1077:     If itemLength >= 0 Then
                   1078:         lpszBuffer = String$(itemLength+1, " ")
                   1079:         WComboItemText lpszName, sItem, lpszBuffer
                   1080:         ComboItemText = lpszBuffer
                   1081:     End If
                   1082:     lpszBuffer = ""
                   1083: End Function
                   1084: 
                   1085: 
                   1086: '                                                       *********************
                   1087: '$DEFINE W_COMBO_INCLUDED
                   1088: '$ENDIF
                   1089: '$IFDEF W_EDIT AND NOT W_EDIT_INCLUDED
                   1090: '                                                       *********************
                   1091: 
                   1092: 
                   1093: '*** Edit box routines
                   1094: '
                   1095: Declare Sub      WEditSetClass Lib "TESTCtrl.dll" Alias "WEditSetClass" (lpszClass$)
                   1096: Declare Function WEditExists   Lib "TESTCtrl.dll" Alias "WEditExists"   (lpszName$) As Integer
                   1097: Declare Function WEditLen      Lib "TESTCtrl.dll" Alias "WEditLen"      (lpszName$) As Long
                   1098: Declare Sub      WEditText     Lib "TESTCtrl.dll" Alias "WEditText"     (lpszName$, lpszBuffer$)
                   1099: Declare Sub      WEditSetText  Lib "TESTCtrl.dll" Alias "WEditSetText"  (lpszName$, lpszBuffer$)
                   1100: Declare Sub      WEditSelText  Lib "TESTCtrl.dll" Alias "WEditSelText"  (lpszName$, lpszBuffer$)
                   1101: Declare Function WEditSelLen   Lib "TESTCtrl.dll" Alias "WEditSelLen"   (lpszName$) As Long
                   1102: Declare Sub      WEditLineText Lib "TESTCtrl.dll" Alias "WEditLineText" (lpszName$, lIndex&, lpszBuffer$)
                   1103: Declare Function WEditLineLen  Lib "TESTCtrl.dll" Alias "WEditLineLen"  (lpszName$, lIndex&) As Long
                   1104: Declare Function WEditPos      Lib "TESTCtrl.dll" Alias "WEditPos"      (lpszName$) As Long
                   1105: Declare Function WEditLine     Lib "TESTCtrl.dll" Alias "WEditLine"     (lpszName$) As Long
                   1106: Declare Function WEditChar     Lib "TESTCtrl.dll" Alias "WEditChar"     (lpszName$) As Long
                   1107: Declare Function WEditFirst    Lib "TESTCtrl.dll" Alias "WEditFirst"    (lpszName$) As Long
                   1108: Declare Function WEditLines    Lib "TESTCtrl.dll" Alias "WEditLines"    (lpszName$) As Long
                   1109: Declare Sub      WEditClick    Lib "TESTCtrl.dll" Alias "WEditClick"    (lpszName$)
                   1110: Declare Function WEditEnabled  Lib "TESTCtrl.dll" Alias "WEditEnabled"  (lpszName$) As Integer
                   1111: Declare Sub      WEditSetFocus Lib "TESTCtrl.dll" Alias "WEditSetFocus" (lpszName$)
                   1112: 
                   1113: ' Layered routines to simulate string functions for the coresponding
                   1114: ' TESTCtrl API
                   1115: '----------------------------------------------------------------------------
                   1116: Declare Function EditText     (lpszName$) As String
                   1117: Declare Function EditSelText  (lpszName$) As String
                   1118: Declare Function EditLineText (lpszName$, lIndex&) As String
                   1119: 
                   1120: '----------------------------------------------------------------------------
                   1121: ' EditText: Layered routine for WEditText()
                   1122: '----------------------------------------------------------------------------
                   1123: Function EditText(lpszName$) Static As String
                   1124: Dim textLength As Long
                   1125: Dim lpszBuffer As String
                   1126:     EditText = ""
                   1127:     textLength = WEditLen(lpszName)
                   1128:     If textLength >= 0 Then
                   1129:         lpszBuffer = String$(textLength+1, " ")
                   1130:         WEditText lpszName, lpszBuffer
                   1131:         EditText = lpszBuffer
                   1132:     End If
                   1133:     lpszBuffer = ""
                   1134: End Function
                   1135: 
                   1136: '----------------------------------------------------------------------------
                   1137: ' EditSelText: Layered routine for WEditSelText()
                   1138: '----------------------------------------------------------------------------
                   1139: Function EditSelText(lpszName$) Static As String
                   1140: Dim selLength  As Long
                   1141: Dim lpszBuffer As String
                   1142:     EditSelText = ""
                   1143:     selLength = WEditSelLen(lpszName)
                   1144:     If selLength >= 0 Then
                   1145:         lpszBuffer = String$(selLength+1, " ")
                   1146:         WEditSelText lpszName, lpszBuffer
                   1147:         EditSelText = lpszBuffer
                   1148:     End If
                   1149:     lpszBuffer = ""
                   1150: End Function
                   1151: 
                   1152: '----------------------------------------------------------------------------
                   1153: ' EditLineText: Layered routine for WEditLineText()
                   1154: '----------------------------------------------------------------------------
                   1155: Function EditLineText(lpszName$, lIndex&) Static As String
                   1156: Dim lineLength As Long
                   1157: Dim lpszBuffer As String
                   1158:     EditLineText = ""
                   1159:     lineLength = WEditLineLen(lpszName, lIndex)
                   1160:     If lineLength >= 0 Then
                   1161:         lpszBuffer = String$(lineLength+1, " ")
                   1162:         WEditLineText lpszName, lIndex&, lpszBuffer
                   1163:         EditLineText = lpszBuffer
                   1164:     End if
                   1165:     lpszBuffer = ""
                   1166: End Function
                   1167: 
                   1168: 
                   1169: '                                                       *********************
                   1170: '$DEFINE W_EDIT_INCLUDED
                   1171: '$ENDIF
                   1172: '$IFDEF W_ERROR AND NOT W_ERROR_INCLUDED
                   1173: '                                                       *********************
                   1174: 
                   1175: 
                   1176: Declare Function WError     Lib "TESTCtrl.dll" Alias "WError"     () As Integer
                   1177: Declare Sub      WErrorSet  Lib "TESTCtrl.dll" Alias "WErrorSet"  (iErrorNum%)
                   1178: Declare Sub      WErrorText Lib "TESTCtrl.dll" Alias "WErrorText" (lpszBuffer$)
                   1179: Declare Function WErrorLen  Lib "TESTCtrl.dll" Alias "WErrorLen"  () As Integer
                   1180: 
                   1181: ' Layered routines to simulate string functions for the coresponding
                   1182: ' TESTCtrl API
                   1183: '----------------------------------------------------------------------------
                   1184: Declare Function ErrorText () As String
                   1185: 
                   1186: Const NO_ERROR                       =  0
                   1187: Const ERR_MENU_NOT_FOUND             =  1
                   1188: Const ERR_MENU_ITEM_NOT_FOUND        =  2
                   1189: Const ERR_NOT_A_LISTBOX              =  3
                   1190: Const ERR_LISTBOX_NOT_FOUND          =  4
                   1191: Const ERR_ITEM_NOT_IN_LISTBOX        =  5
                   1192: Const ERR_INVALID_LISTBOX_INDEX      =  6
                   1193: Const ERR_LISTBOX_HAS_NO_STRINGS     =  7
                   1194: Const ERR_LISTBOX_IS_NOT_MULTISELECT =  8
                   1195: Const ERR_NOT_A_COMBOBOX             =  9
                   1196: Const ERR_COMBOBOX_NOT_FOUND         = 10
                   1197: Const ERR_ITEM_NOT_IN_COMBOBOX       = 11
                   1198: Const ERR_INVALID_COMBOBOX_INDEX     = 12
                   1199: Const ERR_COMBOBOX_HAS_NO_EDITBOX    = 13
                   1200: Const ERR_COMBOBOX_HAS_NO_STRINGS    = 14
                   1201: Const ERR_NOT_AN_EDITBOX             = 15
                   1202: Const ERR_EDITBOX_NOT_FOUND          = 16
                   1203: Const ERR_BUTTON_NOT_FOUND           = 17
                   1204: Const ERR_OPTION_BUTTON_NOT_FOUND    = 18
                   1205: Const ERR_CHECKBOX_NOT_FOUND         = 19
                   1206: Const ERR_INVALID_WINDOW_HANDLE      = 20
                   1207: Const ERR_NO_SYSTEM_MENU             = 21
                   1208: Const ERR_INVALID_MENU_INDEX         = 22
                   1209: Const MAX_ERROR                      = 23
                   1210: 
                   1211: '----------------------------------------------------------------------------
                   1212: ' ErrorText: Layered routine for WErrorText() of TESTCtrl.DLL.
                   1213: '            Simulates a DLL String Function.
                   1214: '----------------------------------------------------------------------------
                   1215: Function ErrorText() Static As String
                   1216: Dim lpszBuffer  As String
                   1217: Dim errorLength As Integer
                   1218:     errorLength= WErrorLen()
                   1219:     lpszBuffer = String$(errorLength+1, " ")
                   1220:     WErrorText lpszBuffer
                   1221:     ErrorText = lpszBuffer
                   1222:     lpszBuffer = ""
                   1223: End Function
                   1224: 
                   1225: 
                   1226: '                                                       *********************
                   1227: '$DEFINE W_ERROR_INCLUDED
                   1228: '$ENDIF
                   1229: '$IFDEF W_ERROR_TRAP AND NOT W_ERROR_TRAP_INCLUDED
                   1230: '                                                       *********************
                   1231: 
                   1232: 
                   1233: '----------------------------------------------------------------------------
                   1234: ' WErrorTrap: This trap is in TESTCTRL.DLL.
                   1235: '
                   1236: '   This trap is here in MSTEST.INC just so it is easy to quickly add a
                   1237: ' trap that will display any TESTCTRL error messages.  It is only included if
                   1238: ' W_ERROR_TRAP is defined, so if WErrorTrap() is to be used for more than
                   1239: ' just to display the TESTCTRL error messages, W_ERROR_TRAP should no be
                   1240: ' defined. and a custom WErrorTrap() should be added to your script.
                   1241: '----------------------------------------------------------------------------
                   1242: Trap WErrorTrap From "TESTCTRL.DLL"
                   1243:     Print WError;" ";ErrorText
                   1244: End Trap
                   1245: 
                   1246: 
                   1247: '                                                       *********************
                   1248: '$DEFINE W_ERROR_TRAP_INCLUDED
                   1249: '$ENDIF
                   1250: '                                                       *********************

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.