Écriture du code du serveur de formulaires
S’applique à : Outlook 2013 | Outlook 2016
Vous pouvez considérer un serveur de formulaires comme suit :
Programme Win32 qui affiche une interface et gère les messages Windows par le biais des mécanismes de pompe de messages Windows standard.
Objet qui inscrit sa fabrique de classes avec OLE et qui est activé par les méthodes d’automatisation OLE.
Objet MAPI qui suit les règles MAPI pour les interactions avec d’autres composants MAPI.
Votre code doit gérer ces trois grandes exigences simultanément.
Pour plus d’informations sur l’inscription de la fabrique de classes de votre serveur de formulaires, consultez la section SERVICES d’objets COM et ActiveX dans la SDK Windows. La gestion des messages Windows et l’affichage d’une interface sont des techniques de programmation Windows standard qui n’ont pas d’exigences particulières en ce qui concerne les formulaires MAPI. Là encore, le SDK Windows contient des détails sur la programmation Windows. Ce document contient ce que vous devez savoir pour implémenter les interfaces de formulaire MAPI requises et facultatives afin qu’elles suivent les règles MAPI pour les interactions avec d’autres composants MAPI, principalement le gestionnaire de formulaires MAPI et les applications clientes de messagerie MAPI.
Toutes les interfaces que vous pouvez utiliser lorsque vous implémentez des serveurs de formulaires sont dérivées( directement ou indirectement) de la classe de base OLE IUnknown. Cela signifie que toutes vos implémentations de ces interfaces devront avoir des méthodes QueryInterface, AddRef et Release . Vous pouvez économiser beaucoup de travail si vous utilisez plusieurs héritages pour implémenter toutes les interfaces requises dans une nouvelle classe de votre choix, afin que toutes les interfaces que vous utilisez puissent partager une seule implémentation des méthodes IUnknown requises. Pour plus d’informations, consultez les méthodes IUnknown ::AddRef, IUnknown ::QueryInterface et IUnknown ::Release . Il n’existe aucune considération particulière concernant les serveurs de formulaires MAPI pour ces méthodes.
Bien que toutes les interfaces de formulaire MAPI ne soient pas obligatoires pour tous les serveurs de formulaires, les méthodes d’une interface donnée sont obligatoires. Autrement dit, si vous choisissez d’implémenter une interface particulière, vous devez implémenter toutes les méthodes dans l’interface. Cela diffère de la situation avec d’autres composants MAPI, tels que les transports de messages. Heureusement, les méthodes des interfaces de formulaire MAPI étant relativement simples, l’implémentation de toutes ces méthodes n’a pas une grande charge pour les développeurs.
Les interfaces de formulaire MAPI sont indépendantes du type d’outil de développement utilisé pour créer un serveur de formulaires. Cela permet de créer des formulaires à l’aide de différents outils de développement. La seule exigence est que tous les serveurs de formulaires doivent prendre en charge les interfaces de formulaire MAPI requises.
Toutes les interfaces MAPI liées aux formulaires ne sont pas requises par tous les serveurs de formulaires. Les interfaces facultatives vous permettent d’implémenter certaines fonctions de formulaire avancées qui ne sont pas nécessaires à la plupart des serveurs de formulaires. Le tableau suivant répertorie les interfaces, à quoi elles servent et si vous devez les implémenter.
Interface | Description | État |
---|---|---|
IMAPIForm : IUnknown |
Interface principale que les clients utilisent pour charger des serveurs de formulaires, exécuter des verbes de formulaire et arrêter les serveurs de formulaires. Il s’agit également de l’interface dérivée d’OLE IUnknown qui est utilisée pour informer d’autres composants OLE concernant les interfaces qu’un objet formulaire implémente. | Obligatoire |
IPersistMessage : IUnknown |
Utilisé lors du chargement de messages dans et de l’enregistrement de messages à partir d’objets de formulaire. | Obligatoire |
IMAPIFormAdviseSink : IUnknown |
Utilisé par les objets de formulaire pour effectuer le suivi des status client de messagerie et pour déterminer si l’objet formulaire est capable d’afficher le message suivant ou précédent dans un dossier. | Facultatif |
IClassFactory |
Interface de fabrique de classe OLE utilisée par les objets de formulaire pour la conformité avec le mécanisme de fabrique de classe OLE. | Obligatoire |
IMAPIFormFactory : IUnknown |
Utilisé si votre serveur de formulaires prend en charge plusieurs types de formulaire. Dans ce cas, l’interface IMAPIFormFactory permet aux applications clientes d’accéder aux plusieurs interfaces IClassFactory (une par type de formulaire pris en charge par votre serveur de formulaires) que votre serveur de formulaires doit également implémenter. | Facultatif |