Énumération ADVF (objidl.h)

Indicateurs qui contrôlent la mise en cache et la notification des modifications apportées aux données.

Syntaxe

typedef enum tagADVF {
  ADVF_NODATA = 1,
  ADVF_PRIMEFIRST = 2,
  ADVF_ONLYONCE = 4,
  ADVF_DATAONSTOP = 64,
  ADVFCACHE_NOHANDLER = 8,
  ADVFCACHE_FORCEBUILTIN = 16,
  ADVFCACHE_ONSAVE = 32
} ADVF;

Constantes

 
ADVF_NODATA
Valeur : 1
Pour les connexions d’avis de données (IDataObject::D Advise ou IDataAdviseHolder::Advise), cet indicateur demande à l’objet de données de ne pas envoyer de données lorsqu’il appelle IAdviseSink::OnDataChange. Le destinataire de la notification de modification peut demander ultérieurement les données en appelant IDataObject::GetData. L’objet de données peut honorer la demande en transmettant TYMED_NULL dans le paramètre STGMEDIUM, ou il peut fournir les données de toute façon. Par exemple, l’objet de données peut avoir plusieurs connexions d’avis, dont toutes les ADVF_NODATA spécifiées, auquel cas l’objet peut envoyer la même notification à toutes les connexions. Quelle que soit la demande du conteneur, son implémentation IAdviseSink doit case activée le paramètre STGMEDIUM, car elle est chargée de libérer le support s’il n’est pas TYMED_NULL.

Pour les connexions de cache (IOleCache::Cache), cet indicateur demande que le cache ne soit pas 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. Cette situation se produit généralement lorsque l’aspect iconique d’un objet est mis en cache.

ADVF_NODATA n’est pas un indicateur valide pour les connexions d’avis d’affichage (IViewObject::SetAdvise) et retourne E_INVALIDARG.
ADVF_PRIMEFIRST
Valeur : 2
Demande que l’objet n’attende pas que les données ou la vue changent avant d’effectuer un appel initial à IAdviseSink::OnDataChange (pour les connexions de données ou d’avis d’affichage) ou de mettre à jour le cache (pour les connexions de cache). Utilisé avec ADVF_ONLYONCE, ce paramètre fournit un appel IDataObject::GetData asynchrone.
ADVF_ONLYONCE
Valeur : 4
Demande que l'objet effectue une seule notification de modifications ou mise à jour de cache avant de supprimer la connexion.

ADVF_ONLYONCE supprime automatiquement la connexion d’avis après l’envoi d’une notification de données ou d’affichage. Le récepteur de conseil ne reçoit qu’un seul appel IAdviseSink . Un identificateur de connexion différent de zéro est retourné si la connexion est établie, de sorte que l’appelant peut l’utiliser pour supprimer la connexion avant la première notification de modification.

Pour les notifications de modification de données, la combinaison de ADVF_ONLYONCE et de ADVF_PRIMEFIRST fournit, en effet, un appel IDataObject::GetData asynchrone.

En cas d’utilisation avec la mise en cache, ADVF_ONLYONCE met à jour le cache une seule fois, à la réception de la première notification IAdviseSink::OnDataChange . 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 d’avis appelle la méthode Release .
ADVF_DATAONSTOP
Valeur : 64
Pour les connexions de notifications de données, vérifiez l'accessibilité des données. Cet indicateur indique que lorsque l’objet de données se ferme, il doit appeler , en fournissant des données avec l’appel. En règle générale, cette valeur est utilisée en combinaison avec ADVF_NODATA. Si thIAdviseSink::OnDataChange est value, au moment où un appel OnDataChange sans données atteint le récepteur, la source a peut-être terminé son arrêt et les données peuvent ne pas être accessibles. Les récepteurs qui spécifient cette valeur doivent accepter les données fournies dans OnDataChange si elles sont transmises, car ils n’ont peut-être pas une autre chance de les récupérer.

Pour les connexions de cache, cet indicateur indique que l’objet doit mettre à jour le cache dans le cadre de la fermeture de l’objet.

ADVF_DATAONSTOP n’est pas un indicateur valide pour les connexions d’avis d’affichage.
ADVFCACHE_NOHANDLER
Valeur : 8
Synonyme de ADVFCACHE_FORCEBUILTIN, qui est utilisé plus souvent.
ADVFCACHE_FORCEBUILTIN
Valeur : 16
Cette valeur est utilisée par les applications d'objet DLL et les gestionnaires d'objets qui dessinent leurs objets. ADVFCACHE_FORCEBUILTIN demande à OLE de mettre en cache les données de présentation pour s’assurer qu’il y a une présentation dans le cache. Cette valeur n’est pas un indicateur valide pour les connexions de données ou d’avis d’affichage. Pour les connexions de cache, cet indicateur met en cache les données qui nécessitent uniquement que le code fourni avec OLE (ou le système d’exploitation sous-jacent) soit présent afin de les produire avec IDataObject::GetData ou IViewObject::D raw. En spécifiant cette valeur, le conteneur peut s’assurer 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
Valeur : 32
Pour les connexions de cache, cet indicateur ne met à jour la représentation mise en cache que si l'objet qui contient 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 de réexécuter l’objet). Cette valeur n’est pas un indicateur valide pour les connexions de données ou d’avis d’affichage.

Notes

Pour une connexion d’avis de données ou d’affichage, le conteneur utilise les constantes ADVF lors de la configuration d’une connexion entre un instance IAdviseSink et un instance IDataObject ou IViewObject. Ces connexions sont configurées à l’aide des méthodes IDataObject::D Advise, IDataAdviseHolder::Advise ou IViewObject::SetAdvise .

Pour une connexion de mise en cache, les constantes sont spécifiées dans la méthode IOleCache::Cache pour indiquer les demandes du conteneur sur la façon dont l’objet doit mettre à jour son cache.

Ces constantes sont également utilisées dans le membre advf de la structure STATDATA . Cette structure est utilisée par IEnumSTATDATA pour décrire les connexions énumérées, et le membre advf indique les indicateurs qui ont été spécifiés lors de l’établissement de la connexion d’avis ou de cache. Lorsque STATDATA est utilisé pour un énumérateur IOleObject::EnumAdvise , le membre advf est indéterminé.

Spécifications

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête objidl.h

Voir aussi

IDataAdviseHolder

Idataobject

IEnumSTATDATA

IOleCache

IViewObject