[8/9] winhttp: Implement IWinHttpRequest::Abort.

Hans Leidekker hans at codeweavers.com
Thu Jul 21 04:52:30 CDT 2011


---
 dlls/winhttp/request.c |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index 446127a..b2ae81d 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -2770,8 +2770,28 @@ static HRESULT WINAPI winhttp_request_WaitForResponse(
 static HRESULT WINAPI winhttp_request_Abort(
     IWinHttpRequest *iface )
 {
-    FIXME("\n");
-    return E_NOTIMPL;
+    struct winhttp_request *request = impl_from_IWinHttpRequest( iface );
+
+    TRACE("%p\n", request);
+
+    SetEvent( request->cancel );
+    WinHttpCloseHandle( request->hrequest );
+    WinHttpCloseHandle( request->hconnect );
+    WinHttpCloseHandle( request->hsession );
+    CloseHandle( request->wait );
+    CloseHandle( request->cancel );
+    heap_free( request->buffer );
+    request->state = REQUEST_STATE_INVALID;
+    request->hrequest = NULL;
+    request->hconnect = NULL;
+    request->hsession = NULL;
+    request->wait     = NULL;
+    request->cancel   = NULL;
+    request->buffer   = NULL;
+    request->ptr      = NULL;
+    request->bytes_available = 0;
+    request->bytes_read = 0;
+    return S_OK;
 }
 
 static HRESULT WINAPI winhttp_request_SetTimeouts(
-- 
1.7.4.1







More information about the wine-patches mailing list