home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Unleashed / Visual_Basic_4_Unleashed_SAMS_Publishing_1995.iso / source / chap20 / version.bas < prev   
Encoding:
BASIC Source File  |  1995-09-21  |  1.8 KB  |  57 lines

  1. Type VS_VERSION
  2.    wLength            As Integer
  3.    wValueLength       As Integer
  4.    szKey              As String * 16 ' "VS_VERSION_INFO"
  5.    dwSignature        As Long        ' VS_FIXEDFILEINFO struct
  6.    dwStrucVersion     As Long
  7.    dwFileVersionMS    As Long
  8.    dwFileVersionLS    As Long
  9.    dwProductVersionMS As Long
  10.    dwProductVersionLS As Long
  11.    dwFileFlagsMasks   As Long
  12.    dwFileFlags        As Long
  13.    dwFileOS           As Long
  14.    dwFileType         As Long
  15.    dwFileSubType      As Long
  16.    dwFileDateMS       As Long
  17.    dwFileDateLS       As Long
  18. End Type
  19.  
  20. Declare Function GetFileVersionInfo% Lib "Ver.dll" (ByVal Filename$, ByVal dwHandle&, ByVal cbBuff&, ByVal lpvData$)
  21. Declare Function GetFileVersionInfoSize& Lib "Ver.dll" (ByVal Filename$, dwHandle&)
  22. Declare Sub hmemcpy Lib "kernel" (hpvDest As Any, hpvSrc As Any, ByVal cbBytes&)
  23.  
  24. Function HIWORD (X As Long) As Integer
  25.    HIWORD = X \ &HFFFF&
  26. End Function
  27.  
  28. Function LOWORD (X As Long) As Integer
  29.    LOWORD = X And &HFFFF&
  30. End Function
  31.  
  32. Function VerInfo$ (FullFileName$)
  33.     Dim X As VS_VERSION                     'This is for 16-bit OS's
  34.     Dim FileVer$
  35.  
  36.     BufSize& = GetFileVersionInfoSize(FullFileName$, dwHandle&)
  37.     If BufSize& = 0 Then
  38.        MsgBox "No Version Info available!"
  39.        Exit Function
  40.     End If
  41.     lpvData$ = Space$(BufSize&)
  42.     r% = GetFileVersionInfo(FullFileName$, dwHandle&, BufSize&, lpvData$)
  43.     hmemcpy X, ByVal lpvData$, Len(X)
  44.  
  45.     FileVer$ = LTrim$(Str$(HIWORD(X.dwFileVersionMS))) + "."
  46.     FileVer$ = FileVer$ + LTrim$(Str$(LOWORD(X.dwFileVersionMS))) + "."
  47.     FileVer$ = FileVer$ + LTrim$(Str$(HIWORD(X.dwFileVersionLS))) + "."
  48.     FileVer$ = FileVer$ + LTrim$(Str$(LOWORD(X.dwFileVersionLS)))
  49.  
  50.     VerInfo$ = FileVer$
  51. End Function
  52.  
  53. Sub Main ()
  54.     MsgBox VerInfo$("C:\VB4\VB.EXE")
  55. End Sub
  56.  
  57.