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