home *** CD-ROM | disk | FTP | other *** search
/ PC/CD Gamer UK 10 / PCGAMER10.bin / lem4win / wing / msshared.in_ / msshared.in
Text File  |  1995-03-20  |  4KB  |  113 lines

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