home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Today - The Disc! 2 / CD-ROM_Today_-_The_Disc_2_June-July_1994.iso / garden / setup / msshared.inc < prev    next >
Text File  |  1993-11-18  |  4KB  |  114 lines

  1.  
  2. GLOBAL SharedFileNeedsCopying AS INTEGER
  3.  
  4. DECLARE FUNCTION WCompareVersion (szVer1$, szVer2$) AS INTEGER
  5.  
  6. DECLARE FUNCTION FindSharedFileFromPath (szField$, szVersion$) AS STRING
  7.  
  8. DECLARE FUNCTION SearchForLocationForSharedFile (szRegDbKey$, szWinIniSect$, szWinIniKey$, iWinIniField%, szDefault$, szVersion$) AS STRING
  9.  
  10.  
  11.  
  12. '' returns: 1 if szVer1$ > szVer2$;  0 if equal;  -1 if szVer1$ < szVer2$
  13. ''
  14. FUNCTION WCompareVersion (szVer1$, szVer2$) STATIC AS INTEGER
  15.     IF szVer1$ = "" THEN
  16.         IF szVer2$ = "" THEN
  17.             WCompareVersion = 0
  18.         ELSE
  19.             WCompareVersion = -1
  20.         END IF
  21.     ELSEIF szVer2$ = "" THEN
  22.         WCompareVersion = 1
  23.     ELSE
  24.         WCompareVersion = 0
  25.         FOR i% = 1 TO 4 STEP 1
  26.             piece1& = GetVersionNthField(szVer1$, i%)
  27.             piece2& = GetVersionNthField(szVer2$, i%)
  28.             IF piece1& > piece2& THEN
  29.                 WCompareVersion = 1
  30.                 GOTO _WCV_END
  31.             ELSEIF piece1& < piece2& THEN
  32.                 WCompareVersion = -1
  33.                 GOTO _WCV_END
  34.             END IF
  35.         NEXT i%
  36.     END IF
  37. _WCV_END:
  38. END FUNCTION
  39.  
  40.  
  41. '' private to this file - needed in next api
  42. ''
  43. FUNCTION FindSharedFileFromPath(szField$, szVersion$) STATIC AS STRING
  44.     FindSharedFileFromPath = ""
  45.     SharedFileNeedsCopying = 0
  46.     IF szField$ <> "" THEN
  47.         IF DoesFileExist(szField$, OF_EXIST) = 0 THEN
  48.             szFile$ = STRING$(32, 32)
  49.  
  50.             IF FParseFATPathIntoPieces(szField$, NULL, 0, NULL, 0, szFile$, 31) <> 0 THEN
  51.                 szField$ = FindFileUsingFileOpen(szFile$)
  52.             ELSE
  53.                 szField$ = ""
  54.             END IF
  55.             szFile$ = ""
  56.         END IF
  57.  
  58.         IF szField$ <> "" THEN
  59.             IF WCompareVersion(GetVersionOfFile(szField$), szVersion$) >= 0 THEN
  60.                 FindSharedFileFromPath = szField$
  61.             ELSEIF IsFileWritable(szField$) <> 0 THEN
  62.                 SharedFileNeedsCopying = 1
  63.                 FindSharedFileFromPath = szField$
  64.             END IF
  65.  
  66.             szField$ = ""
  67.         END IF
  68.     END IF
  69. END FUNCTION
  70.  
  71.  
  72. FUNCTION SearchForLocationForSharedFile (szRegDbKey$, szWinIniSect$, szWinIniKey$, iWinIniField%, szDefault$, szVersion$) STATIC AS STRING
  73.  
  74.     SearchForLocationForSharedFile = szDefault$
  75.  
  76. '$IFDEF    REG_DB_ENABLED
  77.     IF szRegDbKey$ <> "" THEN
  78.         szField$ = GetRegKeyValue(szRegDbKey$)
  79.         szFile$ = FindSharedFileFromPath(szField$, szVersion$)
  80.         IF szFile$ <> "" THEN
  81.             SearchForLocationForSharedFile = szFile$
  82.             szFile$ = ""
  83.             GOTO _SFLSFS_END
  84.         END IF
  85.     END IF
  86. '$ENDIF '' REG_DB_ENABLED
  87.  
  88.     IF szWinIniSect$ <> "" AND szWinIniKey$ <> "" THEN
  89.         szWinIniLine$ = GetIniKeyString("WIN.INI", szWinIniSect$, szWinIniKey$)
  90.         IF szWinIniLine$ <> "" THEN
  91.             szField$ = GetNthFieldFromIniString(szWinIniLine$, iWinIniField%)
  92.             szWinIniLine$ = ""
  93.             szFile$ = FindSharedFileFromPath(szField$, szVersion$)
  94.             IF szFile$ <> "" THEN
  95.                 SearchForLocationForSharedFile = szFile$
  96.                 szFile$ = ""
  97.                 GOTO _SFLSFS_END
  98.             END IF
  99.         END IF
  100.     END IF
  101.  
  102.     '' return value is still szDefault$ - assume it is writable
  103.     SharedFileNeedsCopying = 1
  104.     IF DoesFileExist(szDefault$, OF_EXIST) <> 0 THEN
  105.         IF WCompareVersion(GetVersionOfFile(szDefault$), szVersion$) >= 0 THEN
  106.             SharedFileNeedsCopying = 0
  107.         END IF
  108.     END IF
  109.  
  110. _SFLSFS_END:
  111.  
  112. END FUNCTION
  113.  
  114.