|
|
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.