Module: wine Branch: master Commit: 6bbd8c7f6e93386b3acda688d77f141285ec4e6f URL: http://source.winehq.org/git/wine.git/?a=commit;h=6bbd8c7f6e93386b3acda688d7...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Jan 23 19:34:00 2007 +0100
urlmon: Added IInternetPriority interface to BindProtocol.
---
dlls/urlmon/bindprot.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/dlls/urlmon/bindprot.c b/dlls/urlmon/bindprot.c index 9d08671..8f0bf89 100644 --- a/dlls/urlmon/bindprot.c +++ b/dlls/urlmon/bindprot.c @@ -34,12 +34,14 @@ WINE_DEFAULT_DEBUG_CHANNEL(urlmon); typedef struct { const IInternetProtocolVtbl *lpInternetProtocolVtbl; const IInternetBindInfoVtbl *lpInternetBindInfoVtbl; + const IInternetPriorityVtbl *lpInternetPriorityVtbl;
LONG ref; } BindProtocol;
#define PROTOCOL(x) ((IInternetProtocol*) &(x)->lpInternetProtocolVtbl) #define BINDINFO(x) ((IInternetBindInfo*) &(x)->lpInternetBindInfoVtbl) +#define PRIORITY(x) ((IInternetPriority*) &(x)->lpInternetPriorityVtbl)
#define PROTOCOL_THIS(iface) DEFINE_THIS(BindProtocol, InternetProtocol, iface)
@@ -60,6 +62,13 @@ static HRESULT WINAPI BindProtocol_Query }else if(IsEqualGUID(&IID_IInternetBindInfo, riid)) { TRACE("(%p)->(IID_IInternetBindInfo %p)\n", This, ppv); *ppv = BINDINFO(This); + }else if(IsEqualGUID(&IID_IInternetPriority, riid)) { + TRACE("(%p)->(IID_IInternetPriority %p)\n", This, ppv); + *ppv = PRIORITY(This); + }else if(IsEqualGUID(&IID_IAuthenticate, riid)) { + FIXME("(%p)->(IID_IAuthenticate %p)\n", This, ppv); + }else if(IsEqualGUID(&IID_IInternetProtocolSink, riid)) { + FIXME("(%p)->(IID_IInternetProtocolSink %p)\n", This, ppv); }
if(*ppv) { @@ -241,12 +250,59 @@ static const IInternetBindInfoVtbl Inter BindInfo_GetBindString };
+#define PRIORITY_THIS(iface) DEFINE_THIS(BindProtocol, InternetPriority, iface) + +static HRESULT WINAPI InternetPriority_QueryInterface(IInternetPriority *iface, + REFIID riid, void **ppv) +{ + BindProtocol *This = PRIORITY_THIS(iface); + return IInternetProtocol_QueryInterface(PROTOCOL(This), riid, ppv); +} + +static ULONG WINAPI InternetPriority_AddRef(IInternetPriority *iface) +{ + BindProtocol *This = PRIORITY_THIS(iface); + return IInternetProtocol_AddRef(PROTOCOL(This)); +} + +static ULONG WINAPI InternetPriority_Release(IInternetPriority *iface) +{ + BindProtocol *This = PRIORITY_THIS(iface); + return IInternetProtocol_Release(PROTOCOL(This)); +} + +static HRESULT WINAPI InternetPriority_SetPriority(IInternetPriority *iface, LONG nPriority) +{ + BindProtocol *This = PRIORITY_THIS(iface); + FIXME("(%p)->(%d)\n", This, nPriority); + return E_NOTIMPL; +} + +static HRESULT WINAPI InternetPriority_GetPriority(IInternetPriority *iface, LONG *pnPriority) +{ + BindProtocol *This = PRIORITY_THIS(iface); + FIXME("(%p)->(%p)\n", This, pnPriority); + return E_NOTIMPL; +} + +#undef PRIORITY_THIS + +static const IInternetPriorityVtbl InternetPriorityVtbl = { + InternetPriority_QueryInterface, + InternetPriority_AddRef, + InternetPriority_Release, + InternetPriority_SetPriority, + InternetPriority_GetPriority + +}; + HRESULT create_binding_protocol(LPCWSTR url, IInternetProtocol **protocol) { BindProtocol *ret = HeapAlloc(GetProcessHeap(), 0, sizeof(BindProtocol));
ret->lpInternetProtocolVtbl = &BindProtocolVtbl; ret->lpInternetBindInfoVtbl = &InternetBindInfoVtbl; + ret->lpInternetPriorityVtbl = &InternetPriorityVtbl; ret->ref = 1;
*protocol = PROTOCOL(ret);