I've created a little object wrapper for this; I hope it wraps correctly 
First the Header file:
// Declarations for Version from Version Resource class
// Written by Frank Solomon 2000
//
#ifndef __ver_h
#define __ver_h
#include <windows.h>
namespace fss {
class VersionResource {
UINT VLen;
LPVOID VBuf;
char VString[1024];
char VCopyright[1024];
char VProduct[1024];
public:
VersionResource();
const char *c_str() const;
const char *copyright() const;
const char *product() const;
const char *version() const;
};
} // namespace fss
#endif //__ver_h
Then the .cpp file:
// Definitions for Version from Version Resource class
// Written by Frank Solomon 2000
//
#include "ver.h"
namespace fss {
VersionResource::VersionResource() {
HRSRC hrV = FindResource(NULL,"#1",RT_VERSION);
if(hrV == NULL) {
throw;
} else {
HGLOBAL hgrV = LoadResource(NULL,hrV);
if(hgrV == NULL) {
throw;
} else {
LPVOID pV = LockResource(hgrV);
if(VerQueryValue(pV,"\\StringFileInfo\\040904b0\\FileVersion",&VBuf,&VLen)) {
if(VLen > 0 && VLen < 1024) {
wsprintf(VString,"%s",VBuf);
} else {
throw;
}
}
if(VerQueryValue(pV,"\\StringFileInfo\\040904b0\\LegalCopyright",&VBuf,&VLen)) {
if(VLen > 0 && VLen < 1024) {
wsprintf(VCopyright,"%s",VBuf);
} else {
throw;
}
}
if(VerQueryValue(pV,"\\StringFileInfo\\040904b0\\ProductName",&VBuf,&VLen)) {
if(VLen > 0 && VLen < 1024) {
wsprintf(VProduct,"%s",VBuf);
} else {
throw;
}
}
FreeResource(hgrV);
}
}
}
const char *VersionResource::c_str() const {
return (const char *)VString;
}
const char *VersionResource::version() const {
return (const char *)VString;
}
const char *VersionResource::copyright() const {
return (const char *)VCopyright;
}
const char *VersionResource:

roduct() const {
return (const char *)VProduct;
}
}
And Finally here's an example of how it's used (vermain.cpp):
//Demo of VersionResource Object
//Be sure to add version.dll to the linker input for this project
//Also be sure to link in a version resource!!!
#include <iostream>
#include "ver.h"
using std::cout;
using std::endl;
using fss::VersionResource;
int main(int argc, const char *argv[]) {
VersionResource V;
cout << "The Current version is: " << V.c_str() << endl;
}
Hope that's helpful.
DJ