Partager via


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

Spécifie le format et les autres données à mettre en cache à l’intérieur d’un objet incorporé.

Syntaxe

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

Paramètres

[in] pformatetc

Pointeur vers une structure FORMATETC qui spécifie le format et d’autres données à mettre en cache. La mise en cache d’affichage est spécifiée en passant un format de Presse-papiers zéro dans pformatetc.

[in] advf

Groupe d’indicateurs qui contrôlent la mise en cache. Les valeurs possibles proviennent de l’énumération ADVF . Lorsqu’elles sont utilisées dans ce contexte, pour un cache, ces valeurs ont des significations spécifiques, qui sont décrites dans remarques. Reportez-vous à l’énumération ADVF pour obtenir une description plus détaillée.

[out] pdwConnection

Pointeur vers une variable qui reçoit l’identificateur de cette connexion, qui peut être utilisé ultérieurement pour désactiver la mise en cache (en la passant à IOleCache ::Uncache). Si cette valeur est 0, la connexion n’a pas été établie. L’implémentation fournie par OLE utilise des numéros différents de zéro pour les identificateurs de connexion.

Valeur retournée

Cette méthode retourne S_OK en cas de réussite. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
E_INVALIDARG
Les arguments pformatetc ou advf fournis ne sont pas valides.
E_UNEXPECTED
Une erreur inattendue s’est produite.
E_OUTOFMEMORY
Mémoire insuffisante disponible pour l’opération.
CACHE_S_FORMATETC_NOTSUPPORTED
Le cache a été créé, mais l’application objet ne prend pas en charge le format spécifié. La création du cache réussit même si le format n’est pas pris en charge, ce qui permet à l’appelant de remplir le cache. Si, toutefois, l’appelant n’a pas besoin de conserver le cache, appelez IOleCache ::Uncache.
CACHE_S_SAMECACHE
Un cache existe déjà pour le FORMATETC passé à IOleCache ::Uncache. Dans ce cas, les nouveaux indicateurs d’avis sont affectés au cache et l’identificateur de connexion précédemment attribué est retourné.
DV_E_LINDEX
Valeur non valide pour pformatetc-lindex> ; actuellement, seul -1 est pris en charge.
DV_E_TYMED
La valeur n’est pas valide pour pformatetc-tymed>.
DV_E_DVASPECT
La valeur n’est pas valide pour pformatetc-dwAspect>.
DV_E_CLIPFORMAT
La valeur n’est pas valide pour pformatetc-cfFormat>.
CO_E_NOTINITIALIZED
Le stockage du cache n’est pas initialisé.
DV_E_DVTARGETDEVICE
La valeur n’est pas valide pour pformatetc-->ptd.
OLE_E_STATIC
Le cache est pour un objet statique et possède déjà un nœud de cache.

Remarques

IOleCache ::Cache peut spécifier la mise en cache des données ou la mise en cache de la vue (présentation). Pour spécifier la mise en cache des données, un format de données valide doit être passé dans pformatetc. Pour la mise en cache d’affichage, l’objet de cache lui-même décide du format à mettre en cache, de sorte qu’un appelant passe un format de données zéro dans pformatetc comme suit :

pFormatetc->cfFormat == 0

Un gestionnaire d’objets personnalisés peut choisir de ne pas stocker de données dans un format donné. Au lieu de cela, il peut le synthétiser à la demande quand il est demandé.

La valeur advf spécifie un membre de l’énumération ADVF . Lorsque l’une de ces valeurs (ou une combinaison de plusieurs valeurs) est utilisée dans ce contexte, ces valeurs signifient ce qui suit.

Valeur ADVF Description
ADVF_NODATA Le cache ne doit pas être mis à jour par les modifications apportées à l’objet en cours d’exécution. Au lieu de cela, le conteneur met à jour le cache en appelant explicitement IOleCache ::SetData, IDataObject ::SetData ou IOleCache2 ::UpdateCache. Cet indicateur est généralement utilisé lorsque l’aspect iconique d’un objet est mis en cache.
ADVF_ONLYONCE Mettez à jour le cache une seule fois. Une fois la mise à jour terminée, la connexion de conseil entre l’objet et le cache est déconnectée. L’objet source de la connexion de conseil appelle la méthode Release .
ADVF_PRIMEFIRST L’objet ne doit pas attendre que les données ou la vue changent avant de mettre à jour le cache. OU avec ADVF_ONLYONCE, ce paramètre fournit un appel IDataObject ::GetData asynchrone.
ADVFCACHE_NOHANDLER Synonyme de ADVFCACHE_FORCEBUILTIN.
ADVFCACHE_FORCEBUILTIN Utilisé par les applications d’objets DLL et les gestionnaires d’objets qui dessinent leurs objets pour mettre en cache les données de présentation afin de s’assurer qu’il y a une présentation dans le cache. Cela garantit que les données peuvent être récupérées même lorsque le code de l’objet ou du gestionnaire n’est pas disponible.
ADVFCACHE_ONSAVE Mises à jour la représentation mise en cache uniquement lorsque l’objet contenant le cache est enregistré. Le cache est également mis à jour lorsque l’objet OLE passe de l’état d’exécution à l’état chargé (car une opération d’enregistrement ultérieure nécessite l’exécution de l’objet à nouveau).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête oleidl.h

Voir aussi

IOleCache

IOleCache ::Uncache