# IOleCache2::UpdateCache

Updates specified cache(s). It updates the cache according to the value of a parameter. This method is used when the application needs precise control over caching.

HRESULT UpdateCache(

IDataObject * pDataObject, | //Pointer to the data object from which the cache is updated
DWORD grfUpdt, | //Type of cache to update
LPVOID pReserved | //Reserved
); |

Parameters

pDataObject
  [in] Pointer to the IDataObject interface on the data object from which the cache is updated. Object handlers and in-process servers typically pass a non-NULL value. A container application usually passes NULL, and the source is obtained from the currently running object.
grfUpdt
  [in] Type of cache to update. The value is obtained by combining values from the following table:

  Cache Control Values | Description
  UPDFCACHE_NODATACACHE | Updates caches created by using ADVF_NODATA in the call to IOleCache::Cache.
  UPDFCACHE_ONSAVECACHE | Updates caches created by using ADVFCACHE_ONSAVE in the call to IOleCache::Cache.
  UPDFCACHE_ONSTOPCACHE | Updates caches created by using ADVFCACHE_ONSTOP in the call to IOleCache::Cache.
  UPDFCACHE_NORMALCACHE | Dynamically updates the caches (as is normally done when the object sends out OnDataChange notices).
  UPDFCACHE_IFBLANK | Updates the cache if blank, regardless of any other flag specified.
  UPDFCACHE_ONLYIFBLANK | Updates only caches that are blank.
  UPDFCACHE_ IFBLANKORONSAVECACHE | The equivalent of using an OR operation to combine UPDFCACHE_IFBLANK and UPDFCACHE_ONSAVECACHE.
  UPDFCACHE_ALL | Updates all caches.
  UPDFCACHE_ ALLBUTNODATACACHE | Updates all caches except those created with ADVF_NODATA in the call to IOleCache::Cache. Thus, you can control updates to the caches created with the ADVF_NODATA flag and only update these caches explicitly.

pReserved
  [in] Reserved for future use; must be NULL.

Return Values

This method supports the standard return values E_INVALIDARG, E_OUTOFMEMORY, and E_UNEXPECTED, as well as the following:

S_OK
  The cache(s) were updated according to the value specified in grfUpdt.
OLE_E_NOTRUNNING
  The specified pDataObject is not running.
CACHE_E_NOCACHE_UPDATED
  None of the caches were updated.
CACHE_S_SOMECACHES_NOTUPDATED
  Some of the caches were updated.

See Also

IOleCache, IOleCacheControl, IDataObject