Add to uses list

uses
  ImageHlp;

The main function is

function SearchForFile(const ARootPath: string;const AFileName: string): string;
var
  Found: array[0..500] of ansiChar;
begin
  FillChar(Found, SizeOf(Found), #00);
  SearchTreeForFile(PansiChar(ARootPath), PansiChar(AFileName), Found);
  if length(ExtractFilePath(Found))>0 then
    result:=ExtractFilePath(Found)
  else
    result:='-1';
end;

Function usage:

SearchForFile(folder,filename);

To make it work in delphi versions older than 2009 just replace pansichar with pchar, and ansichar with char.