<p>I understand the first argument must be the result of GetFileVersionInfo().</p>

<p>The third and forth are target buffer and size</p>

<p>What is the second argument, lpSubBlock?</p>

<p>Thanks In Advance</p>

It must be a string whose format you can find here:
http://www.hep.wisc.edu/~pinghc/books/apirefeng/v/verqueryvalue.html
There is another example of usage (in VB, easy to read):
http://support.microsoft.com/kb/160042
You can also check out this whole CodeProject article for a working example in C++:
http://www.codeproject.com/KB/cpp/GetLocalVersionInfos.aspx
Another article on the subject of retrieving version information:
http://www.microsoft.com/msj/0498/c0498.aspx