Thanks, I arrived at this:
var
  FilterBuffer: WideString;
...
      FilterBuffer := Utf8Decode(Filter);
      lpStrFilter := GetMem(Length(FilterBuffer) * 2 + 2);
      Move(FilterBuffer, lpStrFilter, Length(FilterBuffer) * 2 + 2);
But now it crashes when loading the dialog =/
any ideas?
thanks,
-- 
Felipe Monteiro de Carvalho