URLMON: Report BINDSTATUS_SENDINGREQUEST in FileProtocol::Start
Jacek Caban
jack at itma.pwr.wroc.pl
Fri Oct 28 08:20:36 CDT 2005
Changelog:
Report BINDSTATUS_SENDINGREQUEST in FileProtocol::Start
-------------- next part --------------
Index: dlls/urlmon/file.c
===================================================================
RCS file: /home/wine/wine/dlls/urlmon/file.c,v
retrieving revision 1.3
diff -u -p -r1.3 file.c
--- dlls/urlmon/file.c 14 Sep 2005 10:29:56 -0000 1.3
+++ dlls/urlmon/file.c 28 Oct 2005 13:26:20 -0000
@@ -104,6 +104,7 @@ static HRESULT WINAPI FileProtocol_Start
LARGE_INTEGER size;
DWORD len;
LPWSTR url, mime = NULL;
+ WCHAR null_char = 0;
HRESULT hres;
static const WCHAR wszFile[] = {'f','i','l','e',':'};
@@ -132,6 +133,8 @@ static HRESULT WINAPI FileProtocol_Start
IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_DIRECTBIND, mime);
if(!This->file) {
+ IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_SENDINGREQUEST, &null_char);
+
This->file = CreateFileW(url+sizeof(wszFile)/sizeof(WCHAR), GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
Index: dlls/urlmon/tests/protocol.c
===================================================================
RCS file: /home/wine/wine/dlls/urlmon/tests/protocol.c,v
retrieving revision 1.4
diff -u -p -r1.4 protocol.c
--- dlls/urlmon/tests/protocol.c 14 Sep 2005 10:29:56 -0000 1.4
+++ dlls/urlmon/tests/protocol.c 28 Oct 2005 13:26:20 -0000
@@ -50,6 +50,7 @@
DEFINE_EXPECT(GetBindInfo);
DEFINE_EXPECT(ReportProgress_MIMETYPEAVAILABLE);
DEFINE_EXPECT(ReportProgress_DIRECTBIND);
+DEFINE_EXPECT(ReportProgress_SENDINGREQUEST);
DEFINE_EXPECT(ReportProgress_CACHEFILENAMEAVAILABLE);
DEFINE_EXPECT(ReportData);
DEFINE_EXPECT(ReportResult);
@@ -102,6 +103,14 @@ static HRESULT WINAPI ProtocolSink_Repor
if(szStatusText)
ok(!lstrcmpW(szStatusText, file_name), "szStatusText != file_name\n");
break;
+ case BINDSTATUS_SENDINGREQUEST:
+ CHECK_EXPECT(ReportProgress_SENDINGREQUEST);
+ ok(szStatusText != NULL, "szStatusText == NULL\n");
+ if(szStatusText)
+ ok(!*szStatusText, "wrong szStatusText\n");
+ break;
+ default:
+ ok(0, "Unexpected call %ld\n", ulStatusCode);
};
return S_OK;
@@ -204,11 +213,13 @@ static void file_protocol_start(IInterne
SET_EXPECT(GetBindInfo);
SET_EXPECT(ReportProgress_DIRECTBIND);
if(is_first) {
+ SET_EXPECT(ReportProgress_SENDINGREQUEST);
SET_EXPECT(ReportProgress_CACHEFILENAMEAVAILABLE);
SET_EXPECT(ReportProgress_MIMETYPEAVAILABLE);
SET_EXPECT(ReportResult);
}
SET_EXPECT(ReportData);
+
expect_hrResult = S_OK;
hres = IInternetProtocol_Start(protocol, url, &protocol_sink, &bind_info, 0, 0);
@@ -217,6 +228,7 @@ static void file_protocol_start(IInterne
CHECK_CALLED(GetBindInfo);
CHECK_CALLED(ReportProgress_DIRECTBIND);
if(is_first) {
+ CHECK_CALLED(ReportProgress_SENDINGREQUEST);
CHECK_CALLED(ReportProgress_CACHEFILENAMEAVAILABLE);
CHECK_CALLED(ReportProgress_MIMETYPEAVAILABLE);
CHECK_CALLED(ReportResult);
@@ -367,6 +379,7 @@ static void test_file_protocol(void) {
SET_EXPECT(GetBindInfo);
SET_EXPECT(ReportProgress_DIRECTBIND);
+ SET_EXPECT(ReportProgress_SENDINGREQUEST);
SET_EXPECT(ReportResult);
expect_hrResult = INET_E_RESOURCE_NOT_FOUND;
hres = IInternetProtocol_Start(protocol, index_url, &protocol_sink, &bind_info, 0, 0);
@@ -374,6 +387,7 @@ static void test_file_protocol(void) {
"Start failed: %08lx expected INET_E_RESOURCE_NOT_FOUND\n", hres);
CHECK_CALLED(GetBindInfo);
CHECK_CALLED(ReportProgress_DIRECTBIND);
+ CHECK_CALLED(ReportProgress_SENDINGREQUEST);
CHECK_CALLED(ReportResult);
IInternetProtocol_Release(protocol);
@@ -386,6 +400,7 @@ static void test_file_protocol(void) {
SET_EXPECT(GetBindInfo);
SET_EXPECT(ReportProgress_DIRECTBIND);
+ SET_EXPECT(ReportProgress_SENDINGREQUEST);
SET_EXPECT(ReportResult);
expect_hrResult = INET_E_RESOURCE_NOT_FOUND;
hres = IInternetProtocol_Start(protocol, index_url2, &protocol_sink, &bind_info, 0, 0);
@@ -393,6 +408,7 @@ static void test_file_protocol(void) {
"Start failed: %08lx, expected INET_E_RESOURCE_NOT_FOUND\n", hres);
CHECK_CALLED(GetBindInfo);
CHECK_CALLED(ReportProgress_DIRECTBIND);
+ CHECK_CALLED(ReportProgress_SENDINGREQUEST);
CHECK_CALLED(ReportResult);
IInternetProtocol_Release(protocol);
More information about the wine-patches
mailing list