home *** CD-ROM | disk | FTP | other *** search
/ substance.digizine 1.2 / DIGIZINE2.BIN / qtw / msshared.inc < prev    next >
Text File  |  1994-11-01  |  4KB  |  125 lines

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