|
|
1.1 root 1: ;=====================================================================
2: ; THIS INF CONTAINS ALL THE SUBROUTINES COMMONLY USED IN THE SETUP INF
3: ;=====================================================================
4: ;
5: ;
6: ;========================================
7: ; MESSAGE REPORTING SUBROUTINES:
8: ;========================================
9: ;
10: ; 1. SetupMessage: To display warnings, fatal errors, non fatal errors and
11: ; status messages.
12: ;
13: ; 2. QueryUserQuit: To ask if the user wants to quit setup.
14: ;
15:
16: ;========================================
17: ; ALLOCATION AND DEALLOCATION OF DRIVES
18: ;========================================
19: ;
20: ; 1. AllocateUnusedDrive: To allocate a drive letter to use for reassignment
21: ;
22: ; 2. FreeUnusedDrive: To free a drive to the unused drive list
23: ;
24:
25:
26:
27: ;========================================
28: ; MESSAGE REPORTING SUBROUTINES:
29: ;========================================
30:
31: ;-----------------------------------------------------------------------
32: ; ROUTINE: SetupMessage
33: ;
34: ; DESCRIPTION: This routine lets the user
35: ;
36: ; INPUTS: $0: Language To Use
37: ; $1: MessageType: WARNING | FATAL | NONFATAL | STATUS
38: ; $2: MessageText.
39: ;
40: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL |
41: ; STATUS_NOLANGUAGE
42: ; STATUS_FAILED
43: ;
44: ; $R1: DLGEVENT: OK | CANCEL
45: ;
46: ;------------------------------------------------------------------------
47:
48: [SetupMessage]
49:
50: ;
51: ; Initialize
52: ;
53:
54: set Status = STATUS_FAILED
55: set UserAction = "CANCEL"
56:
57: ;
58: ; See if the language indicated is supported
59: ;
60: ;
61: ; Check if the language requested is supported
62: ;
63: set LanguageList = ^(LanguageID, 1)
64: Ifcontains(i) $($0) in $(LanguageList)
65: goto displaymessage
66: else
67: set Status = STATUS_NOLANGUAGE
68: goto finish_SetupMessage
69: endif
70:
71: ;
72: ; examine the message type and accordingly read in the right dialog
73: ; parameters
74: ;
75:
76: displaymessage = +
77: set DlgText = $($2)
78:
79: ifstr(i) $($1) == "WARNING"
80: read-syms WarningDlg$($0)
81:
82: else-ifstr(i) $($1) == "FATAL"
83: read-syms FatalDlg$($0)
84:
85: else-ifstr(i) $($1) == "NONFATAL"
86: read-syms NonfatalDlg$($0)
87:
88: else-ifstr(i) $($1) == "STATUS"
89: read-syms StatusDlg$($0)
90:
91: else
92: goto finish_SetupMessage
93:
94: endif
95:
96: ui start "SetupMessage"
97: ifstr(i) $(DLGEVENT) == "OK"
98: set Status = STATUS_SUCCESSFUL
99: set UserAction = $(DLGEVENT)
100:
101: else-ifstr(i) $(DLGEVENT) == "CANCEL"
102: set Status = STATUS_SUCCESSFUL
103: set UserAction = $(DLGEVENT)
104: else
105: endif
106:
107: finish_SetupMessage = +
108: Return $(Status) $(UserAction)
109: end
110:
111:
112:
113:
114: ;-----------------------------------------------------------------------
115: ; ROUTINE: QueryUserQuit
116: ;
117: ; DESCRIPTION: This routine queries whether the user wants to quit setup
118: ;
119: ; INPUTS: $0: Language To Use
120: ;
121: ; OUTPUTS: $R0: Status: STATUS_SUCCESSFUL |
122: ; STATUS_NOLANGUAGE |
123: ; STATUS_FAILED
124: ;
125: ; $R1: UserAction: OK | CANCEL
126: ;
127: ;------------------------------------------------------------------------
128:
129: [QueryUserQuit]
130:
131: set Status = STATUS_FAILED
132: set UserAction = CANCEL
133:
134: ;
135: ; See if the language indicated is supported
136: ;
137: ;
138: ; Check if the language requested is supported
139: ;
140: set LanguageList = ^(LanguageID, 1)
141: Ifcontains(i) $($0) in $(LanguageList)
142: else
143: set Status = STATUS_NOLANGUAGE
144: goto fin_QueryUserQuit
145: endif
146:
147: ;
148: ; read in quit message
149: ;
150: read-syms ExitWarningDlg$($0)
151: ui start "ExitWarning"
152: ifstr(i) $(DLGEVENT) == "YES"
153: set Status = STATUS_SUCCESSFUL
154: set UserAction = "OK"
155:
156: else-ifstr(i) $(DLGEVENT) == "NO"
157: set Status = STATUS_SUCCESSFUL
158: set UserAction = "CANCEL"
159: else
160: endif
161:
162: fin_QueryUserQuit = +
163: Return $(Status) $(UserAction)
164:
165:
166:
167: ;-----------------------------------------------------------------------
168: ;
169: ; ROUTINE: PushBillboard
170: ;
171: ; DESCRIPTION: Put up a billboard or update the text in the existing billboard
172: ;
173: ; INPUTS: $0: Billboard template
174: ; $1: Billboard message
175: ;
176: ; OUTPUTS: None
177: ;------------------------------------------------------------------------
178:
179: [PushBillboard]
180: read-syms BillboardDlg$(!STF_LANGUAGE)
181: ui start "Billboard"
182: Return
183:
184:
185: ;-----------------------------------------------------------------------
186: ;
187: ; ROUTINE: PopBillboard
188: ;
189: ; DESCRIPTION: Pop off a billboard
190: ;
191: ; INPUTS: None
192: ;
193: ; OUTPUTS: None
194: ;------------------------------------------------------------------------
195:
196: [PopBillboard]
197: ui pop 1
198: Return
199:
200:
201: ;========================================
202: ; ALLOCATION AND DEALLOCATION OF DRIVES
203: ;========================================
204:
205: ;-----------------------------------------------------------------------
206: ; ROUTINE: AllocateUnusedDrive
207: ;
208: ; DESCRIPTION: This routine lets the user allocate a drive from the unused
209: ; drive pool.
210: ;
211: ; INPUTS: None
212: ;
213: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL |
214: ; STATUS_FAILED
215: ; $R1: Drive allocated.
216: ;
217: ;------------------------------------------------------------------------
218:
219: [AllocateUnusedDrive]
220: ;
221: ;
222: set Status = STATUS_FAILED
223: set Drive = ""
224: ;
225: ifstr(i) $(!STF_UNUSEDDRIVES) == {}
226: goto finish_allocate
227: else-ifstr(i) $(!STF_UNUSEDDRIVES) == ""
228: goto finish_allocate
229: else
230: set NewDriveList = {}
231: ForListDo $(!STF_UNUSEDDRIVES)
232: ifstr(i) $(#) != 1
233: set NewDriveList = >($(NewDriveList), $($))
234: else
235: set Drive = $($)
236: set Status = STATUS_SUCCESSFUL
237: endif
238: EndForListDo
239: set !STF_UNUSEDDRIVES = $(NewDriveList)
240: endif
241:
242: finish_allocate = +
243: Return $(Status) $(Drive)
244:
245:
246: ;-----------------------------------------------------------------------
247: ; ROUTINE: FreeUnusedDrive
248: ;
249: ; DESCRIPTION: This routine lets the user allocate a drive from the unused
250: ; drive pool.
251: ;
252: ; INPUTS: $0: Drive to free
253: ;
254: ; OUTPUTS: None
255: ;
256: ;
257: ;------------------------------------------------------------------------
258:
259: [FreeUnusedDrive]
260:
261: set !STF_UNUSEDDRIVES = >($(!STF_UNUSEDDRIVES), $($0))
262: Return
263:
264:
265: ;-----------------------------------------------------------------------
266: ; ROUTINE: DriversExist
267: ;
268: ; DESCRIPTION: This routine informs the user that the drivers for the
269: ; option he has selected exist on the destination and asks
270: ; whether they should be replaced.
271: ;
272: ; INPUTS: $0: Language To Use
273: ; $1: Dialog Text
274: ;
275: ; OUTPUTS: STATUS_CURRENT if the current files are to be used
276: ; STATUS_NEW if new files are to be copied over
277: ; STATUS_USERCANCEL if user chose to cancel installation
278: ; STATUS_NOLANGUAGE if the language requested is not supported
279: ; STATUS_FAILED if any other failure exists
280: ;
281: ;------------------------------------------------------------------------
282: [DriversExist]
283:
284: set Status = STATUS_FAILED
285:
286: ;
287: ; See if the language indicated is supported
288: ;
289:
290: set LanguageList = ^(LanguageID, 1)
291: Ifcontains(i) $($0) in $(LanguageList)
292: else
293: set Status = STATUS_NOLANGUAGE
294: goto finish_DriversExist
295: endif
296:
297: read-syms DriversExistDlg$($0)
298: ui start "DriversExist"
299: ifstr(i) $(DLGEVENT) == "DLGBUTTON0"
300: set Status = STATUS_CURRENT
301: else-ifstr(i) $(DLGEVENT) == "DLGBUTTON1"
302: set Status = STATUS_NEW
303: else-ifstr(i) $(DLGEVENT) == "BACK"
304: set Status = STATUS_USERCANCEL
305: endif
306: ui pop 1
307:
308: finish_DriversExist = +
309: Return $(Status)
310:
311: ;-----------------------------------------------------------------------
312: ;
313: ; ROUTINE: DoAskSource
314: ;
315: ; DESCRIPTION: This routine prompts the source of the windows nt files
316: ;
317: ; INPUTS: $0: Current Src
318: ;
319: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL |
320: ; STATUS_USERCANCEL |
321: ; STATUS_FAILED
322: ;
323: ; $R1: Diskette Src
324: ;
325: ; $R2: Drive to Free or "" if none
326: ;
327: ; $R3: Actual string returned from dialog
328: ;
329: ;------------------------------------------------------------------------
330: [DoAskSource]
331: read-syms DoAskSourceDlgText$(!STF_LANGUAGE)
332: shell "" DoAskSourceEx $($0) $(DlgText)
333: Return $($R0) $($R1) $($R2) $($R3)
334:
335:
336: ;-----------------------------------------------------------------------
337: ;
338: ; ROUTINE: DoAskSourceEx
339: ;
340: ; DESCRIPTION: This routine prompts the source of the windows nt files
341: ;
342: ; INPUTS: $0: Current Src
343: ; $1: Dialog Text To Use
344: ;
345: ; OUTPUTS: $R0: STATUS: STATUS_SUCCESSFUL |
346: ; STATUS_USERCANCEL |
347: ; STATUS_FAILED
348: ;
349: ; $R1: Diskette Src
350: ;
351: ; $R2: Drive to Free or "" if none
352: ;
353: ; $R3: Actual string returned from dialog
354: ;
355: ;------------------------------------------------------------------------
356:
357:
358: [DoAskSourceEx]
359: ;
360: ;
361: set Status = STATUS_FAILED
362: set Src = $($0)
363: set DriveToFree = ""
364: read-syms AskSourceStrings$(!STF_LANGUAGE)
365:
366: asksource = +
367: read-syms DisketteDlg$(!STF_LANGUAGE)
368: ui start "Diskette"
369: ifstr(i) $(DLGEVENT) == "CONTINUE"
370: LibraryProcedure IsFullPath, $(!LIBHANDLE), CheckPathFullPathSpec $(EditTextOut)
371: ifstr(i) $(IsFullPath) == "NO"
372: StartWait
373: LibraryProcedure STATUS, $(!LIBHANDLE), ProcessForUNC $(EditTextOut)
374: EndWait
375: ifstr(i) $(STATUS) == "ERROR"
376: shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String1)
377: goto asksource
378: else-ifstr(i) $(STATUS) == "NOT-UNC"
379: shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String2)
380: goto asksource
381: else-ifstr(i) $(STATUS) == "UNC-FAILCONNECT"
382: shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String4)
383: goto asksource
384: else
385: set Src = $(STATUS)
386: endif
387: else
388: set Src = $(EditTextOut)
389: endif
390:
391: ui pop 1
392: LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(Src)
393: ifstr(i) $(STATUS) == "ERROR"
394: goto finish_DoAskSource
395: else
396: set Src = $(STATUS)
397: set Status = STATUS_SUCCESSFUL
398: goto finish_DoAskSource
399: endif
400:
401: else-ifstr(i) $(DLGEVENT) == "BACK"
402: ui pop 1
403: set Status = STATUS_USERCANCEL
404: goto finish_DoAskSource
405: else
406: ui pop 1
407: goto finish_DoAskSource
408: endif
409:
410: finish_DoAskSource = +
411: Return $(Status) $(Src) $(DriveToFree) $(EditTextOut)
412:
413:
414: ;--------------------------------------------------------------------------
415: ; Setup.Hlp Context IDs
416: ; =====================
417: ;
418: ; The following are the help IDs used in the setup inf files. The help IDs
419: ; are in the following ranges:
420: ;
421: ; 0 - 999 : Main Setup
422: ; 1000 - 1999 : Network Setup
423: ; 2000 - 2999 : MaintenanceModeSetup
424: ;
425: ;---------------------------------------------------------------------------
426:
427: [SetupHelpIds]
428:
429: ;
430: ; NOTE: PLEASE UPDATE THE !MaximumID field whenever you add a new ID
431: ;
432:
433: !MinimumID = 0
434: !MaximumID = 5000
435: !InitialContentsID = 5
436:
437: ;
438: ; Main Setup IDs
439: ;
440:
441: !IDH_DB_COMPUTERNAMEQ_INS = 10
442: !IDH_DB_COMPUTERNAMEV_INS = 11
443: !IDH_DB_FULLNAMEQ_INS = 30
444: !IDH_DB_FULLNAMEV_INS = 31
445: !IDH_DB_ORGNAMEQ_INS = 32
446: !IDH_DB_ORGNAMEV_INS = 33
447: !IDH_DB_INSTALLMODE_INS = 50
448: !IDH_DB_OPTIONS_INS = 60
449: !IDH_DB_SYSTEM_INS = 70
450: !IDH_DB_VIRTUAL_INS = 80
451: !IDH_DB_REPAIR_INS = 90
452: !IDH_DB_PRNSETUP_INS = 100
453: !IDH_DB_OPTIONAL_INS = 110
454: !IDH_DB_CUSTOMISE_INS = 111
455: !IDH_DB_OEMSINGLESEL_INS = 120
456: !IDH_DB_OEMMULTISEL_INS = 121
457: !IDH_DB_ACCOUNTSETUP_INS = 130
458: !IDH_DB_ACCOUNTADMN_INS = 131
459: !IDH_DB_SEARCHDRIVE_INS = 150
460: !IDH_DB_APPCONFLICT_INS = 151
461:
462: ;
463: ; Maintenance mode setup IDs
464: ;
465:
466: !IDH_DB_MAINTAIN_INS = 1000
467: !IDH_DB_MOPTIONAL_INS = 1010
468: !IDH_DB_MCUSTOMISE_INS = 1011
469: !IDH_DB_MSYSTEM_INS = 1020
470: !IDH_DB_MPROFILE_INS = 1030
471: !IDH_DB_SCSI_DRIVER_INS = 1040
472: !IDH_DB_SCSI_SELECTDRIVER_INS = 1041
473: !IDH_DB_DRIVEREXIST_INS = 1042
474: !IDH_DB_TAPE_DRIVER_INS = 1043
475: !IDH_DB_TAPE_SELECTDRIVER_INS = 1044
476:
477:
478: ;
479: ; Network card inf Help ID
480: ;
481:
482: !IDH_DB_CARDSELECTION_INS = 3000 ; Net card selection dialog
483: !IDH_DB_SOFTSELECTION_INS = 3001 ; Software selection dialog
484: !IDH_DB_OEMNADD1_INS = 3500 ; Dec100
485: !IDH_DB_OEMNADD2_INS = 3510 ; Dec201
486: !IDH_DB_OEMNADDE_INS = 3520 ; Decstation
487: !IDH_UB_OEMNADDP_INS = 3521 ; DEC PC
488: !IDH_DB_OEMNADE1_INS = 3530 ; Elink 16
489: !IDH_DB_OEMNADE2_INS = 3540 ; Elink ii
490: !IDH_DB_OEMNADE3_INS = 3545 ; Elink 3
491: !IDH_DB_OEMNADLB_INS = 3546 ; MS Loop Back
492: !IDH_DB_OEMNADAM_INS = 3547 ; AMD
493: !IDH_DB_OEMNADEM_INS = 3550 ; Elink MC
494: !IDH_DB_OEMNADN2_INS = 3551 ; NE2000
495: !IDH_DB_OEMNADN1_INS = 3552 ; NE1000
496: !IDH_DB_OEMNADNE_INS = 3560 ; NE3200
497: !IDH_DB_OEMNADIN_INS = 3561 ; Intel EE16
498: !IDH_DB_OEMNADP3_INS = 3570 ; Proteon 1390
499: !IDH_DB_OEMNADP9_INS = 3580 ; Proteon 1990
500: !IDH_DB_OEMNADSO_INS = 3590 ; Sonic
501: !IDH_DB_OEMNADTK_INS = 3600 ; IBM Token
502: !IDH_DB_OEMNADTM_INS = 3605 ; IBM Token
503: !IDH_DB_OEMNADUB_INS = 3610 ; UB Card
504: !IDH_DB_OEMNADWD_INS = 3620 ; Western Digital
505: !IDH_DB_OEMNADWM_INS = 3630 ; Western Digital MicroChannel
506: !IDH_DB_OEMNSVNB_INS = 3640 ; Netbios
507: !IDH_DB_OEMNSVRD_INS = 3650 ; Redriector
508: !IDH_DB_OEMNSVRE_INS = 3660 ; Repl
509: !IDH_DB_OEMNSVSV_INS = 3670 ; Server
510: !IDH_DB_OEMNSVWK_INS = 3680 ; workstation
511: !IDH_DB_OEMNXPDL_INS = 3690 ; dlc
512: !IDH_DB_OEMNXPNB_INS = 3700 ; netbeui
513: !IDH_DB_OEMNXPSN_INS = 3710 ; snmp
514: !IDH_DB_OEMNXPSN_1 = 3711 ; snmp - 1st dialog
515: !IDH_DB_OEMNXPSN_2 = 3712 ; snmp - security dialog
516: !IDH_DB_OEMNXPTC_INS = 3720 ; tcpip
517: !IDH_DB_OEMNXPTC_1 = 3721 ; tcpip - 1st dialog
518: !IDH_DB_OEMNXPTC_2 = 3722 ; tcpip - 2nd dialog
519: !IDH_DB_OEMNXPTC_3 = 3723 ; tcpip - 3nd dialog
520: !IDH_DB_LMHOST_INS = 3730 ; LMHOST dialog
521: !IDH_DB_RPCLOCATE_INS = 3740 ; RPC Name Service dialog
522:
523: !IDH_DB_GET_PROTOCOL = 4000 ; Get Primary Protocol dialog
524: !IDH_DB_VER_EXISTED = 4010 ; software or netcard already existed
525: !IDH_DB_DETECT_BYPASS = 4020 ; Want to bypass netcard detection?
526: !IDH_DB_DETECT_FOUND = 4030 ; Detection found a netcard
527: !IDH_DB_DETECT_FAILED = 4040 ; Netcard detection failed
528: !IDH_DB_DETECT_CHKRAS = 4050 ; Detection failed-- want RAS?
529: !IDH_DB_OEMNADLT_INS = 4060 ; LocalTalk Card Config help
530:
531:
532: ;-----------------------------------------------------------------------
533: ; ROUTINE: ReadSetupHelpIds
534: ;
535: ; DESCRIPTION: This routine sets up the help context ids as globals
536: ;
537: ;
538: ; INPUTS: $0: Drive to free
539: ;
540: ; OUTPUTS: None
541: ;
542: ;
543: ;------------------------------------------------------------------------
544:
545: [ReadSetupHelpIds]
546: read-syms "SetupHelpIds"
547: Return
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.