Author: cwittich
Date: Thu Mar 4 16:24:17 2010
New Revision: 45834
URL:
http://svn.reactos.org/svn/reactos?rev=45834&view=rev
Log:
[URLMON]
sync urlmon to wine 1.1.39
Added:
trunk/reactos/dll/win32/urlmon/uri.c (with props)
trunk/reactos/dll/win32/urlmon/urlmon_urlmon.idl (with props)
trunk/reactos/dll/win32/urlmon/usrmarshal.c (with props)
Removed:
trunk/reactos/dll/win32/urlmon/urlmon_local.idl
Modified:
trunk/reactos/dll/win32/urlmon/binding.c
trunk/reactos/dll/win32/urlmon/bindprot.c
trunk/reactos/dll/win32/urlmon/download.c
trunk/reactos/dll/win32/urlmon/http.c
trunk/reactos/dll/win32/urlmon/internet.c
trunk/reactos/dll/win32/urlmon/protocol.c
trunk/reactos/dll/win32/urlmon/regsvr.c
trunk/reactos/dll/win32/urlmon/sec_mgr.c
trunk/reactos/dll/win32/urlmon/urlmon.inf
trunk/reactos/dll/win32/urlmon/urlmon.rbuild
trunk/reactos/dll/win32/urlmon/urlmon.spec
trunk/reactos/dll/win32/urlmon/urlmon_main.c
trunk/reactos/dll/win32/urlmon/urlmon_main.h
trunk/reactos/include/psdk/urlmon.idl
Modified: trunk/reactos/dll/win32/urlmon/binding.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/binding.c…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/binding.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/binding.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -98,6 +98,7 @@
LPWSTR mime;
UINT clipboard_format;
LPWSTR url;
+ LPWSTR redirect_url;
IID iid;
BOOL report_mime;
DWORD state;
@@ -829,6 +830,7 @@
This->section.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->section);
heap_free(This->mime);
+ heap_free(This->redirect_url);
heap_free(This->url);
heap_free(This);
@@ -966,6 +968,11 @@
break;
case BINDSTATUS_CONNECTING:
on_progress(This, 0, 0, BINDSTATUS_CONNECTING, szStatusText);
+ break;
+ case BINDSTATUS_REDIRECTING:
+ heap_free(This->redirect_url);
+ This->redirect_url = heap_strdupW(szStatusText);
+ on_progress(This, 0, 0, BINDSTATUS_REDIRECTING, szStatusText);
break;
case BINDSTATUS_BEGINDOWNLOADDATA:
fill_stgmed_buffer(This->stgmed_buf);
@@ -1474,6 +1481,8 @@
if(binding_ctx) {
set_binding_sink(binding->protocol, PROTSINK(binding));
+ if(binding_ctx->redirect_url)
+ IBindStatusCallback_OnProgress(binding->callback, 0, 0,
BINDSTATUS_REDIRECTING, binding_ctx->redirect_url);
report_data(binding, 0, 0, 0);
}else {
hres = IInternetProtocol_Start(binding->protocol, url, PROTSINK(binding),
Modified: trunk/reactos/dll/win32/urlmon/bindprot.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/bindprot.…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/bindprot.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/bindprot.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -205,7 +205,7 @@
This->task_queue_tail = task;
}else {
This->task_queue_tail = This->task_queue_head = task;
- do_post = TRUE;
+ do_post = !This->continue_call;
}
LeaveCriticalSection(&This->section);
@@ -960,6 +960,7 @@
switch(status_code) {
case BINDSTATUS_FINDINGRESOURCE:
case BINDSTATUS_CONNECTING:
+ case BINDSTATUS_REDIRECTING:
case BINDSTATUS_BEGINDOWNLOADDATA:
case BINDSTATUS_SENDINGREQUEST:
case BINDSTATUS_CACHEFILENAMEAVAILABLE:
Modified: trunk/reactos/dll/win32/urlmon/download.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/download.…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/download.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/download.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -140,6 +140,7 @@
debugstr_w(szStatusText));
switch(ulStatusCode) {
+ case BINDSTATUS_CONNECTING:
case BINDSTATUS_BEGINDOWNLOADDATA:
case BINDSTATUS_DOWNLOADINGDATA:
case BINDSTATUS_ENDDOWNLOADDATA:
@@ -153,8 +154,7 @@
This->cache_file = heap_strdupW(szStatusText);
break;
- case BINDSTATUS_FINDINGRESOURCE:
- case BINDSTATUS_CONNECTING:
+ case BINDSTATUS_FINDINGRESOURCE: /* FIXME */
break;
default:
Modified: trunk/reactos/dll/win32/urlmon/http.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/http.c?re…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/http.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/http.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -17,11 +17,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-/*
- * TODO:
- * - Handle redirects as native.
- */
-
#include "urlmon_main.h"
#include "wininet.h"
@@ -84,7 +79,7 @@
URL_COMPONENTSW url_comp;
BYTE security_id[512];
DWORD len = 0;
- ULONG num = 0;
+ ULONG num;
BOOL res, b;
HRESULT hres;
@@ -95,7 +90,7 @@
memset(&url_comp, 0, sizeof(url_comp));
url_comp.dwStructSize = sizeof(url_comp);
- url_comp.dwSchemeLength = url_comp.dwHostNameLength = url_comp.dwUrlPathLength =
+ url_comp.dwSchemeLength = url_comp.dwHostNameLength = url_comp.dwUrlPathLength =
url_comp.dwExtraInfoLength =
url_comp.dwUserNameLength = url_comp.dwPasswordLength = 1;
if (!InternetCrackUrlW(url, 0, 0, &url_comp))
return MK_E_SYNTAX;
@@ -124,7 +119,12 @@
}
accept_mimes[num] = 0;
- path = heap_strndupW(url_comp.lpszUrlPath, url_comp.dwUrlPathLength);
+ path =
heap_alloc((url_comp.dwUrlPathLength+url_comp.dwExtraInfoLength+1)*sizeof(WCHAR));
+ if(url_comp.dwUrlPathLength)
+ memcpy(path, url_comp.lpszUrlPath, url_comp.dwUrlPathLength*sizeof(WCHAR));
+ if(url_comp.dwExtraInfoLength)
+ memcpy(path+url_comp.dwUrlPathLength, url_comp.lpszExtraInfo,
url_comp.dwExtraInfoLength*sizeof(WCHAR));
+ path[url_comp.dwUrlPathLength+url_comp.dwExtraInfoLength] = 0;
if(This->https)
request_flags |= INTERNET_FLAG_SECURE;
This->base.request = HttpOpenRequestW(This->base.connection,
@@ -132,8 +132,8 @@
? wszBindVerb[This->base.bind_info.dwBindVerb] :
This->base.bind_info.szCustomVerb,
path, NULL, NULL, (LPCWSTR *)accept_mimes, request_flags,
(DWORD_PTR)&This->base);
heap_free(path);
- while (num<sizeof(accept_mimes)/sizeof(accept_mimes[0]) &&
accept_mimes[num])
- CoTaskMemFree(accept_mimes[num++]);
+ while(num--)
+ CoTaskMemFree(accept_mimes[num]);
if (!This->base.request) {
WARN("HttpOpenRequest failed: %d\n", GetLastError());
return INET_E_RESOURCE_NOT_FOUND;
@@ -227,7 +227,7 @@
static HRESULT HttpProtocol_start_downloading(Protocol *prot)
{
HttpProtocol *This = ASYNCPROTOCOL_THIS(prot);
- LPWSTR content_type = 0, content_length = 0;
+ LPWSTR content_type, content_length, ranges;
DWORD len = sizeof(DWORD);
DWORD status_code;
BOOL res;
@@ -258,8 +258,11 @@
WARN("HttpQueryInfo failed: %d\n", GetLastError());
}
- if(This->https)
+ ranges = query_http_info(This, HTTP_QUERY_ACCEPT_RANGES);
+ if(ranges) {
IInternetProtocolSink_ReportProgress(This->base.protocol_sink,
BINDSTATUS_ACCEPTRANGES, NULL);
+ heap_free(ranges);
+ }
content_type = query_http_info(This, HTTP_QUERY_CONTENT_TYPE);
if(content_type) {
Modified: trunk/reactos/dll/win32/urlmon/internet.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/internet.…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/internet.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/internet.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -38,6 +38,9 @@
if(ptr)
len = ptr-url;
+ if(rsize)
+ *rsize = len;
+
if(len >= size)
return E_POINTER;
@@ -45,9 +48,6 @@
memcpy(result, url, len*sizeof(WCHAR));
result[len] = 0;
- if(rsize)
- *rsize = len;
-
return S_OK;
}
@@ -168,6 +168,100 @@
}
return E_FAIL;
+}
+
+static HRESULT parse_domain(LPCWSTR url, DWORD flags, LPWSTR result,
+ DWORD size, DWORD *rsize)
+{
+ IInternetProtocolInfo *protocol_info;
+ HRESULT hres;
+
+ TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size,
rsize);
+
+ protocol_info = get_protocol_info(url);
+
+ if(protocol_info) {
+ hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_DOMAIN,
+ flags, result, size, rsize, 0);
+ IInternetProtocolInfo_Release(protocol_info);
+ if(SUCCEEDED(hres))
+ return hres;
+ }
+
+ hres = UrlGetPartW(url, result, &size, URL_PART_HOSTNAME, flags);
+ if(rsize)
+ *rsize = size;
+
+ if(hres == E_POINTER)
+ return S_FALSE;
+
+ if(FAILED(hres))
+ return E_FAIL;
+ return S_OK;
+}
+
+static HRESULT parse_rootdocument(LPCWSTR url, DWORD flags, LPWSTR result,
+ DWORD size, DWORD *rsize)
+{
+ IInternetProtocolInfo *protocol_info;
+ PARSEDURLW url_info;
+ HRESULT hres;
+
+ TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size,
rsize);
+
+ protocol_info = get_protocol_info(url);
+
+ if(protocol_info) {
+ hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_ROOTDOCUMENT,
+ flags, result, size, rsize, 0);
+ IInternetProtocolInfo_Release(protocol_info);
+ if(SUCCEEDED(hres))
+ return hres;
+ }
+
+ url_info.cbSize = sizeof(url_info);
+ if(FAILED(ParseURLW(url, &url_info)))
+ return E_FAIL;
+
+ switch(url_info.nScheme) {
+ case URL_SCHEME_FTP:
+ case URL_SCHEME_HTTP:
+ case URL_SCHEME_HTTPS:
+ if(url_info.cchSuffix<3 || *(url_info.pszSuffix)!='/'
+ || *(url_info.pszSuffix+1)!='/')
+ return E_FAIL;
+
+ if(size < url_info.cchProtocol+3) {
+ size = 0;
+ hres = UrlGetPartW(url, result, &size, URL_PART_HOSTNAME, flags);
+
+ if(rsize)
+ *rsize = size+url_info.cchProtocol+3;
+
+ if(hres == E_POINTER)
+ return S_FALSE;
+
+ return hres;
+ }
+
+ size -= url_info.cchProtocol+3;
+ hres = UrlGetPartW(url, result+url_info.cchProtocol+3,
+ &size, URL_PART_HOSTNAME, flags);
+
+ if(hres == E_POINTER)
+ return S_FALSE;
+
+ if(FAILED(hres))
+ return E_FAIL;
+
+ if(rsize)
+ *rsize = size+url_info.cchProtocol+3;
+
+ memcpy(result, url, (url_info.cchProtocol+3)*sizeof(WCHAR));
+ return hres;
+ default:
+ return E_FAIL;
+ }
}
/**************************************************************************
@@ -192,6 +286,10 @@
return parse_schema(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
case PARSE_SECURITY_DOMAIN:
return parse_security_domain(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
+ case PARSE_DOMAIN:
+ return parse_domain(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
+ case PARSE_ROOTDOCUMENT:
+ return parse_rootdocument(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
default:
FIXME("not supported action %d\n", ParseAction);
}
Modified: trunk/reactos/dll/win32/urlmon/protocol.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/protocol.…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/protocol.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/protocol.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -151,6 +151,11 @@
report_progress(protocol, BINDSTATUS_SENDINGREQUEST, (LPWSTR)status_info);
break;
+ case INTERNET_STATUS_REDIRECT:
+ TRACE("%p INTERNET_STATUS_REDIRECT\n", protocol);
+ report_progress(protocol, BINDSTATUS_REDIRECTING, (LPWSTR)status_info);
+ break;
+
case INTERNET_STATUS_REQUEST_COMPLETE:
request_complete(protocol, status_info);
break;
Modified: trunk/reactos/dll/win32/urlmon/regsvr.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/regsvr.c?…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/regsvr.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/regsvr.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -495,6 +495,12 @@
"urlmon.dll",
"Both"
},
+ { &CLSID_PSFactoryBuffer,
+ "URLMoniker ProxyStub Factory",
+ NULL,
+ "urlmon.dll",
+ "Apartment"
+ },
{ NULL } /* list terminator */
};
@@ -573,12 +579,14 @@
TRACE("\n");
- hr = register_coclasses(coclass_list);
- if (SUCCEEDED(hr))
+ hr = URLMON_DllRegisterServer();
+ if(SUCCEEDED(hr))
+ hr = register_coclasses(coclass_list);
+ if(SUCCEEDED(hr))
hr = register_interfaces(interface_list);
- if(FAILED(hr))
- return hr;
- return register_inf(TRUE);
+ if(SUCCEEDED(hr))
+ hr = register_inf(TRUE);
+ return hr;
}
/***********************************************************************
@@ -590,10 +598,12 @@
TRACE("\n");
- hr = unregister_coclasses(coclass_list);
- if (SUCCEEDED(hr))
+ hr = URLMON_DllUnregisterServer();
+ if(SUCCEEDED(hr))
+ hr = unregister_coclasses(coclass_list);
+ if(SUCCEEDED(hr))
hr = unregister_interfaces(interface_list);
- if(FAILED(hr))
- return hr;
- return register_inf(FALSE);
-}
+ if(SUCCEEDED(hr))
+ hr = register_inf(FALSE);
+ return hr;
+}
Modified: trunk/reactos/dll/win32/urlmon/sec_mgr.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/sec_mgr.c…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/sec_mgr.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/sec_mgr.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -147,12 +147,18 @@
DWORD size=0;
HRESULT hres;
- secur_url = heap_alloc(INTERNET_MAX_URL_LENGTH*sizeof(WCHAR));
*zone = -1;
- hres = CoInternetParseUrl(url, PARSE_SECURITY_URL, 0, secur_url,
INTERNET_MAX_URL_LENGTH, &size, 0);
- if(hres != S_OK)
- strcpyW(secur_url, url);
+ hres = CoInternetGetSecurityUrl(url, &secur_url, PSU_SECURITY_URL_ONLY, 0);
+ if(hres != S_OK) {
+ size = strlenW(url)*sizeof(WCHAR);
+
+ secur_url = heap_alloc(size);
+ if(!secur_url)
+ return E_OUTOFMEMORY;
+
+ memcpy(secur_url, url, size);
+ }
hres = CoInternetParseUrl(secur_url, PARSE_SCHEMA, 0, schema,
sizeof(schema)/sizeof(WCHAR), &size, 0);
if(FAILED(hres) || !*schema) {
@@ -1228,3 +1234,84 @@
TRACE("(%p %p %x)\n", pSP, ppZM, dwReserved);
return ZoneMgrImpl_Construct(NULL, (void**)ppZM);
}
+
+/********************************************************************
+ * CoInternetGetSecurityUrl (URLMON.@)
+ */
+HRESULT WINAPI CoInternetGetSecurityUrl(LPCWSTR pwzUrl, LPWSTR *ppwzSecUrl, PSUACTION
psuAction, DWORD dwReserved)
+{
+ WCHAR buf1[INTERNET_MAX_URL_LENGTH], buf2[INTERNET_MAX_URL_LENGTH];
+ LPWSTR url, domain;
+ DWORD len;
+ HRESULT hres;
+
+ TRACE("(%p,%p,%u,%u)\n", pwzUrl, ppwzSecUrl, psuAction, dwReserved);
+
+ url = buf1;
+ domain = buf2;
+ strcpyW(url, pwzUrl);
+
+ while(1) {
+ hres = CoInternetParseUrl(url, PARSE_SECURITY_URL, 0, domain,
INTERNET_MAX_URL_LENGTH, &len, 0);
+ if(hres!=S_OK || !strcmpW(url, domain))
+ break;
+
+ if(url == buf1) {
+ url = buf2;
+ domain = buf1;
+ } else {
+ url = buf1;
+ domain = buf2;
+ }
+ }
+
+ if(psuAction==PSU_SECURITY_URL_ONLY) {
+ len = lstrlenW(url)+1;
+ *ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
+ if(!*ppwzSecUrl)
+ return E_OUTOFMEMORY;
+
+ memcpy(*ppwzSecUrl, url, len*sizeof(WCHAR));
+ return S_OK;
+ }
+
+ hres = CoInternetParseUrl(url, PARSE_SECURITY_DOMAIN, 0, domain,
+ INTERNET_MAX_URL_LENGTH, &len, 0);
+ if(SUCCEEDED(hres)) {
+ len++;
+ *ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
+ if(!*ppwzSecUrl)
+ return E_OUTOFMEMORY;
+
+ memcpy(*ppwzSecUrl, domain, len*sizeof(WCHAR));
+ return S_OK;
+ }
+
+ hres = CoInternetParseUrl(url, PARSE_ROOTDOCUMENT, 0, domain, 0, &len, 0);
+ if(hres == S_FALSE) {
+ hres = CoInternetParseUrl(url, PARSE_SCHEMA, 0, domain,
+ INTERNET_MAX_URL_LENGTH, &len, 0);
+ if(hres == S_OK) {
+ domain[len] = ':';
+ hres = CoInternetParseUrl(url, PARSE_DOMAIN, 0, domain+len+1,
+ INTERNET_MAX_URL_LENGTH-len-1, &len, 0);
+ if(hres == S_OK) {
+ len = lstrlenW(domain)+1;
+ *ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
+ if(!*ppwzSecUrl)
+ return E_OUTOFMEMORY;
+
+ memcpy(*ppwzSecUrl, domain, len*sizeof(WCHAR));
+ return S_OK;
+ }
+ }
+ }
+
+ len = lstrlenW(url)+1;
+ *ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
+ if(!*ppwzSecUrl)
+ return E_OUTOFMEMORY;
+
+ memcpy(*ppwzSecUrl, url, len*sizeof(WCHAR));
+ return S_OK;
+}
Added: trunk/reactos/dll/win32/urlmon/uri.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/uri.c?rev…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/uri.c (added)
+++ trunk/reactos/dll/win32/urlmon/uri.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -1,0 +1,302 @@
+/*
+ * Copyright 2010 Jacek Caban for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "urlmon_main.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(urlmon);
+
+typedef struct {
+ const IUriVtbl *lpIUriVtbl;
+ LONG ref;
+} Uri;
+
+#define URI(x) ((IUri*) &(x)->lpIUriVtbl)
+
+#define URI_THIS(iface) DEFINE_THIS(Uri, IUri, iface)
+
+static HRESULT WINAPI Uri_QueryInterface(IUri *iface, REFIID riid, void **ppv)
+{
+ Uri *This = URI_THIS(iface);
+
+ if(IsEqualGUID(&IID_IUnknown, riid)) {
+ TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
+ *ppv = URI(This);
+ }else if(IsEqualGUID(&IID_IUri, riid)) {
+ TRACE("(%p)->(IID_IUri %p)\n", This, ppv);
+ *ppv = URI(This);
+ }else {
+ TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }
+
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
+}
+
+static ULONG WINAPI Uri_AddRef(IUri *iface)
+{
+ Uri *This = URI_THIS(iface);
+ LONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
+}
+
+static ULONG WINAPI Uri_Release(IUri *iface)
+{
+ Uri *This = URI_THIS(iface);
+ LONG ref = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ if(!ref)
+ heap_free(This);
+
+ return ref;
+}
+
+static HRESULT WINAPI Uri_GetPropertyBSTR(IUri *iface, Uri_PROPERTY uriProp, BSTR
*pbstrProperty, DWORD dwFlags)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%d %p %x)\n", This, uriProp, pbstrProperty, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetPropertyLength(IUri *iface, Uri_PROPERTY uriProp, DWORD
*pcchProperty, DWORD dwFlags)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetPropertyDWORD(IUri *iface, Uri_PROPERTY uriProp, DWORD
*pcchProperty, DWORD dwFlags)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_HasProperty(IUri *iface, Uri_PROPERTY uriProp, BOOL
*pfHasProperty)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->()\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetAbsoluteUri(IUri *iface, BSTR *pstrAbsoluteUri)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrAbsoluteUri);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetAuthority(IUri *iface, BSTR *pstrAuthority)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrAuthority);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetDisplayUri(IUri *iface, BSTR *pstrDisplayUri)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrDisplayUri);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetDomain(IUri *iface, BSTR *pstrDomain)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrDomain);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetExtension(IUri *iface, BSTR *pstrExtension)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrExtension);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetFragment(IUri *iface, BSTR *pstrFragment)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrFragment);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetHost(IUri *iface, BSTR *pstrHost)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrHost);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetPassword(IUri *iface, BSTR *pstrPassword)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrPassword);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetPath(IUri *iface, BSTR *pstrPath)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrPath);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetPathAndQuery(IUri *iface, BSTR *pstrPathAndQuery)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrPathAndQuery);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetQuery(IUri *iface, BSTR *pstrQuery)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrQuery);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetRawUri(IUri *iface, BSTR *pstrRawUri)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrRawUri);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetSchemeName(IUri *iface, BSTR *pstrSchemeName)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrSchemeName);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetUserInfo(IUri *iface, BSTR *pstrUserInfo)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrUserInfo);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetUserName(IUri *iface, BSTR *pstrUserName)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pstrUserName);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetHostType(IUri *iface, DWORD *pdwHostType)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pdwHostType);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetPort(IUri *iface, DWORD *pdwPort)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pdwPort);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetScheme(IUri *iface, DWORD *pdwScheme)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pdwScheme);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetZone(IUri *iface, DWORD *pdwZone)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pdwZone);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_GetProperties(IUri *iface, DWORD *pdwProperties)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pdwProperties);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI Uri_IsEqual(IUri *iface, IUri *pUri, BOOL *pfEqual)
+{
+ Uri *This = URI_THIS(iface);
+ FIXME("(%p)->(%p %p)\n", This, pUri, pfEqual);
+ return E_NOTIMPL;
+}
+
+#undef URI_THIS
+
+static const IUriVtbl UriVtbl = {
+ Uri_QueryInterface,
+ Uri_AddRef,
+ Uri_Release,
+ Uri_GetPropertyBSTR,
+ Uri_GetPropertyLength,
+ Uri_GetPropertyDWORD,
+ Uri_HasProperty,
+ Uri_GetAbsoluteUri,
+ Uri_GetAuthority,
+ Uri_GetDisplayUri,
+ Uri_GetDomain,
+ Uri_GetExtension,
+ Uri_GetFragment,
+ Uri_GetHost,
+ Uri_GetPassword,
+ Uri_GetPath,
+ Uri_GetPathAndQuery,
+ Uri_GetQuery,
+ Uri_GetRawUri,
+ Uri_GetSchemeName,
+ Uri_GetUserInfo,
+ Uri_GetUserName,
+ Uri_GetHostType,
+ Uri_GetPort,
+ Uri_GetScheme,
+ Uri_GetZone,
+ Uri_GetProperties,
+ Uri_IsEqual
+};
+
+/***********************************************************************
+ * CreateUri (urlmon.@)
+ */
+HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri
**ppURI)
+{
+ Uri *ret;
+
+ TRACE("(%s %x %x %p)\n", debugstr_w(pwzURI), dwFlags, (DWORD)dwReserved,
ppURI);
+
+ ret = heap_alloc(sizeof(Uri));
+ if(!ret)
+ return E_OUTOFMEMORY;
+
+ ret->lpIUriVtbl = &UriVtbl;
+ ret->ref = 1;
+
+ *ppURI = URI(ret);
+ return S_OK;
+}
Propchange: trunk/reactos/dll/win32/urlmon/uri.c
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/dll/win32/urlmon/urlmon.inf
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/urlmon.in…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/urlmon.inf [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/urlmon.inf [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -43,7 +43,6 @@
[ZoneMap.Reg]
-HKCU,"Software\Microsoft\Windows\CurrentVersion\Internet Settings",,,
HKCU,"%PATH_ZONEMAP%",,,
HKLM,"%PATH_ZONEMAP%",,,
HKCU,"%PATH_ZONEMAP%","ProxyByPass", 0x10001,0x1
Modified: trunk/reactos/dll/win32/urlmon/urlmon.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/urlmon.rb…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/urlmon.rbuild [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/urlmon.rbuild [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -27,18 +27,29 @@
<file>session.c</file>
<file>umon.c</file>
<file>umstream.c</file>
+ <file>uri.c</file>
<file>urlmon_main.c</file>
+ <file>usrmarshal.c</file>
<file>rsrc.rc</file>
<library>wine</library>
<library>uuid</library>
+ <library>rpcrt4</library>
<library>ole32</library>
<library>shlwapi</library>
<library>wininet</library>
<library>user32</library>
<library>advapi32</library>
+ <library>pseh</library>
+ <library>urlmon_proxy</library>
<library>ntdll</library>
</module>
-<module name="urlmon_local_interface" type="idlinterface">
- <file>urlmon_local.idl</file>
+<module name="urlmon_proxy" type="rpcproxy"
allowwarnings="true">
+ <define name="__WINESRC__" />
+ <define name="ENTRY_PREFIX">URLMON_</define>
+ <define name="PROXY_DELEGATION"/>
+ <define name="REGISTER_PROXY_DLL"/>
+ <define name="_URLMON_"/>
+ <define
name="PROXY_CLSID_IS">{0x79EAC9F1,0xBAF9,0x11CE,{0x8C,0x82,0x00,0xAA,0x00,0x4B,0xA9,0x0B}}</define>
+ <file>urlmon_urlmon.idl</file>
</module>
</group>
Modified: trunk/reactos/dll/win32/urlmon/urlmon.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/urlmon.sp…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/urlmon.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/urlmon.spec [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -15,7 +15,7 @@
@ stdcall CoInternetCreateSecurityManager(ptr ptr long)
@ stdcall CoInternetCreateZoneManager(ptr ptr long)
@ stub CoInternetGetProtocolFlags
-@ stub CoInternetGetSecurityUrl
+@ stdcall CoInternetGetSecurityUrl(ptr ptr long long)
@ stdcall CoInternetGetSession(long ptr long)
@ stdcall CoInternetParseUrl(wstr long long wstr long ptr long)
@ stdcall CoInternetQueryInfo(ptr long long ptr long ptr long)
@@ -26,6 +26,7 @@
@ stdcall CreateAsyncBindCtx(long ptr ptr ptr)
@ stdcall CreateAsyncBindCtxEx(ptr long ptr ptr ptr long)
@ stdcall CreateFormatEnumerator(long ptr ptr)
+@ stdcall CreateUri(wstr long long ptr)
@ stdcall CreateURLMoniker(ptr wstr ptr)
@ stdcall CreateURLMonikerEx(ptr wstr ptr long)
@ stdcall -private DllCanUnloadNow()
Removed: trunk/reactos/dll/win32/urlmon/urlmon_local.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/urlmon_lo…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/urlmon_local.idl [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/urlmon_local.idl (removed)
@@ -1,2 +1,0 @@
-
-#include "urlmon.idl"
Modified: trunk/reactos/dll/win32/urlmon/urlmon_main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/urlmon_ma…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/urlmon_main.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/urlmon_main.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -348,6 +348,7 @@
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
{
unsigned int i;
+ HRESULT hr;
TRACE("(%s,%s,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
@@ -356,6 +357,10 @@
if (IsEqualGUID(object_creation[i].clsid, rclsid))
return IClassFactory_QueryInterface(object_creation[i].cf, riid, ppv);
}
+
+ hr = URLMON_DllGetClassObject(rclsid, riid, ppv);
+ if(SUCCEEDED(hr))
+ return hr;
FIXME("%s: no class found.\n", debugstr_guid(rclsid));
return CLASS_E_CLASSNOTAVAILABLE;
Modified: trunk/reactos/dll/win32/urlmon/urlmon_main.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/urlmon_ma…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/urlmon_main.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/urlmon/urlmon_main.h [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -48,6 +48,12 @@
extern HRESULT MkProtocol_Construct(IUnknown *pUnkOuter, LPVOID *ppobj);
extern HRESULT MimeFilter_Construct(IUnknown *pUnkOuter, LPVOID *ppobj);
+extern HRESULT WINAPI URLMON_DllGetClassObject(REFCLSID rclsid, REFIID iid,LPVOID *ppv)
DECLSPEC_HIDDEN;
+extern HRESULT WINAPI URLMON_DllRegisterServer(void) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI URLMON_DllUnregisterServer(void) DECLSPEC_HIDDEN;
+
+extern GUID const CLSID_PSFactoryBuffer DECLSPEC_HIDDEN;
+
/**********************************************************************
* Dll lifetime tracking declaration for urlmon.dll
*/
Added: trunk/reactos/dll/win32/urlmon/urlmon_urlmon.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/urlmon_ur…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/urlmon_urlmon.idl (added)
+++ trunk/reactos/dll/win32/urlmon/urlmon_urlmon.idl [iso-8859-1] Thu Mar 4 16:24:17
2010
@@ -1,0 +1,19 @@
+/*
+ * Copyright 2009 Piotr Caban for Codeweavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "urlmon.idl"
Propchange: trunk/reactos/dll/win32/urlmon/urlmon_urlmon.idl
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/urlmon/usrmarshal.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/urlmon/usrmarsha…
==============================================================================
--- trunk/reactos/dll/win32/urlmon/usrmarshal.c (added)
+++ trunk/reactos/dll/win32/urlmon/usrmarshal.c [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -1,0 +1,162 @@
+/*
+ * Copyright 2009 Piotr Caban for Codeweavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "urlmon_main.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(urlmon);
+
+HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy(IWinInetHttpInfo* This,
+ DWORD dwOption, LPVOID pBuffer, DWORD *pcbBuf, DWORD *pdwFlags,
+ DWORD *pdwReserved)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub(IWinInetHttpInfo* This,
+ DWORD dwOption, BYTE *pBuffer, DWORD *pcbBuf, DWORD *pdwFlags,
+ DWORD *pdwReserved)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy(IWinInetInfo* This,
+ DWORD dwOption, LPVOID pBuffer, DWORD *pcbBuf)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub(IWinInetInfo* This,
+ DWORD dwOption, BYTE *pBuffer, DWORD *pcbBuf)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy(IBindHost* This,
+ IMoniker *pMk, IBindCtx *pBC, IBindStatusCallback *pBSC,
+ REFIID riid, void **ppvObj)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub(IBindHost* This,
+ IMoniker *pMk, IBindCtx *pBC, IBindStatusCallback *pBSC,
+ REFIID riid, IUnknown **ppvObj)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy(IBindHost* This,
+ IMoniker *pMk, IBindCtx *pBC, IBindStatusCallback *pBSC,
+ REFIID riid, void **ppvObj)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub(IBindHost* This,
+ IMoniker *pMk, IBindCtx *pBC, IBindStatusCallback *pBSC,
+ REFIID riid, IUnknown **ppvObj)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindStatusCallbackEx_GetBindInfoEx_Proxy(
+ IBindStatusCallbackEx* This, DWORD *grfBINDF, BINDINFO *pbindinfo,
+ DWORD *grfBINDF2, DWORD *pdwReserved)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindStatusCallbackEx_GetBindInfoEx_Stub(
+ IBindStatusCallbackEx* This, DWORD *grfBINDF, RemBINDINFO *pbindinfo,
+ RemSTGMEDIUM *pstgmed, DWORD *grfBINDF2, DWORD *pdwReserved)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy(
+ IBindStatusCallback* This, DWORD *grfBINDF, BINDINFO *pbindinfo)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub(
+ IBindStatusCallback* This, DWORD *grfBINDF,
+ RemBINDINFO *pbindinfo, RemSTGMEDIUM *pstgmed)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy(
+ IBindStatusCallback* This, DWORD grfBSCF, DWORD dwSize,
+ FORMATETC *pformatetc, STGMEDIUM *pstgmed)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub(
+ IBindStatusCallback* This, DWORD grfBSCF, DWORD dwSize,
+ RemFORMATETC *pformatetc, RemSTGMEDIUM *pstgmed)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBinding_GetBindResult_Proxy(IBinding* This,
+ CLSID *pclsidProtocol, DWORD *pdwResult,
+ LPOLESTR *pszResult, DWORD *pdwReserved)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBinding_GetBindResult_Stub(IBinding* This,
+ CLSID *pclsidProtocol, DWORD *pdwResult,
+ LPOLESTR *pszResult, DWORD dwReserved)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE IWindowForBindingUI_GetWindow_Proxy(
+ IWindowForBindingUI* This, REFGUID rguidReason, HWND *phwnd)
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+void __RPC_STUB IWindowForBindingUI_GetWindow_Stub(IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer, PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase)
+{
+ FIXME("stub\n");
+}
Propchange: trunk/reactos/dll/win32/urlmon/usrmarshal.c
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/include/psdk/urlmon.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/urlmon.idl?re…
==============================================================================
--- trunk/reactos/include/psdk/urlmon.idl [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/urlmon.idl [iso-8859-1] Thu Mar 4 16:24:17 2010
@@ -1646,6 +1646,62 @@
[out] BOOL *pfEqual);
}
+cpp_quote("HRESULT WINAPI CreateUri(LPCWSTR,DWORD,DWORD_PTR,IUri**);")
+cpp_quote("HRESULT WINAPI
CreateUriWithFragment(LPCWSTR,LPCWSTR,DWORD,DWORD_PTR,IUri**);")
+cpp_quote("HRESULT WINAPI
CreateUriFromMultiByteString(LPCSTR,DWORD,DWORD,DWORD,DWORD_PTR,IUri**);")
+
+cpp_quote("#define Uri_HAS_ABSOLUTE_URI (1 <<
Uri_PROPERTY_ABSOLUTE_URI)")
+cpp_quote("#define Uri_HAS_AUTHORITY (1 <<
Uri_PROPERTY_AUTHORITY)")
+cpp_quote("#define Uri_HAS_DISPLAY_URI (1 <<
Uri_PROPERTY_DISPLAY_URI)")
+cpp_quote("#define Uri_HAS_DOMAIN (1 << Uri_PROPERTY_DOMAIN)")
+cpp_quote("#define Uri_HAS_EXTENSION (1 <<
Uri_PROPERTY_EXTENSION)")
+cpp_quote("#define Uri_HAS_FRAGMENT (1 <<
Uri_PROPERTY_FRAGMENT)")
+cpp_quote("#define Uri_HAS_HOST (1 << Uri_PROPERTY_HOST)")
+cpp_quote("#define Uri_HAS_PASSWORD (1 <<
Uri_PROPERTY_PASSWORD)")
+cpp_quote("#define Uri_HAS_PATH (1 << Uri_PROPERTY_PATH)")
+cpp_quote("#define Uri_HAS_QUERY (1 << Uri_PROPERTY_QUERY)")
+cpp_quote("#define Uri_HAS_RAW_URI (1 << Uri_PROPERTY_RAW_URI)")
+cpp_quote("#define Uri_HAS_SCHEME_NAME (1 <<
Uri_PROPERTY_SCHEME_NAME)")
+cpp_quote("#define Uri_HAS_USER_NAME (1 <<
Uri_PROPERTY_USER_NAME)")
+cpp_quote("#define Uri_HAS_PATH_AND_QUERY (1 <<
Uri_PROPERTY_PATH_AND_QUERY)")
+cpp_quote("#define Uri_HAS_USER_INFO (1 <<
Uri_PROPERTY_USER_INFO)")
+cpp_quote("#define Uri_HAS_HOST_TYPE (1 <<
Uri_PROPERTY_HOST_TYPE)")
+cpp_quote("#define Uri_HAS_PORT (1 << Uri_PROPERTY_PORT)")
+cpp_quote("#define Uri_HAS_SCHEME (1 << Uri_PROPERTY_SCHEME)")
+cpp_quote("#define Uri_HAS_ZONE (1 << Uri_PROPERTY_ZONE)")
+
+cpp_quote("#define Uri_CREATE_ALLOW_RELATIVE 0x0001")
+cpp_quote("#define Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME 0x0002")
+cpp_quote("#define Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME 0x0004")
+cpp_quote("#define Uri_CREATE_NOFRAG 0x0008")
+cpp_quote("#define Uri_CREATE_NO_CANONICALIZE 0x0010")
+cpp_quote("#define Uri_CREATE_CANONICALIZE 0x0100")
+cpp_quote("#define Uri_CREATE_FILE_USE_DOS_PATH 0x0020")
+cpp_quote("#define Uri_CREATE_DECODE_EXTRA_INFO 0x0040")
+cpp_quote("#define Uri_CREATE_NO_DECODE_EXTRA_INFO 0x0080")
+cpp_quote("#define Uri_CREATE_CRACK_UNKNOWN_SCHEMES 0x0200")
+cpp_quote("#define Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES 0x0400")
+cpp_quote("#define Uri_CREATE_PRE_PROCESS_HTML_URI 0x0800")
+cpp_quote("#define Uri_CREATE_NO_PRE_PROCESS_HTML_URI 0x1000")
+cpp_quote("#define Uri_CREATE_IE_SETTINGS 0x2000")
+cpp_quote("#define Uri_CREATE_NO_IE_SETTINGS 0x4000")
+cpp_quote("#define Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS 0x8000")
+
+cpp_quote("#define Uri_DISPLAY_NO_FRAGMENT 0x00000001")
+cpp_quote("#define Uri_PUNYCODE_IDN_HOST 0x00000002")
+cpp_quote("#define Uri_DISPLAY_IDN_HOST 0x00000004")
+
+cpp_quote("#define Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8
0x00000001")
+cpp_quote("#define Uri_ENCODING_USER_INFO_AND_PATH_IS_CP
0x00000002")
+cpp_quote("#define Uri_ENCODING_HOST_IS_IDN
0x00000004")
+cpp_quote("#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8
0x00000008")
+cpp_quote("#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP
0x00000010")
+cpp_quote("#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8
0x00000020")
+cpp_quote("#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP
0x00000040")
+cpp_quote("#define Uri_ENCODING_RFC
(Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8|Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8|Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8)")
+
+cpp_quote("#define UriBuilder_USE_ORIGINAL_FLAGS 0x00000001")
+
/*****************************************************************************
* IUriContainer interface
*/
@@ -1740,6 +1796,8 @@
cpp_quote("HRESULT WINAPI CoGetClassObjectFromURL(REFCLSID, LPCWSTR, DWORD, DWORD,
LPCWSTR, LPBINDCTX, DWORD, LPVOID, REFIID, LPVOID*);")
cpp_quote("HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL,
IMoniker **ppmk);")
+cpp_quote("HRESULT WINAPI
CreateURLMonikerEx(IMoniker*,LPCWSTR,IMoniker**,DWORD);")
+cpp_quote("HRESULT WINAPI
CreateURLMonikerEx2(IMoniker*,IUri*,IMoniker**,DWORD);")
cpp_quote("HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc,
IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved);")
cpp_quote("HRESULT WINAPI CompareSecurityIds(BYTE*,DWORD,BYTE*,DWORD,DWORD);")
cpp_quote("HRESULT WINAPI
URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);")
@@ -1758,6 +1816,7 @@
cpp_quote("HRESULT WINAPI
CoInternetParseUrl(LPCWSTR,PARSEACTION,DWORD,LPWSTR,DWORD,DWORD*,DWORD);")
cpp_quote("HRESULT WINAPI
CoInternetQueryInfo(LPCWSTR,QUERYOPTION,DWORD,LPVOID,DWORD,DWORD*,DWORD);")
cpp_quote("HRESULT WINAPI
CoInternetSetFeatureEnabled(INTERNETFEATURELIST,DWORD,BOOL);")
+cpp_quote("HRESULT WINAPI
CoInternetGetSecurityUrl(LPCWSTR,LPWSTR*,PSUACTION,DWORD);")
cpp_quote("HRESULT WINAPI
CreateFormatEnumerator(UINT,FORMATETC*,IEnumFORMATETC**);")
cpp_quote("HRESULT WINAPI GetSoftwareUpdateInfo( LPCWSTR szDistUnit, LPSOFTDISTINFO
psdi);")
cpp_quote("HRESULT WINAPI
FaultInIEFeature(HWND,uCLSSPEC*,QUERYCONTEXT*,DWORD);")