Jacek Caban : urlmon: Added text/richtext MIME filter.

Alexandre Julliard julliard at winehq.org
Tue Oct 23 13:14:36 CDT 2007


Module: wine
Branch: master
Commit: ec565fbfd93c141297ef2b6e45e3ecb07973b621
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ec565fbfd93c141297ef2b6e45e3ecb07973b621

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Oct 23 12:53:07 2007 +0200

urlmon: Added text/richtext MIME filter.

---

 dlls/urlmon/tests/misc.c  |   11 ++++++++++-
 dlls/urlmon/urlmon_main.c |    6 ++++++
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c
index b6f6421..9623fbe 100644
--- a/dlls/urlmon/tests/misc.c
+++ b/dlls/urlmon/tests/misc.c
@@ -345,6 +345,7 @@ static void test_CoInternetCompareUrl(void)
 
 static const WCHAR mimeTextHtml[] = {'t','e','x','t','/','h','t','m','l',0};
 static const WCHAR mimeTextPlain[] = {'t','e','x','t','/','p','l','a','i','n',0};
+static const WCHAR mimeTextRichtext[] = {'t','e','x','t','/','r','i','c','h','t','e','x','t',0};
 static const WCHAR mimeAppOctetStream[] = {'a','p','p','l','i','c','a','t','i','o','n','/',
     'o','c','t','e','t','-','s','t','r','e','a','m',0};
 static const WCHAR mimeImagePjpeg[] = {'i','m','a','g','e','/','p','j','p','e','g',0};
@@ -449,6 +450,10 @@ static BYTE data67[] = {0x25,0x50,0x44,0x46,'x','<','h','t','m','l','>'};
 static BYTE data68[] = {'M','Z','x'};
 static BYTE data69[] = {'M','Z'};
 static BYTE data70[] = {'M','Z','<','h','t','m','l','>',0xff};
+static BYTE data71[] = {'{','\\','r','t','f',0};
+static BYTE data72[] = {'{','\\','r','t','f'};
+static BYTE data73[] = {' ','{','\\','r','t','f',' '};
+static BYTE data74[] = {'{','\\','r','t','f','<','h','t','m','l','>',' '};
 
 static const struct {
     BYTE *data;
@@ -524,7 +529,11 @@ static const struct {
     {data67, sizeof(data67), mimeTextHtml},
     {data68, sizeof(data68), mimeAppXMSDownload},
     {data69, sizeof(data69), mimeTextPlain},
-    {data70, sizeof(data70), mimeTextHtml}
+    {data70, sizeof(data70), mimeTextHtml},
+    {data71, sizeof(data71), mimeTextRichtext},
+    {data72, sizeof(data72), mimeTextPlain},
+    {data73, sizeof(data73), mimeTextPlain},
+    {data74, sizeof(data74), mimeTextHtml}
 };
 
 static void test_FindMimeFromData(void)
diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c
index a64d494..535b364 100644
--- a/dlls/urlmon/urlmon_main.c
+++ b/dlls/urlmon/urlmon_main.c
@@ -408,6 +408,10 @@ void WINAPI ReleaseBindInfo(BINDINFO* pbindinfo)
     pbindinfo->cbSize = size;
 }
 
+static BOOL text_richtext_filter(const BYTE *b, DWORD size)
+{
+    return size > 5 && !memcmp(b, "{\\rtf", 5);
+}
 
 static BOOL text_html_filter(const BYTE *b, DWORD size)
 {
@@ -559,6 +563,7 @@ HRESULT WINAPI FindMimeFromData(LPBC pBC, LPCWSTR pwzUrl, LPVOID pBuffer,
         int i;
 
         static const WCHAR wszTextHtml[] = {'t','e','x','t','/','h','t','m','l',0};
+        static const WCHAR wszTextRichtext[] = {'t','e','x','t','/','r','i','c','h','t','e','x','t',0};
         static const WCHAR wszImageGif[] = {'i','m','a','g','e','/','g','i','f',0};
         static const WCHAR wszImagePjpeg[] = {'i','m','a','g','e','/','p','j','p','e','g',0};
         static const WCHAR wszImageTiff[] = {'i','m','a','g','e','/','t','i','f','f',0};
@@ -585,6 +590,7 @@ HRESULT WINAPI FindMimeFromData(LPBC pBC, LPCWSTR pwzUrl, LPVOID pBuffer,
             BOOL (*filter)(const BYTE *,DWORD);
         } mime_filters[] = {
             {wszTextHtml,       text_html_filter},
+            {wszTextRichtext,   text_richtext_filter},
             {wszImageGif,       image_gif_filter},
             {wszImagePjpeg,     image_pjpeg_filter},
             {wszImageTiff,      image_tiff_filter},




More information about the wine-cvs mailing list