Passer au contenu principal
Certains objets d’ABBYY FineReader Engine sont des « objets connectables ». Cela signifie qu’ils implémentent l’interface IConnectionPointContainer. Les objets connectables permettent la communication entre ABBYY FineReader Engine et ses clients.
Sous Linux, l’objet Engine chargé en tant que serveur hors processus ne prend pas en charge l’utilisation des callbacks.
Pour les utilisateurs Windows, chacun des objets connectables de FRE fournit des points de connexion de deux types : l’un utilisant une interface dispatch et l’autre utilisant l’interface dérivée d’IUnknown. L’interface dispatch est conçue pour une utilisation automatique dans Visual Basic et les environnements similaires, tandis que l’interface basée sur vtbl convient à une utilisation en C++.
Le tableau ci-dessous répertorie les objets connectables d’ABBYY FineReader Engine et les interfaces de callback correspondantes (dispinterfaces) :
Les dispinterfaces sont spécifiques à Windows.
ObjetInterface de callback (Dispinterface)
FRDocumentIFRDocumentEvents (DIFRDocumentEvents)
FRPagesIFRPagesEvents (DIFRPagesEvents)
FRPageIFRPageEvents (DIFRPageEvents)
ImageDocumentIImageDocumentEvents (DIImageDocumentEvents)
Composants visuels Windows Toute application cliente ABBYY FineReader Engine souhaitant recevoir des notifications relatives à certains événements dans ABBYY FineReader Engine doit implémenter des interfaces d’un type spécifique et « enregistrer » les objets implémentant ces interfaces auprès des objets connectables correspondants.
Il existe deux méthodes globales permettant de se connecter et de se déconnecter de la source de notifications :
Ces méthodes doivent recevoir l’un des Connectable Objects comme argument object et l’interface de callback correspondante comme argument callback.Vous devez implémenter l’interface requise et « abonner » l’objet qui l’implémente aux Connectable Objects correspondants. Nous utiliserons l’objet FRDocument comme exemple.
  1. Implémentez l’interface IFRDocumentEvents. Étant donné qu’elle est dérivée de l’interface IUnknown, l’objet client doit également implémenter les méthodes IUnknown :
  2. La classe CFRDocumentCallback peut ensuite être utilisée pour recevoir des notifications de l’objet FRDocument. Abonnez cet objet à la source de notifications (la gestion des erreurs est omise) :
Les utilisateurs Linux peuvent également consulter l’exemple EventsHandling.
La suite de cette rubrique s’applique aux utilisateurs de FRE pour Windows.
Pour Windows :
Déclarez simplement l’objet connectable WithEvents et implémentez les méthodes de l’interface de callback correspondante. Vous devrez également spécifier explicitement le gestionnaire d’événements associé à l’événement.Pour l’objet FRDocument, la procédure est la suivante :
  1. Déclarez l’objet FRDocument WithEvents :
  1. Implémentez les méthodes nécessaires de la dispinterface DIFRDocumentEvents dans la Sub, de manière similaire à ce qui suit.
Si vous souhaitez démarrer et arrêter la gestion des événements à tout moment pendant l’exécution du programme (à l’aide des instructions AddHandler et RemoveHandler) :ou indiquez simplement que cette procédure gère un événement particulier (utilisez le mot-clé Handles lors de la définition) :
  1. Connectez le gestionnaire d’événements implémenté à la source d’événements, utilisez l’objet FRDocument pour le traitement, puis déconnectez le gestionnaire :
En C++, vous devez implémenter l’interface nécessaire, obtenir un point de connexion et « enregistrer » l’objet implémentant l’interface auprès des Connectable Objects correspondants. Nous utiliserons le FRDocument object comme exemple.
  1. Implémentez l’interface IFRDocumentEvents. Comme elle est dérivée de l’interface IUnknown, l’objet client doit également implémenter les méthodes IUnknown :
  1. La classe CFRDocumentEventsListener peut ensuite être utilisée pour recevoir des notifications du FRDocument object. Enregistrez cet objet auprès de la source de notifications (la gestion des erreurs est omise) :
La procédure en C# est similaire à celle de Visual Basic .NET. Vous devez implémenter les méthodes nécessaires de l’interface de rappel et connecter les gestionnaires d’événements implémentés à la source d’événements. Nous utiliserons le FRDocument object comme exemple.
  1. Implémentez les méthodes nécessaires de l’interface IFRDocumentEvents :
  1. Connectez le gestionnaire d’événements à la source d’événements, utilisez le FRDocument object pour le traitement, puis déconnectez le gestionnaire :
Les utilisateurs Windows doivent consulter la documentation COM pour une description plus détaillée des Connectable Objects. Vous pouvez également consulter l’exemple EventsHandling fourni dans FRE pour Linux en C++ et Windows en C#, C++ avec Native COM Support, C++ brut et Visual Basic .NET.