urlmon: Added GetBindResult implementation.
This commit is contained in:
parent
4983a663a5
commit
f0aad940b5
|
@ -92,6 +92,7 @@ typedef struct {
|
||||||
BOOL use_cache_file;
|
BOOL use_cache_file;
|
||||||
DWORD state;
|
DWORD state;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
CLSID clsid;
|
||||||
download_state_t download_state;
|
download_state_t download_state;
|
||||||
IUnknown *obj;
|
IUnknown *obj;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
|
@ -178,8 +179,8 @@ static void stop_binding(Binding *binding, HRESULT hres, LPCWSTR str)
|
||||||
if(!(binding->state & BINDING_STOPPED)) {
|
if(!(binding->state & BINDING_STOPPED)) {
|
||||||
binding->state |= BINDING_STOPPED;
|
binding->state |= BINDING_STOPPED;
|
||||||
|
|
||||||
IBindStatusCallback_OnStopBinding(binding->callback, hres, str);
|
|
||||||
binding->hres = hres;
|
binding->hres = hres;
|
||||||
|
IBindStatusCallback_OnStopBinding(binding->callback, hres, str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -310,6 +311,7 @@ static void create_object(Binding *binding)
|
||||||
heap_free(clsid_str);
|
heap_free(clsid_str);
|
||||||
|
|
||||||
IBindStatusCallback_OnProgress(binding->callback, 0, 0, BINDSTATUS_ENDSYNCOPERATION, NULL);
|
IBindStatusCallback_OnProgress(binding->callback, 0, 0, BINDSTATUS_ENDSYNCOPERATION, NULL);
|
||||||
|
binding->clsid = CLSID_NULL;
|
||||||
|
|
||||||
stop_binding(binding, hres, NULL);
|
stop_binding(binding, hres, NULL);
|
||||||
if(FAILED(hres))
|
if(FAILED(hres))
|
||||||
|
@ -881,8 +883,23 @@ static HRESULT WINAPI Binding_GetBindResult(IBinding *iface, CLSID *pclsidProtoc
|
||||||
DWORD *pdwResult, LPOLESTR *pszResult, DWORD *pdwReserved)
|
DWORD *pdwResult, LPOLESTR *pszResult, DWORD *pdwReserved)
|
||||||
{
|
{
|
||||||
Binding *This = impl_from_IBinding(iface);
|
Binding *This = impl_from_IBinding(iface);
|
||||||
FIXME("(%p)->(%p %p %p %p)\n", This, pclsidProtocol, pdwResult, pszResult, pdwReserved);
|
|
||||||
return E_NOTIMPL;
|
TRACE("(%p)->(%p %p %p %p)\n", This, pclsidProtocol, pdwResult, pszResult, pdwReserved);
|
||||||
|
|
||||||
|
if(!pdwResult || !pszResult || pdwReserved)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
if(!(This->state & BINDING_STOPPED)) {
|
||||||
|
*pclsidProtocol = CLSID_NULL;
|
||||||
|
*pdwResult = 0;
|
||||||
|
*pszResult = NULL;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
*pclsidProtocol = This->hres==S_OK ? CLSID_NULL : This->clsid;
|
||||||
|
*pdwResult = This->hres;
|
||||||
|
*pszResult = NULL;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const IBindingVtbl BindingVtbl = {
|
static const IBindingVtbl BindingVtbl = {
|
||||||
|
@ -983,6 +1000,7 @@ static HRESULT WINAPI InternetProtocolSink_ReportProgress(IInternetProtocolSink
|
||||||
on_progress(This, 0, 0, BINDSTATUS_SENDINGREQUEST, szStatusText);
|
on_progress(This, 0, 0, BINDSTATUS_SENDINGREQUEST, szStatusText);
|
||||||
break;
|
break;
|
||||||
case BINDSTATUS_PROTOCOLCLASSID:
|
case BINDSTATUS_PROTOCOLCLASSID:
|
||||||
|
CLSIDFromString(szStatusText, &This->clsid);
|
||||||
break;
|
break;
|
||||||
case BINDSTATUS_MIMETYPEAVAILABLE:
|
case BINDSTATUS_MIMETYPEAVAILABLE:
|
||||||
case BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE:
|
case BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE:
|
||||||
|
|
Loading…
Reference in New Issue