[PATCH 2/5] urlmon: Use BSCF_ values passed to report_data to keep track of download state.

Jacek Caban jacek at codeweavers.com
Thu Aug 2 15:30:31 CDT 2007


Hi Misha,

Misha Koshelev wrote:
> This simplifies the code a bit by getting rid of an enum and a corresponding variable in the IBinding
> implementation, as we can successfully use the bscf values that are passed to report_data to get all
> the information.
>
> Additionally, the original implementation was somewhat incorrect at least for the case of the Http protocol
> as far as sending OnStopBinding

This patch is already accepted, but unfortunately it's wrong. Tests 
changed in the attached patch succeed on native urlmon.dll and fail on 
current Wine. Probably only BSCF_LASTDATANOTIFICATION flag should be 
used. Other OnProgress callbacks should be called depending on the real 
binding state, not the one reported by protocol handler.

Jacek
-------------- next part --------------
diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c
index 187fb03..dcae846 100644
--- a/dlls/urlmon/tests/url.c
+++ b/dlls/urlmon/tests/url.c
@@ -255,6 +255,7 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol *iface, LPCWSTR szUrl,
     SET_EXPECT(OnDataAvailable);
     SET_EXPECT(OnStopBinding);
 
+    bscf = BSCF_LASTDATANOTIFICATION;
     hres = IInternetProtocolSink_ReportData(pOIProtSink, bscf, 13, 13);
     ok(hres == S_OK, "ReportData failed: %08x\n", hres);
 


More information about the wine-devel mailing list