Delphi XE2 DataSnap - Baixar arquivo via TStream With Progress Bar

Eu escrevi um método de servidor DataSnap que retorna um objeto TStream para transferir um arquivo. O aplicativo cliente chama o método e lê bem o fluxo. Meu problema é que a chamada do método demora um pouco para ser concluída antes que o objeto TStream esteja disponível para leitura, mas no lado do servidor posso ver que a chamada do método leva apenas um segundo para criar o objeto a ser retornado. Eu esperava que o objeto do fluxo fosse retornado imediatamente para que eu pudesse ler o fluxo e exibir uma barra de progresso para o progresso do download. Existe outra maneira de fazer isso?

O método do servidor é muito simples:

function TServerMethods.DespatchDocument(sCompanyID, sDocOurRef: string): TStream;
var
  sSourceFilePath: string;
  strFileStream: TFileStream;
begin
  sSourceFilePath := GetDocumentPDFFilePath(sCompanyID, sDocOurRef);

  strFileStream := TFileStream.Create(sSourceFilePath, fmOpenRead);
  Result := strFileStream;
end;

questionAnswers(4)

yourAnswerToTheQuestion