Jacek Caban : mshtml:
Fix handling res URLs with full path and number resource ID.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jul 27 05:42:24 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: ae154d44e9b2a8aa55b57a6db102a306f9b9ab6a
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=ae154d44e9b2a8aa55b57a6db102a306f9b9ab6a
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jul 26 20:55:35 2006 +0200
mshtml: Fix handling res URLs with full path and number resource ID.
---
dlls/mshtml/protocol.c | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/dlls/mshtml/protocol.c b/dlls/mshtml/protocol.c
index 6717500..05b4388 100644
--- a/dlls/mshtml/protocol.c
+++ b/dlls/mshtml/protocol.c
@@ -588,7 +588,7 @@ static HRESULT WINAPI ResProtocol_Start(
}
url_dll = url + sizeof(wszRes)/sizeof(wszRes[0]);
- if(!(url_file = strchrW(url_dll, '/'))) {
+ if(!(url_file = strrchrW(url_dll, '/'))) {
WARN("wrong url: %s\n", debugstr_w(url));
IInternetProtocolSink_ReportResult(pOIProtSink, MK_E_SYNTAX, 0, NULL);
mshtml_free(url);
@@ -605,10 +605,18 @@ static HRESULT WINAPI ResProtocol_Start(
src = FindResourceW(hdll, url_file, (LPCWSTR)RT_HTML);
if(!src) {
- WARN("Could not find resource\n");
- IInternetProtocolSink_ReportResult(pOIProtSink, HRESULT_FROM_WIN32(GetLastError()), 0, NULL);
- mshtml_free(url);
- return HRESULT_FROM_WIN32(GetLastError());
+ LPWSTR endpoint = NULL;
+ DWORD file_id = strtolW(url_file, &endpoint, 10);
+ if(endpoint == url_file+strlenW(url_file))
+ src = FindResourceW(hdll, (LPCWSTR)file_id, (LPCWSTR)RT_HTML);
+
+ if(!src) {
+ WARN("Could not find resource\n");
+ IInternetProtocolSink_ReportResult(pOIProtSink,
+ HRESULT_FROM_WIN32(GetLastError()), 0, NULL);
+ mshtml_free(url);
+ return HRESULT_FROM_WIN32(GetLastError());
+ }
}
if(This->data) {
More information about the wine-cvs
mailing list