code=delphi]function GetFileVersion(fn: string; var ma, mi, r ,b: integer):boolean;//得到本程序的版本号 
var 
buf, p: pChar; 
sver: ^VS_FIXEDFILEINFO ; 
i: LongWord; 
begin 
i:= GetFileVersionInfoSize(pchar(fn), i); 
new(sver); 
p:= pchar(sver); 
GetMem(buf, i); 
ZeroMemory(buf, i); 
result:= false; 
if GetFileVersionInfo(pchar(fn), 0, 4096, pointer(buf)) then 
if VerQueryValue(buf, '\', pointer(sver), i) then begin 
ma:= sVer^.dwFileVersionMS shr 16; 
mi:= sver^.dwFileVersionMS and $0000ffff; 
r:= sver^.dwFileVersionLS shr 16; 
b:= sver^.dwFileVersionLS and $0000ffff; 
result:= true; 
end; 
Dispose(p); 
FreeMem(buf); 
end;
[/code]这是我在网上找到的一段代码。求高人帮忙解释下。谢谢