Piotr Caban : urlmon: Added IWinInetHttpInfo_{QueryOption, QueryInfo} implementation.
Alexandre Julliard
julliard at winehq.org
Tue Mar 29 11:43:05 CDT 2011
Module: wine
Branch: master
Commit: 1041f61e68f34fc632ceeb2a2966b4e667a38db8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1041f61e68f34fc632ceeb2a2966b4e667a38db8
Author: Piotr Caban <piotr at codeweavers.com>
Date: Mon Mar 28 23:38:16 2011 +0200
urlmon: Added IWinInetHttpInfo_{QueryOption,QueryInfo} implementation.
---
dlls/urlmon/ftp.c | 20 ++++++++++++++++----
dlls/urlmon/http.c | 23 +++++++++++++++++++----
2 files changed, 35 insertions(+), 8 deletions(-)
diff --git a/dlls/urlmon/ftp.c b/dlls/urlmon/ftp.c
index c9d43b8..04cf49c 100644
--- a/dlls/urlmon/ftp.c
+++ b/dlls/urlmon/ftp.c
@@ -384,16 +384,28 @@ static HRESULT WINAPI HttpInfo_QueryOption(IWinInetHttpInfo *iface, DWORD dwOpti
void *pBuffer, DWORD *pcbBuffer)
{
FtpProtocol *This = impl_from_IWinInetHttpInfo(iface);
- FIXME("(%p)->(%x %p %p)\n", This, dwOption, pBuffer, pcbBuffer);
- return E_NOTIMPL;
+ TRACE("(%p)->(%x %p %p)\n", This, dwOption, pBuffer, pcbBuffer);
+
+ if(!This->base.request)
+ return E_FAIL;
+
+ if(!InternetQueryOptionW(This->base.request, dwOption, pBuffer, pcbBuffer))
+ return S_FALSE;
+ return S_OK;
}
static HRESULT WINAPI HttpInfo_QueryInfo(IWinInetHttpInfo *iface, DWORD dwOption,
void *pBuffer, DWORD *pcbBuffer, DWORD *pdwFlags, DWORD *pdwReserved)
{
FtpProtocol *This = impl_from_IWinInetHttpInfo(iface);
- FIXME("(%p)->(%x %p %p %p %p)\n", This, dwOption, pBuffer, pcbBuffer, pdwFlags, pdwReserved);
- return E_NOTIMPL;
+ TRACE("(%p)->(%x %p %p %p %p)\n", This, dwOption, pBuffer, pcbBuffer, pdwFlags, pdwReserved);
+
+ if(!This->base.request)
+ return E_FAIL;
+
+ if(!HttpQueryInfoW(This->base.request, dwOption, pBuffer, pcbBuffer, pdwFlags))
+ return S_FALSE;
+ return S_OK;
}
static const IWinInetHttpInfoVtbl WinInetHttpInfoVtbl = {
diff --git a/dlls/urlmon/http.c b/dlls/urlmon/http.c
index 23f6e69..846c790 100644
--- a/dlls/urlmon/http.c
+++ b/dlls/urlmon/http.c
@@ -836,16 +836,31 @@ static HRESULT WINAPI HttpInfo_QueryOption(IWinInetHttpInfo *iface, DWORD dwOpti
void *pBuffer, DWORD *pcbBuffer)
{
HttpProtocol *This = impl_from_IWinInetHttpInfo(iface);
- FIXME("(%p)->(%x %p %p)\n", This, dwOption, pBuffer, pcbBuffer);
- return E_NOTIMPL;
+ TRACE("(%p)->(%x %p %p)\n", This, dwOption, pBuffer, pcbBuffer);
+
+ if(!This->base.request)
+ return E_FAIL;
+
+ if(!InternetQueryOptionW(This->base.request, dwOption, pBuffer, pcbBuffer))
+ return S_FALSE;
+ return S_OK;
}
static HRESULT WINAPI HttpInfo_QueryInfo(IWinInetHttpInfo *iface, DWORD dwOption,
void *pBuffer, DWORD *pcbBuffer, DWORD *pdwFlags, DWORD *pdwReserved)
{
HttpProtocol *This = impl_from_IWinInetHttpInfo(iface);
- FIXME("(%p)->(%x %p %p %p %p)\n", This, dwOption, pBuffer, pcbBuffer, pdwFlags, pdwReserved);
- return E_NOTIMPL;
+ TRACE("(%p)->(%x %p %p %p %p)\n", This, dwOption, pBuffer, pcbBuffer, pdwFlags, pdwReserved);
+
+ if(!This->base.request)
+ return E_FAIL;
+
+ if(!HttpQueryInfoW(This->base.request, dwOption, pBuffer, pcbBuffer, pdwFlags)) {
+ if(pBuffer)
+ memset(pBuffer, 0, *pcbBuffer);
+ return S_OK;
+ }
+ return S_OK;
}
static const IWinInetHttpInfoVtbl WinInetHttpInfoVtbl = {
More information about the wine-cvs
mailing list