Back to index

lightning-sunbird  0.9+nobinonly
Classes | Typedefs | Functions
version.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  structVer

Typedefs

typedef struct structVer verBlock

Functions

void TranslateVersionStr (LPSTR szVersion, verBlock *vbVersion)
BOOL GetFileVersion (LPSTR szFile, verBlock *vbVersion)
int CompareVersion (verBlock vbVersionOld, verBlock vbVersionNew)

Class Documentation

struct structVer

Definition at line 41 of file version.h.

Class Members
ULONGLONG ullBuild
unsigned long long ullBuild
ULONGLONG ullMajor
unsigned long long ullMajor
ULONGLONG ullMinor
unsigned long long ullMinor
ULONGLONG ullRelease
unsigned long long ullRelease

Typedef Documentation

typedef struct structVer verBlock

Function Documentation

int CompareVersion ( verBlock  vbVersionOld,
verBlock  vbVersionNew 
)

Definition at line 103 of file version.c.

{
  if(vbVersionOld.ullMajor > vbVersionNew.ullMajor)
    return(4);
  else if(vbVersionOld.ullMajor < vbVersionNew.ullMajor)
    return(-4);

  if(vbVersionOld.ullMinor > vbVersionNew.ullMinor)
    return(3);
  else if(vbVersionOld.ullMinor < vbVersionNew.ullMinor)
    return(-3);

  if(vbVersionOld.ullRelease > vbVersionNew.ullRelease)
    return(2);
  else if(vbVersionOld.ullRelease < vbVersionNew.ullRelease)
    return(-2);

  if(vbVersionOld.ullBuild > vbVersionNew.ullBuild)
    return(1);
  else if(vbVersionOld.ullBuild < vbVersionNew.ullBuild)
    return(-1);

  /* the versions are all the same */
  return(0);
}
BOOL GetFileVersion ( LPSTR  szFile,
verBlock vbVersion 
)

Definition at line 44 of file version.c.

{
  UINT              uLen;
  UINT              dwLen;
  BOOL              bRv;
  DWORD             dwHandle;
  LPVOID            lpData;
  LPVOID            lpBuffer;
  VS_FIXEDFILEINFO  *lpBuffer2;

  vbVersion->ullMajor   = 0;
  vbVersion->ullMinor   = 0;
  vbVersion->ullRelease = 0;
  vbVersion->ullBuild   = 0;
  if(FileExists(szFile))
  {
    bRv    = TRUE;
    dwLen  = GetFileVersionInfoSize(szFile, &dwHandle);
    lpData = (LPVOID)malloc(sizeof(long)*dwLen);
    uLen   = 0;

    if(GetFileVersionInfo(szFile, dwHandle, dwLen, lpData) != 0)
    {
      if(VerQueryValue(lpData, "\\", &lpBuffer, &uLen) != 0)
      {
        lpBuffer2             = (VS_FIXEDFILEINFO *)lpBuffer;
        vbVersion->ullMajor   = HIWORD(lpBuffer2->dwFileVersionMS);
        vbVersion->ullMinor   = LOWORD(lpBuffer2->dwFileVersionMS);
        vbVersion->ullRelease = HIWORD(lpBuffer2->dwFileVersionLS);
        vbVersion->ullBuild   = LOWORD(lpBuffer2->dwFileVersionLS);
      }
    }
    free(lpData);
  }
  else
    /* File does not exist */
    bRv = FALSE;

  return(bRv);
}
void TranslateVersionStr ( LPSTR  szVersion,
verBlock vbVersion 
)

Definition at line 85 of file version.c.

{
  LPSTR szNum1 = NULL;
  LPSTR szNum2 = NULL;
  LPSTR szNum3 = NULL;
  LPSTR szNum4 = NULL;

  szNum1 = strtok(szVersion, ".");
  szNum2 = strtok(NULL,      ".");
  szNum3 = strtok(NULL,      ".");
  szNum4 = strtok(NULL,      ".");

  vbVersion->ullMajor   = _atoi64(szNum1);
  vbVersion->ullMinor   = _atoi64(szNum2);
  vbVersion->ullRelease = _atoi64(szNum3);
  vbVersion->ullBuild   = _atoi64(szNum4);
}

Here is the caller graph for this function: