Obtendo um IStream de um OleVariant

Estou usando o Delphi junto com o WinHTTP para fazer uma solicitação HTTP para baixar alguns arquivos da Internet e posso fazer a solicitação, mas não sei como obter o IStream do OleVariant retornado deResponseStream. Passei muito tempo pesquisando no Google, mas não consigo descobrir como fazê-lo. Aqui está o que eu tentei:

var
  req: IWinHTTPRequest;
  instream: IStream;
begin
  req := CoWinHTTPRequest.Create;

  req.Open('GET', 'http://google.com', false);
  req.Send('');

  if req.Status <> 200 then
  begin
    ShowMessage('failure'#10 + req.StatusText);

    FreeAndNil(req);

    Application.Terminate;
  end;

  instream := req.ResponseStream as IStream;

  ShowMessage('success');

  FreeAndNil(instream);
  FreeAndNil(req);

end;

Mas eu recebo o erro[DCC Error] main.pas(45): E2015 Operator not applicable to this operand type (a linha 45 éinstream := req.ResponseStream as IStream;)

Como assustar o IStream de uma OleVariant?

questionAnswers(1)

yourAnswerToTheQuestion