[Lazarus] WinCE and version

Tommi Prami groups.tprami at gmail.com
Wed Jul 4 10:24:34 CEST 2012


Hello,

I'm also interested in this, if someone gets this to work... Hope 
working codde is posted into the list :)


-Tee-

On 3.7.2012 17:50, Antonio Fortuny wrote:
> Hi All.
> Does anyone know whether it is possible to save (at compile time) and 
> extract (at runtime)  the program version in WinCE as I use it 
> currently in Win32 and Win64 ?
> It appears that the same code doesn't work. There is the code snippet 
> I use:
>
> function ReadVersionInfo(const sProgram: string; Out vv: PTVersion) 
> :Boolean;
> var
>   Info:       PVSFixedFileInfo;
>   InfoSize:   Cardinal;
>   nHwnd:      DWORD;
>   BufferSize: DWORD;
>   Buffer:     Pointer;
> begin
>   ZeroMemory(Info, SizeOF(PVSFixedFileInfo));
>   vv := new(PTVersion);
>   InfoSize := 0;
>   nHwnd := 0;
>   with vv^ do begin
>     Major:= -1;
>     Minor := 0;
>     Release := 0;
>     Build := 0;
>   end;
>   Result := False; //no version info at all in the file
>   BufferSize := GetFileVersionInfoSize(pchar(sProgram), nHWnd); {Get 
> buffer size}
>   if BufferSize <> 0 then begin //if zero, there is no version info
>     Buffer := nil;
>     ReAllocMem(Buffer, BufferSize+1);
>     try
>       if GetFileVersionInfo(PChar(sProgram),nHWnd,BufferSize,Buffer) 
> then begin  // got version info
>         if VerQueryValue(Buffer, PChar('\'), Pointer(Info), InfoSize) 
> then begin   //got root block version information
>           with vv^ do begin
>             Major := HiWord(Info^.dwFileVersionMS); //extract major 
> version
>             Minor := LoWord(Info^.dwFileVersionMS); //extract minor 
> version
>             Release := HiWord(Info^.dwFileVersionLS); //extract 
> release version
>             Build := LoWord(Info^.dwFileVersionLS); //extract build 
> version
>           end;
>           Result := True;
>         end
>       end
>     finally
>       ReAllocMem(Buffer, 0);
>     end
>   end;
> end;
>
> Thanks,
> Antonio.
>
>
>
> -- 
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus






More information about the Lazarus mailing list