Méthode IPrinterQueue ::SendBidiQuery (printerextension.h)

Effectue une opération d’actualisation asynchrone avec la requête spécifiée et appelle la méthode IPrinterQueueEvent ::OnBidiResponseReceived .

Syntaxe

HRESULT SendBidiQuery(
  [in] BSTR bstrBidiQuery
);

Paramètres

[in] bstrBidiQuery

Requête spécifiée.

Valeur retournée

Cette méthode retourne une valeur HRESULT .

Remarques

Lorsque la méthode SendBidiQuery est appelée, elle déclenche immédiatement l’événement IPrinterQueueEvent ::OnBidiResponseReceived , s’il existe une réponse mise en cache disponible. Le système d’impression démarre ensuite une opération asynchrone pour utiliser les interfaces de communication Bidi. À ce stade , SendBidiQuery retourne, débloquant ainsi l’appelant. Une fois l’opération asynchrone terminée, le système d’impression déclenche à nouveau l’événement IPrinterQueueEvent ::OnBidiResponseReceived . SendBidiQuery est dissocié de sa réponse associée. Le découplage est effectué car, dans le cas où il n’y a pas de données mises en cache, la latence résultante peut être due à de nombreux facteurs et une réponse immédiate ne peut pas être attendue. En outre, l’appelant peut recevoir plusieurs réponses selon qu’il existe ou non des données mises en cache et qu’il existe une réponse de l’appareil.

L’utilisation des interfaces de communication Bidi entraîne l’actualisation des valeurs demandées par le moniteur de port. Dans le cas d’USB, si un composant JavaScript est disponible, le code JavaScript est appelé pour actualiser les valeurs demandées.

Le cache est également mis à jour dans les situations suivantes :

  • À intervalles prédéterminés

    • Pour les appareils WSD, les données sont mises à jour lorsque l’appareil signale des modifications via des événements.

    • Pour les périphériques TCP & USB, l’intervalle d’actualisation est basé sur l’emplacement où la valeur Bidi est définie.

    • Toutes les valeurs Bidi standard (telles que définies par les fichiers Bidi incorporés du moniteur de port) sont actualisées à un intervalle prédéfini par les moniteurs de port. Si la requête Bidi spécifique fait partie de l’extension Bidi IHV, l’intervalle d’actualisation est spécifié dans le fichier d’extension XML pour chaque valeur individuelle.

  • Quand la configuration de l’imprimante change

    • Par exemple, lorsqu’un appareil basé sur WSD déclenche un événement pour informer le spouleur (WSDMon) que quelque chose sur l’appareil a changé. En d’autres termes, la configuration de l’imprimante a changé.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
Serveur minimal pris en charge Windows Server 2012
Plateforme cible Desktop (Expérience utilisateur)
En-tête printerextension.h

Voir aussi

Bidi Communication Interfaces

IPrinterQueue

IPrinterQueueEvent ::OnBidiResponseReceived