Log Message:
-----------
Fix control path warning/crash if verqueryvalue fails
Modified Files:
--------------
/cvsroot/decaldev/source/DenAgent:
AutoUpdate.cpp
Revision Data
-------------
Index: AutoUpdate.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/AutoUpdate.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- AutoUpdate.cpp 20 Jun 2003 20:19:11 -0000 1.10
+++ AutoUpdate.cpp 23 Jun 2003 06:49:34 -0000 1.11
@@ -179,10 +179,10 @@
dwVerSize = ::GetFileVersionInfoSize(const_cast<LPTSTR>(sFile.c_str()), &dwDummy);
- if (dwVerSize == 0)
- {
+ if( dwVerSize == 0 )
return true; // if file vsn not available, assume needs updating
- } else {
+ else
+ {
BYTE *pbVersionInfo = reinterpret_cast< BYTE * >(::_alloca(dwVerSize));
::GetFileVersionInfo(const_cast<LPTSTR>(sFile.c_str()), 0, dwVerSize, pbVersionInfo);
@@ -190,29 +190,37 @@
VS_FIXEDFILEINFO *vffi;
UINT nLength = sizeof(VS_FIXEDFILEINFO);
- if(::VerQueryValue(pbVersionInfo, _T("\\"), reinterpret_cast<LPVOID *>(&vffi), &nLength))
+ if( ::VerQueryValue( pbVersionInfo, _T("\\"), reinterpret_cast< LPVOID * >( &vffi ), &nLength ) )
{
- // Got it, so format it
- int locMajor(0), locMinor(0), locPatch(0), locBuild(0) ;
- locMajor = static_cast<int>(HIWORD(vffi->dwFileVersionMS));
- locMinor = static_cast<int>(LOWORD(vffi->dwFileVersionMS));
- locPatch = static_cast<int>(HIWORD(vffi->dwFileVersionLS));
- locBuild = static_cast<int>(LOWORD(vffi->dwFileVersionLS));
- if (locMajor==nMajor) {
- if (locMinor==nMinor) {
- if (locPatch==nPatch) {
- return locBuild<nBuild ;
- } else {
- return locPatch<nPatch ;
- }
- } else {
- return locMinor<nMinor ;
+ // Got it, so format it
+ int locMajor(0), locMinor(0), locPatch(0), locBuild(0);
+ locMajor = static_cast< int >( HIWORD( vffi->dwFileVersionMS ) );
+ locMinor = static_cast< int >( LOWORD( vffi->dwFileVersionMS ) );
+ locPatch = static_cast< int >( HIWORD( vffi->dwFileVersionLS ) );
+ locBuild = static_cast< int >( LOWORD( vffi->dwFileVersionLS ) );
+
+ if( locMajor == nMajor )
+ {
+ if( locMinor == nMinor )
+ {
+ if( locPatch == nPatch )
+ return locBuild < nBuild;
+ else
+ return locPatch < nPatch;
}
- } else {
- return locMajor<nMajor ;
+
+ else
+ return locMinor < nMinor ;
}
+
+ else
+ return locMajor < nMajor ;
}
- }
+
+ // problem with VerQueryValue... maybe updating will fix it.
+ else
+ return true;
+ }
}
void AutoUpdateSource::AddRequirement(UpdateRequirement reqUpdate)
|