Hi Freaks
How to get the file version info out of a DLL ?
I create a signature OS_DLL_VERSION for the windows DLL version.DLL
Then there are a least to entities
OS_LPVOID: Only one field defined as R1024
OS_VS_FIXEDFILEINFO: Defined with the layout of VS_FIXEDFILEINFO
Now I call:
activate "OS_DLL_VERSION"."GetFileVersionInfoA"("<dllname>",0,1024,"OS_LPVOID")
and got the raw file version info
This looks good but then it goes worse:
1)
activate "OS_DLL_VERSION"."VerQueryValue_FIX"("OS_LPVOID","\\","OS_VS_FIXEDFILEINFO",v_NUM2)
v_NUM2 yields to 52, which is the size of VS_FIXEDFILEINFO
2)
activate "OS_DLL_VERSION"."VerQueryValueA"("OS_LPVOID","\\",v_NUM1,v_NUM2)
v_NUM2 still 52 and v_NUM1 is a pointer
Copy the content into "OS_VS_FIXEDFILEINFO"
activate $INST_KERNEL32$."lstrcpy_VS"("OS_VS_FIXEDFILEINFO",v_NUM1)
DWSIGNATURE.OS_VS_FIXEDFILEINFO in both cases is 0xfeef04bd, that is okay.
But all other fields are 0 (null)
Any idea to get the info?
Without a C wrapper
This should be possible, as UnifAce is programm language to solve all other problems
Ingo