|
|
1.1 root 1: #ifdef WIN16
2: typedef int INT;
3: typedef char CHAR;
4: #define APIENTRY FAR PASCAL
5: #endif
6:
7: extern INT hSetup;
8:
9:
10: #define cmoVital 1
11: #define cmoCopy 2
12: #define cmoUndo 4
13: #define cmoRoot 8
14: #define cmoDecompress 16
15: #define cmoTimeStamp 32
16: #define cmoReadOnly 64
17: #define cmoBackup 128
18: #define cmoForce 256
19: #define cmoRemove 512
20: #define cmoOverwrite 1024
21: #define cmoAppend 2048
22: #define cmoPrepend 4096
23: #define cmoNone 0
24: #define cmoAll 65535
25:
26: #define femExists 0
27: #define femRead 1
28: #define femWrite 2
29: #define femReadWrite 3
30:
31: #define ynrcNo 0
32: #define ynrcYes 1
33: #define ynrcErr1 2
34: #define ynrcErr2 3
35: #define ynrcErr3 4
36: #define ynrcErr4 5
37: #define ynrcErr5 6
38: #define ynrcErr6 7
39: #define ynrcErr7 8
40: #define ynrcErr8 9
41: #define ynrcErr9 10
42:
43: #define grcOkay 0
44: #define grcNotOkay 1
45: #define grcUserQuit 48
46:
47: #define cbSymValMax 8192
48:
49: #define STFERR 1024
50: #define STFQUIT 1025
51:
52: #define scmOff 0
53: #define scmOnIgnore 1
54: #define scmOnFatal 2
55:
56:
57: // common
58:
59: extern INT APIENTRY FOpenInf(LPSTR szFile, INT fCheck, INT fCheckSyms);
60: extern INT APIENTRY FSetSilent(INT mode);
61: extern INT APIENTRY FSetBeepingMode(INT mode);
62: extern INT APIENTRY HShowWaitCursor(VOID);
63: extern INT APIENTRY FRestoreCursor(INT hPrev);
64: extern INT APIENTRY FOpenLogFile(LPSTR szFile, INT fAppend);
65: extern INT APIENTRY FCloseLogFile(VOID);
66: extern INT APIENTRY FWriteToLogFile(LPSTR sz, INT fRequire);
67: extern INT APIENTRY CbGetInfSectionKeyField(LPSTR szSect, LPSTR szKey,
68: INT iField, LPSTR szBuf, INT cbBuf);
69: extern INT APIENTRY FMakeListInfSectionField(LPSTR szSym, LPSTR szSect,
70: INT iField);
71: extern INT APIENTRY DoMsgBox(LPSTR lpText, LPSTR lpCaption, INT wType);
72:
73: #ifdef WIN16
74: extern INT APIENTRY FValidFATDir(LPSTR szDir);
75: extern INT APIENTRY CchlFATValidSubPath(LPSTR szPath);
76: extern INT APIENTRY FValidFATPath(LPSTR szPath);
77: extern INT APIENTRY FMakeFATPathFromDirAndSubPath(LPSTR szDir,
78: LPSTR szSubPath, LPSTR szBuf, INT cchpBufMax);
79: extern INT APIENTRY FParseFATPathIntoPieces(LPSTR szPath, LPSTR szVol,
80: INT cbVol, LPSTR szDir, INT cbDir, LPSTR szFile, INT cbFile);
81: #elif defined(WIN32)
82: extern BOOL APIENTRY FValidDir(LPSTR szDir);
83: extern unsigned APIENTRY CchlValidSubPath(LPSTR szSubPath);
84: extern BOOL APIENTRY FValidPath(LPSTR szPath);
85: extern BOOL APIENTRY FMakePathFromDirAndSubPath(LPSTR szDir, LPSTR szSubPath,
86: LPSTR szBuffer, unsigned cchpBufMax);
87: extern BOOL APIENTRY FParsePathIntoPieces(LPSTR szPath, LPSTR szBufVol, unsigned cchpBufVolMax,
88: LPSTR szBufPath, unsigned cchpBufPathMax, LPSTR szBufFile, unsigned cchpBufFileMax);
89:
90: #endif
91:
92:
93: //shell
94:
95: extern INT APIENTRY FSetBitmap(LPSTR szDll, INT Bitmap);
96: extern INT APIENTRY FSetAbout(LPSTR sz1, LPSTR sz2);
97: extern INT APIENTRY FDoDialogExt(HWND hwnd, LPSTR szDll, INT Dlg,
98: LPSTR szDlgProc, LPSTR szHelpDll, INT HelpDlg,
99: LPSTR szHelpProc);
100: extern INT APIENTRY FKillNDialogs(INT n);
101: extern INT APIENTRY FSetSymbolValue(LPSTR szSymbol, LPSTR szValue);
102: extern INT APIENTRY FRemoveSymbol(LPSTR szSym);
103: extern INT APIENTRY CbGetSymbolValue(LPSTR szSymbol, LPSTR szValue,
104: INT Length);
105: extern INT APIENTRY UsGetListLength(LPSTR szSymbol);
106: extern INT APIENTRY CbGetListItem(LPSTR szListSymbol, INT n,
107: LPSTR szListItem, INT cbMax);
108: extern INT APIENTRY FAddListItem(LPSTR szListSymbol, LPSTR szListItem);
109: extern INT APIENTRY FReplaceListItem(LPSTR szListSymbol, INT n,
110: LPSTR szListItem);
111: extern INT APIENTRY FSetSymbolToListOfInfKeys(LPSTR szSym, LPSTR szSect,
112: INT fNulls);
113:
114: #if defined(WIN16)
115: extern INT APIENTRY InitializeFrame(LPSTR szCmdLine);
116: extern INT APIENTRY HwndFrame(VOID);
117: extern INT APIENTRY HinstFrame(VOID);
118: #elif defined(WIN32)
119: extern INT APIENTRY InitializeFrame(LPSTR szCmdLine);
120: extern HWND APIENTRY HwndFrame(VOID);
121: extern HANDLE APIENTRY HinstFrame(VOID);
122: #endif
123: extern VOID APIENTRY TerminateFrame(VOID);
124:
125: //
126: //install
127: //
128: extern VOID APIENTRY ProSetPos(INT x, INT y);
129: extern INT APIENTRY FCreateDir(LPSTR szDir, INT cmo);
130: extern INT APIENTRY FRemoveDir(LPSTR szDir, INT cmo);
131: extern INT APIENTRY FAddSectionFilesToCopyList(LPSTR szSect, LPSTR szSrc,
132: LPSTR szDest);
133: extern INT APIENTRY FAddSectionKeyFileToCopyList(LPSTR szSect, LPSTR szKey,
134: LPSTR szSrc, LPSTR szDest);
135: extern INT APIENTRY FAddSpecialFileToCopyList(LPSTR szSect, LPSTR szKey,
136: LPSTR szSrc, LPSTR szDest);
137: extern INT APIENTRY GrcCopyFilesInCopyList(HANDLE hInstance);
138: extern INT APIENTRY FRemoveIniSection(LPSTR szFile, LPSTR szSect, INT cmo);
139: extern INT APIENTRY FCreateIniKeyValue(LPSTR szFile, LPSTR szSect,
140: LPSTR szKey, LPSTR szValue, INT cmo);
141: extern INT APIENTRY FRemoveIniKey(LPSTR szFile, LPSTR szSect, LPSTR szKey,
142: INT cmo);
143: extern INT APIENTRY FCreateSysIniKeyValue(LPSTR szFile, LPSTR szSect,
144: LPSTR szKey, LPSTR szValue, INT cmo);
145:
146: extern INT APIENTRY FCreateProgManGroup(LPSTR szGroup, LPSTR szPath,
147: INT cmo);
148: extern INT APIENTRY FCreateProgManItem(LPSTR szGroup, LPSTR szItem,
149: LPSTR szCmd, INT cmo);
150:
151: #ifdef WIN32
152: extern INT APIENTRY FCreateProgManGroupEx(LPSTR szGroup, BOOL fCommon, INT cmo);
153: extern INT APIENTRY FCreateProgManItemEx(LPSTR szGroup, BOOL fCommon, LPSTR szItem,
154: LPSTR szCmd, INT cmo);
155: #endif
156:
157: extern INT APIENTRY FStampResource(LPSTR szSect, LPSTR szKey, LPSTR szDst,
158: INT wResType, INT wResId, LPSTR szData, INT cbData);
159: extern INT APIENTRY FDumpCopyListToFile(LPSTR szFile);
160: extern VOID APIENTRY ResetCopyList(VOID);
161: extern LONG APIENTRY LcbGetCopyListCost(LPSTR szExtraList, LPSTR szCostList,
162: LPSTR szNeedList);
163: extern INT APIENTRY FAddDos5Help(LPSTR szProgName, LPSTR szProgHelp,
164: INT cmo);
165: extern INT APIENTRY FCopyOneFile(LPSTR szSrc, LPSTR szDest, INT cmo,
166: INT fAppend);
167: extern INT APIENTRY YnrcRemoveFile(LPSTR szFullPathSrc, INT cmo);
168: extern INT APIENTRY YnrcBackupFile(LPSTR szFullPath, LPSTR szBackup,
169: INT cmo);
170: extern INT APIENTRY FInitializeInstall(HANDLE hinst, HWND hwndFrame);
171: extern INT APIENTRY WFindFileUsingFileOpen(LPSTR szFile, LPSTR szBuf,
172: INT cbBuf);
173: extern INT APIENTRY FIsDirWritable(LPSTR szDir);
174: extern INT APIENTRY FIsFileWritable(LPSTR szFile);
175: extern INT APIENTRY FAddToBillboardList(LPSTR szDll, INT idDlg,
176: LPSTR szProc, LONG lTicks);
177: extern INT APIENTRY FClearBillboardList(VOID);
178: extern INT APIENTRY FSetRestartDir(LPSTR szDir);
179: extern INT APIENTRY FRestartListEmpty(VOID);
180: extern INT APIENTRY FExitExecRestart(VOID);
181: extern INT APIENTRY SetCopyMode(INT fMode);
182: extern INT APIENTRY GetCopyMode(VOID);
183: extern INT APIENTRY SetDecompMode(INT fMode);
184: extern INT APIENTRY GetDecompMode(VOID);
185: extern INT APIENTRY SetSizeCheckMode(INT scmMode);
186: extern INT APIENTRY FPrependToPath(LPSTR szSrc, LPSTR szDst, LPSTR szDir,
187: INT cmo);
188:
189: extern INT APIENTRY SetTimeValue(unsigned usHours, unsigned usMinutes,
190: unsigned Seconds);
191: extern VOID APIENTRY ForceRestartOn(VOID);
192: extern VOID APIENTRY TerminateInstall(VOID);
193:
194:
195:
196: //**************** Setup Basic Wrapper Declarations *********************
197:
198: //shell
199:
200: extern INT InitSetupToolkit(LPSTR szCmdLine);
201: extern VOID EndSetupToolkit(VOID);
202:
203: extern VOID SetBitmap(LPSTR szDll, INT Bitmap);
204: extern LPSTR UIStartDlgExt(LPSTR szDll, INT Dlg, LPSTR szDlgProc,
205: LPSTR szHelpDll, INT HelpDlg, LPSTR szHelpProc, LPSTR szBfr,
206: INT cbBfrMax);
207: extern LPSTR UIStartDlg(LPSTR szDll, INT Dlg, LPSTR szDlgProc,
208: INT HelpDlg, LPSTR szHelpProc, LPSTR szBuf, INT cbBuf);
209: extern VOID UIPop(INT n);
210: extern VOID UIPopAll(VOID);
211: extern VOID SetTitle(LPSTR sz);
212: extern VOID ReadInfFile(LPSTR szFile);
213: extern VOID SetSymbolValue(LPSTR szSymbol, LPSTR szValue);
214: extern LPSTR GetSymbolValue(LPSTR szSymbol, LPSTR szBuf, INT cbBuf);
215: extern INT GetListLength(LPSTR szSymbol);
216: extern VOID MakeListFromSectionKeys(LPSTR szSymbol, LPSTR szSect);
217: extern LPSTR GetListItem(LPSTR szSymbol, INT n, LPSTR szBuf,
218: INT cbBuf);
219: extern VOID AddListItem(LPSTR szSymbol, LPSTR szItem);
220: extern VOID ReplaceListItem(LPSTR szSymbol, INT n, LPSTR szItem);
221:
222: extern INT InitFrame(LPSTR szCmdLine);
223:
224: extern INT ShowWaitCursor(VOID);
225: extern VOID RestoreCursor(INT hPrev);
226:
227:
228: extern VOID AddSectionFilesToCopyList(LPSTR szSect, LPSTR szSrc,
229: LPSTR szDest);
230: extern VOID AddSectionKeyFileToCopyList(LPSTR szSect, LPSTR szKey,
231: LPSTR szSrc, LPSTR szDest);
232:
233: extern VOID CopyFilesInCopyList(VOID);
234: extern VOID CreateIniKeyValue(LPSTR szFile, LPSTR szSect,
235: LPSTR szKey, LPSTR szValue, INT cmo);
236:
237:
238: extern VOID CreateProgmanGroup(LPSTR szGroup, LPSTR szPath,
239: INT cmo);
240: extern VOID CreateProgmanItem(LPSTR szGroup, LPSTR szItem,
241: LPSTR szCmd, LPSTR szOther, INT cmo);
242:
243: #ifdef WIN32
244: extern VOID CreateProgmanGroupEx(LPSTR szGroup, BOOL fCommon,
245: INT cmo);
246: extern VOID CreateProgmanItemEx(LPSTR szGroup, BOOL fCommon, LPSTR szItem,
247: LPSTR szCmd, LPSTR szOther, INT cmo);
248: #endif
249:
250: extern VOID AddToBillboardList(LPSTR szDll, INT idDlg, LPSTR szProc,
251: LONG lTicks);
252: extern VOID SetCopyGaugePosition(INT x, INT y);
253: extern INT IsDirWritable(LPSTR szDir);
254:
255: extern LPSTR GetWindowsDir(LPSTR szBuf, INT cbBuf);
256: extern LPSTR GetWindowsSysDir(LPSTR szBuf, INT cbBuf);
257:
258: // NOTE: this routine must exist in code files supplied by app
259: extern VOID SetupError(INT);
260:
261: extern INT InitInstall(VOID);
262:
263: extern LPSTR SzCatStr(LPSTR sz1, LPSTR sz2);
264: extern LPSTR SzCat2Str(LPSTR sz1, LPSTR sz2, LPSTR sz3);
265: extern LPSTR SzCat3Str(LPSTR sz1, LPSTR sz2, LPSTR sz3,
266: LPSTR sz4);
267:
268: extern LPSTR GetSectionKeyFilename(LPSTR szSect, LPSTR szKey,
269: LPSTR szBuf, INT cbBuf);
270: extern VOID ShowProgmanGroup(LPSTR szGroup, INT Cmd, INT cmo);
271: extern INT APIENTRY FShowProgManGroup(LPSTR szGroup, LPSTR szCmd, INT cmo);
272:
273: #ifdef WIN32
274: extern VOID ShowProgmanGroupEx(LPSTR szGroup, BOOL fCommon, INT Cmd, INT cmo);
275: extern INT APIENTRY FShowProgManGroupEx(LPSTR szGroup, BOOL fCommon, LPSTR szCmd, INT cmo);
276: #endif
277:
278: extern VOID ClearCopyList(VOID);
279: extern VOID MakeListFromSectionSize(LPSTR szSym, LPSTR szSect);
280: extern LONG GetSectionKeySize(LPSTR szSect, LPSTR szKey);
281: extern INT GetWindowsMajorVersion(VOID);
282: extern INT GetWindowsMinorVersion(VOID);
283: extern VOID MakeListFromSectionFilename(LPSTR szSym, LPSTR szSect);
284: extern VOID CreateDir(LPSTR szDir, INT cmo);
285: extern LPSTR GetSectionKeyDate(LPSTR szSect, LPSTR szKey,
286: LPSTR szBuf, INT cbBuf);
287: #ifndef WIN32
288: extern VOID CopyFile(LPSTR szFullPathSrc, LPSTR szFullPathDst,
289: INT cmo, INT fAppend);
290: #endif
291: extern VOID RemoveFile(LPSTR szFullPathSrc, INT cmo);
292: extern VOID SetAbout(LPSTR szAbout1, LPSTR szAbout2);
293:
294: extern VOID RightTrim(LPSTR sz);
295: extern VOID RemoveSymbol(LPSTR szSym);
296: extern LONG GetCopyListCost(LPSTR szExtraList, LPSTR szCostList,
297: LPSTR szNeedList);
298: extern VOID StampResource(LPSTR szSect, LPSTR szKey, LPSTR szDst,
299: INT wResType, INT wResId, LPSTR szData, INT cbData);
300: extern BOOL DoesAnyFileNeedCopying(VOID);
301:
302: extern CHAR szCurDir[];
303:
304:
305: #ifndef STF_LITE
306: extern VOID TerminateRegDb(VOID);
307:
308:
309: extern INT SetBeepingMode(INT mode);
310: extern INT SetSilentMode(INT mode);
311:
312: extern LPSTR GetSectionKeyVersion(LPSTR szSect, LPSTR szKey,
313: LPSTR szBuf, INT cbBuf);
314:
315: extern VOID MakeListFromSectionDate(LPSTR szSym, LPSTR szSect);
316: extern VOID MakeListFromSectionVersion(LPSTR szSym, LPSTR szSect);
317:
318:
319: //install
320:
321: extern VOID RemoveDir(LPSTR szDir, INT cmo);
322: extern VOID AddSpecialFileToCopyList(LPSTR szSect, LPSTR szKey,
323: LPSTR szSrc, LPSTR szDest);
324: extern VOID RemoveIniSection(LPSTR szFile, LPSTR szSect, INT cmo);
325: extern VOID RemoveIniKey(LPSTR szFile, LPSTR szSect, LPSTR szKey,
326: INT cmo);
327: extern VOID CreateSysIniKeyValue(LPSTR szFile, LPSTR szSect,
328: LPSTR szKey, LPSTR szValue, INT cmo);
329: extern VOID DumpCopyList(LPSTR szFile);
330: extern VOID AddDos5Help(LPSTR szProgName, LPSTR szProgHelp,
331: INT cmo);
332: extern VOID CopyAFile(LPSTR szFullPathSrc, LPSTR szFullPathDst, INT cmo,
333: INT fAppend);
334:
335: extern VOID BackupFile(LPSTR szFullPath, LPSTR szBackup);
336: extern VOID RenameFile(LPSTR szFullPath, LPSTR szBackup);
337: extern VOID AddBlankToBillboardList(LONG lTicks);
338: extern VOID ClearBillboardList(VOID);
339: extern VOID OpenLogFile(LPSTR szFile, INT fAppend);
340: extern VOID CloseLogFile(VOID);
341: extern VOID WriteToLogFile(LPSTR szStr);
342: extern VOID SetRestartDir(LPSTR szDir);
343: extern BOOL RestartListEmpty(VOID);
344: extern INT ExitExecRestart(VOID);
345: extern LPSTR FindFileUsingFileOpen(LPSTR szFile, LPSTR szBuf,
346: INT cbBuf);
347: extern BOOL IsFileWritable(LPSTR szFile);
348: extern LPSTR GetNthFieldFromIniString(LPSTR szLine, INT iField,
349: LPSTR szBuf, INT cbBuf);
350: extern VOID PrependToPath(LPSTR szSrc, LPSTR szDst, LPSTR szDir,
351: INT cmo);
352:
353:
354: // Error Handling
355:
356:
357: #ifdef DEBUG
358:
359: // Setup API Errors
360: #define saeFail 0
361: #define saeInit 1
362: #define saeNYI 3
363: #define saeOvfl 4
364: #define saeArg 5 //must be max sae value
365:
366: extern VOID StfApiErr(INT nMsg, LPSTR szApi, LPSTR szArgs);
367: extern VOID BadArgErr(INT nArg, LPSTR szApi, LPSTR szArgs);
368:
369: extern INT FValidDrive(LPSTR szDrive);
370: extern INT FValidInfSect(LPSTR szSect);
371: extern INT FValidIniFile(LPSTR szFile);
372:
373: #define FEmptySz(sz) ((sz)==NULL || *(sz)=='\0')
374: #define FValidSz(sz) ((sz) && *(sz))
375:
376: #endif //DEBUG
377:
378:
379: // Windows system detect
380:
381: extern INT GetWindowsMode(VOID);
382: extern BOOL IsWindowsShared(VOID);
383: extern INT GetScreenWidth(VOID);
384: extern INT GetScreenHeight(VOID);
385:
386: extern INT InStr(INT cch, LPSTR sz1, LPSTR sz2);
387:
388: extern BOOL APIENTRY AssertSzUs(LPSTR, unsigned);
389: #ifdef DEBUG
390: #define Assert(f) ((f) ? (VOID)0 : (VOID)AssertSzUs(__FILE__,__LINE__))
391: #else
392: #define Assert(f) ((VOID)0)
393: #endif
394:
395: typedef BYTE FAR * PB;
396:
397: extern PB APIENTRY PbSaveMemInf(VOID);
398: extern VOID APIENTRY RestoreMemInf(PB);
399: extern VOID APIENTRY FreeMemInf(PB);
400:
401: extern BOOL APIENTRY AddSrcFileWithAttribsToCopyList(LPSTR szSect,
402: LPSTR szKey, LPSTR szSrcPath, LPSTR szDstPath);
403: #endif /* !STF_LITE */
404:
405: #ifndef WF_WINNT
406: #define WF_WINNT 0x4000
407: #endif /* !WF_WINNT */
408:
409: #ifndef WF_CPUR4000
410: #define WF_CPUR4000 0x0100
411: #endif /* !WF_CPUR4000 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.