|
|
1.1 root 1: #include <windows.h>
2: #include "setupapi.h"
3: #include "mscpydis.h"
4:
5: #define cchMax 255
6:
7: static char szCuiDll[] = "mscuistf.dll";
8:
9:
10: // **************************************************************************
11: int FAR PASCAL InitSystemRead(int did, LPSTR sz, int fNet)
12: {
13: #ifdef DEBUG
14: int n;
15: char szDid[cchMax*3], szNet[cchMax];
16: LPSTR szTmp;
17:
18: n = 0;
19: if ((did < 1) || (did > 999))
20: n = 1;
21: else if (FValidSz(sz) && (InStr(1, sz, "\\") != 0))
22: n = 2;
23:
24: if (n > 0)
25: {
26: wsprintf(szDid, "%d", did);
27: wsprintf(szNet, "%d", fNet);
28: szTmp = SzCat2Str(szDid, ", ", sz);
29: BadArgErr(n, "InitSystemRead", SzCat2Str(szTmp, ", ", szNet));
30: }
31: #endif // DEBUG
32:
33: return(FInitSystem1(did, sz, fNet));
34: }
35:
36:
37: // **************************************************************************
38: int FAR PASCAL InitSystemWrite(int did, LPSTR sz, int fAlways)
39: {
40: #ifdef DEBUG
41: int n;
42: char szDid[cchMax * 3], szAlways[cchMax];
43: LPSTR szTmp;
44:
45: n = 0;
46: if ((did < 1) || (did > 999))
47: n = 1;
48: else if (FValidSz(sz) && (InStr(1, sz,"\\") != 0))
49: n = 2;
50: if (n > 0)
51: {
52: wsprintf(szDid, "%d", did);
53: wsprintf(szAlways, "%d", fAlways);
54: szTmp = SzCat2Str(szDid, ", ", sz);
55: BadArgErr(n, "InitSystemWrite", SzCat2Str(szTmp, ", ", szAlways));
56: }
57: #endif // DEBUG
58:
59: return(FInitSystem3(did, sz, fAlways));
60: }
61:
62:
63: // *************************************************************************
64: void FAR PASCAL CloseSystem(LPSTR szSect, LPSTR szKey, LPSTR szDst,
65: int wResType, int wResId)
66: {
67: #ifdef DEBUG
68: int n;
69: LPSTR szTmp;
70: char szResType[cchMax], szResId[cchMax];
71:
72: if (FValidInfSect(szSect) == 0)
73: n = 1;
74: else if (FEmptySz(szKey))
75: n = 2;
76: #if defined(WIN16)
77: else if (FValidFATDir(szDst) == 0)
78: #elif defined(WIN32)
79: else if (FValidDir(szDst) == 0)
80: #endif
81: n = 3;
82: else
83: n = 0;
84: if (n > 0)
85: {
86: szTmp = SzCat2Str(szSect, szKey, szDst);
87: wsprintf(szResType, "%d", wResType);
88: wsprintf(szResId, "%d", wResId);
89: BadArgErr(n, "CloseSystem", SzCat2Str(szTmp, szResType, szResId));
90: }
91: #endif // DEBUG
92:
93: if (FCloseSystem(szSect, szKey, szDst, wResType, wResId) == 0)
94: {
95: #ifdef DEBUG
96: LPSTR szTmp;
97: char szResType[cchMax], szResId[cchMax];
98:
99: szTmp = SzCat2Str(szSect, szKey, szDst);
100: wsprintf(szResType, "%d", wResType);
101: wsprintf(szResId, "%d", wResId);
102: StfApiErr(saeFail, "CloseSystem", SzCat2Str(szTmp, szResType, szResId));
103: #endif // DEBUG
104: SetupError(STFERR);
105: }
106: }
107:
108:
109: // **************************************************************************
110: int FAR PASCAL InitSystem(int did, LPSTR sz, int fNet)
111: {
112: return(InitSystemRead(did, sz, fNet)
113: && InitSystemDlgs(fNet)
114: && InitSystemWrite(did, sz, 0));
115: }
116:
117:
118: // **************************************************************************
119: int FAR PASCAL InitSystemDlgs(int fNet)
120: {
121: int fOkay = 0;
122: char rgchName[64];
123: char rgchOrg[64];
124: char rgchType[16];
125: char rgchReturn[32];
126: char rgchTmp[64];
127: LPSTR szTmp;
128:
129: GetSymbolValue("STF_CD_NAME", rgchName, 64);
130: GetSymbolValue("STF_CD_ORG", rgchOrg, 64);
131: GetSymbolValue("STF_CD_TYPE", rgchType, 16);
132:
133: if (*rgchType == 'N')
134: {
135: if (fNet)
136: {
137: SetSymbolValue("EditTextIn", "");
138: SetSymbolValue("EditFocus", "");
139: LGetOrgDialog:
140: UIStartDlg(szCuiDll, CDGETORG, "FGetNameDlgProc", 0, "",
141: rgchReturn, 32);
142:
143: if (*rgchReturn == 'C')
144: {
145: GetSymbolValue("EditTextOut", rgchTmp, 64);
146: szTmp = rgchTmp;
147: while (*szTmp == ' ')
148: szTmp++;
149: lstrcpy(rgchOrg, szTmp);
150: RightTrim(rgchOrg);
151:
152: if (*rgchOrg == '\0')
153: {
154: BadNameOrg(CDBADORG);
155: goto LGetOrgDialog;
156: }
157:
158: if (!NameOrgOkay(CDCONFIRMINFO, rgchOrg, ""))
159: goto LGetOrgDialog;
160:
161: SetSymbolValue("STF_CD_ORG", rgchOrg);
162: fOkay = 1;
163: }
164: else if (*rgchReturn == 'R')
165: goto LGetOrgDialog;
166: else
167: SetSymbolValue("STF_CD_TYPE", "ERROR");
168: UIPop(1);
169: }
170: else
171: {
172: LGetNameOrgDialog:
173: UIStartDlg(szCuiDll, CDGETNAMEORG, "FNameOrgDlgProc", 0, "",
174: rgchReturn, 32);
175:
176: if (*rgchReturn == 'C')
177: {
178: GetSymbolValue("NameOut", rgchTmp, 64);
179: szTmp = rgchTmp;
180: while (*szTmp == ' ')
181: szTmp++;
182: lstrcpy(rgchName, szTmp);
183: RightTrim(rgchName);
184:
185: GetSymbolValue("OrgOut", rgchTmp, 64);
186: szTmp = rgchTmp;
187: while (*szTmp == ' ')
188: szTmp++;
189: lstrcpy(rgchOrg, szTmp);
190: RightTrim(rgchOrg);
191:
192: if (*rgchName == '\0')
193: {
194: BadNameOrg(CDBADNAME);
195: goto LGetNameOrgDialog;
196: }
197: if (*rgchOrg == '\0')
198: lstrcpy(rgchOrg, " ");
199: if (!NameOrgOkay(CDCONFIRMINFO, rgchName, rgchOrg))
200: goto LGetNameOrgDialog;
201:
202: SetSymbolValue("STF_CD_NAME", rgchName);
203: SetSymbolValue("STF_CD_ORG", rgchOrg);
204: fOkay = 1;
205: }
206: else
207: SetSymbolValue("STF_CD_TYPE", "ERROR");
208: UIPop(1);
209: }
210: }
211: else if ((*rgchType == 'U') || (*rgchType == 'O'))
212: return(NameOrgOkay(CDALREADYUSED, rgchName, rgchOrg));
213: else if (*rgchType == 'W')
214: {
215: SetSymbolValue("EditTextIn", "");
216: SetSymbolValue("EditFocus", "");
217: LGetNameDialog:
218: UIStartDlg(szCuiDll, CDGETNAME, "FGetNameDlgProc", 0, "",
219: rgchReturn, 32);
220:
221: if (*rgchReturn == 'C')
222: {
223: GetSymbolValue("EditTextOut", rgchTmp, 64);
224: szTmp = rgchTmp;
225: while (*szTmp == ' ')
226: szTmp++;
227: lstrcpy(rgchName, szTmp);
228: RightTrim(rgchName);
229:
230: if (*rgchName == '\0')
231: {
232: BadNameOrg(CDBADNAME);
233: goto LGetNameDialog;
234: }
235:
236: if (!NameOrgOkay(CDCONFIRMINFO, rgchName, ""))
237: goto LGetNameDialog;
238:
239: SetSymbolValue("STF_CD_NAME", rgchName);
240: fOkay = 1;
241: }
242: else if (*rgchReturn == 'R')
243: goto LGetNameDialog;
244: else
245: SetSymbolValue("STF_CD_TYPE", "ERROR");
246: UIPop(1);
247: }
248: else
249: {
250: UIStartDlg(szCuiDll, CDBADFILE, "FInfoDlgProc", 0, "",
251: rgchReturn, 32);
252:
253: if (*rgchReturn == 'C')
254: fOkay = 1;
255: UIPop(1);
256: }
257:
258: return(fOkay);
259: }
260:
261:
262: // **************************************************************************
263: void FAR PASCAL BadNameOrg(int dlg)
264: {
265: char rgchReturn[16];
266:
267: UIStartDlg(szCuiDll, dlg, "FInfoDlgProc", 0, "", rgchReturn, 16);
268: UIPop(1);
269: }
270:
271:
272: // **************************************************************************
273: int FAR PASCAL NameOrgOkay(int dlg, LPSTR szName, LPSTR szOrg)
274: {
275: char rgchReturn[16];
276:
277: RemoveSymbol("ConfirmTextIn");
278: AddListItem("ConfirmTextIn", szName);
279: AddListItem("ConfirmTextIn", szOrg);
280:
281: UIStartDlg(szCuiDll, dlg, "FConfirmDlgProc", 0, "", rgchReturn, 16);
282: UIPop(1);
283:
284: if (*rgchReturn == 'C')
285: return(1);
286:
287: return(0);
288: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.