Método IOleCache::Cache (oleidl.h)
Especifica el formato y otros datos que se van a almacenar en caché dentro de un objeto incrustado.
Sintaxis
HRESULT Cache(
[in] FORMATETC *pformatetc,
[in] DWORD advf,
[out] DWORD *pdwConnection
);
Parámetros
[in] pformatetc
Puntero a una estructura FORMATETC que especifica el formato y otros datos que se van a almacenar en caché. El almacenamiento en caché de vistas se especifica pasando un formato de Portapapeles cero en pformatetc.
[in] advf
Un grupo de marcas que controlan el almacenamiento en caché. Los valores posibles proceden de la enumeración ADVF . Cuando se usa en este contexto, para una memoria caché, estos valores tienen significados específicos, que se describen en Comentarios. Consulte la enumeración ADVF para obtener una descripción más detallada.
[out] pdwConnection
Puntero a una variable que recibe el identificador de esta conexión, que se puede usar más adelante para desactivar el almacenamiento en caché (pasandolo a IOleCache::Uncache). Si este valor es 0, no se estableció la conexión. La implementación proporcionada por OLE usa números distintos de cero para los identificadores de conexión.
Valor devuelto
Este método devuelve S_OK cuando funciona correctamente. Otros posibles valores devueltos son los siguientes.
Código devuelto | Descripción |
---|---|
|
Los argumentos pformatetc o advf proporcionados no son válidos. |
|
Se produjo un error inesperado. |
|
Memoria insuficiente disponible para la operación. |
|
La memoria caché se creó, pero la aplicación de objeto no admite el formato especificado. La creación de caché se realiza correctamente aunque no se admita el formato, lo que permite al autor de la llamada rellenar la memoria caché. Sin embargo, si el autor de la llamada no necesita mantener la memoria caché, llame a IOleCache::Uncache. |
|
Ya existe una memoria caché para el FORMATETC pasado a IOleCache::Uncache. En este caso, las nuevas marcas de aviso se asignan a la memoria caché y se devuelve el identificador de conexión asignado anteriormente. |
|
Valor no válido para pformatetc-lindex>; actualmente solo se admite -1. |
|
El valor no es válido para pformatetc-tymed>. |
|
El valor no es válido para pformatetc-dwAspect>. |
|
El valor no es válido para pformatetc-cfFormat>. |
|
El almacenamiento de la memoria caché no se inicializa. |
|
El valor no es válido para pformatetc-->-ptd. |
|
La memoria caché es para un objeto estático y ya tiene un nodo de memoria caché. |
Comentarios
IOleCache::Cache puede especificar el almacenamiento en caché de datos o el almacenamiento en caché de vistas (presentación). Para especificar el almacenamiento en caché de datos, se debe pasar un formato de datos válido en pformatetc. Para el almacenamiento en caché de vistas, el propio objeto de caché decide el formato que se va a almacenar en caché, por lo que un llamador pasaría un formato de datos cero en pformatetc de la siguiente manera:
pFormatetc->cfFormat == 0
Un controlador de objetos personalizado puede elegir no almacenar datos en un formato determinado. En su lugar, puede sintetizarlo a petición cuando se solicite.
El valor advf especifica un miembro de la enumeración ADVF . Cuando se usa uno de estos valores (o una combinación OR de más de un valor) en este contexto, estos valores significan lo siguiente.
Valor de ADVF | Descripción |
---|---|
ADVF_NODATA | La memoria caché no se actualizará mediante los cambios realizados en el objeto en ejecución. En su lugar, el contenedor actualizará la memoria caché llamando explícitamente a IOleCache::SetData, IDataObject::SetData o IOleCache2::UpdateCache. Esta marca se usa normalmente cuando se almacena en caché el aspecto emblemático de un objeto. |
ADVF_ONLYONCE | Actualice la memoria caché solo una vez. Una vez completada la actualización, la conexión de asesoramiento entre el objeto y la memoria caché se desconecta. El objeto de origen de la conexión de asesoramiento llama al método Release . |
ADVF_PRIMEFIRST | El objeto no debe esperar a que los datos o la vista cambien antes de actualizar la memoria caché. OR'd con ADVF_ONLYONCE, este parámetro proporciona una llamada asincrónica IDataObject::GetData . |
ADVFCACHE_NOHANDLER | Sinónimo de ADVFCACHE_FORCEBUILTIN. |
ADVFCACHE_FORCEBUILTIN | Se usa en aplicaciones de objetos DLL y controladores de objetos que dibujan sus objetos para almacenar en caché los datos de presentación para asegurarse de que hay una presentación en la memoria caché. Esto garantiza que los datos se pueden recuperar incluso cuando el objeto o el código del controlador no están disponibles. |
ADVFCACHE_ONSAVE | Novedades la representación almacenada en caché solo cuando se guarda el objeto que contiene la memoria caché. La memoria caché también se actualiza cuando el objeto OLE cambia del estado en ejecución al estado cargado (porque una operación de guardado posterior requeriría volver a ejecutar el objeto). |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | oleidl.h |