Jacek Caban : urlmon: Added CoInternetQueryInfo implementation.
Alexandre Julliard
julliard at winehq.org
Fri Dec 28 07:38:42 CST 2007
Module: wine
Branch: master
Commit: 7d223172c5c69680244a85e5802b55c468ee871b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7d223172c5c69680244a85e5802b55c468ee871b
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Dec 28 01:59:25 2007 +0100
urlmon: Added CoInternetQueryInfo implementation.
---
dlls/urlmon/internet.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
dlls/urlmon/umon.c | 22 ++--------------------
2 files changed, 46 insertions(+), 20 deletions(-)
diff --git a/dlls/urlmon/internet.c b/dlls/urlmon/internet.c
index 66939df..b8168ab 100644
--- a/dlls/urlmon/internet.c
+++ b/dlls/urlmon/internet.c
@@ -254,3 +254,47 @@ HRESULT WINAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCo
return UrlCompareW(pwzUrl1, pwzUrl2, dwCompareFlags) ? S_FALSE : S_OK;
}
+
+/***********************************************************************
+ * CoInternetQueryInfo (URLMON.@)
+ *
+ * Retrieves information relevant to a specified URL
+ *
+ */
+HRESULT WINAPI CoInternetQueryInfo(LPCWSTR pwzUrl, QUERYOPTION QueryOption,
+ DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD *pcbBuffer,
+ DWORD dwReserved)
+{
+ IInternetProtocolInfo *protocol_info;
+ HRESULT hres;
+
+ TRACE("(%s, %x, %x, %p, %x, %p, %x): stub\n", debugstr_w(pwzUrl),
+ QueryOption, dwQueryFlags, pvBuffer, cbBuffer, pcbBuffer, dwReserved);
+
+ protocol_info = get_protocol_info(pwzUrl);
+
+ if(protocol_info) {
+ hres = IInternetProtocolInfo_QueryInfo(protocol_info, pwzUrl, QueryOption, dwQueryFlags,
+ pvBuffer, cbBuffer, pcbBuffer, dwReserved);
+ IInternetProtocolInfo_Release(protocol_info);
+
+ return SUCCEEDED(hres) ? hres : E_FAIL;
+ }
+
+ switch(QueryOption) {
+ case QUERY_USES_NETWORK:
+ if(!pvBuffer || cbBuffer < sizeof(DWORD))
+ return E_FAIL;
+
+ *(DWORD*)pvBuffer = 0;
+ if(pcbBuffer)
+ *pcbBuffer = sizeof(DWORD);
+ break;
+
+ default:
+ FIXME("Not supported option %d\n", QueryOption);
+ return E_NOTIMPL;
+ }
+
+ return S_OK;
+}
diff --git a/dlls/urlmon/umon.c b/dlls/urlmon/umon.c
index 3954641..7b4a772 100644
--- a/dlls/urlmon/umon.c
+++ b/dlls/urlmon/umon.c
@@ -1126,26 +1126,6 @@ HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **
}
/***********************************************************************
- * CoInternetQueryInfo (URLMON.@)
- *
- * Retrieves information relevant to a specified URL
- *
- * RETURNS
- * S_OK success
- * S_FALSE buffer too small
- * INET_E_QUERYOPTIONUNKNOWN invalid option
- *
- */
-HRESULT WINAPI CoInternetQueryInfo(LPCWSTR pwzUrl, QUERYOPTION QueryOption,
- DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD * pcbBuffer,
- DWORD dwReserved)
-{
- FIXME("(%s, %x, %x, %p, %x, %p, %x): stub\n", debugstr_w(pwzUrl),
- QueryOption, dwQueryFlags, pvBuffer, cbBuffer, pcbBuffer, dwReserved);
- return S_OK;
-}
-
-/***********************************************************************
* IsAsyncMoniker (URLMON.@)
*/
HRESULT WINAPI IsAsyncMoniker(IMoniker *pmk)
@@ -1184,6 +1164,8 @@ HRESULT WINAPI BindAsyncMoniker(IMoniker *pmk, DWORD grfOpt, IBindStatusCallback
LPBC pbc = NULL;
HRESULT hr = E_INVALIDARG;
+ TRACE("(%p %08x %p %s %p)\n", pmk, grfOpt, pbsc, debugstr_guid(iidResult), ppvResult);
+
if (pmk && ppvResult)
{
*ppvResult = NULL;
More information about the wine-cvs
mailing list