Annotation of mstools/mssetup/sample/msdetect.c, revision 1.1

1.1     ! root        1: #include <windows.h>
        !             2: #include "setupapi.h"
        !             3: #include "msdetect.h"
        !             4: #include <string.h>
        !             5: #include <stdlib.h>
        !             6: 
        !             7: 
        !             8: #define cchNum 10
        !             9: 
        !            10: 
        !            11: // *************************************************************************
        !            12: LPSTR lstrncpy(LPSTR szDst, LPSTR szSrc, INT n)
        !            13: {
        !            14:        LPSTR szSav = szDst;
        !            15: 
        !            16:        while (n-- && (*szDst++ = *szSrc++) != '\0')
        !            17:                ;
        !            18: 
        !            19:        while (n--)
        !            20:                *szDst++ = '\0';
        !            21: 
        !            22:        return(szSav);
        !            23: }
        !            24: 
        !            25: 
        !            26: // *************************************************************************
        !            27: INT IsDriveValid(LPSTR szDrive)
        !            28: {
        !            29: #ifdef DEBUG
        !            30:        if (FValidDrive(szDrive) == 0)
        !            31:                BadArgErr(1, "IsDriveValid", szDrive);
        !            32: #endif // DEBUG
        !            33: 
        !            34:        AnsiUpperBuff(szDrive, 1);
        !            35: 
        !            36:        return(FIsValidDrive(*szDrive - 'A' + 1));
        !            37: }
        !            38: 
        !            39: 
        !            40: // *************************************************************************
        !            41: INT IsDriveLocalHard(LPSTR szDrive)
        !            42: {
        !            43: #ifdef DEBUG
        !            44:        if (FValidDrive(szDrive) == 0)
        !            45:                BadArgErr(1, "IsDriveLocalHard", szDrive);
        !            46: #endif // DEBUG
        !            47: 
        !            48:        return(FIsLocalHardDrive((*AnsiUpper(szDrive)) - 'A' + 1));
        !            49: }
        !            50: 
        !            51: 
        !            52: // *************************************************************************
        !            53: INT IsDriveRemovable(LPSTR szDrive)
        !            54: {
        !            55: #ifdef DEBUG
        !            56:        if (FValidDrive(szDrive) == 0)
        !            57:                BadArgErr(1, "IsDriveRemovable", szDrive);
        !            58: #endif // DEBUG
        !            59: 
        !            60:        AnsiUpperBuff(szDrive, 1);
        !            61: 
        !            62:        return(FIsRemoveDrive(*szDrive - 'A' + 1));
        !            63: }
        !            64: 
        !            65: 
        !            66: // *************************************************************************
        !            67: INT IsDriveNetwork(LPSTR szDrive)
        !            68: {
        !            69:        CHAR ch;
        !            70: 
        !            71: #ifdef DEBUG
        !            72:        if (FValidDrive(szDrive) == 0)
        !            73:                BadArgErr(1, "IsDriveNetwork", szDrive);
        !            74: #endif // DEBUG
        !            75: 
        !            76:        ch = *szDrive;
        !            77:        AnsiUpperBuff(&ch, 1);
        !            78: 
        !            79:        return(FIsRemoteDrive(ch - 'A' + 1));
        !            80: }
        !            81: 
        !            82: 
        !            83: // *************************************************************************
        !            84: LONG GetTotalSpaceForDrive(LPSTR szDrive)
        !            85: {
        !            86:        LONG totalspc;
        !            87: #ifdef DEBUG
        !            88:        if (FValidDrive(szDrive) == 0)
        !            89:                BadArgErr(1, "GetTotalSpaceForDrive", szDrive);
        !            90: #endif // DEBUG
        !            91: 
        !            92:        AnsiUpperBuff(szDrive, 1);
        !            93:        totalspc=LcbTotalDrive(*szDrive - 'A' + 1);
        !            94:        return(totalspc);
        !            95: }
        !            96: 
        !            97: 
        !            98: // *************************************************************************
        !            99: LONG GetFreeSpaceForDrive(LPSTR szDrive)
        !           100: {
        !           101:        CHAR ch;
        !           102:        LONG freespc;
        !           103: 
        !           104: #ifdef DEBUG
        !           105:        if (FValidDrive(szDrive) == 0)
        !           106:                BadArgErr(1, "GetFreeSpaceForDrive", szDrive);
        !           107: #endif // DEBUG
        !           108: 
        !           109:        ch = *szDrive;
        !           110:        AnsiUpperBuff(&ch, 1);
        !           111: 
        !           112:        freespc = LcbFreeDrive(ch - 'A' + 1);
        !           113:        return(freespc);
        !           114: }
        !           115: 
        !           116: 
        !           117: // *************************************************************************
        !           118: void GetValidDrivesList(LPSTR szSymbol)
        !           119: {
        !           120: #ifdef DEBUG
        !           121:        if (FEmptySz(szSymbol))
        !           122:                BadArgErr(1, "GetValidDrivesList", szSymbol);
        !           123: #endif // DEBUG
        !           124: 
        !           125:        if (FGetValidDrivesList(szSymbol) == 0)
        !           126:                {
        !           127: #ifdef DEBUG
        !           128:                StfApiErr(saeFail, "GetValidDrivesList", szSymbol);
        !           129: #endif // DEBUG
        !           130:                SetupError(STFERR);
        !           131:                }
        !           132: }
        !           133: 
        !           134: 
        !           135: // *************************************************************************
        !           136: void GetLocalHardDrivesList(LPSTR szSymbol)
        !           137: {
        !           138: #ifdef DEBUG
        !           139:        if (FEmptySz(szSymbol))
        !           140:                BadArgErr(1, "GetLocalHardDrivesList", szSymbol);
        !           141: #endif // DEBUG
        !           142: 
        !           143:        if (FGetLocalHardDrivesList(szSymbol) == 0)
        !           144:                {
        !           145: #ifdef DEBUG
        !           146:                StfApiErr(saeFail, "GetLocalHardDrivesList", szSymbol);
        !           147: #endif // DEBUG
        !           148:                SetupError(STFERR);
        !           149:                }
        !           150: }
        !           151: 
        !           152: 
        !           153: #ifndef STF_LITE
        !           154: // *************************************************************************
        !           155: void GetRemovableDrivesList(LPSTR szSymbol)
        !           156: {
        !           157: #ifdef DEBUG
        !           158:        if (FEmptySz(szSymbol))
        !           159:                BadArgErr(1, "GetRemovableDrivesList", szSymbol);
        !           160: #endif // DEBUG
        !           161: 
        !           162:        if (FGetRemovableDrivesList(szSymbol) == 0)
        !           163:                {
        !           164: #ifdef DEBUG
        !           165:                StfApiErr(saeFail, "GetRemovableDrivesList", szSymbol);
        !           166: #endif // DEBUG
        !           167:                SetupError(STFERR);
        !           168:                }
        !           169: }
        !           170: 
        !           171: #endif  /* !STF_LITE */
        !           172: 
        !           173: // *************************************************************************
        !           174: void GetNetworkDrivesList(LPSTR szSymbol)
        !           175: {
        !           176: #ifdef DEBUG
        !           177:        if (FEmptySz(szSymbol))
        !           178:                BadArgErr(1, "GetNetworkDrivesList", szSymbol);
        !           179: #endif // DEBUG
        !           180: 
        !           181:        if (FGetNetworkDrivesList(szSymbol) == 0)
        !           182:                {
        !           183: #ifdef DEBUG
        !           184:                StfApiErr(saeFail, "GetNetworkDrivesList", szSymbol);
        !           185: #endif // DEBUG
        !           186:                SetupError(STFERR);
        !           187:                }
        !           188: }
        !           189: 
        !           190: 
        !           191: #ifndef STF_LITE 
        !           192: // *************************************************************************
        !           193: INT GetDOSMajorVersion(void)
        !           194: {
        !           195: #ifndef WIN32
        !           196:        return(WGetDOSMajorVersion());
        !           197: #else
        !           198:        return(0);
        !           199: #endif
        !           200: }
        !           201: 
        !           202: 
        !           203: // *************************************************************************
        !           204: INT GetDOSMinorVersion(void)
        !           205: {
        !           206: #ifndef WIN32
        !           207:        return(WGetDOSMinorVersion());
        !           208: #else
        !           209:        return(0);
        !           210: #endif
        !           211: }
        !           212: 
        !           213: 
        !           214: // *************************************************************************
        !           215: LPSTR GetEnvVariableValue(LPSTR szEnvVar, LPSTR szBuf, INT cbBuf)
        !           216: {
        !           217:        INT cbRet;
        !           218: 
        !           219:        if ((szBuf != NULL) && (cbBuf > 0))
        !           220:                *szBuf = '\0';
        !           221: 
        !           222: #ifdef DEBUG
        !           223:        if (FEmptySz(szEnvVar))
        !           224:                BadArgErr(1, "GetEnvVariableValue", szEnvVar);
        !           225: #endif // DEBUG
        !           226: 
        !           227:        cbRet = CbGetEnvVariableValue(szEnvVar, szBuf, cbBuf);
        !           228: 
        !           229:        if (cbRet >= cbBuf)
        !           230:                {
        !           231: #ifdef DEBUG
        !           232:                StfApiErr(saeOvfl, "GetEnvVariableValue", szEnvVar);
        !           233: #endif // DEBUG
        !           234:                SetupError(STFERR);
        !           235:                }
        !           236: 
        !           237:        return(szBuf);
        !           238: }
        !           239: 
        !           240: 
        !           241: // *************************************************************************
        !           242: INT GetNumWinApps(void)
        !           243: {
        !           244: #ifndef WIN32
        !           245:        return(WGetNumWinApps());
        !           246: #else
        !           247:        return(0);
        !           248: #endif
        !           249: }
        !           250: #endif  /* !STF_LITE */
        !           251: 
        !           252: 
        !           253: // *************************************************************************
        !           254: INT DoesFileExist(LPSTR szFileName, INT mode)
        !           255: {
        !           256:        if (FValidPath(szFileName) == 0)
        !           257:                return(0);
        !           258: 
        !           259:        return(FDoesFileExist(szFileName, mode));
        !           260: }
        !           261: 
        !           262: 
        !           263: // *************************************************************************
        !           264: LPSTR GetDateOfFile(LPSTR szFile, LPSTR szBuf, INT cbBuf)
        !           265: {
        !           266:        INT cbRet;
        !           267: 
        !           268: #ifdef DEBUG
        !           269:        if (FValidPath(szFile) == 0)
        !           270:                BadArgErr(1, "GetDateOfFile", szFile);
        !           271: #endif // DEBUG
        !           272: 
        !           273:        cbRet = CbGetDateOfFile(szFile, szBuf, cbBuf);
        !           274: 
        !           275:        if (cbRet >= cbBuf)
        !           276:                {
        !           277: #ifdef DEBUG
        !           278:                StfApiErr(saeOvfl, "GetDateOfFile", szFile);
        !           279: #endif // DEBUG
        !           280:                SetupError(STFERR);
        !           281:                }
        !           282: 
        !           283:        return(szBuf);
        !           284: }
        !           285: 
        !           286: 
        !           287: // *************************************************************************
        !           288: INT GetYearFromDate(LPSTR szDate)
        !           289: {
        !           290:        CHAR szYear[5];
        !           291: 
        !           292: #ifdef DEBUG
        !           293:        if (FEmptySz(szDate))
        !           294:                BadArgErr(1, "GetYearFromDate", szDate);
        !           295: #endif // DEBUG
        !           296: 
        !           297:        lstrncpy(szYear, szDate, 4);
        !           298: 
        !           299:        return(atoi(szYear));
        !           300: }
        !           301: 
        !           302: 
        !           303: // *************************************************************************
        !           304: INT GetMonthFromDate(LPSTR szDate)
        !           305: {
        !           306:        CHAR szMonth[3];
        !           307: 
        !           308: #ifdef DEBUG
        !           309:        if (FEmptySz(szDate))
        !           310:                BadArgErr(1, "GetMonthFromDate", szDate);
        !           311: #endif // DEBUG
        !           312: 
        !           313:        lstrncpy(szMonth, szDate + 5, 2);
        !           314: 
        !           315:        return(atoi(szMonth));
        !           316: }
        !           317: 
        !           318: 
        !           319: // *************************************************************************
        !           320: INT GetDayFromDate(LPSTR szDate)
        !           321: {
        !           322:        CHAR szDay[3];
        !           323: 
        !           324: #ifdef DEBUG
        !           325:        if (FEmptySz(szDate))
        !           326:                BadArgErr(1, "GetDayFromDate", szDate);
        !           327: #endif // DEBUG
        !           328: 
        !           329:        lstrncpy(szDay, szDate + 8, 2);
        !           330: 
        !           331:        return(atoi(szDay));
        !           332: }
        !           333: 
        !           334: #ifndef STF_LITE
        !           335: 
        !           336: // *************************************************************************
        !           337: INT GetHourFromDate(LPSTR szDate)
        !           338: {
        !           339:        CHAR szHour[2];
        !           340: 
        !           341: #ifdef DEBUG
        !           342:        if (FEmptySz(szDate))
        !           343:                BadArgErr(1, "GetHourFromDate", szDate);
        !           344: #endif // DEBUG
        !           345: 
        !           346:        lstrncpy(szHour, szDate + 11, 2);
        !           347: 
        !           348:        return(atoi(szHour));
        !           349: }
        !           350: 
        !           351: 
        !           352: // *************************************************************************
        !           353: INT GetMinuteFromDate(LPSTR szDate)
        !           354: {
        !           355:        CHAR szMinute[3];
        !           356: 
        !           357: #ifdef DEBUG
        !           358:        if (FEmptySz(szDate))
        !           359:                BadArgErr(1, "GetMinuteFromDate", szDate);
        !           360: #endif // DEBUG
        !           361: 
        !           362:        lstrncpy(szMinute, szDate + 14, 2);
        !           363: 
        !           364:        return(atoi(szMinute));
        !           365: }
        !           366: 
        !           367: 
        !           368: // *************************************************************************
        !           369: INT GetSecondFromDate(LPSTR szDate)
        !           370: {
        !           371:        CHAR szSecond[3];
        !           372: 
        !           373: #ifdef DEBUG
        !           374:        if (FEmptySz(szDate))
        !           375:                BadArgErr(1, "GetSecondFromDate", szDate);
        !           376: #endif // DEBUG
        !           377: 
        !           378:        lstrncpy(szSecond, szDate + 17, 2);
        !           379: 
        !           380:        return(atoi(szSecond));
        !           381: }
        !           382: 
        !           383: 
        !           384: // *************************************************************************
        !           385: LPSTR GetVersionOfFile(LPSTR szFile, LPSTR szBuf, INT cbBuf)
        !           386: {
        !           387:        INT cbRet;
        !           388: 
        !           389:        if (szBuf != NULL && cbBuf > 0)
        !           390:                *szBuf = '\0';
        !           391: 
        !           392: #ifdef DEBUG
        !           393:        if (FValidPath(szFile) == 0)
        !           394:                BadArgErr(1, "GetVersionOfFile", szFile);
        !           395: #endif // DEBUG
        !           396: 
        !           397:        cbRet = CbGetVersionOfFile(szFile, szBuf, cbBuf);
        !           398: 
        !           399:        if (cbRet >= cbBuf)
        !           400:                {
        !           401: #ifdef DEBUG
        !           402:                StfApiErr(saeOvfl, "GetVersionOfFile", szFile);
        !           403: #endif // DEBUG
        !           404:                SetupError(STFERR);
        !           405:                }
        !           406: 
        !           407:        return(szBuf);
        !           408: }
        !           409: 
        !           410: 
        !           411: // *************************************************************************
        !           412: LONG GetVersionNthField(LPSTR szVersion, INT nField)
        !           413: {
        !           414: #ifdef DEBUG
        !           415:        CHAR szField[cchNum];
        !           416: 
        !           417:        if ((nField < 1) || (nField > 4))
        !           418:                {
        !           419:                wsprintf(szField, "%d", nField);
        !           420:                BadArgErr(2, "GetVersionNthField",SzCat2Str(szVersion,", ",szField));
        !           421:                }
        !           422: #endif // DEBUG
        !           423: 
        !           424:        return(LGetVersionNthField(szVersion, nField));
        !           425: }
        !           426: #endif  /* !STF_LITE */
        !           427: 
        !           428: 
        !           429: // *************************************************************************
        !           430: LONG GetSizeOfFile(LPSTR szFile)
        !           431: {
        !           432: #ifdef DEBUG
        !           433:        if (FValidPath(szFile) == 0)
        !           434:                BadArgErr(1, "GetSizeOfFile", szFile);
        !           435: #endif // DEBUG
        !           436: 
        !           437:        return(LcbGetSizeOfFile(szFile));
        !           438: }
        !           439: 
        !           440: 
        !           441: #ifndef STF_LITE
        !           442: // *************************************************************************
        !           443: LPSTR FindTargetOnEnvVar(LPSTR szFile, LPSTR szEnvVar, LPSTR szBuf,
        !           444:                INT cbBuf)
        !           445: {
        !           446:        INT cbRet;
        !           447: #ifdef DEBUG
        !           448:        INT n;
        !           449: #endif /* DEBUG */
        !           450: 
        !           451:        if (szBuf != NULL && cbBuf > 0)
        !           452:                *szBuf = '\0';
        !           453: 
        !           454: #ifdef DEBUG
        !           455:        if (CchlValidSubPath(szFile) == 0)
        !           456:                n = 1;
        !           457:        else if (FEmptySz(szEnvVar))
        !           458:                n = 2;
        !           459:        else
        !           460:                n = 0;
        !           461:        if (n > 0)
        !           462:                BadArgErr(n, "FindTargetOnEnvVar",SzCat2Str(szFile,", ",szEnvVar));
        !           463: #endif // DEBUG
        !           464: 
        !           465:        cbRet = CbFindTargetOnEnvVar(szFile, szEnvVar, szBuf, cbBuf);
        !           466: 
        !           467:        if (cbRet >= cbBuf)
        !           468:                {
        !           469: #ifdef DEBUG
        !           470:                StfApiErr(saeOvfl,"FindTargetOnEnvVar",SzCat2Str(szFile,", ",szEnvVar));
        !           471: #endif // DEBUG
        !           472:                SetupError(STFERR);
        !           473:                }
        !           474: 
        !           475:        return(szBuf);
        !           476: }
        !           477: 
        !           478: 
        !           479: // *************************************************************************
        !           480: LPSTR FindFileInTree(LPSTR szFile, LPSTR szDir, LPSTR szBuf,
        !           481:                INT cbBuf)
        !           482: {
        !           483:        INT cbRet;
        !           484: #ifdef DEBUG
        !           485:        INT n;
        !           486: 
        !           487:        if (CchlValidSubPath(szFile) == 0)
        !           488:                n = 1;
        !           489:        else if (FValidDir(szDir) == 0)
        !           490:                n = 2;
        !           491:        else
        !           492:                n = 0;
        !           493:        if (n > 0)
        !           494:                BadArgErr(n, "FindFileInTree",SzCat2Str(szFile,", ",szDir));
        !           495: #endif // DEBUG
        !           496: 
        !           497:        cbRet = CbFindFileInTree(szFile, szDir, szBuf, cbBuf);
        !           498: 
        !           499:        if (cbRet >= cbBuf)
        !           500:                {
        !           501: #ifdef DEBUG
        !           502:                StfApiErr(saeOvfl, "FindFileInTree",SzCat2Str(szFile,", ",szDir));
        !           503: #endif // DEBUG
        !           504:                SetupError(STFERR);
        !           505:                }
        !           506: 
        !           507:        return(szBuf);
        !           508: }
        !           509: 
        !           510: 
        !           511: #ifdef WIN16
        !           512: // *************************************************************************
        !           513: INT GetConfigSmartdrvSize(void)
        !           514: {
        !           515:        return(WGetConfigSmartdrvSize());
        !           516: }
        !           517: 
        !           518: 
        !           519: // *************************************************************************
        !           520: INT GetConfigRamdriveSize(void)
        !           521: {
        !           522:        return(WGetConfigRamdriveSize());
        !           523: }
        !           524: 
        !           525: 
        !           526: // *************************************************************************
        !           527: INT GetConfigNumBuffers(void)
        !           528: {
        !           529:        return(WGetConfigNumBuffers());
        !           530: }
        !           531: 
        !           532: 
        !           533: // *************************************************************************
        !           534: INT GetConfigNumFiles(void)
        !           535: {
        !           536:        return(WGetConfigNumFiles());
        !           537: }
        !           538: 
        !           539: 
        !           540: // *************************************************************************
        !           541: LPSTR GetConfigLastDrive(LPSTR szBuf, INT cbBuf)
        !           542: {
        !           543:        INT chRet = WGetConfigLastDrive();
        !           544: 
        !           545:        if (chRet == 0)
        !           546:                lstrcpy(szBuf, "");
        !           547:        else
        !           548:                wsprintf(szBuf, "%c", chRet);
        !           549: 
        !           550:        return(szBuf);
        !           551: }
        !           552: #endif
        !           553: 
        !           554: // *************************************************************************
        !           555: INT IsDriverInConfig(LPSTR szDrv)
        !           556: {
        !           557: #ifdef DEBUG
        !           558:        if (FEmptySz(szDrv))
        !           559:                BadArgErr(1, "IsDriverInConfig", szDrv);
        !           560: #endif // DEBUG
        !           561: 
        !           562:        return(FIsDriverInConfig(szDrv));
        !           563: }
        !           564: 
        !           565: 
        !           566: // *************************************************************************
        !           567: INT GetProcessorType(void)
        !           568: {
        !           569: #if defined(WIN16)
        !           570:        LONG longTmp = GetWinFlags();
        !           571: 
        !           572:        if (longTmp && WF_CPUR4000)
        !           573:                return(5);
        !           574:        else if (longTmp && WF_CPU486)
        !           575:                return(4);
        !           576:        else if (longTmp && WF_CPU386)
        !           577:                return(3);
        !           578:        else if (longTmp && WF_CPU286)
        !           579:                return(2);
        !           580:        else if (longTmp && WF_CPU186)
        !           581:                return(1);
        !           582:        else
        !           583:                return(0);
        !           584: #elif defined(WIN32)
        !           585:        CHAR szResult[32];
        !           586:        unsigned cb=32;
        !           587: 
        !           588:        if (FGetProcessorType("", 0, szResult, cb)) {
        !           589:            if (lstrcmpi(szResult, "C400") == 0)
        !           590:                return(400) ;
        !           591:            if (lstrcmpi(szResult, "AXP21064") == 0)
        !           592:                return(21064) ;
        !           593:            if (lstrcmpi(szResult, "R4000") == 0)
        !           594:                return(4000) ;
        !           595:            if (lstrcmpi(szResult, "R3000") == 0)
        !           596:                return(3000) ;
        !           597:            if (lstrcmpi(szResult, "R2000") == 0)
        !           598:                return(2000) ;
        !           599:            if (lstrcmpi(szResult, "80486") == 0)
        !           600:                return(4) ;
        !           601:            if (lstrcmpi(szResult, "80386") == 0)
        !           602:                return(3) ;
        !           603:            if (lstrcmpi(szResult, "80286") == 0)
        !           604:                return(2) ;
        !           605:            if (lstrcmpi(szResult, "80186") == 0)
        !           606:                return(1) ;
        !           607:            if (lstrcmpi(szResult, "8086") == 0)
        !           608:                return(0);
        !           609:        }
        !           610:        else
        !           611:                return(0);
        !           612: #endif
        !           613: }
        !           614: 
        !           615: 
        !           616: // *************************************************************************
        !           617: void GetParallelPortsList(LPSTR szSymbol)
        !           618: {
        !           619: #ifdef DEBUG
        !           620:        if (FEmptySz(szSymbol))
        !           621:                BadArgErr(1, "GetParallelPortsList", szSymbol);
        !           622: #endif // DEBUG
        !           623: 
        !           624:        if (FGetParallelPortsList(szSymbol) == 0)
        !           625:                {
        !           626: #ifdef DEBUG
        !           627:                StfApiErr(saeFail, "GetParallelPortsList", szSymbol);
        !           628: #endif // DEBUG
        !           629:                SetupError(STFERR);
        !           630:                }
        !           631: }
        !           632: 
        !           633: 
        !           634: // *************************************************************************
        !           635: void GetSerialPortsList(LPSTR szSymbol)
        !           636: {
        !           637: #ifdef DEBUG
        !           638:        if (FEmptySz(szSymbol))
        !           639:                BadArgErr(1, "GetSerialPortsList", szSymbol);
        !           640: #endif // DEBUG
        !           641: 
        !           642:        if (FGetSerialPortsList(szSymbol) == 0)
        !           643:                {
        !           644: #ifdef DEBUG
        !           645:                StfApiErr(saeFail, "GetSerialPortsList", szSymbol);
        !           646: #endif // DEBUG
        !           647:                SetupError(STFERR);
        !           648:                }
        !           649: }
        !           650: 
        !           651: 
        !           652: // *************************************************************************
        !           653: INT Has87MathChip(void)
        !           654: {
        !           655:        return(FHas87MathChip());
        !           656: }
        !           657: 
        !           658: #ifdef WIN32
        !           659: INT HasFPPMathChip(void)
        !           660: {
        !           661:        return(FHas87MathChip());
        !           662: }
        !           663: #endif
        !           664: 
        !           665: // *************************************************************************
        !           666: INT HasMonochromeDisplay(void)
        !           667: {
        !           668:        return(FHasMonochromeDisplay());
        !           669: }
        !           670: 
        !           671: 
        !           672: // *************************************************************************
        !           673: INT HasMouseInstalled(void)
        !           674: {
        !           675:        return(FHasMouseInstalled());
        !           676: }
        !           677: #endif  /* !STF_LITE */
        !           678: 
        !           679: 
        !           680: // *************************************************************************
        !           681: INT DoesDirExist(LPSTR szDir)
        !           682: {
        !           683: #ifdef DEBUG
        !           684:        if (FValidDir(szDir) == 0)
        !           685:                BadArgErr(1, "DoesDirExist", szDir);
        !           686: #endif // DEBUG
        !           687: 
        !           688:        return(FDirExists(szDir));
        !           689: }
        !           690: 
        !           691: 
        !           692: #ifndef STF_LITE
        !           693: // *************************************************************************
        !           694: INT DoesIniSectionExist(LPSTR szFile, LPSTR szSect)
        !           695: {
        !           696: #ifdef DEBUG
        !           697:        if (FValidIniFile(szFile) == 0)
        !           698:                BadArgErr(1, "DoesIniSectionExist",SzCat2Str(szFile,", ",szSect));
        !           699: #endif // DEBUG
        !           700: 
        !           701:        return(FDoesIniSectionExist(szFile, szSect));
        !           702: }
        !           703: 
        !           704: 
        !           705: // *************************************************************************
        !           706: INT DoesIniKeyExist(LPSTR szFile, LPSTR szSect, LPSTR szKey)
        !           707: {
        !           708: #ifdef DEBUG
        !           709:        INT n;
        !           710:        LPSTR szTmp;
        !           711: 
        !           712:        if (FValidIniFile(szFile) == 0)
        !           713:                n = 1;
        !           714:        else if (FEmptySz(szKey))
        !           715:                n = 3;
        !           716:        else
        !           717:                n = 0;
        !           718:        if (n > 0)
        !           719:                {
        !           720:                szTmp = SzCat3Str(szFile, ", ", szSect, ", ");
        !           721:                BadArgErr(n, "DoesIniKeyExist",SzCatStr(szTmp, szKey));
        !           722:                }
        !           723: #endif // DEBUG
        !           724: 
        !           725:        return(FDoesIniKeyExist(szFile, szSect, szKey));
        !           726: }
        !           727: #endif  /* !STF_LITE */
        !           728: 
        !           729: 
        !           730: // *************************************************************************
        !           731: LPSTR GetIniKeyString(LPSTR szFile, LPSTR szSect, LPSTR szKey,
        !           732:                LPSTR szBuf, INT cbBuf)
        !           733: {
        !           734:        INT cbRet;
        !           735: #ifdef DEBUG
        !           736:        INT n;
        !           737:        LPSTR szTmp;
        !           738: #endif // DEBUG
        !           739: 
        !           740:        if (szBuf != NULL && cbBuf > 0)
        !           741:                *szBuf = '\0';
        !           742: 
        !           743: #ifdef DEBUG
        !           744:        if (FValidIniFile(szFile) == 0)
        !           745:                n = 1;
        !           746:        else if (FEmptySz(szKey))
        !           747:                n = 3;
        !           748:        else
        !           749:                n = 0;
        !           750:        if (n > 0)
        !           751:                {
        !           752:                szTmp = SzCat3Str(szFile, ", ", szSect, ", ");
        !           753:                BadArgErr(n, "GetIniKeyString", SzCatStr(szTmp, szKey));
        !           754:                }
        !           755: #endif // DEBUG
        !           756: 
        !           757:        cbRet =   CbGetIniKeyString(szFile, szSect, szKey, szBuf, cbBuf);
        !           758: 
        !           759:        if (cbRet >= cbBuf)
        !           760:                {
        !           761: #ifdef DEBUG
        !           762:                szTmp = SzCat3Str(szFile, ", ", szSect, ", ");
        !           763:                StfApiErr(saeOvfl, "GetIniKeyString",SzCatStr(szTmp,szKey));
        !           764: #endif // DEBUG
        !           765:                SetupError(STFERR);
        !           766:                }
        !           767: 
        !           768:        return(szBuf);
        !           769: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.