CreateDataCache function (objbase.h)

Retrieves a pointer to a new instance of an OLE-provided implementation of a data cache.

Syntax

HRESULT CreateDataCache(
  [in]  LPUNKNOWN pUnkOuter,
  [in]  REFCLSID  rclsid,
  [in]  REFIID    iid,
  [out] LPVOID    *ppv
);

Parameters

[in] pUnkOuter

If the cache is to be created as part of an aggregate, pointer to the controlling IUnknown of the aggregate. If not, the parameter should be NULL.

[in] rclsid

CLSID used to generate icon labels. This value is typically CLSID_NULL.

[in] iid

Reference to the identifier of the interface the caller wants to use to communicate with the cache. This value is typically IID_IOleCache (defined in the OLE headers to equal the interface identifier for IOleCache).

[out] ppv

Address of pointer variable that receives the interface pointer requested in riid. Upon successful return, *ppvObj contains the requested interface pointer to the supplied cache object.

Return value

This function returns S_OK on success. Other possible values include the following.

Return code Description
E_NOINTERFACE
The interface represented by riid is not supported by the object. The parameter ppvObj is set to NULL.
E_OUTOFMEMORY
Insufficient memory for the operation.
E_INVALIDARG
One or more parameters are invalid.

Remarks

The cache object created by CreateDataCache supports the IOleCache, IOleCache2, and IOleCacheControl interfaces for controlling the cache. It also supports the IPersistStorage, IDataObject (without advise sinks), IViewObject, and IViewObject2 interfaces.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header objbase.h
Library Ole32.lib
DLL Ole32.dll
API set ext-ms-win-com-ole32-l1-1-5 (introduced in Windows 10, version 10.0.15063)

See also

IOleCache

IOleCache2

IOleCacheControl