winhttp: Convert the async parameter to VT_BOOL if necessary in IWinHttpRequest::Open.

This commit is contained in:
Hans Leidekker 2014-12-09 12:47:00 +01:00 committed by Alexandre Julliard
parent 4ac817b6c0
commit 647abcafb6
2 changed files with 18 additions and 1 deletions

View File

@ -2993,7 +2993,7 @@ static HRESULT WINAPI winhttp_request_Open(
path[uc.dwUrlPathLength + uc.dwExtraInfoLength] = 0;
if (!(verb = strdupW( method ))) goto error;
if (V_VT( &async ) == VT_BOOL && V_BOOL( &async )) flags |= WINHTTP_FLAG_ASYNC;
if (SUCCEEDED( VariantChangeType( &async, &async, 0, VT_BOOL )) && V_BOOL( &async )) flags |= WINHTTP_FLAG_ASYNC;
if (!(hsession = WinHttpOpen( user_agentW, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, NULL, NULL, flags )))
{
err = get_last_error();

View File

@ -2870,6 +2870,23 @@ static void test_IWinHttpRequest(void)
hr = IWinHttpRequest_Release( req );
ok( hr == S_OK, "got %08x\n", hr );
hr = CoCreateInstance( &CLSID_WinHttpRequest, NULL, CLSCTX_INPROC_SERVER, &IID_IWinHttpRequest, (void **)&req );
ok( hr == S_OK, "got %08x\n", hr );
V_VT( &async ) = VT_I4;
V_I4( &async ) = 1;
hr = IWinHttpRequest_Open( req, method, url, async );
ok( hr == S_OK, "got %08x\n", hr );
hr = IWinHttpRequest_Send( req, empty );
ok( hr == S_OK, "got %08x\n", hr );
hr = IWinHttpRequest_WaitForResponse( req, timeout, &succeeded );
ok( hr == S_OK, "got %08x\n", hr );
hr = IWinHttpRequest_Release( req );
ok( hr == S_OK, "got %08x\n", hr );
SysFreeString( method );
SysFreeString( url );
SysFreeString( username );