我对这方面的编程不懂就要象IE一样可以随时停止,我现在的代码实现不了这种效果,在调用(可能是api函数HttpSendRequest)时,不接收完数据就不会返回,下面是我的代码,可能有些代码没copy全,请问在这些代码的基础上,修改出可取消的效果,行不行?我知道有异步接收INTERNET_FLAG_ASYNC和回调函数InternetStatusCallback,但我不知道怎么用    // Connect to host.
    hConnect := InternetConnect( hOpen,PChar(FHostName),FPort,nil,nil,
                                 INTERNET_SERVICE_HTTP,0,0);
    InetCheck(LongBool(hConnect));    InternetSetOption(hConnect,INTERNET_OPTION_CONNECT_TIMEOUT,
                      @FConnectTimeout,sizeof(DWORD));
    // add by xlee 021121 1200
    InternetSetOption(hConnect, INTERNET_OPTION_RECEIVE_TIMEOUT,
      @FReceiveTimeout, sizeof(DWORD));
    InternetSetOption(hConnect, INTERNET_OPTION_SEND_TIMEOUT,
      @FSendTimeout, sizeof(DWORD));
    // end add by xlee 021121 1200
    FullUrl:=FUrlPath+FExtraInfo;  //GMR 30/06/99
    if AcceptTypes.Text='' then
      hResource := HttpOpenRequest(hConnect,PChar(FMethod),PChar(FullUrl),nil,
                      nil,nil,SecureFlag or FIFlags, DWORD(self))
    else begin
      for n:=0 to AcceptTypes.Count-1 do
        if (Length(AcceptTypes[n])>0) and (n<100) then
           aAcceptTypes[n]:=AcceptTypes[n];
      hResource := HttpOpenRequest(hConnect,PChar(FMethod),PChar(FullUrl),nil,
                    nil,@aAcceptTypes,SecureFlag or FIFlags, DWORD(self));
    end;    InetCheck(HttpSendRequest(hResource,PChar(Headers),Length(Headers),
              FRequestStream.Memory,FRequestStream.Size))
给位兄弟,快快帮忙……