ole32: Call the cache's OnRun and OnStop methods.
Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
e4ec89f2b0
commit
79598c4803
|
@ -459,12 +459,20 @@ static void release_delegates(DefaultHandler *This)
|
||||||
/* undoes the work done by DefaultHandler_Run */
|
/* undoes the work done by DefaultHandler_Run */
|
||||||
static void DefaultHandler_Stop(DefaultHandler *This)
|
static void DefaultHandler_Stop(DefaultHandler *This)
|
||||||
{
|
{
|
||||||
|
IOleCacheControl *cache_ctrl;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
if (!object_is_running(This))
|
if (!object_is_running(This))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
IOleObject_Unadvise(This->pOleDelegate, This->dwAdvConn);
|
hr = IUnknown_QueryInterface( This->dataCache, &IID_IOleCacheControl, (void **)&cache_ctrl );
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = IOleCacheControl_OnStop( cache_ctrl );
|
||||||
|
IOleCacheControl_Release( cache_ctrl );
|
||||||
|
}
|
||||||
|
|
||||||
/* FIXME: call IOleCache_OnStop */
|
IOleObject_Unadvise(This->pOleDelegate, This->dwAdvConn);
|
||||||
|
|
||||||
if (This->dataAdviseHolder)
|
if (This->dataAdviseHolder)
|
||||||
DataAdviseHolder_OnDisconnect(This->dataAdviseHolder);
|
DataAdviseHolder_OnDisconnect(This->dataAdviseHolder);
|
||||||
|
@ -1331,6 +1339,7 @@ static HRESULT WINAPI DefaultHandler_Run(
|
||||||
{
|
{
|
||||||
DefaultHandler *This = impl_from_IRunnableObject(iface);
|
DefaultHandler *This = impl_from_IRunnableObject(iface);
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
IOleCacheControl *cache_ctrl;
|
||||||
|
|
||||||
FIXME("(%p): semi-stub\n", pbc);
|
FIXME("(%p): semi-stub\n", pbc);
|
||||||
|
|
||||||
|
@ -1374,7 +1383,6 @@ static HRESULT WINAPI DefaultHandler_Run(
|
||||||
/* FIXME: do more stuff here:
|
/* FIXME: do more stuff here:
|
||||||
* - IOleObject_GetMiscStatus
|
* - IOleObject_GetMiscStatus
|
||||||
* - IOleObject_GetMoniker
|
* - IOleObject_GetMoniker
|
||||||
* - IOleCache_OnRun
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
hr = IOleObject_QueryInterface(This->pOleDelegate, &IID_IDataObject,
|
hr = IOleObject_QueryInterface(This->pOleDelegate, &IID_IDataObject,
|
||||||
|
@ -1389,6 +1397,12 @@ static HRESULT WINAPI DefaultHandler_Run(
|
||||||
if (FAILED(hr)) goto fail;
|
if (FAILED(hr)) goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hr = IUnknown_QueryInterface( This->dataCache, &IID_IOleCacheControl, (void **)&cache_ctrl );
|
||||||
|
if (FAILED(hr)) goto fail;
|
||||||
|
hr = IOleCacheControl_OnRun( cache_ctrl, This->pDataDelegate );
|
||||||
|
IOleCacheControl_Release( cache_ctrl );
|
||||||
|
if (FAILED(hr)) goto fail;
|
||||||
|
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
|
Loading…
Reference in New Issue