Annotation of mstools/mstest/include/ftestkey.mst, revision 1.1.1.1

1.1       root        1: 'FTestKey.inc - definitions for Fast Test Key, Menu and Window routines
                      2: '
                      3: '  Copyright (c) 1991-1992, Microsoft Corporation. All rights reserved.
                      4: '
                      5: 'Purpose:
                      6: ' This file defines the Key, Menu and Window functions of the Fast Test
                      7: ' functionality
                      8: '
                      9: 
                     10: 
                     11: '**********************************************************
                     12: '***************** Keystroke Subroutines ******************
                     13: '**********************************************************
                     14: 
                     15: ' support routine for other subroutines, not meant to be called
                     16: ' except by fasttest routines
                     17: '
                     18: FUNCTION SKeyString$(s$) STATIC
                     19:     DIM sTemp$
                     20: 
                     21:     IF LEN(s$) = 0 THEN
                     22:         XLogFailure "zero length string passed to SKeyString$"
                     23:     END IF
                     24: 
                     25:     IF LEN(s$) = 1 THEN
                     26:         SELECT CASE ASC(s$)
                     27: 
                     28:             ' alphanumerics, pass along as given
                     29:             CASE ASC("a") to ASC("z"), ASC("A") to ASC("Z"), ASC("0") to ASC("9")
                     30:                 sTemp$ = s$
                     31: 
                     32:             ' special characters to Dokeys, surround with braces
                     33:             CASE ASC("~"),ASC("+"),ASC("^"),ASC("%")
                     34:                 sTemp$ = "{" + s$ + "}"
                     35: 
                     36:             CASE ASC("{"),ASC("}"),ASC("("),ASC(")"),ASC("["),ASC("]")
                     37:                 sTemp$ = "{" + s$ + "}"
                     38: 
                     39:             ' normal printable non-alphanumerics, pass along
                     40:             CASE ASC("!"),ASC("@"),ASC("#"),ASC("$"),ASC("&")
                     41:                 sTemp$ = s$
                     42: 
                     43:             CASE ASC("*"),ASC("_"),ASC("|"),ASC(""""),ASC("<"),ASC(">")
                     44:                 sTemp$ = s$
                     45: 
                     46:             CASE ASC("-"),ASC("="),ASC("\"),ASC(";"),ASC("'"),ASC(":")
                     47:                 sTemp$ =s$
                     48: 
                     49:             CASE ASC(","),ASC("."),ASC("/"),ASC(" "),ASC("?"),ASC("`")
                     50:                 sTemp$ =s$
                     51: 
                     52:             ' non-printable other character
                     53:             CASE ELSE
                     54:                 XLogFailure "Bad character passed to SKeyString$"
                     55: 
                     56:         END SELECT
                     57: 
                     58:     ELSE
                     59:         ' the string is greater than 1 character in length, put braces
                     60:         ' around it and send it to Dokeys and let it parse it
                     61:         sTemp$ = "{" + s$ + "}"
                     62:     END IF
                     63:     SKeyString$ = "(" + sTemp$ + ")"
                     64: END FUNCTION
                     65: 
                     66: ' support routine for other subroutines, not meant to be called
                     67: ' except by fasttest routines
                     68: '
                     69: FUNCTION SHideKeys$(s$) STATIC
                     70:     DIM check$
                     71:     DIM i%
                     72:     DIM stRet$
                     73:     ' this code must hide each character that is special to DoKeys
                     74: 
                     75:     stRet$ = ""     ' start empty
                     76:     FOR i% = 1 to LEN(s$)
                     77:         ' special characters to DoKeys, surround with braces
                     78:         check$ = mid$(s$,i%,1)
                     79:         IF check$ = "~" OR check$ = "+" OR check$ = "^" OR check$ = "%" THEN
                     80:             stRet$ = stRet$ + "{" + check$ + "}"
                     81:         ELSEIF check$ = "{" OR check$ = "}" OR check$ = "(" OR check$ = ")" OR check$ = "[" OR check$ = "]" THEN
                     82:             stRet$ = stRet$ + "{" + check$ + "}"
                     83:         ELSE
                     84:             stRet$ = stRet$ + check$
                     85:         END IF
                     86:     NEXT i%
                     87:     SHideKeys$ = stRet$
                     88: END FUNCTION
                     89: 
                     90: '
                     91: '   XKey(s$)
                     92: '
                     93: ' Description:
                     94: '       Send Keystroke to active application
                     95: '       This uses DoKeys, so DoKeys syntax is allowed
                     96: '
                     97: ' Parameters:
                     98: '       s$ - single char to send
                     99: '       NOTE: any string longer that 1 character in length is assumed
                    100: '             to be a special name for a key and is handled as such
                    101: '
                    102: ' Returns:
                    103: '       nothing
                    104: '
                    105: ' Example:
                    106: '       XKey "f"
                    107: '       XKey "escape"
                    108: 
                    109: SUB XKey (s$) STATIC
                    110:     DoKeys SKeyString$(s$)
                    111: 
                    112: END SUB
                    113: 
                    114: 
                    115: '
                    116: ' XAlt(s$)
                    117: '
                    118: ' Description:
                    119: '       Send a key as if the alt key is pressed at the same time
                    120: '
                    121: ' Parameters:
                    122: '       s$ - single char to send
                    123: '       see XKey note
                    124: '
                    125: ' Returns:
                    126: '       nothing
                    127: '
                    128: ' Example:
                    129: '       XAlt "f"
                    130: '       XAlt "escape"
                    131: '
                    132: '
                    133: 
                    134: SUB XAlt (s$) STATIC
                    135:     DoKeys "%" + SKeyString$(s$)
                    136: 
                    137: END SUB
                    138: 
                    139: '
                    140: ' XCtrl(s$)
                    141: '
                    142: ' Description:
                    143: '       Send a key as if the control key is pressed at the same time
                    144: '
                    145: ' Parameters:
                    146: '       s$ - single char to send
                    147: '       see XKey note
                    148: '
                    149: ' Returns:
                    150: '       nothing
                    151: '
                    152: ' Example:
                    153: '       XCtrl "f"
                    154: '       XCtrl "escape"
                    155: '
                    156: '
                    157: 
                    158: SUB XCtrl (s$) STATIC
                    159:     DoKeys "^" + SKeyString$(s$)
                    160: END SUB
                    161: 
                    162: '
                    163: ' XShift(s$)
                    164: '
                    165: ' Description:
                    166: '       Send a key as if the alt key is pressed at the same time
                    167: '
                    168: ' Parameters:
                    169: '       s$ - single char to send
                    170: '       see XKey note
                    171: '
                    172: ' Returns:
                    173: '       nothing
                    174: '
                    175: ' Example:
                    176: '       XShift "f"
                    177: '       XShift "escape"
                    178: '
                    179: '
                    180: 
                    181: SUB XShift (s$) STATIC
                    182:     DoKeys "+" + SKeyString$(s$)
                    183: 
                    184: END SUB
                    185: 
                    186: '
                    187: ' XCtrlAlt(s$)
                    188: '
                    189: ' Description:
                    190: '       Send a key as if the alt key is pressed at the same time
                    191: '
                    192: ' Parameters:
                    193: '       s$ - single char to send
                    194: '       see XKey note
                    195: '
                    196: ' Returns:
                    197: '       nothing
                    198: '
                    199: ' Example:
                    200: '       XCtrlAlt "f"
                    201: '       XCtrlAlt "escape"
                    202: '
                    203: '
                    204: 
                    205: 
                    206: SUB XCtrlAlt (s$) STATIC
                    207:     DoKeys "^%" + SKeyString$(s$)
                    208: END SUB
                    209: 
                    210: '
                    211: ' XAltShift(s$)
                    212: '
                    213: ' Description:
                    214: '       Send a key as if the alt key is pressed at the same time
                    215: '
                    216: ' Parameters:
                    217: '       s$ - single char to send
                    218: '       see XKey note
                    219: '
                    220: ' Returns:
                    221: '       nothing
                    222: '
                    223: ' Example:
                    224: '       XAltShift "f"
                    225: '       XAltShift "escape"
                    226: '
                    227: '
                    228: 
                    229: SUB XAltShift (s$) STATIC
                    230:     DoKeys "%+" + SKeyString$(s$)
                    231: END SUB
                    232: 
                    233: '
                    234: ' XCtrlShift(s$)
                    235: '
                    236: ' Description:
                    237: '       Send a key as if the alt key is pressed at the same time
                    238: '
                    239: ' Parameters:
                    240: '       s$ - single char to send
                    241: '       see XKey note
                    242: '
                    243: ' Returns:
                    244: '       nothing
                    245: '
                    246: ' Example:
                    247: '       XCtrlShift "f"
                    248: '       XCtrlShift "escape"
                    249: '
                    250: '
                    251: 
                    252: SUB XCtrlShift (s$) STATIC
                    253:     DoKeys "^+" + SKeyString$(s$)
                    254: END SUB
                    255: 
                    256: '
                    257: ' XCtrlAltShift(s$)
                    258: '
                    259: ' Description:
                    260: '       Send a key as if the alt key is pressed at the same time
                    261: '
                    262: ' Parameters:
                    263: '       s$ - single char to send
                    264: '       see XKey note
                    265: '
                    266: ' Returns:
                    267: '       nothing
                    268: '
                    269: ' Example:
                    270: '       XCtrlAltShift "f"
                    271: '       XCtrlAltShift "escape"
                    272: '
                    273: '
                    274: 
                    275: SUB XCtrlAltShift (s$) STATIC
                    276:     DoKeys "^%+" + SKeyString$(s$)
                    277: 
                    278: END SUB
                    279: 
                    280: '
                    281: ' XText(s$)
                    282: '
                    283: ' Description:
                    284: '       Send any key as without having to specially specify any
                    285: '       keys that are special to DoKeys
                    286: '
                    287: ' Parameters:
                    288: '       s$ - string of characters to send
                    289: '
                    290: ' Returns:
                    291: '       nothing
                    292: '
                    293: ' Example:
                    294: '       XText "Hello World"
                    295: '       XText "The DoKeys string to send is {escape}"
                    296: '
                    297: '
                    298: 
                    299: SUB XText(s$) STATIC
                    300:     DoKeys SHideKeys$(s$)
                    301: END SUB
                    302: 
                    303: '
                    304: ' XEnter(s$)
                    305: '
                    306: ' Description:
                    307: '       Send any key as without having to specially specify any
                    308: '       keys that are special to DoKeys followed by an enter key
                    309: '
                    310: ' Parameters:
                    311: '       s$ - string of characters to send
                    312: '
                    313: ' Returns:
                    314: '       nothing
                    315: '
                    316: ' Example:
                    317: '       XEnter "Hello World"
                    318: '       XEnter "The DoKeys string to send is {escape}"
                    319: '
                    320: '
                    321: 
                    322: SUB XEnter(s$) STATIC
                    323:     DoKeys SHideKeys$(s$) + "{enter}"
                    324: END SUB
                    325: 
                    326: 
                    327: 
                    328: 
                    329: 
                    330: '**********************************************************
                    331: '***************** Menu Subroutines ***********************
                    332: '**********************************************************
                    333: 
                    334: 
                    335: 
                    336: 
                    337: '
                    338: ' XSelectMenuItem(stMenu, stMenuItem, stHMenuItem)
                    339: '
                    340: ' Description:
                    341: '       This procedure selects the specified menu item name.
                    342: '
                    343: ' Parameters:
                    344: '       stMenu      = menu where stMenuItem is found.
                    345: '       stMenuItem  = menu item to select or secondary menu, IF
                    346: '                     Hierarchial menu exists.
                    347: '       stHMenuItem = hierarchial(popup) menu item.
                    348: '
                    349: ' Returns:
                    350: '       nothing
                    351: '
                    352: ' Example:
                    353: '       XSelectMenuItem "Edit", "Copy",""
                    354: '
                    355: '
                    356: SUB XSelectMenuItem(stMenu$,stMenuItem$,stHMenuItem$) STATIC
                    357:     XMenuItemExists stMenu$,stMenuItem$,stHMenuItem$
                    358: 
                    359:     WMenu(stMenu$)
                    360:     IF stMenuItem$ <> "" THEN
                    361:         WMenu(stMenuItem$)
                    362:     END IF
                    363:     IF stHMenuItem$ <> "" THEN              'If popup menu is to be selected
                    364:         WMenu(stHMenuItem$)                  'Select menu item under popup menu.
                    365:     END IF
                    366: 
                    367: END SUB
                    368: 
                    369: 
                    370: 
                    371: '
                    372: ' BMenuItemExists(stMenu, stMenuItem, stHMenuItem)
                    373: '
                    374: ' Description:
                    375: '       This procedure checks for the specified menu item
                    376: '       and returns true IF found, false IF not found.
                    377: '
                    378: ' Parameters:
                    379: '       stMenu      = menu where stMenuItem is found.
                    380: '       stMenuItem  = menu item to check or secondary menu, IF
                    381: '                     Hierarchial menu exists.
                    382: '       stHMenuItem = hierarchial(popup) menu item.
                    383: '
                    384: ' Returns:
                    385: '       TRUE if it exists, FALSE if not
                    386: '
                    387: ' Example:
                    388: '       fSuccess% = BMenuItemExists("File", "", "")
                    389: '       fSuccess% = BMenuItemExists("FIle","Edit", "")
                    390: '
                    391: '
                    392: FUNCTION BMenuItemExists%(stMenu$,stMenuItem$,stHMenuItem$) STATIC
                    393: 
                    394:     IF stHMenuItem$ = "" THEN
                    395:         IF stMenuItem$ = "" THEN
                    396:             BMenuItemExists = WMenuExists(stMenu$) <> 0
                    397:         ELSE
                    398:             WMenu(stMenu$)
                    399:             BMenuItemExists = WMenuExists(stMenuItem$) <> 0
                    400:         END IF
                    401:     ELSE
                    402:         WMenu(stMenu$)
                    403:         WMenu(stMenuItem$)
                    404:         BMenuItemExists = WMenuExists(stHMenuItem$) <> 0
                    405:     END IF
                    406:     DoKeys "{esc 3}"                     'Make sure you close menu.
                    407: 
                    408: END FUNCTION
                    409: 
                    410: 
                    411: '
                    412: ' XMenuItemExists (stMenu$,stMenuItem$, stHMenuItem$)
                    413: '
                    414: ' Description:
                    415: '       Reports error IF menu item does not exist.
                    416: '
                    417: ' Parameters:
                    418: '       stMenu      = menu where stMenuItem is found.
                    419: '       stMenuItem  = menu item to select or secondary menu, IF
                    420: '                     Hierarchial menu exists.
                    421: '       stHMenuItem = hierarchial(popup) menu item.
                    422: '
                    423: ' Returns:
                    424: '       nothing
                    425: '
                    426: ' Example:
                    427: '       XMenuItemExists "File", "Close", ""
                    428: '
                    429: '
                    430: '
                    431: SUB XMenuItemExists(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    432:     IF BMenuItemExists(stMenu$,stMenuItem$, stHMenuItem$) = 0 THEN
                    433:         XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " does not Exist"
                    434:     END IF
                    435: END SUB
                    436: 
                    437: 
                    438: '
                    439: ' XMenuItemNotExists (stMenu$,stMenuItem$, stHMenuItem$)
                    440: '
                    441: ' Description:
                    442: '       Reports error IF menu item exist.
                    443: '
                    444: ' Parameters:
                    445: '       stMenu      = menu where stMenuItem is found.
                    446: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    447: '                        exists.
                    448: '       stHMenuItem = hierarchial(popup) menu item.
                    449: '
                    450: ' Returns:
                    451: '       nothing
                    452: '
                    453: ' Example:
                    454: '       XMenuItemNotExists "File", "Close", ""
                    455: '
                    456: '
                    457: '
                    458: 
                    459: SUB XMenuItemNotExists(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    460:     IF BMenuItemExists(stMenu$,stMenuItem$, stHMenuItem$) THEN
                    461:         XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " Exists"
                    462:     END IF
                    463: END SUB
                    464: 
                    465: 
                    466: 
                    467: '
                    468: ' IGetMenuCount(stMenu, stMenuItem)
                    469: '
                    470: ' Description:
                    471: '       This procedure returns the number of menu items
                    472: '       in the specified menu.
                    473: '
                    474: ' Parameters:
                    475: '       stMenu       = top level menu to count menu items in.
                    476: '                      IF stMenu = "", THEN counts items in the menu bar(counts the
                    477: '                      number of top level menus).
                    478: '       stMenuItem   = secondary menu to count menu items in; counts hierarchial
                    479: '                      menu items.
                    480: '
                    481: ' Returns:
                    482: '       An integer; the number of menu items found.
                    483: '
                    484: ' Example:
                    485: '       iHowMany% = IGetMenuCount("","") returns how many top level menus.
                    486: '       iHowMany% = IGetMenuCount("Utilities", "") returns the number of menu items
                    487: '                                                     in the "Utilities" menu.
                    488: '       iHowMany% = IGetMenuCount("Utilities", "Info") returns how many menu items
                    489: '                                                                 in the popup menu "Info".
                    490: '
                    491: '
                    492: FUNCTION IGetMenuCount%(stMenu$, stMenuItem$) STATIC
                    493: 
                    494:     IF stMenuItem$ <> "" THEN                   'Count in menu items in hierarchial menu.
                    495:         WMenu(stMenu$)
                    496:         WMenu(stMenuItem$)
                    497:         IGetMenuCount = WMenuCount()          'Count the number of menus items in the popup
                    498:                                                 'menu.
                    499:     ELSE
                    500:         IF stMenu$ <> "" THEN                   'Count menus in stMenu$.
                    501:             WMenu(stMenu$)
                    502:             IGetMenuCount = WMenuCount()      'Count the number of menus items in the menu.
                    503:         ELSE
                    504:             IGetMenuCount = WMenuCount()      'Count the number of menus in the menu bar if.
                    505:                                                 'the above "IF" statements are skipped.
                    506:         END IF
                    507:     END IF
                    508:     DoKeys "{esc 3}"                             'Make sure you close menu.
                    509: 
                    510: END FUNCTION
                    511: 
                    512: 
                    513: 
                    514: '
                    515: ' SGetMenuItemText(stMenu, stMenuItem, iIndex)
                    516: '
                    517: ' Description:
                    518: '       This procedure returns the text of menu item, iIndex
                    519: '       (base 1) in stMenu.  Length of the buffer to store
                    520: '       the menu item text is passed in.
                    521: '
                    522: ' Parameters:
                    523: '       stMenu      = menu where stMenuItem is found.
                    524: '       stMenuItem  = menu item to check or secondary menu, IF Hierarchial menu
                    525: '                     exists.
                    526: '       iIndex      = index of menu item in stMenu.
                    527: '       iLength     = length of buffer to store text
                    528: '
                    529: ' Returns:
                    530: '       a string, the menu item text(name).
                    531: '
                    532: ' Example:
                    533: '       Print SGetMenuItemText("","","", 3)  gets name of 3rd menu.
                    534: '       Print SGetMenuItemText("Utilities","","",3) gets name of 3rd menu item
                    535: '                                                          in the "Utilities" menu.
                    536: '       Print SGetMenuItemText("Utilities","Info",3) gets name of 3rd menu item
                    537: '                                                           in the popup menu "Info".
                    538: '
                    539: '
                    540: FUNCTION SGetMenuItemText$(stMenu$,stMenuItem$, iIndex%) STATIC
                    541:     DIM buffer$
                    542: 
                    543:     buffer$ = String$(128,32)        'initialize with spaces.
                    544:     IF stMenuItem$ <> "" THEN        'get menu text from hierarchial menu.
                    545:         WMenu(stMenu$)
                    546:         WMenu(stMenuItem$)
                    547:     ELSE
                    548:         IF stMenu$ <> "" THEN        'get menu text from stMenu$.
                    549:             WMenu(stMenu$)
                    550:         END IF
                    551:     END IF
                    552: 
                    553: '$IFNDEF NT
                    554:     WMenuText iIndex%, buffer$       'get menu text. If above "IF" condition
                    555:                                      'is skipped, this gets text in menu bar.
                    556: '$ELSE
                    557:     WMenuText "@"+STR$(iIndex%), buffer$
                    558: '$ENDIF
                    559: 
                    560:     SGetMenuItemText = buffer$       'return buffer$
                    561: 
                    562:     DoKeys "{esc 3}"                 'Make sure you close menu.
                    563: 
                    564: END FUNCTION
                    565: 
                    566: 
                    567: 
                    568: '
                    569: ' BMenuItemGrayed(stMenu$, stMenuItem$,stHMenuItem$)
                    570: '
                    571: ' Description:
                    572: '       This procedure checks to see IF the specified menu or
                    573: '       menu item is grayed out or not.
                    574: '
                    575: ' Parameters:
                    576: '       stMenu      = menu where stMenuItem is found.
                    577: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    578: '                     exists.
                    579: '       stHMenuItem = hierarchial(popup) menu item.
                    580: '
                    581: ' Returns:
                    582: '       TRUE if grayed.
                    583: '       FALSE if not grayed.
                    584: '
                    585: ' Example:
                    586: '       fIsGrayed% = BMenuItemGrayed("Edit", "Copy", "")
                    587: '       fIsGrayed% = BMenuItemGrayed("Edit", "", "")
                    588: '
                    589: '
                    590: FUNCTION BMenuItemGrayed%(stMenu$, stMenuItem$, stHMenuItem$) STATIC
                    591: 
                    592:     IF stHMenuItem$ = "" THEN
                    593:         IF stMenuItem$ = "" THEN
                    594:             BMenuItemGrayed = WMenuGrayed(stMenu$) <> 0  'Check main menu bar menu items.
                    595:         ELSE
                    596:             WMenu(stMenu$)                         'Check menu item within stMenuItem$.
                    597:             BMenuItemGrayed = WMenuGrayed(stMenuItem$) <> 0
                    598:         END IF
                    599:     ELSE
                    600:         WMenu(stMenu$)                             'Check popup menu items.
                    601:         WMenu(stMenuItem$)
                    602:         BMenuItemGrayed = WMenuGrayed(stHMenuItem$) <> 0
                    603:     END IF
                    604:     DoKeys "{esc 3}"                                         'Make sure you close menu.
                    605: 
                    606: END FUNCTION
                    607: 
                    608: 
                    609: '
                    610: ' XMenuItemGrayed (stMenu$,stMenuItem$, stHMenuItem$)
                    611: '
                    612: ' Description:
                    613: '       Reports error IF menu item is not Grayed.
                    614: '
                    615: ' Parameters:
                    616: '       stMenu      = menu where stMenuItem is found.
                    617: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    618: '                     exists.
                    619: '       stHMenuItem = hierarchial(popup) menu item.
                    620: '
                    621: ' Returns:
                    622: '       nothing
                    623: '
                    624: ' Example:
                    625: '       XMenuItemGrayed "File", "Close", ""
                    626: '
                    627: '
                    628: '
                    629: 
                    630: SUB XMenuItemGrayed(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    631:   IF BMenuItemGrayed(stMenu$,stMenuItem$, stHMenuItem$) = 0 THEN
                    632:      XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is not Grayed"
                    633:   END IF
                    634: END SUB
                    635: 
                    636: '
                    637: ' XMenuItemNotGrayed (stMenu$,stMenuItem$, stHMenuItem$)
                    638: '
                    639: ' Description:
                    640: '       Reports error IF menu item is Grayed.
                    641: '
                    642: ' Parameters:
                    643: '       stMenu      = menu where stMenuItem is found.
                    644: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    645: '                     exists.
                    646: '       stHMenuItem = hierarchial(popup) menu item.
                    647: '
                    648: ' Returns:
                    649: '       nothing
                    650: '
                    651: ' Example:
                    652: '       XMenuItemNotGrayed "File", "Close", ""
                    653: '
                    654: '
                    655: '
                    656: 
                    657: SUB XMenuItemNotGrayed(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    658:     IF BMenuItemGrayed(stMenu$,stMenuItem$, stHMenuItem$) THEN
                    659:         XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is Grayed"
                    660:     END IF
                    661: END SUB
                    662: 
                    663: 
                    664: 
                    665: '
                    666: ' BMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$)
                    667: '
                    668: ' Description:
                    669: '       This procedure checks to see IF the specified menu
                    670: '       item is checked or not.
                    671: '
                    672: ' Parameters:
                    673: '       stMenu      = menu where stMenuItem is found.
                    674: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    675: '                     exists.
                    676: '       stHMenuItem = hierarchial(popup) menu item.
                    677: '
                    678: ' Returns:
                    679: '       TRUE if checked.
                    680: '       FALSE if not checked.
                    681: '
                    682: ' Example:
                    683: '       fIsChecked% = BMenuItemChecked("Format","Style","Bold")
                    684: '       fIsChecked% = BMenuItemchecked("Edit", "Copy", "")
                    685: '
                    686: '
                    687: FUNCTION BMenuItemChecked%(stMenu$, stMenuItem$, stHMenuItem$) STATIC
                    688: 
                    689:     IF stHMenuItem$ = "" THEN
                    690:         WMenu(stMenu$)                             'Check menu item within stMenu$.
                    691:         BMenuItemChecked = WMenuChecked(stMenuItem$) <> 0
                    692:     ELSE
                    693:         WMenu(stMenu$)                             'Check menu item under popup menu.
                    694:         WMenu(stMenuItem$)
                    695:         BMenuItemChecked = WMenuChecked(stHMenuItem$) <> 0
                    696:     END IF
                    697:     DoKeys "{esc 3}"                                           'Make sure you close menu.
                    698: 
                    699: END FUNCTION
                    700: 
                    701: 
                    702: 
                    703: '
                    704: ' XMenuItemChecked (stMenu$,stMenuItem$, stHMenuItem$)
                    705: '
                    706: ' Description:
                    707: '       Reports error IF menu item is not Checked.
                    708: '
                    709: ' Parameters:
                    710: '       stMenu      = menu where stMenuItem is found.
                    711: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    712: '                     exists.
                    713: '       stHMenuItem = hierarchial(popup) menu item.
                    714: '
                    715: ' Returns:
                    716: '       nothing
                    717: '
                    718: ' Example:
                    719: '       XMenuItemChecked "Options", "Read Only", ""
                    720: '
                    721: '
                    722: '
                    723: SUB XMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    724:     IF BMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$) = 0 THEN
                    725:         XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is not Checked"
                    726:     END IF
                    727: END SUB
                    728: 
                    729: '
                    730: ' XMenuItemNotChecked (stMenu$,stMenuItem$, stHMenuItem$)
                    731: '
                    732: ' Description:
                    733: '       Reports error IF menu item is Checked.
                    734: '
                    735: ' Parameters:
                    736: '       stMenu      = menu where stMenuItem is found.
                    737: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    738: '                     exists.
                    739: '       stHMenuItem = hierarchial(popup) menu item.
                    740: '
                    741: ' Returns:
                    742: '       nothing
                    743: '
                    744: ' Example:
                    745: '       XMenuItemNotChecked "Options", "Read Only", ""
                    746: '
                    747: '
                    748: '
                    749: SUB XMenuItemNotChecked(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    750:     IF BMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$) THEN
                    751:         XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is Checked"
                    752:     END IF
                    753: END SUB
                    754: 
                    755: 
                    756: 
                    757: '
                    758: ' BMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$)
                    759: '
                    760: ' Description:
                    761: '       This procedure checks to see IF the specified menu or
                    762: '       menu item is enabled or not.
                    763: '
                    764: ' Parameters:
                    765: '       stMenu      = menu where stMenuItem is found.
                    766: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    767: '                     exists.
                    768: '       stHMenuItem = hierarchial(popup) menu item.
                    769: '
                    770: ' Returns:
                    771: '       TRUE if enabled.
                    772: '       FALSE if not enabled.
                    773: '
                    774: ' Example:
                    775: '       fIsEnabled% = BMenuItemEnabled("File", "", "")
                    776: '       fIsEnabled% = BMenuItemEnabled("File", "Close", "")
                    777: '
                    778: '
                    779: FUNCTION BMenuItemEnabled%(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    780: 
                    781:     IF stHMenuItem$ = "" THEN
                    782:         IF stMenuItem$ = "" THEN
                    783:             BMenuItemEnabled = WMenuEnabled(stMenu$) <> 0 'Check main menu bar menu items.
                    784:         ELSE
                    785:             WMenu(stMenu$)                         'Check menu item within stMenu$.
                    786:             BMenuItemEnabled = WMenuEnabled(stMenuItem$) <> 0
                    787:         END IF
                    788:     ELSE
                    789:         WMenu(stMenu$)                             'Check menu item under popup menu.
                    790:         WMenu(stMenuItem$)
                    791:         BMenuItemEnabled = WMenuEnabled(stHMenuItem$) <> 0
                    792:     END IF
                    793:     DoKeys "{esc 3}"                                         'Make sure you close menu.
                    794: 
                    795: END FUNCTION
                    796: 
                    797: 
                    798: '
                    799: ' XMenuItemEnabled (stMenu$,stMenuItem$, stHMenuItem$)
                    800: '
                    801: ' Description:
                    802: '       Reports error IF menu item is not Enabled.
                    803: '
                    804: ' Parameters:
                    805: '       stMenu      = menu where stMenuItem is found.
                    806: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    807: '                     exists.
                    808: '       stHMenuItem = hierarchial(popup) menu item.
                    809: '
                    810: ' Returns:
                    811: '       nothing
                    812: '
                    813: ' Example:
                    814: '       XMenuItemEnabled "Options", "Read Only", ""
                    815: '
                    816: '
                    817: '
                    818: SUB XMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    819:     IF BMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$) = 0 THEN
                    820:         XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is not Enabled"
                    821:     END IF
                    822: END SUB
                    823: 
                    824: 
                    825: '
                    826: ' XMenuItemNotEnabled (stMenu$,stMenuItem$, stHMenuItem$)
                    827: '
                    828: ' Description:
                    829: '       Reports error IF menu item is Enabled.
                    830: '
                    831: ' Parameters:
                    832: '       stMenu      = menu where stMenuItem is found.
                    833: '       stMenuItem  = menu item to select or secondary menu, IF Hierarchial menu
                    834: '                     exists.
                    835: '       stHMenuItem = hierarchial(popup) menu item.
                    836: '
                    837: ' Returns:
                    838: '       nothing
                    839: '
                    840: ' Example:
                    841: '       XMenuItemNotEnabled "Options", "Read Only", ""
                    842: '
                    843: '
                    844: '
                    845: SUB XMenuItemNotEnabled(stMenu$,stMenuItem$, stHMenuItem$) STATIC
                    846:     IF BMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$) THEN
                    847:         XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is Enabled"
                    848:     END IF
                    849: END SUB
                    850: 
                    851: 
                    852: 
                    853: '**********************************************************
                    854: '***************** Window Subroutines *********************
                    855: '**********************************************************
                    856: 
                    857: 
                    858: 
                    859: 
                    860: '
                    861: ' XCaptionExists(stCaption$)
                    862: '
                    863: ' Description:
                    864: '       Will report error IF caption does not Exist.
                    865: '
                    866: ' Parameters:
                    867: '       stCaption$  - expected caption of current window
                    868: '
                    869: ' Returns:
                    870: '       nothing
                    871: '
                    872: ' Example:
                    873: '       XCaptionExists "Winword"
                    874: '
                    875: '
                    876: '
                    877: SUB XCaptionExists(stCaption$) STATIC
                    878:     IF Instr(SGetCaption(), stCaption$) = 0 THEN
                    879:         XLogFailure stCaption$ + " caption does not exist in active window."
                    880:     END IF
                    881: END SUB
                    882: 
                    883: 
                    884: '
                    885: ' XCaptionNotExists(stCaption$)
                    886: '
                    887: ' Description:
                    888: '       Will report error IF caption Exist.
                    889: '
                    890: ' Parameters:
                    891: '       stCaption$  - NOT expected caption of current window
                    892: '
                    893: ' Returns:
                    894: '       nothing
                    895: '
                    896: ' Example:
                    897: '       XCaptionNotExists "Winword"
                    898: '
                    899: '
                    900: SUB XCaptionNotExists(stCaption$) STATIC
                    901:     IF Instr(SGetCaption(), stCaption$) <> 0 THEN
                    902:         XLogFailure stCaption$ + " caption Exists in active window."
                    903:     END IF
                    904: END SUB
                    905: 
                    906: 
                    907: 
                    908: '
                    909: ' SGetCaption()
                    910: '
                    911: ' Description:
                    912: '       Returns the caption of the Active window
                    913: '
                    914: ' Parameters:
                    915: '       none
                    916: '
                    917: ' Return:
                    918: '       Caption of the Active window
                    919: '
                    920: ' Example:
                    921: '       stCaption$ = SGetCaption()
                    922: '
                    923: '
                    924: FUNCTION SGetCaption$() STATIC
                    925:     DIM x%
                    926:     DIM stCaption$
                    927: 
                    928:     stCaption$ = String$(100, 32)
                    929:     x% = GetWindowText (GetForegroundWindow(), stCaption$, LEN(stCaption$))
                    930:     SGetCaption = mid$(stCaption$,1,x%)
                    931:     stCaption$ = ""
                    932: END FUNCTION
                    933: 
                    934: 
                    935: 
                    936: '
                    937: ' XZoomWindow
                    938: '
                    939: ' Description:
                    940: '       Toggles the state of the window between normalized
                    941: '       and maximized.
                    942: '
                    943: ' Parameters:
                    944: '       None
                    945: '
                    946: ' Returns:
                    947: '       nothing
                    948: '
                    949: ' Example:
                    950: '       XZoomWindow
                    951: '
                    952: '
                    953: '
                    954: SUB XZoomWindow STATIC
                    955:     DIM bogus%
                    956:     DIM lhwndTemp%
                    957: 
                    958:     lhwndTemp% = GetForegroundWindow()
                    959: 
                    960:     ' IF the window is maximized, normalize.
                    961: 
                    962:     IF (IsZoomed(lhwndTemp%)) THEN
                    963:         ' window is maximized, we must normalize it
                    964:         bogus% = ShowWindow(lhwndTemp%, SW_SHOWNORMAL)
                    965:     ELSE
                    966:         bogus% = ShowWindow(lhwndTemp%, SW_MAXIMIZE)
                    967:     END IF
                    968: 
                    969: END SUB
                    970: 
                    971: 
                    972: '
                    973: ' XMaxWindow
                    974: '
                    975: ' Description:
                    976: '       Maximize the current active window
                    977: '
                    978: ' Parameters:
                    979: '       None
                    980: '
                    981: ' Returns:
                    982: '       nothing
                    983: '
                    984: ' Example:
                    985: '       XMaxWinow
                    986: '
                    987: '
                    988: '
                    989: 
                    990: 
                    991: SUB XMaxWindow STATIC
                    992:     DIM bogus%
                    993:     DIM lhwndTemp%
                    994:     DIM lWndStyle&
                    995: 
                    996:     lhwndTemp% = GetForegroundWindow ()
                    997: 
                    998:     ' Get the window's style attributes
                    999:     lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
                   1000: 
                   1001:     IF ((lWndStyle& And WS_MAXIMIZE) <> 0) THEN
                   1002:         XLogFailure "Could not maximize active window, already maximized"
                   1003:     ELSE
                   1004:         bogus% = ShowWindow(lhwndTemp%, SW_SHOWMAXIMIZED)
                   1005:     END IF
                   1006: 
                   1007: END SUB
                   1008: 
                   1009: '
                   1010: ' XWindowMaximized
                   1011: '
                   1012: ' Description:
                   1013: '       check IF the current active window is Maximized
                   1014: '
                   1015: ' Parameters:
                   1016: '       none
                   1017: '
                   1018: ' Returns:
                   1019: '       nothing
                   1020: '
                   1021: ' Example:
                   1022: '       XWindowMaximized
                   1023: '
                   1024: '
                   1025: '
                   1026: 
                   1027: 
                   1028: SUB XWindowMaximized STATIC
                   1029:     IF BWindowMaximized = 0 THEN
                   1030:         XLogFailure "Active Window not maximized"
                   1031:     END IF
                   1032: 
                   1033: END SUB
                   1034: 
                   1035: '
                   1036: ' XWindowNotMaximized
                   1037: '
                   1038: ' Description:
                   1039: '       Check that the current window is not maximized
                   1040: '
                   1041: ' Parameters:
                   1042: '       none
                   1043: '
                   1044: ' Returns:
                   1045: '       nothing
                   1046: '
                   1047: ' Example:
                   1048: '       XWindowNotMaximized
                   1049: '
                   1050: '
                   1051: '
                   1052: 
                   1053: 
                   1054: SUB XWindowNotMaximized STATIC
                   1055: 
                   1056:     IF BWindowMaximized THEN
                   1057:         XLogFailure "Active Window is maximized"
                   1058:     END IF
                   1059: 
                   1060: END SUB
                   1061: 
                   1062: '
                   1063: ' BWindowMaximized
                   1064: '
                   1065: ' Description:
                   1066: '       detect IF current window is maximized
                   1067: '
                   1068: ' Parameters:
                   1069: '       none
                   1070: '
                   1071: ' Returns:
                   1072: '       TRUE if maximized, FALSE if not
                   1073: '
                   1074: ' Example:
                   1075: '       BWindowMaximized
                   1076: '
                   1077: '
                   1078: '
                   1079: 
                   1080: 
                   1081: FUNCTION BWindowMaximized% STATIC
                   1082:     DIM bogus%
                   1083:     DIM lhwndTemp%
                   1084:     DIM lWndStyle&
                   1085: 
                   1086:     lhwndTemp% = GetForegroundWindow ()
                   1087: 
                   1088:     ' Get the window's style attributes
                   1089:     lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
                   1090: 
                   1091:     BWindowMaximized = (lWndStyle& AND WS_MAXIMIZE) <> 0
                   1092: 
                   1093: END FUNCTION
                   1094: 
                   1095: 
                   1096: '
                   1097: ' XMinWindow
                   1098: '
                   1099: ' Description:
                   1100: '       Minimize the current active window
                   1101: '
                   1102: ' Parameters:
                   1103: '       none
                   1104: '
                   1105: ' Returns:
                   1106: '       nothing
                   1107: '
                   1108: ' Example:
                   1109: '       XMinWindow
                   1110: '
                   1111: '
                   1112: '
                   1113: 
                   1114: 
                   1115: SUB XMinWindow STATIC
                   1116:     DIM bogus%
                   1117:     DIM lhwndTemp%
                   1118:     DIM lWndStyle&
                   1119: 
                   1120:     lhwndTemp% = GetForegroundWindow ()
                   1121: 
                   1122:     ' Get the window's style attributes
                   1123:     lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
                   1124: 
                   1125:     ' IF maximized, XLog the descrepancy
                   1126:     IF ((lWndStyle& And WS_MINIMIZE) <> 0) THEN
                   1127:         XLogFailure "Could not minimize active window, already minimized"
                   1128:     ELSE
                   1129:         bogus% = ShowWindow(lhwndTemp%, SW_SHOWMINIMIZED)
                   1130:     END IF
                   1131: 
                   1132: END SUB
                   1133: 
                   1134: ' XWindowMinimized
                   1135: '
                   1136: ' Description:
                   1137: '       Check that current window is minimized
                   1138: '
                   1139: ' Parameters:
                   1140: '       none
                   1141: '
                   1142: ' Returns:
                   1143: '       nothing
                   1144: '
                   1145: ' Example:
                   1146: '       XWindowMinized
                   1147: '
                   1148: '
                   1149: '
                   1150: 
                   1151: 
                   1152: SUB XWindowMinimized STATIC
                   1153: 
                   1154:     IF BWindowMinimized = 0 THEN
                   1155:         XLogFailure "Active Window not Minimized"
                   1156:     END IF
                   1157: 
                   1158: END SUB
                   1159: 
                   1160: '
                   1161: ' XWindowNotMinimized
                   1162: '
                   1163: ' Description:
                   1164: '       Check that current window is not minimized
                   1165: '
                   1166: ' Parameters:
                   1167: '       none
                   1168: '
                   1169: ' Returns:
                   1170: '       nothing
                   1171: '
                   1172: ' Example:
                   1173: '       XWindowNotMinimized
                   1174: '
                   1175: '
                   1176: '
                   1177: 
                   1178: 
                   1179: SUB XWindowNotMinimized STATIC
                   1180:     IF BWindowMinimized THEN
                   1181:         XLogFailure "Active Window is Minimized"
                   1182:     END IF
                   1183: 
                   1184: END SUB
                   1185: 
                   1186: '
                   1187: ' BWindowMinimized
                   1188: '
                   1189: ' Description:
                   1190: '       Detect IF active window minimized
                   1191: '
                   1192: ' Parameters:
                   1193: '       none
                   1194: '
                   1195: ' Returns:
                   1196: '       TRUE if minimized, FALSE if not
                   1197: '
                   1198: ' Example:
                   1199: '       BWindowMinimized
                   1200: '
                   1201: '
                   1202: '
                   1203: 
                   1204: 
                   1205: FUNCTION BWindowMinimized% STATIC
                   1206:     DIM bogus%
                   1207:     DIM lhwndTemp%
                   1208:     DIM lWndStyle&
                   1209: 
                   1210:     lhwndTemp% = GetForegroundWindow ()
                   1211: 
                   1212:     ' Get the window's style attributes
                   1213:     lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
                   1214: 
                   1215:     BWindowMinimized = (lWndStyle& AND WS_MINIMIZE) <> 0
                   1216: 
                   1217: END FUNCTION
                   1218: 
                   1219: '
                   1220: ' XRestoreWindow
                   1221: '
                   1222: ' Description:
                   1223: '       Restore the current active window.  NOTE: You must make
                   1224: '       the icon the active window before calling XRestoreWin!
                   1225: '
                   1226: ' Parameters:
                   1227: '       none
                   1228: '
                   1229: ' Returns:
                   1230: '       nothing
                   1231: '
                   1232: ' Example:
                   1233: '       XRestoreWindow
                   1234: '
                   1235: '
                   1236: '
                   1237: 
                   1238: 
                   1239: SUB XRestoreWindow STATIC
                   1240:     DIM bogus%
                   1241:     DIM lhwndTemp%
                   1242:     DIM lWndStyle&
                   1243: 
                   1244:     lhwndTemp% = GetForegroundWindow ()
                   1245: 
                   1246:     ' Get the window's style attributes
                   1247:     lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
                   1248: 
                   1249:     ' IF maximized, XLog the descrepancy
                   1250:     IF ((lWndStyle& And WS_MINIMIZE) = 0) AND ((lWndStyle& And WS_MAXIMIZE) = 0) THEN
                   1251:         XLogFailure "Active window is not minimized or maximized."
                   1252:     ELSE
                   1253:         bogus% = ShowWindow(lhwndTemp%, SW_RESTORE)
                   1254:     END IF
                   1255: 
                   1256: END SUB
                   1257: 
                   1258: 
                   1259: 
                   1260: '
                   1261: ' XSizeActiveWindow(iXPixels, iYPixels, fAbsOrRel)
                   1262: '
                   1263: ' Description:
                   1264: '       Moves the bottom-right corner of the active window
                   1265: '       to new coordiates iXPixels, iYPixels.  IF fAbsOrRel
                   1266: '       is TRUE, the coordiates are absolute.  IF fAbsOrRel
                   1267: '       is FALSE, the coordiates are relative to the current
                   1268: '       position.
                   1269: '
                   1270: ' Parameters:
                   1271: '       iXPixels - X coordinate
                   1272: '       iYPixels - Y coordinate
                   1273: '       IF !fAbsOrRel FALSE, the X,Y coordinates are relative to the
                   1274: '       current mouse coordianates.
                   1275: '
                   1276: ' Returns:
                   1277: '       nothing
                   1278: '
                   1279: ' Example:
                   1280: '       XSizeActiveWindow iXPixels, iYPixels, fAbsOrRel
                   1281: '
                   1282: '
                   1283: '
                   1284: 
                   1285: SUB XSizeActiveWindow (iXPixels%, iYPixels%, fAbsOrRel%) STATIC
                   1286: 
                   1287:     DIM xyTempRect As rect
                   1288:     DIM iTempX%
                   1289:     DIM iTempY%
                   1290:     DIM temphWnd%
                   1291: 
                   1292:     IF fAbsOrRel% THEN
                   1293:         WSetWndSiz GetForegroundWindow(), iXPixels%, iYPixels%
                   1294:     ELSE
                   1295:         ' Find the active window
                   1296:         temphWnd% = GetForegroundWindow
                   1297: 
                   1298:         ' Get the Rect of the active window
                   1299:         GetWindowRect temphWnd%, xyTempRect
                   1300:         ' Determine new X coordinate
                   1301:         iTempX% = ((xyTempRect.wright - 1) - (xyTempRect.wleft)) + iXPixels%
                   1302: 
                   1303:         ' Determine new Y coordinate
                   1304:         iTempY% = ((xyTempRect.bottom - 1) - (xyTempRect.top)) + iYPixels%
                   1305: 
                   1306:         ' size the window
                   1307:         WSetWndSiz GetForegroundWindow(), iTempX%, iTempY%
                   1308: 
                   1309:     END IF
                   1310: END SUB
                   1311: 
                   1312: 
                   1313: '
                   1314: ' XMoveActiveWindow(iXPixels, iYPixels, fAbsOrRel)
                   1315: '
                   1316: ' Description:
                   1317: '       Moves the top-left corner of the active window
                   1318: '       to new coordiates iXPixels, iYPixels.  IF fAbsOrRel
                   1319: '       is TRUE, the coordiates are absolute.  IF fAbsOrRel
                   1320: '       is FALSE, the coordiates are relative to the current
                   1321: '       position.
                   1322: '
                   1323: ' Parameters:
                   1324: '       iXPixels - X coordinate
                   1325: '       iYPixels - Y coordinate
                   1326: '       IF !fAbsOrRel FALSE, the X,Y coordinates are relative to the
                   1327: '       current mouse coordianates.
                   1328: '
                   1329: ' Returns:
                   1330: '       nothing
                   1331: '
                   1332: ' Example:
                   1333: '       XMoveActiveWindow iXPixels, iYPixels, fAbsOrRel
                   1334: '
                   1335: '
                   1336: 
                   1337: SUB XMoveActiveWindow (iXPixels%, iYPixels%, fAbsOrRel%) STATIC
                   1338: 
                   1339:     DIM xyTempRect As Rect
                   1340:     DIM iTempX%
                   1341:     DIM iTempY%
                   1342:     DIM temphWnd%
                   1343: 
                   1344: 
                   1345:     IF fAbsOrRel% THEN
                   1346:         WSetWndPos GetForegroundWindow(), iXPixels%, iYPixels%
                   1347:     ELSE
                   1348:         ' Find the active window
                   1349:         temphWnd% = GetForegroundWindow
                   1350: 
                   1351:         ' Get the Rect of the active window
                   1352:         GetWindowRect temphWnd%, xyTempRect
                   1353: 
                   1354:         ' Determine new X coordinate
                   1355:         iTempX% = xyTempRect.wleft + iXPixels%
                   1356: 
                   1357:         ' Determine new Y coordinate
                   1358:         iTempY% = xyTempRect.top + iYPixels%
                   1359: 
                   1360:         ' move the window
                   1361:         WSetWndPos GetForegroundWindow(), iTempX%, iTempY%
                   1362:     END IF
                   1363: END SUB

unix.superglobalmegacorp.com

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