home *** CD-ROM | disk | FTP | other *** search
- Type VS_VERSION
- wLength As Integer
- wValueLength As Integer
- szKey As String * 16 ' "VS_VERSION_INFO"
- dwSignature As Long ' VS_FIXEDFILEINFO struct
- dwStrucVersion As Long
- dwFileVersionMS As Long
- dwFileVersionLS As Long
- dwProductVersionMS As Long
- dwProductVersionLS As Long
- dwFileFlagsMasks As Long
- dwFileFlags As Long
- dwFileOS As Long
- dwFileType As Long
- dwFileSubType As Long
- dwFileDateMS As Long
- dwFileDateLS As Long
- End Type
-
- Declare Function GetFileVersionInfo% Lib "Ver.dll" (ByVal Filename$, ByVal dwHandle&, ByVal cbBuff&, ByVal lpvData$)
- Declare Function GetFileVersionInfoSize& Lib "Ver.dll" (ByVal Filename$, dwHandle&)
- Declare Sub hmemcpy Lib "kernel" (hpvDest As Any, hpvSrc As Any, ByVal cbBytes&)
-
- Function HIWORD (X As Long) As Integer
- HIWORD = X \ &HFFFF&
- End Function
-
- Function LOWORD (X As Long) As Integer
- LOWORD = X And &HFFFF&
- End Function
-
- Function VerInfo$ (FullFileName$)
- Dim X As VS_VERSION 'This is for 16-bit OS's
- Dim FileVer$
-
- BufSize& = GetFileVersionInfoSize(FullFileName$, dwHandle&)
- If BufSize& = 0 Then
- MsgBox "No Version Info available!"
- Exit Function
- End If
- lpvData$ = Space$(BufSize&)
- r% = GetFileVersionInfo(FullFileName$, dwHandle&, BufSize&, lpvData$)
- hmemcpy X, ByVal lpvData$, Len(X)
-
- FileVer$ = LTrim$(Str$(HIWORD(X.dwFileVersionMS))) + "."
- FileVer$ = FileVer$ + LTrim$(Str$(LOWORD(X.dwFileVersionMS))) + "."
- FileVer$ = FileVer$ + LTrim$(Str$(HIWORD(X.dwFileVersionLS))) + "."
- FileVer$ = FileVer$ + LTrim$(Str$(LOWORD(X.dwFileVersionLS)))
-
- VerInfo$ = FileVer$
- End Function
-
- Sub Main ()
- MsgBox VerInfo$("C:\VB4\VB.EXE")
- End Sub
-
-