Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
Jacek,
dlls/urlmon/mimefilter.c:
text_plainW and app_octetstreamW cannot be inlined as there are 6 or so
pointer comparisons for those in find_mime_from_buffer()
Of course those can be changed to wcscmp() calls but it is simpler for
me to keep them as is.
dlls/urlmon/http.c | 9 ++-
dlls/urlmon/internet.c | 119 +++++++++-----------------------------
dlls/urlmon/mimefilter.c | 74 +++++++++---------------
dlls/urlmon/uri.c | 58 +++++++++----------
dlls/urlmon/urlmon_main.c | 19 ++----
5 files changed, 93 insertions(+), 186 deletions(-)
diff --git a/dlls/urlmon/http.c b/dlls/urlmon/http.c
index 3663443a0a4..cf7a0b78231 100644
--- a/dlls/urlmon/http.c
+++ b/dlls/urlmon/http.c
@@ -304,9 +304,9 @@ static HRESULT HttpProtocol_open_request(Protocol *prot, IUri *uri, DWORD reques
HRESULT hres;
static const WCHAR wszBindVerb[BINDVERB_CUSTOM][5] =
- {{'G','E','T',0},
- {'P','O','S','T',0},
- {'P','U','T',0}};
+ {L"GET",
+ L"POST",
+ L"PUT"};
hres = IUri_GetPort(uri, &port);
if(FAILED(hres))
@@ -345,8 +345,7 @@ static HRESULT HttpProtocol_open_request(Protocol *prot, IUri *uri, DWORD reques
num = ARRAY_SIZE(accept_mimes) - 1;
hres = IInternetBindInfo_GetBindString(bind_info, BINDSTRING_ACCEPT_MIMES, accept_mimes, num, &num);
if(hres == INET_E_USE_DEFAULT_SETTING) {
- static const WCHAR default_accept_mimeW[] = {'*','/','*',0};
- static const WCHAR *default_accept_mimes[] = {default_accept_mimeW, NULL};
+ static const WCHAR *default_accept_mimes[] = {L"*/*", NULL};
accept_types = default_accept_mimes;
num = 0;
diff --git a/dlls/urlmon/internet.c b/dlls/urlmon/internet.c
index 7356fc8978d..ed95c069e22 100644
--- a/dlls/urlmon/internet.c
+++ b/dlls/urlmon/internet.c
@@ -32,69 +32,6 @@ static const WCHAR feature_control_keyW[] =
'M','a','i','n','\\',
'F','e','a','t','u','r','e','C','o','n','t','r','o','l',0};
-static const WCHAR feature_object_cachingW[] =
- {'F','E','A','T','U','R','E','_','O','B','J','E','C','T','_','C','A','C','H','I','N','G',0};
-static const WCHAR feature_zone_elevationW[] =
- {'F','E','A','T','U','R','E','_','Z','O','N','E','_','E','L','E','V','A','T','I','O','N',0};
-static const WCHAR feature_mime_handlingW[] =
- {'F','E','A','T','U','R','E','_','M','I','M','E','_','H','A','N','D','L','I','N','G',0};
-static const WCHAR feature_mime_sniffingW[] =
- {'F','E','A','T','U','R','E','_','M','I','M','E','_','S','N','I','F','F','I','N','G',0};
-static const WCHAR feature_window_restrictionsW[] =
- {'F','E','A','T','U','R','E','_','W','I','N','D','O','W','_','R','E','S','T','R','I','C','T','I','O','N','S',0};
-static const WCHAR feature_weboc_popupmanagementW[] =
- {'F','E','A','T','U','R','E','_','W','E','B','O','C','_','P','O','P','U','P','M','A','N','A','G','E','M','E','N','T',0};
-static const WCHAR feature_behaviorsW[] =
- {'F','E','A','T','U','R','E','_','B','E','H','A','V','I','O','R','S',0};
-static const WCHAR feature_disable_mk_protocolW[] =
- {'F','E','A','T','U','R','E','_','D','I','S','A','B','L','E','_','M','K','_','P','R','O','T','O','C','O','L',0};
-static const WCHAR feature_localmachine_lockdownW[] =
- {'F','E','A','T','U','R','E','_','L','O','C','A','L','M','A','C','H','I','N','E','_','L','O','C','K','D','O','W','N',0};
-static const WCHAR feature_securitybandW[] =
- {'F','E','A','T','U','R','E','_','S','E','C','U','R','I','T','Y','B','A','N','D',0};
-static const WCHAR feature_restrict_activexinstallW[] =
- {'F','E','A','T','U','R','E','_','R','E','S','T','R','I','C','T','_','A','C','T','I','V','E','X','I','N','S','T','A','L','L',0};
-static const WCHAR feature_validate_navigate_urlW[] =
- {'F','E','A','T','U','R','E','_','V','A','L','I','D','A','T','E','_','N','A','V','I','G','A','T','E','_','U','R','L',0};
-static const WCHAR feature_restrict_filedownloadW[] =
- {'F','E','A','T','U','R','E','_','R','E','S','T','R','I','C','T','_','F','I','L','E','D','O','W','N','L','O','A','D',0};
-static const WCHAR feature_addon_managementW[] =
- {'F','E','A','T','U','R','E','_','A','D','D','O','N','_','M','A','N','A','G','E','M','E','N','T',0};
-static const WCHAR feature_protocol_lockdownW[] =
- {'F','E','A','T','U','R','E','_','P','R','O','T','O','C','O','L','_','L','O','C','K','D','O','W','N',0};
-static const WCHAR feature_http_username_password_disableW[] =
- {'F','E','A','T','U','R','E','_','H','T','T','P','_','U','S','E','R','N','A','M','E','_',
- 'P','A','S','S','W','O','R','D','_','D','I','S','A','B','L','E',0};
-static const WCHAR feature_safe_bindtoobjectW[] =
- {'F','E','A','T','U','R','E','_','S','A','F','E','_','B','I','N','D','T','O','O','B','J','E','C','T',0};
-static const WCHAR feature_unc_savedfilecheckW[] =
- {'F','E','A','T','U','R','E','_','U','N','C','_','S','A','V','E','D','F','I','L','E','C','H','E','C','K',0};
-static const WCHAR feature_get_url_dom_filepath_unencodedW[] =
- {'F','E','A','T','U','R','E','_','G','E','T','_','U','R','L','_','D','O','M','_',
- 'F','I','L','E','P','A','T','H','_','U','N','E','N','C','O','D','E','D',0};
-static const WCHAR feature_tabbed_browsingW[] =
- {'F','E','A','T','U','R','E','_','T','A','B','B','E','D','_','B','R','O','W','S','I','N','G',0};
-static const WCHAR feature_ssluxW[] =
- {'F','E','A','T','U','R','E','_','S','S','L','U','X',0};
-static const WCHAR feature_disable_navigation_soundsW[] =
- {'F','E','A','T','U','R','E','_','D','I','S','A','B','L','E','_','N','A','V','I','G','A','T','I','O','N','_',
- 'S','O','U','N','D','S',0};
-static const WCHAR feature_disable_legacy_compressionW[] =
- {'F','E','A','T','U','R','E','_','D','I','S','A','B','L','E','_','L','E','G','A','C','Y','_',
- 'C','O','M','P','R','E','S','S','I','O','N',0};
-static const WCHAR feature_force_addr_and_statusW[] =
- {'F','E','A','T','U','R','E','_','F','O','R','C','E','_','A','D','D','R','_','A','N','D','_',
- 'S','T','A','T','U','S',0};
-static const WCHAR feature_xmlhttpW[] =
- {'F','E','A','T','U','R','E','_','X','M','L','H','T','T','P',0};
-static const WCHAR feature_disable_telnet_protocolW[] =
- {'F','E','A','T','U','R','E','_','D','I','S','A','B','L','E','_','T','E','L','N','E','T','_',
- 'P','R','O','T','O','C','O','L',0};
-static const WCHAR feature_feedsW[] =
- {'F','E','A','T','U','R','E','_','F','E','E','D','S',0};
-static const WCHAR feature_block_input_promptsW[] =
- {'F','E','A','T','U','R','E','_','B','L','O','C','K','_','I','N','P','U','T','_','P','R','O','M','P','T','S',0};
-
static CRITICAL_SECTION process_features_cs;
static CRITICAL_SECTION_DEBUG process_features_cs_dbg =
{
@@ -116,34 +53,34 @@ typedef struct feature_control {
* appear in the same order as it does in INTERNETFEATURELIST.
*/
static feature_control process_feature_controls[FEATURE_ENTRY_COUNT] = {
- {feature_object_cachingW, TRUE ,TRUE},
- {feature_zone_elevationW, FALSE,TRUE},
- {feature_mime_handlingW, FALSE,TRUE},
- {feature_mime_sniffingW, FALSE,TRUE},
- {feature_window_restrictionsW, FALSE,TRUE},
- {feature_weboc_popupmanagementW, FALSE,TRUE},
- {feature_behaviorsW, TRUE ,TRUE},
- {feature_disable_mk_protocolW, TRUE ,TRUE},
- {feature_localmachine_lockdownW, FALSE,TRUE},
- {feature_securitybandW, FALSE,TRUE},
- {feature_restrict_activexinstallW, FALSE,TRUE},
- {feature_validate_navigate_urlW, FALSE,TRUE},
- {feature_restrict_filedownloadW, FALSE,TRUE},
- {feature_addon_managementW, FALSE,TRUE},
- {feature_protocol_lockdownW, FALSE,TRUE},
- {feature_http_username_password_disableW, FALSE,TRUE},
- {feature_safe_bindtoobjectW, FALSE,TRUE},
- {feature_unc_savedfilecheckW, FALSE,TRUE},
- {feature_get_url_dom_filepath_unencodedW, TRUE ,TRUE},
- {feature_tabbed_browsingW, FALSE,TRUE},
- {feature_ssluxW, FALSE,TRUE},
- {feature_disable_navigation_soundsW, FALSE,TRUE},
- {feature_disable_legacy_compressionW, TRUE ,TRUE},
- {feature_force_addr_and_statusW, FALSE,TRUE},
- {feature_xmlhttpW, TRUE ,TRUE},
- {feature_disable_telnet_protocolW, FALSE,TRUE},
- {feature_feedsW, FALSE,TRUE},
- {feature_block_input_promptsW, FALSE,TRUE}
+ {L"FEATURE_OBJECT_CACHING", TRUE ,TRUE},
+ {L"FEATURE_ZONE_ELEVATION", FALSE,TRUE},
+ {L"FEATURE_MIME_HANDLING", FALSE,TRUE},
+ {L"FEATURE_MIME_SNIFFING", FALSE,TRUE},
+ {L"FEATURE_WINDOW_RESTRICTIONS", FALSE,TRUE},
+ {L"FEATURE_WEBOC_POPUPMANAGEMENT", FALSE,TRUE},
+ {L"FEATURE_BEHAVIORS", TRUE ,TRUE},
+ {L"FEATURE_DISABLE_MK_PROTOCOL", TRUE ,TRUE},
+ {L"FEATURE_LOCALMACHINE_LOCKDOWN", FALSE,TRUE},
+ {L"FEATURE_SECURITYBAND", FALSE,TRUE},
+ {L"FEATURE_RESTRICT_ACTIVEXINSTALL", FALSE,TRUE},
+ {L"FEATURE_VALIDATE_NAVIGATE_URL", FALSE,TRUE},
+ {L"FEATURE_RESTRICT_FILEDOWNLOAD", FALSE,TRUE},
+ {L"FEATURE_ADDON_MANAGEMENT", FALSE,TRUE},
+ {L"FEATURE_PROTOCOL_LOCKDOWN", FALSE,TRUE},
+ {L"FEATURE_HTTP_USERNAME_PASSWORD_DISABLE", FALSE,TRUE},
+ {L"FEATURE_SAFE_BINDTOOBJECT", FALSE,TRUE},
+ {L"FEATURE_UNC_SAVEDFILECHECK", FALSE,TRUE},
+ {L"FEATURE_GET_URL_DOM_FILEPATH_UNENCODED", TRUE ,TRUE},
+ {L"FEATURE_TABBED_BROWSING", FALSE,TRUE},
+ {L"FEATURE_SSLUX", FALSE,TRUE},
+ {L"FEATURE_DISABLE_NAVIGATION_SOUNDS", FALSE,TRUE},
+ {L"FEATURE_DISABLE_LEGACY_COMPRESSION", TRUE ,TRUE},
+ {L"FEATURE_FORCE_ADDR_AND_STATUS", FALSE,TRUE},
+ {L"FEATURE_XMLHTTP", TRUE ,TRUE},
+ {L"FEATURE_DISABLE_TELNET_PROTOCOL", FALSE,TRUE},
+ {L"FEATURE_FEEDS", FALSE,TRUE},
+ {L"FEATURE_BLOCK_INPUT_PROMPTS", FALSE,TRUE}
};
static HRESULT parse_schema(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
diff --git a/dlls/urlmon/mimefilter.c b/dlls/urlmon/mimefilter.c
index ebaed6b77d4..44b9e92994a 100644
--- a/dlls/urlmon/mimefilter.c
+++ b/dlls/urlmon/mimefilter.c
@@ -482,28 +482,6 @@ static HRESULT find_mime_from_url(const WCHAR *url, WCHAR **ret)
return hres;
}
-static const WCHAR text_htmlW[] = {'t','e','x','t','/','h','t','m','l',0};
-static const WCHAR text_richtextW[] = {'t','e','x','t','/','r','i','c','h','t','e','x','t',0};
-static const WCHAR text_xmlW[] = {'t','e','x','t','/','x','m','l',0};
-static const WCHAR audio_basicW[] = {'a','u','d','i','o','/','b','a','s','i','c',0};
-static const WCHAR audio_wavW[] = {'a','u','d','i','o','/','w','a','v',0};
-static const WCHAR image_gifW[] = {'i','m','a','g','e','/','g','i','f',0};
-static const WCHAR image_pjpegW[] = {'i','m','a','g','e','/','p','j','p','e','g',0};
-static const WCHAR image_tiffW[] = {'i','m','a','g','e','/','t','i','f','f',0};
-static const WCHAR image_xpngW[] = {'i','m','a','g','e','/','x','-','p','n','g',0};
-static const WCHAR image_bmpW[] = {'i','m','a','g','e','/','b','m','p',0};
-static const WCHAR video_aviW[] = {'v','i','d','e','o','/','a','v','i',0};
-static const WCHAR video_mpegW[] = {'v','i','d','e','o','/','m','p','e','g',0};
-static const WCHAR app_postscriptW[] =
- {'a','p','p','l','i','c','a','t','i','o','n','/','p','o','s','t','s','c','r','i','p','t',0};
-static const WCHAR app_pdfW[] = {'a','p','p','l','i','c','a','t','i','o','n','/','p','d','f',0};
-static const WCHAR app_xzipW[] = {'a','p','p','l','i','c','a','t','i','o','n','/',
- 'x','-','z','i','p','-','c','o','m','p','r','e','s','s','e','d',0};
-static const WCHAR app_xgzipW[] = {'a','p','p','l','i','c','a','t','i','o','n','/',
- 'x','-','g','z','i','p','-','c','o','m','p','r','e','s','s','e','d',0};
-static const WCHAR app_javaW[] = {'a','p','p','l','i','c','a','t','i','o','n','/','j','a','v','a',0};
-static const WCHAR app_xmsdownloadW[] = {'a','p','p','l','i','c','a','t','i','o','n','/',
- 'x','-','m','s','d','o','w','n','l','o','a','d',0};
static const WCHAR text_plainW[] = {'t','e','x','t','/','p','l','a','i','n','\0'};
static const WCHAR app_octetstreamW[] = {'a','p','p','l','i','c','a','t','i','o','n','/',
'o','c','t','e','t','-','s','t','r','e','a','m','\0'};
@@ -512,33 +490,33 @@ static const struct {
const WCHAR *mime;
BOOL (*filter)(const BYTE *,DWORD);
} mime_filters_any_pos[] = {
- {text_htmlW, text_html_filter},
- {text_xmlW, text_xml_filter}
+ {L"text/html", text_html_filter},
+ {L"text/xml", text_xml_filter}
}, mime_filters[] = {
- {text_richtextW, text_richtext_filter},
- /* {audio_xaiffW, audio_xaiff_filter}, */
- {audio_basicW, audio_basic_filter},
- {audio_wavW, audio_wav_filter},
- {image_gifW, image_gif_filter},
- {image_pjpegW, image_pjpeg_filter},
- {image_tiffW, image_tiff_filter},
- {image_xpngW, image_xpng_filter},
- /* {image_xbitmapW, image_xbitmap_filter}, */
- {image_bmpW, image_bmp_filter},
- /* {image_xjgW, image_xjg_filter}, */
- /* {image_xemfW, image_xemf_filter}, */
- /* {image_xwmfW, image_xwmf_filter}, */
- {video_aviW, video_avi_filter},
- {video_mpegW, video_mpeg_filter},
- {app_postscriptW, application_postscript_filter},
- /* {app_base64W, application_base64_filter}, */
- /* {app_macbinhex40W, application_macbinhex40_filter}, */
- {app_pdfW, application_pdf_filter},
- /* {app_zcompressedW, application_xcompressed_filter}, */
- {app_xzipW, application_xzip_filter},
- {app_xgzipW, application_xgzip_filter},
- {app_javaW, application_java_filter},
- {app_xmsdownloadW, application_xmsdownload},
+ {L"text/richtext", text_richtext_filter},
+ /* {L"audio/x-aiff", audio_xaiff_filter}, */
+ {L"audio/basic", audio_basic_filter},
+ {L"audio/wav", audio_wav_filter},
+ {L"image/gif", image_gif_filter},
+ {L"image/pjpeg", image_pjpeg_filter},
+ {L"image/tiff", image_tiff_filter},
+ {L"image/x-png", image_xpng_filter},
+ /* {L"image/x-bitmap", image_xbitmap_filter}, */
+ {L"image/bmp", image_bmp_filter},
+ /* {L"image/x-jg", image_xjg_filter}, */
+ /* {L"image/x-emf", image_xemf_filter}, */
+ /* {L"image/x-wmf", image_xwmf_filter}, */
+ {L"video/avi", video_avi_filter},
+ {L"video/mpeg", video_mpeg_filter},
+ {L"application/postscript", application_postscript_filter},
+ /* {L"application/base64", application_base64_filter}, */
+ /* {L"application/mac-binhex40", application_macbinhex40_filter}, */
+ {L"application/pdf", application_pdf_filter},
+ /* {L"application/x-compressed", application_xcompressed_filter}, */
+ {L"application/x-zip-compressed", application_xzip_filter},
+ {L"application/x-gzip-compressed", application_xgzip_filter},
+ {L"application/java", application_java_filter},
+ {L"application/x-msdownload", application_xmsdownload},
{text_plainW, text_plain_filter},
{app_octetstreamW, application_octet_stream_filter}
};
diff --git a/dlls/urlmon/uri.c b/dlls/urlmon/uri.c
index 3c42497bfaa..cf901dfd8b7 100644
--- a/dlls/urlmon/uri.c
+++ b/dlls/urlmon/uri.c
@@ -180,28 +180,28 @@ static const struct {
URL_SCHEME scheme;
WCHAR scheme_name[16];
} recognized_schemes[] = {
- {URL_SCHEME_FTP, {'f','t','p',0}},
- {URL_SCHEME_HTTP, {'h','t','t','p',0}},
- {URL_SCHEME_GOPHER, {'g','o','p','h','e','r',0}},
- {URL_SCHEME_MAILTO, {'m','a','i','l','t','o',0}},
- {URL_SCHEME_NEWS, {'n','e','w','s',0}},
- {URL_SCHEME_NNTP, {'n','n','t','p',0}},
- {URL_SCHEME_TELNET, {'t','e','l','n','e','t',0}},
- {URL_SCHEME_WAIS, {'w','a','i','s',0}},
- {URL_SCHEME_FILE, {'f','i','l','e',0}},
- {URL_SCHEME_MK, {'m','k',0}},
- {URL_SCHEME_HTTPS, {'h','t','t','p','s',0}},
- {URL_SCHEME_SHELL, {'s','h','e','l','l',0}},
- {URL_SCHEME_SNEWS, {'s','n','e','w','s',0}},
- {URL_SCHEME_LOCAL, {'l','o','c','a','l',0}},
- {URL_SCHEME_JAVASCRIPT, {'j','a','v','a','s','c','r','i','p','t',0}},
- {URL_SCHEME_VBSCRIPT, {'v','b','s','c','r','i','p','t',0}},
- {URL_SCHEME_ABOUT, {'a','b','o','u','t',0}},
- {URL_SCHEME_RES, {'r','e','s',0}},
- {URL_SCHEME_MSSHELLROOTED, {'m','s','-','s','h','e','l','l','-','r','o','o','t','e','d',0}},
- {URL_SCHEME_MSSHELLIDLIST, {'m','s','-','s','h','e','l','l','-','i','d','l','i','s','t',0}},
- {URL_SCHEME_MSHELP, {'h','c','p',0}},
- {URL_SCHEME_WILDCARD, {'*',0}}
+ {URL_SCHEME_FTP, L"ftp"},
+ {URL_SCHEME_HTTP, L"http"},
+ {URL_SCHEME_GOPHER, L"gopher"},
+ {URL_SCHEME_MAILTO, L"mailto"},
+ {URL_SCHEME_NEWS, L"news"},
+ {URL_SCHEME_NNTP, L"nntp"},
+ {URL_SCHEME_TELNET, L"telnet"},
+ {URL_SCHEME_WAIS, L"wais"},
+ {URL_SCHEME_FILE, L"file"},
+ {URL_SCHEME_MK, L"mk"},
+ {URL_SCHEME_HTTPS, L"https"},
+ {URL_SCHEME_SHELL, L"shell"},
+ {URL_SCHEME_SNEWS, L"snews"},
+ {URL_SCHEME_LOCAL, L"local"},
+ {URL_SCHEME_JAVASCRIPT, L"javascript"},
+ {URL_SCHEME_VBSCRIPT, L"vbscript"},
+ {URL_SCHEME_ABOUT, L"about"},
+ {URL_SCHEME_RES, L"res"},
+ {URL_SCHEME_MSSHELLROOTED, L"ms-shell-rooted"},
+ {URL_SCHEME_MSSHELLIDLIST, L"ms-shell-idlist"},
+ {URL_SCHEME_MSHELP, L"hcp"},
+ {URL_SCHEME_WILDCARD, L"*"}
};
/* List of default ports Windows recognizes. */
@@ -224,13 +224,13 @@ static const struct {
static const struct {
WCHAR tld_name[4];
} recognized_tlds[] = {
- {{'c','o','m',0}},
- {{'e','d','u',0}},
- {{'g','o','v',0}},
- {{'i','n','t',0}},
- {{'m','i','l',0}},
- {{'n','e','t',0}},
- {{'o','r','g',0}}
+ {L"com"},
+ {L"edu"},
+ {L"gov"},
+ {L"int"},
+ {L"mil"},
+ {L"net"},
+ {L"org"}
};
static Uri *get_uri_obj(IUri *uri)
diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c
index 0e98b9e3fc9..5d598830fdf 100644
--- a/dlls/urlmon/urlmon_main.c
+++ b/dlls/urlmon/urlmon_main.c
@@ -383,21 +383,14 @@ struct object_creation_info
LPCWSTR protocol;
};
-static const WCHAR wszFile[] = {'f','i','l','e',0};
-static const WCHAR wszFtp[] = {'f','t','p',0};
-static const WCHAR wszGopher[] = {'g','o','p','h','e','r',0};
-static const WCHAR wszHttp[] = {'h','t','t','p',0};
-static const WCHAR wszHttps[] = {'h','t','t','p','s',0};
-static const WCHAR wszMk[] = {'m','k',0};
-
static const struct object_creation_info object_creation[] =
{
- { &CLSID_FileProtocol, &FileProtocolCF.IClassFactory_iface, wszFile },
- { &CLSID_FtpProtocol, &FtpProtocolCF.IClassFactory_iface, wszFtp },
- { &CLSID_GopherProtocol, &GopherProtocolCF.IClassFactory_iface, wszGopher },
- { &CLSID_HttpProtocol, &HttpProtocolCF.IClassFactory_iface, wszHttp },
- { &CLSID_HttpSProtocol, &HttpSProtocolCF.IClassFactory_iface, wszHttps },
- { &CLSID_MkProtocol, &MkProtocolCF.IClassFactory_iface, wszMk },
+ { &CLSID_FileProtocol, &FileProtocolCF.IClassFactory_iface, L"file" },
+ { &CLSID_FtpProtocol, &FtpProtocolCF.IClassFactory_iface, L"ftp" },
+ { &CLSID_GopherProtocol, &GopherProtocolCF.IClassFactory_iface, L"gopher" },
+ { &CLSID_HttpProtocol, &HttpProtocolCF.IClassFactory_iface, L"http" },
+ { &CLSID_HttpSProtocol, &HttpSProtocolCF.IClassFactory_iface, L"https" },
+ { &CLSID_MkProtocol, &MkProtocolCF.IClassFactory_iface, L"mk" },
{ &CLSID_InternetSecurityManager, &SecurityManagerCF.IClassFactory_iface, NULL },
{ &CLSID_InternetZoneManager, &ZoneManagerCF.IClassFactory_iface, NULL },
{ &CLSID_StdURLMoniker, &StdURLMonikerCF.IClassFactory_iface, NULL },
--
2.26.2