{
  "disks": {
    "1": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "MSTEST   38$",
              "size": 4374,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTEST   DL$",
              "size": 28971,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTSETUP DL$",
              "size": 8102,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "RBHEAP   DL$",
              "size": 6300,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "README   TXT",
              "size": 30410,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUP    EXE",
              "size": 24624,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUP    IN$",
              "size": 2099,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUP    INI",
              "size": 149,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUP    LST",
              "size": 895,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUP    PC$",
              "size": 31216,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUPRES RE$",
              "size": 7326,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTCTRL DL$",
              "size": 18988,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTDDE  DL$",
              "size": 5593,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTDLG  EX$",
              "size": 25021,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTDLGS DL$",
              "size": 21523,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTDRVR EX$",
              "size": 132474,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTEVNT DL$",
              "size": 44714,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTEXIT EX$",
              "size": 3266,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTHOST DL$",
              "size": 13554,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTSCN  EX$",
              "size": 24645,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTSCRN DL$",
              "size": 23439,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTSTAT DL$",
              "size": 12458,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTTRAP DL$",
              "size": 4727,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTUI   DL$",
              "size": 32781,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTUIED EX$",
              "size": 128483,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "WBEXEC20 DL$",
              "size": 58704,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "WBRUN20  EX$",
              "size": 11200,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "WINBAS20 DL$",
              "size": 68488,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "WINHELP  EX$",
              "size": 163861,
              "date": "1992-03-02",
              "time": "10:45"
            },
            {
              "name": "WINHELP  HL$",
              "size": 20313,
              "date": "1992-03-02",
              "time": "10:45"
            },
            {
              "name": "H",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:16"
            },
            {
              "name": "INCLUDE",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:16"
            },
            {
              "name": "LIB",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:16"
            },
            {
              "name": "SYSTEM",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:16"
            }
          ]
        },
        {
          "path": "/H",
          "files": [
            {
              "name": "TESTCTRL $",
              "size": 3901,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTDLGS $",
              "size": 1249,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTEVNT $",
              "size": 1980,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTHOST $",
              "size": 1177,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTSCRN $",
              "size": 1515,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTSTAT $",
              "size": 1201,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/INCLUDE",
          "files": [
            {
              "name": "DECLARES IN$",
              "size": 106,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FASTTEST IN$",
              "size": 10667,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTEST   IN$",
              "size": 24841,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "WINAPI   IN$",
              "size": 48002,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/LIB",
          "files": [
            {
              "name": "TESTCTRL LI$",
              "size": 4563,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTDLGS LI$",
              "size": 1185,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTEVNT LI$",
              "size": 1579,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTHOST LI$",
              "size": 727,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTSCRN LI$",
              "size": 1074,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTSTAT LI$",
              "size": 772,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/SYSTEM",
          "files": [
            {
              "name": "COMMDLG  DL$",
              "size": 49076,
              "date": "1992-05-19",
              "time": "11:27"
            },
            {
              "name": "CTL3D    DL$",
              "size": 9323,
              "date": "1993-04-05",
              "time": "1:00"
            },
            {
              "name": "DDEML    DL$",
              "size": 22366,
              "date": "1992-03-02",
              "time": "10:44"
            },
            {
              "name": "SHELL    DL$",
              "size": 25821,
              "date": "1992-03-02",
              "time": "10:45"
            },
            {
              "name": "TOOLHELP DL$",
              "size": 10153,
              "date": "1992-06-15",
              "time": "10:59"
            },
            {
              "name": "VER      DL$",
              "size": 6307,
              "date": "1992-03-02",
              "time": "10:46"
            }
          ]
        }
      ]
    },
    "2": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "MSTEST   HL$",
              "size": 655258,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTVIEW  DL$",
              "size": 3406,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "PROBRPT  WR$",
              "size": 1960,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTDRVR HL$",
              "size": 130434,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTOOLS HL$",
              "size": 79782,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTUIED HL$",
              "size": 148801,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "VIEWPORT EX$",
              "size": 8387,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        }
      ]
    },
    "3": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "V2SAMPLE",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            }
          ]
        },
        {
          "path": "/V2SAMPLE",
          "files": [
            {
              "name": "DDE",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "DOCSMPL",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "DOSVM",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "DRAGDROP",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "EXENAME",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "GAMES",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "MSTDRVR",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "SAMPLRUN",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "SETUP",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "TESTTALK",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "TESTUI",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "TRAPS",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            },
            {
              "name": "TSTSUITE",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            },
            {
              "name": "WINFO",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/DDE",
          "files": [
            {
              "name": "ADVISE",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "CLIENT",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "SERVER",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/DDE/ADVISE",
          "files": [
            {
              "name": "DDEADV   MS$",
              "size": 1734,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/DDE/CLIENT",
          "files": [
            {
              "name": "DDELIST  MS$",
              "size": 650,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "EXCEL1   MS$",
              "size": 2422,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "PMLIST   IN$",
              "size": 469,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "PMLIST   MS$",
              "size": 5367,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "PMLIST   RE$",
              "size": 444,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/DDE/SERVER",
          "files": [
            {
              "name": "CLIENT   MS$",
              "size": 1093,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SERVER   MS$",
              "size": 3605,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/DOCSMPL",
          "files": [
            {
              "name": "TESTCTRL MS$",
              "size": 1409,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTDLGS MS$",
              "size": 1162,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTEVNT MS$",
              "size": 1835,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TESTSCRN MS$",
              "size": 1139,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/DOSVM",
          "files": [
            {
              "name": "DOSVM    IN$",
              "size": 545,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DOSVM    MS$",
              "size": 6658,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DOSVM    RE$",
              "size": 549,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DOSVMD   IN$",
              "size": 906,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/DRAGDROP",
          "files": [
            {
              "name": "DRAGDROP IN$",
              "size": 289,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DRAGDROP MS$",
              "size": 3269,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DRAGDROP RE$",
              "size": 685,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/EXENAME",
          "files": [
            {
              "name": "EXENAME  IN$",
              "size": 330,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "EXENAME  MS$",
              "size": 2869,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/GAMES",
          "files": [
            {
              "name": "FLING",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "GORILLA",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            },
            {
              "name": "MINESWP",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:19"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/GAMES/FLING",
          "files": [
            {
              "name": "FLING    IC$",
              "size": 356,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FLING    IN$",
              "size": 532,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FLING    MS$",
              "size": 10243,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FLING    PC$",
              "size": 17049,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FLING    RE$",
              "size": 7300,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FLING1   BM$",
              "size": 1071,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FLING2   BM$",
              "size": 1210,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FLING3   BM$",
              "size": 2250,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FLING4   BM$",
              "size": 1967,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/GAMES/GORILLA",
          "files": [
            {
              "name": "GORILLA  IC$",
              "size": 397,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "GORILLA  IN$",
              "size": 386,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "GORILLA  MS$",
              "size": 11243,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "GORILLA  PC$",
              "size": 18477,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "GORILLA  RE$",
              "size": 1667,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/GAMES/MINESWP",
          "files": [
            {
              "name": "MINESWP  MS$",
              "size": 4775,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/MSTDRVR",
          "files": [
            {
              "name": "MSTDRVR  DL$",
              "size": 4015,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTDRVR  HL$",
              "size": 48911,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTDRVR  IN$",
              "size": 1976,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTDRVR  MS$",
              "size": 62126,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTDRVR  PC$",
              "size": 49987,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTDRVR  RE$",
              "size": 2697,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTDRVR  TX$",
              "size": 2178,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTDRVRD IN$",
              "size": 6687,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSTDRVRS EX$",
              "size": 2728,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TEMPLATE IN$",
              "size": 1922,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TEMPLATE MS$",
              "size": 839,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/SAMPLRUN",
          "files": [
            {
              "name": "SAMPLRUN IC$",
              "size": 391,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SAMPLRUN IN$",
              "size": 234,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SAMPLRUN MS$",
              "size": 2685,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SAMPLRUN PC$",
              "size": 12643,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SAMPLRUN RE$",
              "size": 325,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/SETUP",
          "files": [
            {
              "name": "SETUP    IN$",
              "size": 3309,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUP    MS$",
              "size": 22110,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUPINF TX$",
              "size": 2043,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUPRES IN$",
              "size": 1189,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SETUPRES RE$",
              "size": 6966,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTTALK",
          "files": [
            {
              "name": "DISTTEST",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "MSTCHAT",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "SIMPCHAT",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTTALK/DISTTEST",
          "files": [
            {
              "name": "HOSTDRVR MS$",
              "size": 5671,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "STATDRVR MS$",
              "size": 3024,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTTALK/MSTCHAT",
          "files": [
            {
              "name": "HOSTCHAT MS$",
              "size": 1914,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "IODLG    IN$",
              "size": 314,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "IODLG    RE$",
              "size": 248,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "LOGIN    IN$",
              "size": 252,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "LOGIN    RE$",
              "size": 217,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "STATCHAT MS$",
              "size": 3871,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTTALK/SIMPCHAT",
          "files": [
            {
              "name": "SIMPHOST MS$",
              "size": 1267,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SIMPSTAT MS$",
              "size": 1441,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI",
          "files": [
            {
              "name": "APPMENU",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "DLGAPPEX",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "DLGBOX",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "DLGBOXEX",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:20"
            },
            {
              "name": "LOADICON",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            },
            {
              "name": "SYSICON",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            },
            {
              "name": "SYSMENU",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            },
            {
              "name": "UIEUSER",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI/APPMENU",
          "files": [
            {
              "name": "APPMENU  IN$",
              "size": 279,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "APPMENU  MS$",
              "size": 1314,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "APPMENU  RE$",
              "size": 801,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI/DLGAPPEX",
          "files": [
            {
              "name": "DLGAPPEX IN$",
              "size": 365,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DLGAPPEX MS$",
              "size": 2561,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DLGAPPEX RE$",
              "size": 753,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI/DLGBOX",
          "files": [
            {
              "name": "DLGBOX   IN$",
              "size": 354,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DLGBOX   MS$",
              "size": 1752,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DLGBOX   RE$",
              "size": 338,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI/DLGBOXEX",
          "files": [
            {
              "name": "DLGBOXEX IN$",
              "size": 160,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DLGBOXEX MS$",
              "size": 2461,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DLGBOXEX RE$",
              "size": 294,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI/LOADICON",
          "files": [
            {
              "name": "LOADICON IN$",
              "size": 194,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "LOADICON MS$",
              "size": 1445,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "LOADICON RE$",
              "size": 804,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI/SYSICON",
          "files": [
            {
              "name": "SYSICON  IN$",
              "size": 315,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SYSICON  MS$",
              "size": 1551,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SYSICON  RE$",
              "size": 900,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI/SYSMENU",
          "files": [
            {
              "name": "SYSMENU  IN$",
              "size": 315,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SYSMENU  MS$",
              "size": 1454,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "SYSMENU  RE$",
              "size": 888,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TESTUI/UIEUSER",
          "files": [
            {
              "name": "UIEUSER  IN$",
              "size": 151,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "UIEUSER  RE$",
              "size": 280,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TRAPS",
          "files": [
            {
              "name": "CREATWND MS$",
              "size": 1041,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "DBGMSG   MS$",
              "size": 888,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "KEYTRAP  MS$",
              "size": 712,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MSGTRAP  MS$",
              "size": 656,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "README   TX$",
              "size": 2644,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "HOOKTRAP",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TRAPS/HOOKTRAP",
          "files": [
            {
              "name": "CBTHOOK  MS$",
              "size": 762,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "GETMSG   MS$",
              "size": 651,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "HOOKTRAP $",
              "size": 4357,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "HOOKTRAP DE$",
              "size": 547,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "HOOKTRAP DL$",
              "size": 20528,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MAKEFILE MA$",
              "size": 399,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "MOUSE    MS$",
              "size": 616,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "README   TX$",
              "size": 883,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TSTSUITE",
          "files": [
            {
              "name": "DRIVER   MS$",
              "size": 2175,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "NOTEPAD  IN$",
              "size": 1779,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "TSTSUITE IN$",
              "size": 4924,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "EDITMENU",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            },
            {
              "name": "FILEMENU",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            },
            {
              "name": "SRCHMENU",
              "dir": true,
              "date": "1994-01-28",
              "time": "16:21"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TSTSUITE/EDITMENU",
          "files": [
            {
              "name": "EDIT001  MS$",
              "size": 1146,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "EDIT002  MS$",
              "size": 1060,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TSTSUITE/FILEMENU",
          "files": [
            {
              "name": "FILE001  MS$",
              "size": 1355,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "FILE002  MS$",
              "size": 1412,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/TSTSUITE/SRCHMENU",
          "files": [
            {
              "name": "SRCH001  MS$",
              "size": 1419,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        },
        {
          "path": "/V2SAMPLE/WINFO",
          "files": [
            {
              "name": "WINFO    IN$",
              "size": 816,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "WINFO    MS$",
              "size": 3999,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "WINFO    PC$",
              "size": 13802,
              "date": "1993-04-21",
              "time": "1:00"
            },
            {
              "name": "WINFO    RE$",
              "size": 1271,
              "date": "1993-04-21",
              "time": "1:00"
            }
          ]
        }
      ]
    },
    "4": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "WIN31WH  0H$",
              "size": 1098700,
              "date": "1992-03-23",
              "time": "4:26"
            }
          ]
        }
      ]
    },
    "5": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "WIN31WH  1H$",
              "size": 1144227,
              "date": "1992-03-23",
              "time": "4:26"
            }
          ]
        }
      ]
    },
    "6": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "WIN31WH  2H$",
              "size": 843422,
              "date": "1992-03-23",
              "time": "4:26"
            }
          ]
        }
      ]
    }
  },
  "desc_file": "README.TXT",
  "desc_text": "\t\t\t\tREADME.TXT\r\n\r\n\t\tRelease notes for Microsoft Test, Version 2.0\r\n\t\t   (C) Copyright Microsoft Corporation, 1993\r\n\r\n\tThis document contains release notes for version 2.0 of \r\n\tMicrosoft Test. The information in this document and in the \r\n\tonline Help is more up-to-date than that in the books.\r\n\r\n========\r\nCONTENTS\r\n========\r\n\r\n\tPart\tDescription\r\n\t----    -----------\r\n\r\n\t1\tDocumentation Errata and Additions\r\n\t  a\t  Microsoft Test User's Guide\r\n\t  b\t  Microsoft Test User Interface Editor User's Guide\r\n\t2\tNew Dynamic-Link Library Procedures\r\n\t\t  New TESTCTRL.DLL Procedures\r\n\t\t  New TESTDLGS.DLL Procedures\r\n\t\t  New TEST TALK Procedures\r\n\t\t  New TESTUIL.DLL Procedures\t  \r\n\t3\tEnhanced Functionality\r\n\t\t  Test Dialogs\r\n\t\t  User Interface Editor\r\n\t\t  Detecting a Disk in Drive A: or B:\r\n\t\t  RUN Statement/Function\r\n\t\t  NOT (!) Operator\r\n\t\t  Test Trap Additions, Corrections, and Changes\r\n\t4\tMiscellaneous\r\n\t\t  Using MS-DOS Boxes on the Novell Network\r\n\t\t  Test Talk Issues\r\n\t\t  Callbacks as Parameters\r\n\t\r\n===========================================\r\nPART 1:  Documentation Errata and Additions\r\n     a:  Microsoft Test User's Guide\r\n===========================================\r\n\r\nTESTDLGS.EXE and TESTSCRN.EXE Filenames\r\n---------------------------------------\r\nPlease note the following changes:\r\n\tTESTDLGS.EXE was renamed to TESTDLG.EXE\r\n\tTESTSCRN.EXE was renamed to TESTSCN.EXE\r\n\r\nThese filenames were changed so that the .EXE files did not have \r\nthe same name as the dynamic link libraries (DLLs) TESTDLGS and\r\nTESTSCRN. When the names were the same, you couldn't run the \r\n.EXE if the DLL was already loaded. This situation occurred when \r\nyou ran a script that called a DLL, stopped it at a breakpoint, \r\nand then tried to run the .EXE.\r\n\r\nPage 58, Compiling Your Script\r\n------------------------------\r\nBefore the sentence located at the end of the second paragraph \r\nin this section that says:\r\n\r\n\tYou can run your pcode file by using WBRUN20.EXE \r\n\tand passing it the pcode filename.\r\n\r\nInsert the following paragraphs:\r\n\r\n\tTo run a pcode file, the following files must \r\n\tbe present:\r\n\r\n   \t\tThe .PCD file\r\n   \t\tWBRUN20.EXE\r\n   \t\tWBEXEC20.DLL\r\n   \t\tRBHEAP.DLL\r\n   \t\tDLLs that you call from your script \r\n\t\t\t(TESTCTRL, TESTEVNT, etc.)\r\n\r\n\tUnder Windows 3.0, the DLLs must be in either the current \r\n\tdirectory, the WINDOWS or WINDOWS\\SYSTEM directory, or a \r\n\tdirectory in your path. Under Windows 3.1, the DLLs can be \r\n\tin any of the above directories, and can also be in the \r\n\tdirectory where WBRUN20.EXE is located.\r\n\r\nPage 86, Saving a Reference Image to a File\r\n-------------------------------------------\r\nAdd the following note after step 4 in the \"To save an image \r\nto a file\" procedure:\r\n\t\r\n\tNOTE: Screen files cannot contain images that were \r\n\tcaptured using different video modes. If you captured \r\n\tand saved screen images in a file using one video mode,\r\n\tand try to capture and save a new screen image to the \r\n\tsame file using a different video mode, an \"Invalid \r\n\tScreen Mode\" error occurs. See Appendix B for a list \r\n\tof video modes.\r\n\r\nPage 105, STRING *, Fixed-Length\r\n--------------------------------\r\nAdd the following paragraphs:\r\n\r\n\tThe maximum size of a fixed-length string is 32767 \r\n\tbytes. If this size is exceeded, an 'Invalid Size for \r\n\tFixed-Length String' error occurs during compilation.\r\n\r\n   \tDIM S AS STRING * 32767 'this is valid\r\n   \tDIM Y AS STRING * 32768 'this fails with an error\r\n\r\n\tNOTE: this limitation does not apply to variable-length \r\n\tstrings.\r\n\r\nPage 111, User-Defined Data Types\r\n---------------------------------\r\nAdd the following paragraph and examples after the TYPE LOGRECORD \r\nexample on this page: \r\n\t\r\n\tThe maximum size of a user-defined variable is 32,767 bytes. \r\n\tIf this size is exceeded, an \"overflow\" error occurs during \r\n\tcompilation. In the following examples Type1 is defined having \r\n\tthe maximum size. Type2 produces an \"overflow\" error.\r\n   \r\n  \tTYPE Type1\r\n      \t\tx as string * 32767\t'The maximum size\r\n   \tEND TYPE\r\n\r\n   \t'This will produce an \"overflow\" error\r\n   \tTYPE Type2\r\n      \t\tx as string * 32767\r\n      \t\ty as string * 2\r\n   \tEND TYPE\r\n\r\nPage 212, Monitoring a Station's Status\r\n---------------------------------------\r\nThe following status code needs to be added to the list in this\r\nsection:\r\n\r\n\tStatus Code\t\tValue\tDescription\r\n\t-------------------------------------------------------------\r\n\tST_RECONNECTED\t\t5\tIf a station has disconnected \r\n\t\t\t\t\tfrom the host and attempts to \r\n\t                                reconnect, its old entry in the \r\n\t                                station list is updated \r\n\t                                to this status. \r\n\r\nPage 324 and 325, SendData and SendDataFile Procedures\r\n-----------------------------------------------------\r\nThe syntax for the DECLARE FUNCTION statements for these two \r\nprocedures is missing a parameter (wType%). These statements\r\nshould look like this:\r\n\r\n\tDECLARE FUNCTION SendData LIB \"TESTHost.dll\" (StationNum%, \r\n\t  wType%, lpData AS ANY, DSize&) AS INTEGER\r\n\r\n\tDECLARE FUNCTION SendDataFile LIB \"TESTHost.dll\" (StationNum%, \r\n\t  wType%, FileName$) AS INTEGER\r\n\t\r\n\twType%\r\n\t  Communicates to the station what kind of data you are sending. \r\n  \t  For example, if you are sending a script to be executed, \r\n\t  set this parameter to DT_SCRIPT. When the station gets the data, \r\n\t  this parameter determines what gets returned by the \r\n\t  GetDataType() function on the station side.\r\n\r\nPage 388, Return Values\r\n-----------------------\r\nAdd the following Error messages to the end of the table on this page \r\n(Value 29 is replaced):\r\n\r\n\tError message\t\t\tValue\r\n\t-------------------------------------\r\n   \tERR_CANT_MOVE_WND\t\t29\r\n  \tERR_CANT_SIZE_WND\t\t30\r\n\tERR_CANT_ADJ_SIZE_POS_WND\t31\r\n\tERR_CANT_FIND_LBBOX\t\t32\r\n\tERR_NOT_OPERATOR_NOT_ALLOWED\t33\r\n\tERR_CANT_ADD_NULL_ITEM\t\t34\r\n\tERR_BAD_POINTER\t\t\t35\r\n   \tMAX_ERROR\t\t\t36\r\n\r\nPages 393-397, WFndWnd and WFndWndWait Procedures (TESTCTRL.DLL)\r\n----------------------------------------------------------------\r\nAdd the following wFlags to the list starting on page 393:\r\n\r\n\tFW_MAXIMIZE\tIf a window is found, it is maximized.\r\n\tFW_MINIMIZE\tIf a window is found, it is minimized.\r\n\tFW_RESTORE\tIf a window is found, it is restored.\r\n\tFW_DIALOG\tFind dialog boxes (class #32770) only.\r\n\tFW_DIALOGOK\tFind either windows or dialog boxes\r\n\r\nAdditional Comments:\r\n\tThe first 3 wFlags in this list do not imply FW_FOCUS. \r\n\tIf the window is an MDI window, it can be maximized, \r\n\tminimized, or restored without automatically gaining the \r\n\tfocus. Although FW_MAXIMIZE and FW_RESTORE do not imply \r\n\tFW_FOCUS, top-level windows will get the focus because \r\n\tof the way Windows works.\r\n\r\n\tSome applications put up dialog boxes with the same \r\n\tcaption as the application's main window. If this happens, \r\n\tyou may find the wrong window if you use WFndWnd(). \r\n\tInstead, use WFndWndC() and specify a class when locating \r\n\twindows in these cases.\r\n\r\n\tTo make things easier and more readable when looking for \r\n\ta dialog, instead of using WFndWndC() and specifying the \r\n\tclass name \"#32770\" (the dialog class), you can use \r\n\tWFndWnd() and use the FW_DIALOG flags.\r\n\r\nPage 394, WFndWnd Procedure (TESTCTRL.DLL)\r\n------------------------------------------\r\no  In the description of FW_IGNOREFILE at the top of this page,\r\n   replace the word \"following\" with \"preceding.\"\r\n\r\no  In the first paragraph in the Comments section on this page, \r\n   after the first sentence, add the following:\r\n\r\n\tNULL and an empty string (\"\") for the lpszCaption$\r\n\tparameter are not treated the same:\r\n\r\n\t (\"\")\tThe window must have an empty caption to match.\r\n\t NULL\tThe window caption/text is ignored; can be anything.\r\n\r\nPage 475, FILELIST Statement\r\n----------------------------\r\nAdd this note before the \"Examples\" heading:\r\n\r\n\tNOTE: The maximum number of files in the file list is 65,000. \r\n\tIf a FILELIST ADD statement causes the file list to exceed \r\n\tthis size, a run-time error 11, \"Filelist processing error,\"\r\n\toccurs. The file list will contain only the first 65,000\r\n\tfiles added to it. No more files can be added until a\r\n\tFILELIST REMOVE or a FILELIST CLEAR statement is used.\r\n\r\nPage 488, LEN Function\r\n----------------------\r\nAdd the following paragraphs to the \"Remarks\" section:\r\n\r\n\tIf <variablename> is a user-defined type, LEN returns \r\n\tthe size of the TYPE structure. For example:\r\n\r\n   \tTYPE MyType\r\n      \t\telem1 As Integer\r\n      \t\telem2 As String * 10\r\n   \tEND TYPE\r\n\r\n   \tLEN(MyType) \t\t\t'returns 12.\r\n\r\n\tIf <variablename> is an array, LEN returns the size of an \r\n\tindividual array element. For example:\r\n\r\n   \tDIM array(100) AS DOUBLE  \t\r\n\tLEN(array) \t\t\t'returns 8.\r\n\r\nPage 494, MSGBOX Statement\r\n--------------------------\r\no  MB_APPLMODAL Description\r\n   Add this note to the description in Table 9.4:\r\n\r\n\tNOTE: When you set the MB_APPLMODAL flag, the \r\n\tmessage box is modal to the script window for \r\n\tthat script, not to the Test Driver window in \r\n\twhich you are running the script. \r\n\r\no  The example after the paragraph following Table 9.4 is not correct: \r\n\r\n\tMB_OKCANCEL + MB_ICONSTOP + MB_DEFBUTTON1 + MB_APPLMODAL\r\n\r\n   It should look like this:\r\n\r\n   \tMB_OKCANCEL OR MB_ICONSTOP OR MB_DEFBUTTON1 OR MB_APPLMODL\r\n\r\n\r\no  A new flag has been added for the MSGBOX statement and function. \r\n   It is:\r\n\r\n\tSymbolic constant\tValue\tDescription\r\n\t-----------------------------------------------------------\r\n\tMB_NOBEEP  \t\t32,768\tTurns off the system beep \r\n\t\t\t\t\tthat sounds when you choose\r\n\t\t\t\t\tan icon and its dialog box \r\n\t\t\t\t\tappears. \r\n\t\t\t\t\r\nPage 501, OPTION BASE Statement\r\n-------------------------------\r\nAdditional Remarks:\r\n\r\n\tThe Microsoft Test OPTION BASE statement is different in \r\n\tsome ways from the OPTION BASE statement in QuickBasic and \r\n\tVisual Basic. In QuickBasic and Visual Basic, you can use \r\n\tOPTION BASE only once in a program. Also, you must use it \r\n\tbefore any arrays are dimensioned.\r\n\r\n\tThe Microsoft Test OPTION BASE is a toggle switch. You\r\n\tcan use it more than once. For example:\r\n\r\n   \t\tDIM array1(10) AS INTEGER  'Defaults to base 0\r\n   \t\tOPTION BASE 1\r\n   \t\tDIM array2(20) AS SINGLE\r\n   \t\tOPTION BASE 0\r\n   \t\tDIM array3(30) AS DOUBLE\r\n \r\nPage 501, OPTION INTEGER Statement\r\n----------------------------------\r\nThe OPTION INTEGER statement affects the output of the RND function\r\nand the TIMER function as follows:\r\n\r\n   \tIf OPTION INTEGER is used, RND generates a random integer \r\n\tbetween 1 and 32,767. Otherwise it generates a random number \r\n\tbetween 0 and 1.\r\n\r\n   \tIf OPTION INTEGER is used, TIMER returns a long integer \r\n\tcontaining the number of milliseconds since the system started. \r\n\tOtherwise, it returns a double-precision floating-point value \r\n\tcontaining the number of seconds since the system started.\r\n\r\n==========================================================\r\nPART 1:  Documentation Errata and Additions\r\n     b:  Microsoft Test User Interface Editor User's Guide\r\n==========================================================\r\n\r\nPage 101, MSTLoadIcon Function Syntax\r\n-------------------------------------\r\nAdd the following information to the paragraph that starts \"icon ID\r\nis the resource ID number... \":\r\n\r\n\tTo get the resource ID number of an icon\r\n\t1.  From the Icons dialog box, select an icon.\r\n\t2.  Press F2.\r\n\t    The resource ID number and the icon is displayed.\r\n\r\n\r\n============================================\r\nPART 2:  New Dynamic-Link Library Procedures\r\n============================================\r\nThe procedures in this section are \"new\" because they were created \r\nafter the books went to press.\r\n\r\nNew TESTCTRL.DLL Procedures\r\n---------------------------\r\n\r\no  WLabelLen()\r\n\r\n   Included if W_STATIC is defined. \r\n   \r\n   Syntax:\r\n\tDeclare Function WLabelLen Lib \"TestCtrl.DLL\" Alias\r\n        \"WLabelLen\" (hwnd%) AS INTEGER\r\n\r\n   Returns:\r\n\tLength of associated label; zero if no associated label.\r\n\r\n   Comments:\r\n\tWLabelLen() obtains the length of the associated label \r\n\tfor the specified window. hwnd% is the Window to check. \r\n\tIf zero, check the control with the focus. \r\n\r\n\thwnd% must be a child (WS_CHILD) and cannot have a \r\n\tcaption (WS_CAPTION).\r\n\r\no  WLabelText()\r\n\r\n   Included if W_STATIC is defined.\r\n\r\n   Syntax:\r\n\tDeclare Sub WLabelText Lib \"TestCtrl.DLL\" Alias\r\n\t\"WLabelText\" (hwnd%, lpszBuffer$)\r\n     \r\n\tDeclare Function LabelText (hwnd%) AS STRING\r\n\r\n   Returns:\r\n\tNothing.\r\n     \r\n   Comments:\r\n\tWLabelText() obtains the text of the associated label \r\n\tfor the specified window. hwnd% is the Window to check. \r\n\tIf hwnd% is zero, checks the control with the focus. \r\n\tlpszBuffer$ is the buffer for label text.\r\n\r\n\thwnd% must be a child (WS_CHILD) and cannot have a\r\n\tcaption (WS_CAPTION).\r\n\r\nBoth of the above procedures can be used to determine whether a control\r\nhas an associated label. WLabelLen() returns zero if no label, and\r\nLabelText() returns an empty string if no label.\r\n\r\no  WListItem(action)Ex\r\n\r\n   Four new procedures are identical to their non-\"Ex\" counterparts,\r\n   except for the added parameter ixOffset%. \r\n\r\n   Syntax:\r\n\tDeclare Sub WListItemClkEx Lib \"TESTCTRL.DLL\" Alias \r\n        \"WListItemClkEx\" (lpszName$, lpszItem$, ixOffset%)\r\n     \r\n\tDeclare Sub WListItemCtrlClkEx Lib \"TESTCTRL.DLL\" Alias \r\n        \"WListItemCtrlClkEx\" (lpszName$, lpszItem$, ixOffset%)\r\n     \r\n\tDeclare Sub WListItemShftClkEx Lib \"TESTCTRL.DLL\" Alias\r\n        \"WListItemShftClkEx\" (lpszName$, lpszItem$, ixOffset%)\r\n     \r\n\tDeclare Sub WListItemDblClkEx Lib \"TESTCTRL.DLL\" Alias \r\n        \"WListItemDblClkEx\" (lpszName$, lpszItem$, ixOffset%)\r\n\r\n   Comments:\r\n   \tThe value of ixOffset% determines where the item is clicked:\r\n        = 0:  item is clicked in the center of the item rectangle,\r\n\t      zooming is performed to support File Manager-type\r\n\t      list boxes.\r\n        > 0:  item is clicked at ixOffset% from the left of the item\r\n              rectangle   \r\n        < 0:  item is clicked at ixOffset% from the right of the item\r\n              rectangle\r\n\r\n\r\nNew TESTDLGS.DLL Procedures\r\n---------------------------\r\n\r\no  SetMatchPreferences()\r\n\r\n   Syntax:\r\n\tDeclare Sub SetMatchPreferences (ExDlg%, FzDlg%, ExMenu%, FzMenu%)\r\n\r\n\tCONST MATCH_TEXT     = 1 'Text\r\n\tCONST MATCH_CASETEXT = 2 'Text, case insensitive\r\n\tCONST MATCH_CLASS    = 4 'Class name\r\n\tCONST MATCH_STATE    = 8 'State\r\n\tCONST MATCH_STYLE    = 16 'Style\r\n\tCONST MATCH_RECT     = 32 'Rectangle\r\n\tCONST MATCH_ALL      = 63 'Match all\r\n\r\n   Comments:\r\n\tThis procedure sets the criteria for a Test Dialogs comparison.\r\n     \tThe integer for each comparison type is some combination of the\r\n     \tMATCH_ flags. The default state is equivalent to the following:\r\n\t\r\n\tMATCH_ALL \t\t\t'Exact, Dialogs  \r\n\tMATCH_CLASS OR MATCH_STATE  \t'Fuzzy, Dialogs\r\n\tMATCH_TEXT OR MATCH_CASETEXT OR MATCH_STATE  'Exact, Menus\r\n\tMATCH_TEXT OR MATCH_CASETEXT  \t'Fuzzy, Menus\r\n\r\no  GetMatchPreferences()\r\n\r\n   Syntax:\r\n\tDeclare Sub GetMatchPreferences (ExDlg AS POINTER TO INTEGER,\r\n\t\t\t\t\tFzDlg AS POINTER TO INTEGER, \r\n\t\t\t\t\tExMenu AS POINTER TO INTEGER,\r\n\t\t\t\t\tFzMenu AS POINTER TO INTEGER)\r\n\r\n   Comments:\r\n     This procedure gets the criteria for a Test Dialogs comparison.\r\n     The MATCH_ flags are the same as defined for SetMatchPreferences().\r\n\r\n\r\nNew Test Talk Procedures\r\n------------------------\r\n\r\no  SetLanaNum()\r\n\r\n   If you have more than one LAN adapter or protocol on your\r\n   machine, you can choose which adapter or protocol to use when\r\n   running Test Talk. Both Test Talk DLLs (TESTHOST.DLL and\r\n   TESTSTAT.DLL) contain this new procedure. \r\n\r\n   Syntax:\r\n\tDECLARE FUNCTION SetLanaNum(LNum%) AS INTEGER\r\n\r\n   Return Values:\r\n \tSetLanaNum() returns TRUE if the lananum can be used; \r\n\tFALSE if not. If the function returns FALSE, it means either \r\n\tthat there is no adapter or LAN protocol for that lananum, \r\n\tor that the adapter or LAN protocol exists and doesn't\r\n\tsupport NETBIOS. \r\n\r\n   Comments:\r\n\tThis function checks the specified lananum to see whether it\r\n\tsupports NETBIOS. If it does, then that lananum is used by\r\n\tTest Talk from then on. \r\n\r\n\tWhen the Test Talk DLLs load, they automatically search the first\r\n\teight lananums (0 - 7) for the first one that supports NETBIOS.\r\n\tThe first one found is used unless you change it by using\r\n\tSetLanaNum().\r\n\r\n\r\no  NetBIOSAvailable\r\n\r\n   This procedure is included in both TESTSTAT.DLL and TESTHOST.DLL. It\r\n   checks the first eight (0 - 7) lananums for the first one that\r\n   supports NETBIOS. The first one found is used by Test Talk unless\r\n   you change it with SetLanaNum(). If NetBIOSAvailable returns\r\n   FALSE, it means that no adapter or LAN protocol on the machine\r\n   supports NETBIOS.\r\n\r\n\r\nNew TESTUI.DLL Procedures\r\n-------------------------\r\n\r\nMSTSysMenu()\r\n\r\n   Included if either W_MENU or TESTUI is defined.\r\n\r\n   Syntax:\r\n\tDeclare Sub MSTSysMenu Lib \"TESTUI.DLL\" Alias\r\n        \"MSTSysMenu\" (hwnd%, iMenuType%)\r\n\r\n     \tConst MST_GLOBAL = 1\r\n     \tConst MST_APP    = 2\r\n     \tConst MST_WINDOW = 4 (only applies to User Interface Editor's\r\n\t                      test mode windows)\r\n\r\n   Comments:\r\n\tMSTSysMenu() drops the specified sysmenu on the specified window.\r\n\thwnd% is the Window to check. If zero, check the active window.\r\n\tiMenuType% is the Type of the sysmenu. It can be any one of the\r\n\tfollowing:\r\n\t\tMST_GLOBAL\r\n\t\tMST_APP\r\n\t\tMST_WINDOW\r\n\r\n\tIf the window doesn't have the specified sysmenu installed, nothing\r\n\thappens. If the window has the specified sysmenu and it is not the\r\n\tactive window, it is made the active window.\r\n\r\nMSTSysMenuExists()\r\n\r\n   Included if either W_MENU or TESTUI is defined.\r\n\r\n   Syntax:\r\n\tDeclare Function MSTSysMenuExists Lib \"TESTUI.DLL\" Alias\r\n        \"MSTSysMenuExists\" (hwnd%) AS INTEGER\r\n\r\n   Return Values:\r\n\tThe function returns a bit pattern:\r\n\r\n\t\tbit 0\t1 if a global sysmenu is installed\r\n\t\tbit 1\t1 if an application-specific sysmenu is installed\r\n\t\tbit 2\t1 if a window-specific sysmenu is installed\r\n \r\n        (NOTE: Bit 2 only applies to the User Interface Editor when in \r\n\ttest mode.)\r\n\r\n   Comments:\r\n\tMSTSysMenuExists() determines if the specified window has an\r\n\tMSTSysMenu installed. hwnd% is the Window to check. If zero, \r\n\tcheck the active window.\r\n \r\n   Examples: \r\n\tMSTSysMenuExists() returns the following values:\r\n\r\n\t\tZero\t\tIf no sysmenus are installed.\r\n\t \tMST_GLOBAL(1)\tIf only a global sysmenu is installed.\r\n\t\tMST_APP(2)\tIf only an application-specific sysmenu \r\n\t\t\t\tis installed.\r\n\t\tMST_WINDOW(4)\tIf only a window-specific sysmenu is \r\n\t\t\t\tinstalled.\r\n\t\t3\t\tIf both a global and an application-specific \r\n\t\t\t\tsysmenu are installed.\r\n\r\no  MSTLoadBitmap()\r\n\r\n   Syntax:\r\n\tint = MSTLoadBitmap(bitmap ID, .RES file)\r\n\r\n   Return Value:\r\n\tMSTLoadBitmap returns hBitmap (the bitmap handle) \r\n\twhich is used when calling MSTDestroyBitmap.\r\n\r\n   Comments:\r\n\tSee MSTLoadIcon() on page 100 in the Microsoft Test User Interface\r\n\tEditor User's Guide.\r\n\r\n\tTo get the resource ID number of a bitmap:\r\n\t1.  From the Sysmenu Bitmaps dialog box, select a bitmap.\r\n\t2.  Press F2.\r\n\t    The resource ID number and the bitmap is displayed.\r\n\r\no  MSTDestroyBitmap()\r\n\r\n   Syntax:\r\n\tMSTDestroyBitmap(hBitmap)\r\n\r\n   Comments:\r\n\tSee MSTDestroyIcon() on page 101 in the Microsoft Test User Interface\r\n\tEditor User's Guide.\r\n\r\n\r\n===============================\r\nPART 3:  Enhanced Functionality\r\n===============================\r\n\r\nTest Dialogs\r\n------------\r\n\r\no  Converting Version 1.0 Files\r\n\r\n   Files created using version 1.0 are no longer readable by \r\n   Test Dialogs. To convert 1.0 files to 2.0 format:\r\n\r\n\t1. Use the Test Dialogs user interface to create a new \r\n\t   2.0 file.\r\n\t2. Use the new File.Convert 1.0 File command to import \r\n\t   the contents of the 1.0 file. This converts the dialogs \r\n\t   in the 1.0 file and appends them to the currently open \r\n\t   2.0 file.\r\n\r\n   It is better to recapture the dialogs using version 2.0, than to\r\n   convert them from version 1.0. Version 2.0 stores more information \r\n   about dialog controls making it possible to accurately preview and \r\n   export the dialogs. For this reason comparisons are more reliable. \r\n\r\n   For example, in 1.0 the coordinates for each control were saved\r\n   relative to the screen, and in 2.0 they are saved relative to their\r\n   parent. If the dialog is in a different screen location during\r\n   comparison, the rectangles will still match, provided their position \r\n   relative to the dialog window itself did not change. Also, style bits\r\n   are now stored for the controls, allowing Test Dialogs to distinguish\r\n   different controls within the same class.\r\n\r\n   In version 1.0, the following information was stored:\r\n\t- Text (up to 256 characters)\r\n\t- Class name (to 32 characters). Menu items are of the class\r\n\t  \"MenuItem.\"\r\n \t- State:\r\n   \t   - for class BUTTON, 0 = unchecked, 1 = checked, \r\n\t     2 = undetermined\r\n   \t   - for menu items, return value of GetMenuState() at time \r\n\t     of capture\r\n   \t   - fVisible = TRUE if control is visible\r\n  \t   - fEnabled = TRUE if control is enabled\r\n   \t   - Rectangle. Screen-relative position and size of control\r\n                (GetWindowRect() at time of capture).  \r\n\r\n   In version 2.0, the following information is stored:\r\n \t- Text (up to 2048 characters)\r\n \t- Class name (complete, no enforced length limit)\r\n\t- Style bits:\r\n   \t   - for menus, this field is used to identify pop-up menus;\r\n             contains the number of sub-menus in a pop-up menu\r\n   \t   - for controls and windows, this field contains the \r\n\t     style bits\r\n \t- State:\r\n   \t   - for menu items, return value of GetMenuState() at the time \r\n\t     of capture\r\n   \t   - for controls and windows, this field is a combination of bits:\r\n     \t\t1 if the control is visible\r\n     \t\t2 if the control is enabled\r\n     \t\t4 if the control is a button and is checked\r\n     \t\t8 if the control is a 3-state button and is indeterminate\r\n \t- Font (for controls and windows only). Face name, height, \r\n\t  and weight of font used to paint the control at time of capture.\r\n \t- Rectangle. Position and size of the control relative to its parent.\r\n  \r\no  Text Import and Export\r\n\r\n   You can create a text file in RC-like format, representing dialogs\r\n   and menu structures. You can edit the text file using any text editor,\r\n   and then import it into a dialog file using the import feature.\r\n\r\n   If you capture a menu and then remove items from it using the User\r\n   Interface Editor, you cannot preview or export the menu. If you convert a \r\n   menu from a 1.0 file, the converted menu won't be completely accurate. \r\n   If there are second- or higher-level menus, they will appear as top-level \r\n   menus. To fix this in import/export, do the following:\r\n\r\n\t1. Create a text file.\r\n\t2. Edit the text file to place the higher-level menu in a \r\n\t   pop-up structure.\r\n   \t3. Re-import the menu.\r\n\r\nUser Interface Editor\r\n---------------------\r\n\r\no  Dragging and Dropping Icons\r\n\r\n   In the User Interface Editor, you can add icons to the .RES \r\n   file by dragging them from the Preview window of the Icons \r\n   dialog box and dropping them into the Icons list. \r\n\r\n   To assign an icon to an item, you can drag it from the Icons \r\n   list box and drop it onto a sysmenu item in a sysmenu or onto \r\n   an icon control in a dialog box. \r\n\r\n   Double-clicking to assign the icon still works as before.\r\n\r\no  Using the SPACE key with Icons and Bitmaps\r\n\r\n   In the User Interface Editor, pressing SPACE now acts just like\r\n   double-clicking the left mouse button in the Icons/SysMenu Bitmaps\r\n   dialog to assign icons to icon controls and sysmenu items.\r\n\r\no  New Check Box in \"Arrange.Settings\" Dialog Box \r\n\r\n   The \"Arrange.Settings\" dialog box has an additional check box:\r\n\r\n\tHide &UI-Editor while in test mode\r\n\r\n   The check box is selected by default. If it is selected, only the\r\n   Test Mode Dialog or Test Mode Menu window is visible while in test\r\n   mode. If not selected, UIEditor items are visible as usual.\r\n\r\n   This option prevents access to the properties bar 3D and Iconbar\r\n   check boxes while in test mode. Therefore, a method was added to\r\n   select these check boxes if the User Interface Editor is hidden in\r\n   test mode. When you test a dialog, the following menu item is\r\n   added to the Test Dialogs system menu:\r\n\r\n\t&View 3D 'Toggles 3D mode\r\n\r\n   If the dialog being tested has no system menu, and the User Interface\r\n   Editor is hidden, then you cannot toggle between 3D and 2D.\r\n\r\n   For testing an MSTSysMenu, the following items have been added to the\r\n   Test Windows system menu:\r\n\r\n\tS&ysMenu 'Toggles from iconbar to sysmenu if currently iconbar\r\n\t&Iconbar 'Toggles from sysmenu to iconbar if currently sysmenu\r\n\t&View 3D 'Toggles 3D mode if sysmenu. Grayed if iconbar.\r\n\r\n   For testing an Application menu, no items have been added to the\r\n   system menu. For testing any item, the \"Close\" system menu item for\r\n   the Test Dialog and Menu Test window has been changed to:\r\n\r\n\t&Design Mode Alt+F4\r\n\r\no  Dialog Coordinates and Control Units\r\n\r\n   The coordinates displayed in the upper left of the User Interface\r\n   Editor's properties bar were formerly displayed in dialog units.\r\n   Now dialogs and controls are displayed in either \"dialog units\" or\r\n   \"pixels.\" To change between the two, simply click with the right mouse \r\n   button anywhere in the dialog you are editing.\r\n\r\n\r\nDetecting a Disk in Drive A: or B:\r\n----------------------------------\r\nThe following example shows what happens for each statement,\r\nassuming that drives A: and B: exist, but there is no disk in either\r\ndrive.\r\n\r\n   ON ERROR GOTO ErrorTrap\r\n   print exists(\"A:\") 'This works, since the drive really is there\r\n   print exists(\"B:\") 'This works, since the drive really is there\r\n   chdrive(\"A:\")      'This works, since the drive really is there\r\n   print CURDIR$      'This fails and can be trapped\r\n   OPEN \"A:\\temp.dat\" for output as #1 'This fails and can be trapped\r\n   close\r\n   chdrive(\"B:\")      'This works, since the drive really is there\r\n   print CURDIR$      'This fails and can be trapped\r\n   OPEN \"B:\\temp.dat\" for output as #1 'This fails and can be trapped\r\n   close\r\n   end\r\n\r\n   ErrorTrap:\r\n     PRINT\r\n     PRINT ERRORS\r\n     PRINT \"The drive either does not have a disk\"\r\n     PRINT \"inserted or the drive door is open.\"\r\n     PRINT\r\n     RESUME NEXT\r\n\r\nIn summary:\r\n\r\n1. In version 1.0, a sysmodal dialog would have occurred on the\r\nCURDIR$ statement and the OPEN statement. This error ruins automated\r\ntests since it can't be trapped. This no longer occurs. You can trap\r\nand recover from these errors and your automated tests can continue\r\nunattended.\r\n\r\n2. If you are writing a program that must detect whether a disk is in\r\nthe drive (a setup program, for example), you can do this by using\r\nCURDIR$ or OPEN, trapping the error, then prompting for a disk or\r\ntaking other appropriate action.\r\n\r\n\r\nRUN Statement/Function\r\n----------------------\r\nThe RUN function and statement have been modified to look in WIN.INI\r\nfor file extensions. If you run an extension (for example, .TXT) that\r\nhas an associated .EXE in WIN.INI, RUN will use the associated\r\nextension and pass the string argument to it as the command line.\r\n\r\n\r\nNOT (!) Operator\r\n----------------\r\nUsing the NOT operator (!) with any of the W(type)SetClass procedures\r\nmakes no sense and can actually cause problems. Therefore, this\r\noperator is no longer supported, and will cause the following error\r\nif it is used with any W(type)SetClass procedure.\r\n\r\n\tERR_NOT_OPERATOR_NOT_ALLOWED  = 33\r\n\r\nThe class name \"NOT (!) operator\" is supported only by WFndWndC() and \r\nWFndWndWaitC().\r\n\r\n\r\nTest Trap Additions, Corrections, and Changes\r\n---------------------------------------------\r\nFor information on Microsoft Test event traps, please see the \r\nfile README.TXT in the V2SAMPLE\\TRAPS subdirectory.\r\n\r\n\r\n======================\r\nPART 4:  Miscellaneous\r\n======================\r\n\r\nUsing MS-DOS Boxes on the Novell Network\r\n----------------------------------------\r\nIf you are using the Novell network and experience intermittent\r\nproblems using an MS-DOS box, please change or add the following\r\nline in your SYSTEM.INI 386enh section.\r\n\r\n\t[386enh]\r\n\tTimerCriticalSection = 5000\r\n\r\nThe SYSTEM.INI file is located in your Windows directory.\r\n\r\n\r\nTest Talk Issues \r\n----------------\r\n\r\no  Procedures Fail when NETBIOS is not Available\r\n\r\n   The Test Talk procedurss now fail when NETBIOS is not available. \r\n   There is no error message; the routines simply do nothing or \r\n   functions return FALSE. If Test Talk scripts don't appear to be \r\n   working, you can call NetBIOSAvailable to see if this is the problem. \r\n   See the description of NetBIOSAvailable in Part 2. \r\n\r\no  Declarations are Not Included in DECLARES.INC\r\n\r\n   Including the precompiled header DECLARES.INC (built as part of the\r\n   setup process) in your script doesn't pull in the Test Talk\r\n   declarations and constants. This is because several routines in\r\n   TESTHOST.DLL and TESTSTAT.DLL have the same names. To use \r\n   Test Talk, you must $DEFINE either TESTHOST or TESTSTAT and include\r\n   MSTEST.INC, rather than using DECLARES.INC. You can also build your\r\n   own precompiled headers for the host and station scripts (one header\r\n   for host scripts and another for station scripts).\r\n\r\no  \"Setup\" Functions\r\n\r\n   Three functions in the Test Talk DLLs are considered \"setup\" \r\n   functions:\r\n\r\n\tNetBiosAvailable(), SetLanaNum(), and SetMachineName()\r\n\r\n   You must call these at the beginning of your script, before you call\r\n   JoinGroup(). After you have joined a group, all three of these\r\n   functions will return FALSE. While you belong to a group, you can't\r\n   change the lananum or machine name.\r\n\r\n\r\nCallbacks as Parameters\r\n-----------------------\r\nIf a script gives the address of a routine (a callback) to a DLL\r\nprocedure, and that procedure takes SINGLE or DOUBLE parameter types,\r\nit is the caller's responsibility to pass those values by reference.\r\n\r\nAll TestBasic procedures expect their parameters by reference, which\r\nmeans a pointer to the data rather than the data itself. The only two\r\nexceptions are:\r\n\r\n   INTEGER and LONG, which are special cases to be passed by value\r\n      from callbacks \r\n   STRING, which is converted to a temporary variable-length \r\n      string and essentially passed by value\r\n\r\nIncorrect use of parameters in callbacks will cause your script to crash."
}