Function FileDescr(cFile) Declare Long GetFileVersionInfoSize in Version.dll ; String@ FileName, Long Handle Declare Long GetFileVersionInfo in Version.dll ; String@ FileName, Long Handle, Long Len, String@ Data Declare Long VerQueryValue in Version.dll ; String@ Block, String@ SubBlock, Long@ Buffer, Long@ Len Declare RtlMoveMemory in Win32API As MoveMemory ; String@ Dest, Long Source, Long length Declare Long lstrlen in Win32API Long StrPtr Local cData, cSubBlock, nLen, nVer, cDescr nLen = GetFileVersionInfoSize(@cFile, 0) If nLen > 0 cData = Replicate(Chr(0), nLen) GetFileVersionInfo(@cFile, 0, nLen, @cData) * 0409 - US English, 04e4 - 1252 code page * You may also try 1200 code page (04b0) cSubBlock = "\StringFileInfo\040904e4\FileDescription" nLen = 0 nVer = 0 If VerQueryValue(@cData, @cSubBlock, @nVer, @nLen) != 0 nLen = lstrlen(nVer) cDescr = Replicate(Chr(0), nLen) MoveMemory(@cDescr, nVer, nLen) Return cDescr EndIf EndIf Return "No description" EndFunc>In thread # 581909, Alexander Golovlev attempted to assist me with parsing out the Windows file description contained in an EXE file using the VFP internal AGETFILEVERSION() function.