---------------------------------------------------------------------------
| 1324 | } |
| 1325 | //--------------------------------------------------------------------------- |
| 1326 | bool GetFileVersion(AnsiString File, WORD & Major, WORD & Minor, WORD & Release, WORD & Build) |
| 1327 | { |
| 1328 | DWORD Dummy; |
| 1329 | DWORD size = GetFileVersionInfoSize(File.c_str(), &Dummy); |
| 1330 | if( size<=0 ) |
| 1331 | return false; |
| 1332 | |
| 1333 | void * p = new BYTE[size]; |
| 1334 | if( !p ) |
| 1335 | return false; |
| 1336 | |
| 1337 | if( ! GetFileVersionInfo(File.c_str(), 0, size, p) ) |
| 1338 | { |
| 1339 | delete [] p; |
| 1340 | return false; |
| 1341 | } |
| 1342 | |
| 1343 | VS_FIXEDFILEINFO * pfi; |
| 1344 | if( ! VerQueryValue(p, "\\", (void **)&pfi, (PUINT)&Dummy) ) |
| 1345 | { |
| 1346 | delete [] p; |
| 1347 | return false; |
| 1348 | } |
| 1349 | |
| 1350 | Major = HIWORD(pfi->dwFileVersionMS); |
| 1351 | Minor = LOWORD(pfi->dwFileVersionMS); |
| 1352 | Release = HIWORD(pfi->dwFileVersionLS); |
| 1353 | Build = LOWORD(pfi->dwFileVersionLS); |
| 1354 | |
| 1355 | delete [] p; |
| 1356 | return true; |
| 1357 | } |
| 1358 | //--------------------------------------------------------------------------- |
| 1359 | AnsiString IPAddrToString(DWORD ip) |
| 1360 | { |