Compartilhar via


Método IOleCache::Cache (oleidl.h)

Especifica o formato e outros dados a serem armazenados em cache dentro de um objeto inserido.

Sintaxe

HRESULT Cache(
  [in]  FORMATETC *pformatetc,
  [in]  DWORD     advf,
  [out] DWORD     *pdwConnection
);

Parâmetros

[in] pformatetc

Um ponteiro para uma estrutura FORMATETC que especifica o formato e outros dados a serem armazenados em cache. O cache de exibição é especificado passando um formato de área de transferência zero em pformatetc.

[in] advf

Um grupo de sinalizadores que controlam o cache. Os valores possíveis vêm da enumeração ADVF . Quando usados nesse contexto, para um cache, esses valores têm significados específicos, que são descritos em Comentários. Consulte a enumeração ADVF para obter uma descrição mais detalhada.

[out] pdwConnection

Um ponteiro para uma variável que recebe o identificador dessa conexão, que posteriormente pode ser usado para desativar o cache (passando-o para IOleCache::Uncache). Se esse valor for 0, a conexão não foi estabelecida. A implementação fornecida por OLE usa números diferentes de zero para identificadores de conexão.

Retornar valor

Esse método retorna S_OK em caso de êxito. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
E_INVALIDARG
Os argumentos pformatetc ou advf fornecidos não são válidos.
E_UNEXPECTED
Ocorreu um erro inesperado.
E_OUTOFMEMORY
Memória insuficiente disponível para a operação.
CACHE_S_FORMATETC_NOTSUPPORTED
O cache foi criado, mas o aplicativo de objeto não dá suporte ao formato especificado. A criação do cache é bem-sucedida mesmo que não haja suporte para o formato, permitindo que o chamador preencha o cache. Se, no entanto, o chamador não precisar manter o cache, chame IOleCache::Uncache.
CACHE_S_SAMECACHE
Já existe um cache para FORMATETC passado para IOleCache::Uncache. Nesse caso, os novos sinalizadores de aviso são atribuídos ao cache e o identificador de conexão atribuído anteriormente é retornado.
DV_E_LINDEX
Valor inválido para pformatetc-lindex>; atualmente, há suporte para apenas -1.
DV_E_TYMED
O valor não é válido para pformatetc-tymed>.
DV_E_DVASPECT
O valor não é válido para pformatetc-dwAspect>.
DV_E_CLIPFORMAT
O valor não é válido para pformatetc-cfFormat>.
CO_E_NOTINITIALIZED
O armazenamento do cache não é inicializado.
DV_E_DVTARGETDEVICE
O valor não é válido para pformatetc-ptd>.
OLE_E_STATIC
O cache é para um objeto estático e já tem um nó de cache.

Comentários

IOleCache::Cache pode especificar o cache de dados ou o cache de exibição (apresentação). Para especificar o cache de dados, um formato de dados válido deve ser passado em pformatetc. Para o cache de exibição, o próprio objeto de cache decide sobre o formato a ser armazenado em cache, portanto, um chamador passaria um formato de dados zero em pformatetc da seguinte maneira:

pFormatetc->cfFormat == 0

Um manipulador de objetos personalizado pode optar por não armazenar dados em um determinado formato. Em vez disso, ele pode sintetizá-lo sob demanda quando solicitado.

O valor advf especifica um membro da enumeração ADVF . Quando um desses valores (ou uma combinação OR'd de mais de um valor) é usado nesse contexto, esses valores significam o seguinte.

Valor de ADVF Descrição
ADVF_NODATA O cache não deve ser atualizado por alterações feitas no objeto em execução. Em vez disso, o contêiner atualizará o cache chamando explicitamente IOleCache::SetData, IDataObject::SetData ou IOleCache2::UpdateCache. Esse sinalizador geralmente é usado quando o aspecto icônico de um objeto está sendo armazenado em cache.
ADVF_ONLYONCE Atualize o cache apenas uma vez. Depois que a atualização for concluída, a conexão de consultoria entre o objeto e o cache será desconectada. O objeto de origem da conexão de consultoria chama o método Release .
ADVF_PRIMEFIRST O objeto não deve aguardar a alteração dos dados ou da exibição antes de atualizar o cache. OR'd com ADVF_ONLYONCE, esse parâmetro fornece uma chamada IDataObject::GetData assíncrona.
ADVFCACHE_NOHANDLER Sinônimo de ADVFCACHE_FORCEBUILTIN.
ADVFCACHE_FORCEBUILTIN Usado por aplicativos de objeto DLL e manipuladores de objetos que desenham seus objetos para armazenar dados de apresentação em cache para garantir que haja uma apresentação no cache. Isso garante que os dados possam ser recuperados mesmo quando o código do objeto ou manipulador não estiver disponível.
ADVFCACHE_ONSAVE Atualizações a representação armazenada em cache somente quando o objeto que contém o cache for salvo. O cache também é atualizado quando o objeto OLE é alterado do estado em execução de volta para o estado carregado (porque uma operação de salvamento subsequente exigiria a execução do objeto novamente).

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho oleidl.h

Confira também

IOleCache

IOleCache::Uncache