|
|
1.1 ! root 1: '*********************************************************************** ! 2: '* RPC SDK Install ! 3: '* Copyright (C) - 1992 by Microsoft ! 4: '* ! 5: '* Written By - Steven Zeck ! 6: '************************************************************************** ! 7: ! 8: '$DEFINE NODEBUG ''Define for script development/debugging ! 9: ! 10: '$INCLUDE 'setupapi.inc' ! 11: '$INCLUDE 'msdetect.inc' ! 12: ! 13: CONST TRUE = -1 ! 14: CONST FALSE = 0 ! 15: ! 16: ''Dialog ID's ! 17: CONST ASKQUIT = 200 ! 18: CONST DlgGetPath = 310 ! 19: CONST HlpGetPath = 311 ! 20: CONST DlgRegPath = 1700 ! 21: CONST HlpRegPath = 1701 ! 22: CONST DlgDosPath = 2000 ! 23: CONST HlpDosPath = 2001 ! 24: CONST EXITFAILURE = 400 ! 25: CONST EXITQUIT = 600 ! 26: ! 27: ' Conditionaly set the dialogs for full SDK versus runtime only. ! 28: ! 29: '$ifndef RUNTIMEINSTALL ! 30: ! 31: CONST DlgWelcome = 100 ! 32: CONST DlgInstallOptions = 800 ! 33: CONST HlpInstallOptions = 801 ! 34: CONST EXITSUCCESS = 700 ! 35: '$else ! 36: CONST DlgWelcome = 2600 ! 37: CONST DlgInstallOptions = 2400 ! 38: CONST HlpInstallOptions = 2401 ! 39: CONST EXITSUCCESS = 2800 ! 40: ! 41: '$endif ! 42: ! 43: CONST DlgSdkOption = 1200 ! 44: CONST HlpSdkOption = 1201 ! 45: CONST DlgRuntimeOption = 1400 ! 46: CONST HlpRuntimeOption = 1401 ! 47: CONST DlgTransport = 1600 ! 48: CONST HlpTransport = 1601 ! 49: CONST DlgNetBiosOptions = 2200 ! 50: CONST HlpNetBiosOptions = 2201 ! 51: CONST DlgNetBiosProtocols = 2300 ! 52: CONST HlpNetBiosProtocols = 2301 ! 53: CONST DlgNewProtocol = 2100 ! 54: CONST HlpNewProtocol = 2101 ! 55: CONST DlgAutoPath = 2400 ! 56: CONST HlpAutoPath = 2401 ! 57: CONST BADPATH = 6400 ! 58: ! 59: ''Bitmap ID ! 60: CONST LOGO = 1 ! 61: ! 62: CONST LanType_LANMAN = 6 ! 63: ! 64: Type LAN_DETECT ! 65: iType As Integer ! 66: iMajor As Integer ! 67: iMinor As Integer ! 68: iRev As Integer ! 69: fEnhance As Integer ! 70: End Type ! 71: ! 72: ! 73: GLOBAL BasePath$ ''Default destination directory. ! 74: GLOBAL RegPath$ ''Default destination directory. ! 75: GLOBAL DosPath$ ''Default destination directory. ! 76: Global CustomInstall ''Custom install option ! 77: Global SrcDir$ ! 78: Global AllTransports ! 79: Global MSDOSRuntime ! 80: Global MSDOSSDK ! 81: Global WindowsRuntime ! 82: Global WindowsSDK ! 83: Global NetBiosTransport ! 84: Global SamplesSDK ! 85: Global HelpFiles ! 86: GLOBAL CUIDLL$ ! 87: GLOBAL HELPPROC$ ! 88: ! 89: DECLARE FUNCTION GetNetConfiguration LIB "mscuistf.dll" (Detect as LAN_DETECT) AS INTEGER ! 90: ! 91: DECLARE Function GetPath(Dialog%, Path$) AS INTEGER ! 92: DECLARE FUNCTION GetTransport() As INTEGER ! 93: DECLARE Sub CopyList(ListIn$, ListOut$, Truncate%) ! 94: DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING ! 95: DECLARE FUNCTION GetCheck (index%) AS INTEGER ! 96: DECLARE FUNCTION BoolToOnOff (Bool%) AS String ! 97: DECLARE FUNCTION GetWinRunSize () AS String ! 98: DECLARE FUNCTION GetWinSize () AS String ! 99: DECLARE FUNCTION GetDosSize () AS String ! 100: DECLARE FUNCTION GetDosRunSize () AS String ! 101: DECLARE FUNCTION GetHlpSize () AS String ! 102: DECLARE FUNCTION GetSampleSize () AS String ! 103: DECLARE FUNCTION GetTransportSize () AS String ! 104: DECLARE FUNCTION FormatSize ()AS String ! 105: ! 106: ! 107: INIT: ! 108: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll ! 109: HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure ! 110: ! 111: SetBitmap CUIDLL$, LOGO ! 112: SetTitle "Microsft RPC SDK Install" ! 113: ! 114: szInf$ = GetSymbolValue("STF_SRCINFPATH") ! 115: if szInf$ = "" THEN ! 116: szInf$ = GetSymbolValue("STF_CWDDIR") + "RPCSDK.INF" ! 117: end if ! 118: ReadInfFile szInf$ ! 119: SetAbout "RPC SDK Install", "By stevez - Version 0.08" ! 120: ! 121: CustomInstall = FALSE ! 122: AllTransports = TRUE ! 123: MSDOSRuntime = TRUE ! 124: ! 125: '$ifndef WINDOWS_ONLY ! 126: MSDOSSDK = TRUE ! 127: '$endif ! 128: ! 129: '$ifndef MSDOS_ONLY ! 130: WindowsRuntime = TRUE ! 131: '$endif ! 132: ! 133: WindowsSDK = TRUE ! 134: NetBiosTransport = TRUE ! 135: SamplesSDK = TRUE ! 136: HelpFiles = TRUE ! 137: ! 138: Dim Detect As LAN_DETECT ! 139: ! 140: if GetNetConfiguration(Detect) then ! 141: ! 142: '$ifdef DEBUG ! 143: mess$ = "Type "+str$(Detect.iType)+" Version: "+str$(Detect.iMajor)+"."+str$(Detect.iMinor)+"."+str$(Detect.iRev) ! 144: if Detect.fEnhance then ! 145: mess$ = mess$ + " Enhanced" ! 146: end if ! 147: ! 148: i% = DoMsgBox(mess$, "NetWork Type Detected", MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 149: '$endif ! 150: if Detect.iType = LanType_LANMAN then ! 151: if Detect.iMajor < 2 or Detect.iMinor < 10 then ! 152: i% = DoMsgBox("You need at least Lanman 2.10 to use RPC", "Lanman Version", MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 153: else ! 154: fLanmanPresent = TRUE ! 155: end if ! 156: end if ! 157: else ! 158: i% = DoMsgBox("Setup didn't detect a supported network on this machine. RPC may not function correctly.", "Network Installation", MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 159: end if ! 160: ! 161: ! 162: AddListItem "NetBiosMap", "nb=0" ! 163: AddListItem "NetBiosMap", "tcpip=0" ! 164: AddListItem "NetBiosMap", "xns=0" ! 165: ! 166: BasePath$ = "C:\c700" ! 167: RegPath$="C:\" ! 168: DosPath$="C:\DOS" ! 169: WinPath$=GetWindowsDir ! 170: SrcDir$ = GetSymbolValue("STF_SRCDIR") ! 171: ! 172: ' If the path contains lanman, make that the default DOS DLL directory. ! 173: ! 174: path$ = Ucase$(GetEnvVariableValue ("PATH"))+";" ! 175: ! 176: i% = 1 ! 177: while i% < len(path$) ! 178: ! 179: iEnd = instr(i%, path$, ";") ! 180: cPath$ = mid$(path, i%, iEnd - i%) ! 181: ! 182: if instr (cPath$, "LANMAN") or instr(cPath$, "\NETPROG") then ! 183: DosPath$ = cPath$ ! 184: end if ! 185: ! 186: if instr (cPath$, "\C700\") then ! 187: BasePath$ = mid$(cPath$, 1, 1)+":\C700" ! 188: end if ! 189: ! 190: i% = iEnd + 1 ! 191: wend ! 192: ! 193: ! 194: '$ifdef DEBUG ! 195: ! 196: SrcDir$ = "U:\install\sdk.new\nsetup" ! 197: ' DosPath$="C:\c700\DOS" ! 198: WinPath$="C:\c700\WIN" ! 199: ! 200: '$endif ''DEBUG ! 201: ! 202: WELCOME: ! 203: sz$ = UIStartDlg(CUIDLL$, DlgWelcome, "FInfoDlgProc", 0, "") ! 204: if sz$ = "CONTINUE" THEN ! 205: UIPop 1 ! 206: else ! 207: GOSUB ASKQUIT ! 208: GOTO WELCOME ! 209: end if ! 210: ! 211: ! 212: OPTION: ! 213: if not CustomInstall then ! 214: SetSymbolValue "RadioDefault", "1" ! 215: else ! 216: SetSymbolValue "RadioDefault", "2" ! 217: end if ! 218: ! 219: RESTART_OPTION: ! 220: sz$ = UIStartDlg(CUIDLL$, DlgInstallOptions, "FRadioDlgProc", HlpInstallOptions, HELPPROC$) ! 221: Index$ = GetSymbolValue("ButtonChecked") ! 222: ! 223: if sz$ = "CONTINUE" THEN ! 224: UIPop(1) ! 225: elseif sz$ = "REACTIVATE" THEN ! 226: GOTO RESTART_OPTION ! 227: else ! 228: GOSUB ASKQUIT ! 229: GOTO OPTION ! 230: end if ! 231: ! 232: if Index$ = "2" then ! 233: CustomInstall = TRUE ! 234: else ! 235: CustomInstall = FALSE ! 236: ! 237: '$ifndef RUNTIMEINSTALL ! 238: i% = GetPath(DlgGetPath, BasePath$) ! 239: '$else ! 240: i% = GetPath(DlgDosPath, DosPath$) ! 241: '$endif ! 242: ! 243: if i% then ! 244: goto FullInstall ! 245: else ! 246: goto OPTION ! 247: end if ! 248: end if ! 249: ! 250: ! 251: '$ifndef RUNTIMEINSTALL ! 252: ! 253: SDK_OPTION: ! 254: ! 255: RemoveSymbol "CheckItemsState" ! 256: RemoveSymbol "DriveStatusText" ! 257: ! 258: AddListItem "CheckItemsState", BoolToOnOff(SamplesSDK ) ! 259: AddListItem "CheckItemsState", BoolToOnOff(MSDOSSDK) ! 260: AddListItem "CheckItemsState", BoolToOnOff(WindowsSDK ) ! 261: AddListItem "CheckItemsState", BoolToOnOff(HelpFiles) ! 262: ! 263: AddListItem "DriveStatusText", BasePath$ ! 264: ! 265: RESTART_SDK_OPTION: ! 266: ! 267: RemoveSymbol "StatusItemsText" ! 268: AddListItem "StatusItemsText", GetDosSize() ! 269: AddListItem "StatusItemsText", GetWinSize() ! 270: AddListItem "StatusItemsText", GetSampleSize() ! 271: AddListItem "StatusItemsText", GetHlpSize() ! 272: ! 273: sz$ = UIStartDlg(CUIDLL$, DlgSdkOption, "FCustInstDlgProc", HlpSdkOption, HELPPROC$) ! 274: ! 275: if sz$ = "CONTINUE" THEN ! 276: UIPop(1) ! 277: ! 278: elseif sz$ = "BACK" THEN ! 279: UIPop(1) ! 280: GOTO OPTION ! 281: ! 282: elseif sz$ = "REACTIVATE" THEN ! 283: GOTO RESTART_SDK_OPTION ! 284: ! 285: elseif sz$ = "PATH" THEN ! 286: ! 287: i% = GetPath(DlgGetPath ,BasePath$) ! 288: ReplaceListItem "DriveStatusText", 1, BasePath$ ! 289: GOTO RESTART_SDK_OPTION ! 290: ! 291: elseif sz$ = "CHK1" THEN ! 292: ! 293: SamplesSDK = GetCheck(1) ! 294: GOTO RESTART_SDK_OPTION ! 295: ! 296: elseif sz$ = "CHK2" THEN ! 297: ! 298: MSDOSSDK = GetCheck(2) ! 299: GOTO RESTART_SDK_OPTION ! 300: ! 301: elseif sz$ = "CHK3" THEN ! 302: ! 303: WindowsSDK = GetCheck(3) ! 304: GOTO RESTART_SDK_OPTION ! 305: ! 306: elseif sz$ = "CHK4" THEN ! 307: ! 308: HelpFiles = GetCheck(4) ! 309: GOTO RESTART_SDK_OPTION ! 310: ! 311: else ! 312: GOSUB ASKQUIT ! 313: GOTO RESTART_SDK_OPTION ! 314: end if ! 315: ! 316: MSDOSRuntime = MSDOSSDK ! 317: WindowsRuntime = WindowsSDK ! 318: ! 319: if MSDOSSDK = FALSE and WindowsSDK = FALSE then ! 320: i% = DoMsgBox("You must chose either MS-DOS or Windows.", "Include and Library Support", MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 321: goto SDK_OPTION ! 322: ! 323: end if ! 324: '$endif ! 325: ! 326: RUNTIME_OPTION: ! 327: ! 328: RemoveSymbol "CheckItemsState" ! 329: ! 330: AddListItem "CheckItemsState", BoolToOnOff(MSDOSRuntime) ! 331: AddListItem "CheckItemsState", BoolToOnOff(WindowsRuntime) ! 332: AddListItem "CheckItemsState", BoolToOnOff(AllTransports) ! 333: ! 334: RESTART_RUNTIME_OPTION: ! 335: ! 336: RemoveSymbol "StatusItemsText" ! 337: ! 338: AddListItem "StatusItemsText", RegPath$ ! 339: AddListItem "StatusItemsText", DosPath$ ! 340: AddListItem "StatusItemsText", GetDosRunSize() ! 341: AddListItem "StatusItemsText", GetWinRunSize() ! 342: AddListItem "StatusItemsText", GetTransportSize() ! 343: ! 344: sz$ = UIStartDlg(CUIDLL$, DlgRuntimeOption, "FCustInstDlgProc", HlpRuntimeOption, HELPPROC$) ! 345: ! 346: if sz$ = "CONTINUE" THEN ! 347: UIPop(1) ! 348: ! 349: elseif sz$ = "BACK" THEN ! 350: UIPop(1) ! 351: ! 352: '$ifndef RUNTIMEINSTALL ! 353: ! 354: GOTO SDK_OPTION ! 355: '$else ! 356: GOTO OPTION ! 357: '$endif ! 358: ! 359: elseif sz$ = "REACTIVATE" THEN ! 360: GOTO RESTART_RUNTIME_OPTION ! 361: ! 362: elseif sz$ = "CHK1" THEN ! 363: MSDOSRuntime = GetCheck(1) ! 364: GOTO RESTART_RUNTIME_OPTION ! 365: ! 366: elseif sz$ = "CHK2" THEN ! 367: WindowsRuntime = GetCheck(2) ! 368: GOTO RESTART_RUNTIME_OPTION ! 369: ! 370: elseif sz$ = "CHK3" THEN ! 371: ! 372: if GetListItem("CheckItemsState", 3) = "ON" then ! 373: AllTransports = TRUE ! 374: else ! 375: AllTransports = FALSE ! 376: RemoveSymbol "SelectedTransports" ! 377: end if ! 378: ! 379: GOTO RESTART_RUNTIME_OPTION ! 380: ! 381: elseif sz$ = "BTN1" THEN ! 382: ! 383: i% = GetPath(DlgRegPath ,RegPath$) ! 384: ReplaceListItem "StatusItemsText", 1, RegPath$ ! 385: ! 386: GOTO RESTART_RUNTIME_OPTION ! 387: ! 388: elseif sz$ = "BTN2" THEN ! 389: ! 390: i% = GetPath(DlgDosPath ,DosPath$) ! 391: ReplaceListItem "StatusItemsText", 2, DosPath$ ! 392: ! 393: GOTO RESTART_RUNTIME_OPTION ! 394: ! 395: elseif sz$ = "BTN3" THEN ! 396: ! 397: ! 398: if GetTransport() and AllTransports then ! 399: Alltransports = FALSE ! 400: ReplaceListItem "CheckItemsState", 3, "OFF" ! 401: end if ! 402: ! 403: GOTO RESTART_RUNTIME_OPTION ! 404: ! 405: else ! 406: GOSUB ASKQUIT ! 407: GOTO RESTART_RUNTIME_OPTION ! 408: ! 409: end if ! 410: ! 411: NetBiosTransport = AllTransports ! 412: ! 413: ' Scan the selected transport for a NetBios name ! 414: ! 415: for i% = 1 to GetListLength("SelectedTransports") step 1 ! 416: ! 417: if instr(GetListItem("SelectedTransports", i%), "NetBios") then ! 418: NetBiosTransport = TRUE ! 419: end if ! 420: next ! 421: ! 422: ! 423: if not NetBiosTransport then ! 424: goto FullInstall ! 425: end if ! 426: ! 427: NETBIOS: ! 428: SetSymbolValue "RadioDefault", "1" ! 429: ! 430: RESTART_NETBIOS_OPTION: ! 431: sz$ = UIStartDlg(CUIDLL$, DlgNetBiosOptions, "FRadioDlgProc", HlpNetBiosOptions, HELPPROC$) ! 432: Index$ = GetSymbolValue("ButtonChecked") ! 433: ! 434: if sz$ = "CONTINUE" THEN ! 435: UIPop(1) ! 436: elseif sz$ = "REACTIVATE" THEN ! 437: GOTO RESTART_NETBIOS_OPTION ! 438: ! 439: elseif sz$ = "BACK" THEN ! 440: GOTO RUNTIME_OPTION ! 441: ! 442: else ! 443: GOSUB ASKQUIT ! 444: GOTO NETBIOS ! 445: end if ! 446: ! 447: if Index$ = "1" then ! 448: goto FullInstall ! 449: end if ! 450: ! 451: ! 452: NETBIOS_PROTOCOL: ! 453: ! 454: RemoveSymbol "ListItemsIn" ! 455: ! 456: RESTART_NETBIOS_PROTOCOL: ! 457: sz$ = UIStartDlg(CUIDLL$, DlgNetBiosProtocols, "FListDlgProc", HlpNetBiosProtocols, HELPPROC$) ! 458: ! 459: if sz$ = "CONTINUE" THEN ! 460: UIPop 1 ! 461: ! 462: elseif sz$ = "REACTIVATE" THEN ! 463: GOTO RESTART_NETBIOS_OPTION ! 464: ! 465: elseif sz$ = "BACK" THEN ! 466: ! 467: GET_LANA: ! 468: sz$ = UIStartDlg(CUIDLL$, DlgNewProtocol, "FNameOrgDlgProc", HlpNewProtocol, HELPPROC$) ! 469: ! 470: if sz$ = "CONTINUE" then ! 471: ! 472: t$ = GetSymbolValue("OrgOut") ! 473: ! 474: if len(t$) <> 1 or mid$(t$, 1) < "0" or mid$(t$, 1) > "9" then ! 475: i% = DoMsgBox("Bad value for Lana #, use 0 to 9", "NetBios Protocol", MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 476: goto GET_LANA ! 477: else ! 478: NewProto$ = GetSymbolValue("NameOut") + "=" + t$ ! 479: AddListItem "ListItemsIn", NewProto$ ! 480: ! 481: end if ! 482: end if ! 483: ! 484: UIPop (2) ! 485: GOTO RESTART_NETBIOS_PROTOCOL ! 486: ! 487: elseif sz$ = "CANCEL" THEN ! 488: UIPop (1) ! 489: GOTO RESTART_NETBIOS_OPTION ! 490: ! 491: elseif sz$ = "EXIT" THEN ! 492: ! 493: OldProto$ = GetSymbolValue("ListItemsOut") ! 494: RemoveSymbol "ListTmp" ! 495: ! 496: for i% = 1 to GetListLength("ListItemsIn") step 1 ! 497: if OldProto$ <> GetListItem("ListItemsIn", i%) then ! 498: ! 499: AddListItem "ListTmp", GetListItem("ListItemsIn", i%) ! 500: end if ! 501: next ! 502: ! 503: CopyList "ListItemsIn", "ListTmp", TRUE ! 504: ! 505: UIPop (2) ! 506: GOTO RESTART_NETBIOS_PROTOCOL ! 507: end if ! 508: ! 509: CopyList "NetBiosMap", "ListItemsOut", TRUE ! 510: ! 511: ! 512: FullInstall: ! 513: ! 514: group$ = "Microsoft C/C++ 7.0" ! 515: ! 516: '$ifndef RUNTIMEINSTALL ! 517: ! 518: CreateDir BasePath$, cmoNone ! 519: CreateDir MakePath(BasePath$, "rpc"), cmoNone ! 520: ! 521: AddSectionFilesToCopyList "Base", SrcDir$, MakePath(BasePath$, "rpc") ! 522: ! 523: ! 524: ' Install the SDK files first. ! 525: ! 526: CreateDir MakePath(BasePath$, "include"), cmoNone ! 527: ! 528: AddSectionFilesToCopyList "include", SrcDir$, MakePath(BasePath$, "include") ! 529: AddSectionFilesToCopyList "bin", SrcDir$, MakePath(BasePath$, "bin") ! 530: ! 531: if WindowsSDK then ! 532: AddSectionFilesToCopyList "winclude", SrcDir$, MakePath(BasePath$, "include\win") ! 533: AddSectionFilesToCopyList "wlib", SrcDir$, MakePath(BasePath$, "lib") ! 534: ! 535: CreateProgmanGroup group$, "", cmoNone ! 536: ShowProgmanGroup group$, 1, cmoNone ! 537: CreateProgmanItem group$, "RPC ReadMe", "notepad "+MakePath(BasePath$, "rpc\readme.txt"), "", cmoOverWrite ! 538: ! 539: end if ! 540: ! 541: if MSDOSSDK then ! 542: AddSectionFilesToCopyList "dinclude", SrcDir$, MakePath(BasePath$, "include\dos") ! 543: AddSectionFilesToCopyList "dlib", SrcDir$, MakePath(BasePath$, "lib") ! 544: end if ! 545: ! 546: if SamplesSDK then ! 547: ! 548: if MSDOSSDK and HelpFiles then ! 549: AddSectionFilesToCopyList "dHelp", SrcDir$, MakePath(BasePath$, "help") ! 550: end if ! 551: ! 552: if WindowsSDK and HelpFiles then ! 553: AddSectionFilesToCopyList "wHelp", SrcDir$, MakePath(BasePath$, "help") ! 554: ! 555: CreateProgmanItem group$, "RPC API Reference", "winhelp "+MakePath(BasePath$, "help\rpc10wh.hlp"), "", cmoOverWrite ! 556: CreateProgmanItem group$, "RPC MIDL Reference", "winhelp "+MakePath(BasePath$, "help\midl10wh.hlp"), "", cmoOverWrite ! 557: end if ! 558: ! 559: CreateDir MakePath(BasePath$, "rpc\samples"), cmoNone ! 560: ! 561: Open MakePath(BasePath$, "rpc\samples\makefile.dos") for Output As 1 ! 562: print #1, "# Nmake include file for MS-DOS sample applications" ! 563: print #1, ! 564: print #1, "OSINCLUDE="+MakePath(BasePath$, "include\dos") ! 565: close #1 ! 566: ! 567: Open MakePath(BasePath$, "rpc\samples\makefile.win") for Output As 1 ! 568: print #1, "# Nmake include file for Windows sample applications" ! 569: print #1, ! 570: print #1, "OSINCLUDE="+MakePath(BasePath$, "include\win") ! 571: close #1 ! 572: ! 573: ! 574: if WindowsSDK then ! 575: AddSectionFilesToCopyList "wsample2", SrcDir$, MakePath(BasePath$, "rpc\samples\whello") ! 576: AddSectionFilesToCopyList "wsample11", SrcDir$, MakePath(BasePath$, "rpc\samples\mandel") ! 577: end if ! 578: ! 579: if MSDOSSDK then ! 580: CreateDir MakePath(BasePath$, "rpc\samples\data"), cmoNone ! 581: CreateDir MakePath(BasePath$, "rpc\samples\handles"), cmoNone ! 582: ! 583: AddSectionFilesToCopyList "sample1", SrcDir$, MakePath(BasePath$, "rpc\samples\hello") ! 584: AddSectionFilesToCopyList "sample3", SrcDir$, MakePath(BasePath$, "rpc\samples\data\dunion") ! 585: AddSectionFilesToCopyList "sample4", SrcDir$, MakePath(BasePath$, "rpc\samples\data\inout") ! 586: AddSectionFilesToCopyList "sample5", SrcDir$, MakePath(BasePath$, "rpc\samples\data\xmit") ! 587: AddSectionFilesToCopyList "sample6", SrcDir$, MakePath(BasePath$, "rpc\samples\doctor") ! 588: AddSectionFilesToCopyList "sample7", SrcDir$, MakePath(BasePath$, "rpc\samples\handles\auto") ! 589: AddSectionFilesToCopyList "sample8", SrcDir$, MakePath(BasePath$, "rpc\samples\handles\cxhndl") ! 590: AddSectionFilesToCopyList "sample9", SrcDir$, MakePath(BasePath$, "rpc\samples\handles\usrdef") ! 591: AddSectionFilesToCopyList "sample10",SrcDir$, MakePath(BasePath$, "rpc\samples\dict") ! 592: ! 593: end if ! 594: ! 595: end if ! 596: ! 597: '$endif ! 598: ! 599: ! 600: ' Update the list of transports to install. ! 601: ! 602: if AllTransports then ! 603: RemoveSymbol "SelectedTransports" ! 604: end if ! 605: ! 606: if WindowsRuntime then ! 607: AddSectionFilesToCopyList "wruntime", SrcDir$, MakePath(WinPath$, "system") ! 608: ! 609: if fLanmanPresent and Detect.fEnhance then ! 610: ! 611: NetapiPath$ = FindTargetOnEnvVar("netapi.dll", "PATH") ! 612: ! 613: if NetapiPath$ <> "" then ! 614: AddSectionFilesToCopyList "wnetapi", SrcDir$, mid$(NetapiPath$, 1, len(NetapiPath$) - len("\netapi.dll")) ! 615: end if ! 616: else ! 617: AddSectionFilesToCopyList "dummynetapi", SrcDir$, MakePath(WinPath$, "system") ! 618: end if ! 619: ! 620: ! 621: if AllTransports then ! 622: MakeListFromSectionKeys "SelectedTransports", "wtrans" ! 623: end if ! 624: end if ! 625: ! 626: if MSDOSRuntime then ! 627: ! 628: CreateDir DosPath$, cmoNone ! 629: AddSectionFilesToCopyList "druntime", SrcDir$, DosPath$ ! 630: ! 631: if AllTransports then ! 632: MakeListFromSectionKeys "ListTmp", "dtrans" ! 633: CopyList "SelectedTransports", "ListTmp", FALSE ! 634: end if ! 635: ! 636: end if ! 637: ! 638: ! 639: ' For each transport selected, add to the DOS or Windows copylist. ! 640: ! 641: for i% = 1 to GetListLength("SelectedTransports") step 1 ! 642: ! 643: tran$ = GetListItem("SelectedTransports", i%) ! 644: ! 645: if instr (tran$, "DOS") then ! 646: AddSectionKeyFileToCopyList "dtrans", tran$, SrcDir$, DosPath$ ! 647: else ! 648: AddSectionKeyFileToCopyList "wtrans", tran$, SrcDir$, MakePath(WinPath$, "system") ! 649: ! 650: end if ! 651: next ! 652: ! 653: ! 654: ' Now write the registry file with the NSI values and the ! 655: ' transport to protocol mappings. ! 656: ! 657: KeyPrefix$ = "\Root\Software\Microsoft\Rpc" ! 658: ! 659: CreateDir RegPath$, cmoNone ! 660: Open MakePath(RegPath$, "rpcreg.dat") for Output As 1 ! 661: ! 662: print #1, KeyPrefix$+"\NameService\Protocol=ncacn_np" ! 663: print #1, KeyPrefix$+"\NameService\NetworkAddress=\\." ! 664: print #1, KeyPrefix$+"\NameService\Endpoint=\pipe\locator" ! 665: print #1, KeyPrefix$+"\NameService\DefaultSyntax=1" ! 666: ! 667: ' For each transport add the mapping for the protocols. ! 668: ! 669: for i% = 1 to GetListLength("SelectedTransports") step 1 ! 670: ! 671: tran$ = GetListItem("SelectedTransports", i%) ! 672: ! 673: Start = instr(tran$, "(")+1 ! 674: mapping$ = mid$(tran$, Start, len(tran$) - Start) ! 675: ! 676: 'Since we have DOS and windows mappings, there can be duplicates ! 677: 'make sure the mapping is only added once. ! 678: ! 679: for n% = 1 to GetListLength("MappedProtocols") step 1 ! 680: if mapping$ = GetListItem("MappedProtocols", n%) then ! 681: goto NextMapping ! 682: end if ! 683: next ! 684: ! 685: AddListItem "MappedProtocols", mapping$ ! 686: ! 687: ' NetBios protocols get special mappings for each protocol ! 688: ! 689: if instr(mapping$, "rpcltc5") then ! 690: for n% = 1 to GetListLength("NetBiosMap") step 1 ! 691: ! 692: NbMap$ = GetListItem("NetBiosMap", n%) ! 693: prot$ = mid$(NbMap$, 1, instr(NbMap$, "=")-1) ! 694: dll$ = mid$(mapping$, instr(mapping$, "=")) ! 695: ! 696: print #1, KeyPrefix$+"\ClientProtocols\ncacn_nb_"+prot$+dll$ ! 697: next ! 698: else ! 699: print #1, KeyPrefix$+"\ClientProtocols\ncacn_"+mapping$ ! 700: end if ! 701: ! 702: NextMapping: ! 703: next ! 704: ! 705: ! 706: 'For NetBios, build the protocol to lan adapter mappings. ! 707: ! 708: if NetBiosTransport then ! 709: for n% = 1 to GetListLength("NetBiosMap") step 1 ! 710: ! 711: NbMap$ = GetListItem("NetBiosMap", n%) ! 712: prot$ = mid$(NbMap$, 1, instr(NbMap$, "=")-1) + "0" ! 713: lana$ = mid$(NbMap$, instr(NbMap$, "=")) ! 714: ! 715: print #1, KeyPrefix$+"\NetBios\ncacn_nb_"+prot$+lana$ ! 716: next ! 717: end if ! 718: ! 719: Close #1 ! 720: ! 721: ! 722: ' Update the users autoexec file if needed. ! 723: ! 724: AutoExec$ = "C:\" ! 725: ! 726: if UCase$(RegPath$) <> "C:\" and GetEnvVariableValue ("RPC_REG_DATA_FILE") <> UCase$(RegPath$) then ! 727: UpdateReg = TRUE ! 728: else ! 729: UpdateReg = FALSE ! 730: end if ! 731: ! 732: UpdatePath = FALSE ! 733: ! 734: if MSDOSRuntime then ! 735: ! 736: ' i% = DoMsgBox("Path: "+path$, "DOS path: "+DosPath$, MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 737: ! 738: if instr(path$, Ucase$(DosPath$)) = 0 then ! 739: UpdatePath = TRUE ! 740: end if ! 741: end if ! 742: ! 743: if UpdateReg or UpdatePath then ! 744: ! 745: ' Get the path to the autoexec file if not in "C:\" ! 746: ! 747: AutoExec$ = AutoExec$+"Autoexec.bat" ! 748: ! 749: while DoesFileExist(AutoExec$, femExists) = 0 ! 750: ! 751: if not GetPath(DlgAutoPath, AutoExec$) then ! 752: goto noAutoExec ! 753: end if ! 754: wend ! 755: ! 756: newPath$ = "SET PATH=%PATH%;"+DosPath$ ! 757: ! 758: ' Insert the new information by merging the new info while ! 759: ' copying the autoexec file. ! 760: ! 761: AutoExecRpc$ = mid$(AutoExec$, 1, len(AutoExec$)-3)+"rpc" ! 762: ! 763: Open AutoExec$ for Input As 1 ! 764: Open AutoExecRpc$ for Output As 2 ! 765: ! 766: while not eof(1) ! 767: line input #1, Buffer$ ! 768: ! 769: if len(Buffer$) = 0 then ! 770: print #2, Buffer$ ! 771: ! 772: elseif UpdatePath and instr (Ucase$(Buffer$), Ucase$(Newpath$)) then ! 773: UpdatePath = FALSE ! 774: ! 775: elseif UpdateReg and instr(Ucase$(Buffer$), "RPC_REG_DATA_FILE") then ! 776: UpdateReg = FALSE ! 777: ! 778: else ! 779: print #2, Buffer$ ! 780: ! 781: end if ! 782: ! 783: wend ! 784: ! 785: ! 786: ' Append any needed values to the autoexe file ! 787: ! 788: if UpdateReg then ! 789: print #2, "set RPC_REG_DATA_FILE="+RegPath$ ! 790: end if ! 791: ! 792: if UpdatePath then ! 793: print #2, NewPath$ ! 794: end if ! 795: ! 796: Close #1, #2 ! 797: ! 798: if UpdateReg = FALSE and UpdatePath = FALSE then ! 799: RemoveFile AutoExecRpc$, cmoNone ! 800: goto NoAutoExec ! 801: end if ! 802: ! 803: i% = DoMsgBox("In order for the runtime to function, setup needs to change your autoexec.bat file. Do you want setup to update this file?", "Update Autoexec.bat", 4+MB_TASKMODAL+32) ! 804: ! 805: if i% = 6 then ! 806: BackupFile AutoExec$, "Autoexec.bak" ! 807: CopyFile AutoExecRpc$, AutoExec$, cmoOverwrite, FALSE ! 808: RemoveFile AutoExecRpc$, cmoNone ! 809: else ! 810: i% = DoMsgBox("An updated auotexec.bat file is in the file "+AutoExecRpc$, "New Autoexec.bat", MB_OK+MB_TASKMODAL) ! 811: end if ! 812: ! 813: endif ! 814: ! 815: NoAutoExec: ! 816: ! 817: ' DumpCopyList "c:\tmp\t" ! 818: CopyFilesInCopyList ! 819: ! 820: ! 821: '$ifdef SystemNetApi ! 822: ! 823: if ReStartListEmpty() = 0 then ! 824: ! 825: SetRestartDir BasePath$ ! 826: i% = DoMsgBox("Setup will now restart Windows to complete installation. Close any MS-DOS applications before continuing.", "Restart Windows", MB_OK+MB_TASKMODAL) ! 827: ! 828: i% = ExitExecRestart() ! 829: i% = DoMsgBox("Restart failed. Run _mssetup.bat from the "+BasePath$+" directory from MS-DOS prompt.", "Restart Windows", MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 830: end if ! 831: ! 832: '$endif ! 833: ! 834: ! 835: QUIT: ! 836: ON ERROR GOTO ERRQUIT ! 837: ! 838: if ERR = 0 THEN ! 839: dlg% = EXITSUCCESS ! 840: ! 841: elseif ERR = STFQUIT THEN ! 842: dlg% = EXITQUIT ! 843: ! 844: else ! 845: dlg% = EXITFAILURE ! 846: end if ! 847: ! 848: QUITL1: ! 849: while UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") = "REACTIVATE" ! 850: wend ! 851: ! 852: UIPop 1 ! 853: ! 854: END ! 855: ! 856: ERRQUIT: ! 857: i% = DoMsgBox("Setup sources were corrupted, email stevez!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 858: END ! 859: ! 860: ! 861: ASKQUIT: ! 862: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") ! 863: ! 864: if sz$ = "EXIT" THEN ! 865: UIPopAll ! 866: ERROR STFQUIT ! 867: elseif sz$ = "REACTIVATE" THEN ! 868: GOTO ASKQUIT ! 869: else ! 870: UIPop 1 ! 871: end if ! 872: RETURN ! 873: ! 874: Function GetPath(Dialog%, Path$) Static AS INTEGER ! 875: ! 876: SetSymbolValue "EditTextIn", Path$ ! 877: SetSymbolValue "EditFocus", "END" ! 878: ! 879: sz$ = UIStartDlg(CUIDLL$, Dialog%, "FEditDlgProc", Dialog% + 1, HELPPROC$) ! 880: NewPath$ = GetSymbolValue("EditTextOut") ! 881: ! 882: GetPath = FALSE ! 883: ! 884: if sz$ = "CONTINUE" THEN ! 885: Path$ = NewPath$ ! 886: GetPath = TRUE ! 887: end if ! 888: ! 889: UIPop (1) ! 890: ! 891: end function ! 892: ! 893: ! 894: function GetTransport() Static as INTEGER ! 895: ! 896: RemoveSymbol "ListItemsIn" ! 897: ! 898: if WindowsRuntime then ! 899: MakeListFromSectionKeys "ListItemsIn", "wtrans" ! 900: end if ! 901: ! 902: if MSDOSRuntime then ! 903: ! 904: MakeListFromSectionKeys "ListTmp", "dtrans" ! 905: CopyList "ListItemsIn", "ListTmp", FALSE ! 906: end if ! 907: ! 908: GetTransport = FALSE ! 909: ! 910: RESTART_RUNTIME_OPTION: ! 911: sz$ = UIStartDlg(CUIDLL$, DlgTransport, "FMultiDlgProc", HlpTransport, HELPPROC$) ! 912: ! 913: if sz$ = "CONTINUE" THEN ! 914: GetTransport = TRUE ! 915: ! 916: elseif sz$ = "REACTIVATE" THEN ! 917: GOTO RESTART_RUNTIME_OPTION ! 918: ! 919: end if ! 920: ! 921: CopyList "SelectedTransports" , "ListItemsOut", TRUE ! 922: ! 923: UIPop(1) ! 924: ! 925: end function ! 926: ! 927: ! 928: '** ! 929: '** Purpose: ! 930: '** Appends a file name to the end of a directory path, ! 931: '** inserting a backslash character as needed. ! 932: '** Arguments: ! 933: '** szDir$ - full directory path (with optional ending "\") ! 934: '** szFile$ - filename to append to directory ! 935: '** Returns: ! 936: '** Resulting fully qualified path name. ! 937: '************************************************************************* ! 938: ! 939: FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING ! 940: if szDir$ = "" THEN ! 941: MakePath = szFile$ ! 942: elseif szFile$ = "" THEN ! 943: MakePath = szDir$ ! 944: elseif MID$(szDir$, LEN(szDir$), 1) = "\" THEN ! 945: MakePath = szDir$ + szFile$ ! 946: else ! 947: MakePath = szDir$ + "\" + szFile$ ! 948: end if ! 949: END FUNCTION ! 950: ! 951: FUNCTION GetCheck (index%) STATIC AS INTEGER ! 952: ! 953: if GetListItem("CheckItemsState", index%) = "ON" then ! 954: GetCheck = TRUE ! 955: else ! 956: GetCheck = FALSE ! 957: end if ! 958: ! 959: END FUNCTION ! 960: ! 961: ! 962: Sub CopyList(ListOut$, ListIn$, Truncate%) static ! 963: ! 964: if Truncate% <> 0 then ! 965: RemoveSymbol ListOut$ ! 966: end if ! 967: ! 968: for i% = 1 to GetListLength(ListIn$) step 1 ! 969: AddListItem ListOut$, GetListItem(ListIn$, i%) ! 970: next ! 971: ! 972: end sub ! 973: ! 974: function BoolToOnOff (Bool%) static AS String ! 975: ! 976: if Bool% then ! 977: BoolToOnOff$ = "ON" ! 978: else ! 979: BoolToOnOff$ = "OFF" ! 980: end if ! 981: ! 982: end function ! 983: ! 984: function FormatSize () static AS String ! 985: ! 986: cbMore& = GetCopyListCost ("", "Cost", "") ! 987: cbSize = val(GetListItem("Cost", asc(BasePath$) - asc("A") + 1)) / 1024 ! 988: ! 989: if cbSize then ! 990: FormatSize = str$(cbSize)+"K" ! 991: else ! 992: FormatSize = "" ! 993: end if ! 994: ! 995: ClearCopyList ! 996: ! 997: end function ! 998: ! 999: ! 1000: function GetSampleSize () static AS String ! 1001: ! 1002: ! 1003: if SamplesSDK and MSDOSSDK then ! 1004: AddSectionFilesToCopyList "sample1", SrcDir$, BasePath$ ! 1005: AddSectionFilesToCopyList "sample3", SrcDir$, BasePath$ ! 1006: AddSectionFilesToCopyList "sample4", SrcDir$, BasePath$ ! 1007: AddSectionFilesToCopyList "sample5", SrcDir$, BasePath$ ! 1008: AddSectionFilesToCopyList "sample6", SrcDir$, BasePath$ ! 1009: AddSectionFilesToCopyList "sample7", SrcDir$, BasePath$ ! 1010: AddSectionFilesToCopyList "sample8", SrcDir$, BasePath$ ! 1011: AddSectionFilesToCopyList "sample9", SrcDir$, BasePath$ ! 1012: AddSectionFilesToCopyList "sample10",SrcDir$, BasePath$ ! 1013: end if ! 1014: ! 1015: if SamplesSDK and WindowsSDK then ! 1016: AddSectionFilesToCopyList "wsample2", SrcDir$, BasePath$ ! 1017: AddSectionFilesToCopyList "wsample11",SrcDir$, BasePath$ ! 1018: end if ! 1019: ! 1020: GetSampleSize = FormatSize() ! 1021: ! 1022: end function ! 1023: ! 1024: function GetDosSize () static AS String ! 1025: ! 1026: if MSDOSSDK then ! 1027: AddSectionFilesToCopyList "include", SrcDir$, BasePath$ ! 1028: AddSectionFilesToCopyList "dinclude", SrcDir$, BasePath$ ! 1029: AddSectionFilesToCopyList "dlib", SrcDir$, BasePath$ ! 1030: end if ! 1031: ! 1032: GetDosSize = FormatSize() ! 1033: ! 1034: end function ! 1035: ! 1036: function GetDosRunSize () static AS String ! 1037: ! 1038: if MSDOSRuntime then ! 1039: AddSectionFilesToCopyList "druntime", SrcDir$, BasePath$ ! 1040: end if ! 1041: ! 1042: GetDosRunSize = FormatSize() ! 1043: ! 1044: end function ! 1045: ! 1046: function GetWinSize () static AS String ! 1047: ! 1048: if WindowsSDK then ! 1049: AddSectionFilesToCopyList "include", SrcDir$, BasePath$ ! 1050: AddSectionFilesToCopyList "winclude", SrcDir$, BasePath$ ! 1051: AddSectionFilesToCopyList "wlib", SrcDir$, BasePath$ ! 1052: end if ! 1053: ! 1054: GetWinSize = FormatSize() ! 1055: ! 1056: end function ! 1057: ! 1058: function GetWinRunSize () static AS String ! 1059: ! 1060: if WindowsRuntime then ! 1061: AddSectionFilesToCopyList "wruntime", SrcDir$, BasePath$ ! 1062: end if ! 1063: ! 1064: GetWinRunSize = FormatSize() ! 1065: ! 1066: end function ! 1067: ! 1068: ! 1069: function GetTransportSize () static AS String ! 1070: ! 1071: if AllTransports then ! 1072: RemoveSymbol "SelectedTransports" ! 1073: end if ! 1074: ! 1075: if WindowsRuntime and AllTransports then ! 1076: MakeListFromSectionKeys "SelectedTransports", "wtrans" ! 1077: end if ! 1078: ! 1079: if MSDOSRuntime and AllTransports then ! 1080: ! 1081: MakeListFromSectionKeys "ListTmp", "dtrans" ! 1082: CopyList "SelectedTransports", "ListTmp", FALSE ! 1083: end if ! 1084: ! 1085: for i% = 1 to GetListLength("SelectedTransports") step 1 ! 1086: ! 1087: tran$ = GetListItem("SelectedTransports", i%) ! 1088: ! 1089: if instr (tran$, "DOS") then ! 1090: AddSectionKeyFileToCopyList "dtrans", tran$, SrcDir$, BasePath$ ! 1091: else ! 1092: AddSectionKeyFileToCopyList "wtrans", tran$, SrcDir$, BasePath$ ! 1093: ! 1094: end if ! 1095: next ! 1096: ! 1097: GetTransportSize = FormatSize() ! 1098: ! 1099: end function ! 1100: ! 1101: ! 1102: function GetHlpSize () static AS String ! 1103: ! 1104: if HelpFiles then ! 1105: ! 1106: if MSDOSSDK then ! 1107: AddSectionFilesToCopyList "dHelp", SrcDir$, BasePath$ ! 1108: end if ! 1109: ! 1110: if WindowsSDK then ! 1111: AddSectionFilesToCopyList "wHelp", SrcDir$, BasePath$ ! 1112: end if ! 1113: ! 1114: end if ! 1115: ! 1116: GetHlpSize = FormatSize() ! 1117: ! 1118: end function
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.