# IOleCache2::DiscardCache

Discards the caches in memory.

HRESULT DiscardCache(

DWORD dwDiscardOptions | //Save options
); |

Parameter

dwDiscardOptions
  [in] DWORD value from the DISCARDCACHE enumeration that indicates whether data is to be saved prior to being discarded. Containers that have drawn a large object and need to free up memory can specify DISCARDCACHE_SAVEIFDIRTY so that the newest presentation is saved for the next time the object must be drawn.

  Containers that have activated an embedded object, made some changes, and then called IOleObject::Close(OLECLOSE_NOSAVE) to roll back the changes can specify DISCARDCACHE_NOSAVE to ensure that the native and presentation data are not out of synchronization.

Return Values

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

S_OK
  The cache(s) were discarded according to the value specified in dwDiscardOptions.
OLE_E_NOSTORAGE
  There is no storage available for saving the data in the cache.
STG_E_MEDIUMFULL
  The storage medium is full.

Remarks

The IOleCache2::DiscardCache method is commonly used to handle low memory conditions by freeing memory currently being used by presentation caches.

Once discarded, the cache will satisfy subsequent IDataObject::GetData calls by reverting to disk-based data.

See Also

DISCARDCACHE, IOleCache, IOleCacheControl