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
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);
 


Reply via email to