Présentation de l'API InfoPath Designer permettant d'intégrer InfoPath 2007 à Visual Studio 2005
Paru le 14 novembre 2006
Résumé :
Découvrez comment l'environnement de conception de formulaires Microsoft Office InfoPath 2007 s'intègre à l'IDE Visual Studio 2005 lorsque Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System est installé. Le présent article décrit également l'objet VsInfoPathDesigner et les neuf fonctions que propose InfoPath pour l'exécution de tâches relatives au projet lorsque l'environnement de conception InfoPath design est hébergé en tant qu'éditeur personnalisé dans Visual Studio. (9 pages imprimées)
Mark Roberts, Microsoft
Gary Hsu, Microsoft
S'applique à :
Suites Microsoft 2007 Office, Microsoft Office InfoPath 2007, Microsoft Visual Studio 2005
Overview of the InfoPath Designer API for Integrating InfoPath 2007 into Visual Studio 2005 .
Sur cette page
Présentation de l'intégration d'InfoPath 2007 à Visual Studio
API InfoPath Designer permettant d'intégrer InfoPath 2007 à Visual Studio 2005
Conclusion
Ressources supplémentaires
Présentation de l'intégration d'InfoPath 2007 à Visual Studio
Lorsque vous utilisez Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System (en anglais), l'environnement de conception de modèles de formulaire est intégré à l'environnement de développement Microsoft Visual Studio 2005. 2005 Tools for the 2007 Microsoft Office SystemCet environnement vous permet d'utiliser les fonctionnalités d'Office InfoPath 2007 pour concevoir la présentation des modèles de formulaire InfoPath et écrire la logique métier à base de code géré sans quitter Visual Studio. Lorsqu'il travaille sur des modèles de formulaire InfoPath dans Visual Studio, un développeur écrit la logique métier en C# ou Microsoft Visual Basic par rapport au nouveau modèle d'objet à base de code géré Office InfoPath 2007 (types et membres de l'espace de noms Microsoft.Office.InfoPath) ou au modèle d'objet compatible Microsoft Office InfoPath 2003 (types et membres du nom d'espaces Microsoft.Office.Interop.InfoPath.SemiTrust).
Après avoir installé Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System, vous pouvez créer un type de projet Visual Studio personnalisé (un modèle de formulaire InfoPath pour C# ou Visual Basic), puis utiliser l'environnement de conception de modèles de formulaire InfoPath 2007, qui est hébergé en tant qu'éditeur Visual Studio personnalisé, pour les tâches de conception de modèles de formulaire et l'ajout de gestionnaires d'événements et d'un autre code de logique métier.
Pour intégrer l'environnement de conception de modèles de formulaire InfoPath 2007 à l'IDE (environnement de développement intégré) Visual Studio, vous devez installer et enregistrer un VSPackage qui a été créé à l'aide du processus décrit dans la section Visual Studio Integration (en anglais) du kit SDK de Visual Studio. Les VSPackages sont des modules logiciels qui constituent et étendent l'IDE Visual Studio en fournissant des éléments d'interface utilisateur, des services, des projets, des éditeurs et des concepteurs. Le VSPackage InfoPath Designer tient lieu de wrapper permettant d'intégrer les éléments et les fonctionnalités d'interface utilisateur des environnements de conception InfoPath à Visual Studio. Pour fonctionner correctement, le VSPackage est tributaire d'une installation locale d'InfoPath 2007.
Le VSPackage InfoPath Designer est enregistré en tant que package Visual Studio 2005 Editor dans la clé de registre suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\{6ab7a76b-2809-4a7c-bff6-2a3b99feef91}
Un projet créé par un projet InfoPath Form Template est de type VSTA (Visual Studio Tools for Applications), et comporte des relations de dépendance avec les composants VSTA qui sont installés avec InfoPath 2007.
Pour vous procurer les informations les plus récentes sur Visual Studio Integration, avec notamment des exemples de solutions et d'outils, téléchargez le kit SDK de Visual Studio. Pour cela, enregistrez-vous ou connectez-vous en tant que membre affilié VSIP (Visual Studio Industry Partner - partenaire d'intégration de Visual Studio) à l'adresse https://www.vsipmembers.com, puis téléchargez le kit SDK de Visual Studio à partir de http://affiliate.vsipmembers.com/affiliate/downloadFiles.aspx. Vous trouverez des informations et du support supplémentaires dans le Forum Visual Studio Extensibility (relatif à l'extensibilité Visual Studio, en anglais) sur MSDN et le groupe de discussion microsoft.public.vstudio.extensibility (en anglais).
Par la suite, des informations sur VSTA seront incluses dans le kit SDK de Visual Studio. Cependant, celui-ci n'en contient pas au moment où nous publions le présent article. Pour vous procurer des informations actualisées sur VSTA, consultez la section Ressources supplémentaires proposée à la fin de l'article.
API InfoPath Designer permettant d'intégrer InfoPath 2007 à Visual Studio 2005
L'objet InfoPath Designer, VsInfoPathDesigner, est implémenté dans le composant IPDESIGN.dll qui est copié dans le répertoire lecteur:\Program Files\Microsoft Office\OFFICE12 pendant l'installation d'InfoPath 2007. L'objet VsInfoPathDesigner implémente les interfaces nécessaires pour intégrer l'environnement de conception InfoPath à Visual Studio. Le composant IPDESIGN.dll propose également neuf fonctions permettant d'effectuer des tâches relatives au projet InfoPath lorsque l'environnement de conception InfoPath est hébergé en tant qu'éditeur personnalisé dans Visual Studio 2005. L'objet VsInfoPathDesigner implémente l'interface IVsWindowFrame pour héberger des fenêtres de document et d'outil dans Visual Studio. Reportez-vous au Basic Edit Sample (exemple d'édition de base, en anglais) et au Figures Edit Sample (exemple d'édition de figures, en anglais) du kit SDK de Visual Studio pour voir des exemples d'intégration d'un éditeur personnalisé à Visual Studio.
L'ID de classe (CLSID) de l'objet VsInfoPathDesigner est {6ab7a76b-2809-4a7c-bff6-2a3b99feef91}.
Le code suivant affiche la déclaration du CLSID de l'objet VsInfoPathDesigner.
C++
extern "C" const __declspec(selectany) CLSID CLSID_VsInfoPathDesigner = { 0x6AB7A76B, 0x2809, 0x4A7C, { 0xBF, 0xF6, 0x2A, 0x3B, 0x99, 0xFE, 0xEF, 0x91 } };
Le composant IPDESIGN.dll exporte les neuf fonctions suivantes :
RunVsTemplateWizard
RunPostVsProjectCreationTasks
ConvertInfoPathProjectForVSTO
GetAssociatedVsDocument
CreateVsWorkpane
CanShowVsWorkpane
ExecVsExportTemplate
RunStartupTasksForVSTO
ResetToolboxItems
Les sections suivantes décrivent chacune de ces fonctions.
RunVsTemplateWizard
RunVsTemplateWizard lance la boîte de dialogue Concevoir un modèle de formulaire.
C++
STDAPI RunVsTemplateWizard( IN BSTR bstrManifestPath, IN BSTR bstrProjectName, IN BSTR bstrProjectPath, IN BSTR bstrLanguage, OUT InfoPathDesignMode* peDesignMode, OUT BOOL* pfO12OM, OUT BOOL* pfAllowClientOnlyCode);
Le Tableau 1 décrit les paramètres de la fonction RunVsTemplateWizard.
Tableau 1. Paramètres de la fonction RunVsTemplateWizard
Paramètre |
Définition |
---|---|
bstrManifestPath |
Spécifie l'emplacement auquel la solution sera enregistrée. |
bstrProjectName |
Spécifie le nom du projet qui sera utilisé pour l'intitulé de la solution. |
bstrProjectPath |
Spécifie le chemin du fichier de projet (correspond à l'attribut managedCode/@projectPath présent dans le fichier manifest.xsf du modèle de formulaire). |
bstrLanguage |
Spécifie le langage de programmation du projet de modèle de formulaire. Cela peut être CSharp ou VisualBasic (correspond à l'attribut managedCode/@language présent dans le fichier manifest.xsf du modèle). |
peDesignMode |
Retourne une valeur indiquant le mode de conception du projet. Ce paramètre correspond au réglage de la case à cocher Activer les fonctionnalités compatibles avec le navigateur uniquement de la boîte de dialogue Concevoir un modèle de formulaire . Retourne 1 si la case à cocher n'est pas sélectionnée, et 2 si la case à cocher est sélectionnée. |
pfO12OM |
Retourne une valeur indiquant le modèle d'objet à base de code géré InfoPath qui est référencé. Retourne TRUE si l'assembly Microsoft.Office.InfoPath est référencé, et FALSE si l'assembly Microsoft.Office.Interop.InfoPath.SemiTrust est référencé. |
pfAllowClientOnlyCode |
Retourne une valeur indiquant si la case à cocher Hide errors for code that uses InfoPath-only features (Masquer les erreurs pour le code utilisant des fonctionnalités uniquement InfoPath) est sélectionnée dans la catégorie Compatibility (Compatibilité) de la boîte de dialogue Form Options (Options de formulaire). Retourne TRUE si la case à cocher est sélectionnée, et FALSE si elle n'est pas sélectionnée. |
Lorsque l'utilisateur crée ou charge un modèle de formulaire à partir de la boîte de dialogue Concevoir un modèle de formulaire, le concepteur enregistre toujours une nouvelle copie de la solution que l'utilisateur a choisie.
RunPostVsProjectCreationTasks
RunPostVsProjectCreationTasks exécute des tâches après la création du projet : validation du nom de l'assembly, initialisation des fichiers de code, mise à jour des références et création de la clé de signature.
C++
STDAPI RunPostVsProjectCreationTasks( IN IDispatch* pdispProject, IN BOOL fO12OM, IN BOOL fCSharp, IN InfoPathDesignMode eDesignMode, IN BOOL fEnableClientOnlyCode);
Le Tableau 2 décrit les paramètres de la fonction RunPostVsProjectCreationTasks.
Tableau 2. Paramètres de la fonction RunPostVsProjectCreationTasks
Paramètre |
Définition |
---|---|
pdispProject |
Spécifie le pointeur IDispatch vers l'objet de projet. |
fO12OM |
Spécifie le modèle d'objet à base de code géré InfoPath à référencer :
Spécifiez TRUE pour référencer le modèle d'objet fourni par l'assembly Microsoft.Office.InfoPath, et FALSE pour référencer le modèle d'objet fourni par l'assembly Microsoft.Office.Interop.InfoPath.SemiTrust. |
fCSharp |
Spécifie le langage de programmation à utiliser pour le projet. Spécifiez TRUE pour utiliser C#, et FALSE pour utiliser Visual Basic. |
eDesignMode |
Spécifie le mode de conception du projet. Ce paramètre correspond au réglage de la case à cocher Activer les fonctionnalités compatibles avec le navigateur uniquement de la boîte de dialogue Concevoir un modèle de formulaire. Spécifiez 1 si la case à cocher n'est pas sélectionnée, et 2 si elle est sélectionnée. |
fEnableClientOnlyCode |
Spécifie s'il faut activer du code de type client seulement. Ce paramètre traduit la sélection ou la désélection de la case à cocher Hide errors for code that uses InfoPath-only features (Masquer les erreurs pour le code utilisant des fonctionnalités uniquement InfoPath) proposée dans la catégorie Compatibility (Compatibilité) de la boîte de dialogue Form Options (Options de formulaire). Spécifiez TRUE si la case à cocher est sélectionnée, et FALSE si elle n'est pas sélectionnée. |
ConvertInfoPathProjectForVSTO
ConvertInfoPathProjectForVSTO convertit un projet de modèle de formulaire à base de code géré créé à l'aide d'une des Boîtes à outils InfoPath 2003 en projet Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System (VSTO).
C++
STDAPI ConvertInfoPathProjectForVSTO( IN BSTR bstrProjectLocation, IN IServiceProvider* pServiceProvider, OUT BSTR* pbstrNewProjectLocation, OUT GUID* pguidNewProjectFactory, OUT BOOL* pfWhidbeySolution);
Le Tableau 3 décrit les paramètres de la fonction ConvertInfoPathProjectForVSTO.
Tableau 3. Paramètres de la fonction ConvertInfoPathProjectForVSTO
Paramètre |
Définition |
---|---|
bstrProjectLocation |
Spécifie l'emplacement du projet. |
pServiceProvider |
Spécifie le pointeur IServiceProvider vers le fournisseur de service à partir de Visual Studio. |
pbstrNewProjectLocation |
Retourne le nouvel emplacement de projet. |
pguidNewProjectFactory |
Retourne le GUID du nouveau factory de projet (le GUID de projet C# ou le GUID de projet Visual Basic). |
pfWhidbeySolution |
Indique si le projet initial a été créé avec InfoPath 2003 Toolkit for Visual Studio .NET 2003 ou avec Microsoft Visual Studio 2005 Tools for the Microsoft Office System. Retourne TRUE si le projet initial était un projet Microsoft Visual Studio 2005 Tools for the Microsoft Office System, et FALSE si le projet initial était un projet InfoPath 2003 Toolkit for Visual Studio .NET 2003. |
GetAssociatedVsDocument
GetAssociatedVsDocument extrait le document actif en cours qui est associé à InfoPath Designer.
C++
STDAPI GetAssociatedVsDocument( OUT IUnknown** ppunkAssociatedVsDocument);
Le Tableau 4 décrit les paramètres de la fonction GetAssociatedVsDocument.
Tableau 4. Paramètres de la fonction GetAssociatedVsDocument
Paramètre |
Définition |
---|---|
ppunkAssociatedVsDocument |
Retourne le pointeur IUnknown vers le document. |
CreateVsWorkpane
CreateVsWorkpane crée une fenêtre de volet des tâches.
C++
STDAPI CreateVsWorkpane( IN IUnknown* punkSite, IN REFGUID rguidPersistenceGuid OUT IVsWindowFrame** ppWindowFrame);
Le Tableau 5 décrit les paramètres de la fonction CreateVsWorkpane.
Tableau 5. Paramètres de la fonction CreateVsWorkpane
Paramètre |
Définition |
---|---|
punkSite |
Spécifie le pointeur IUnknown vers le fournisseur de service à partir de Visual Studio. |
rguidPersistenceGuid |
Spécifie le GUID du panneau des tâches InfoPath à créer. |
ppWindowFrame |
Retourne un pointeur IVsWindowFrame vers la fenêtre Visual Studio contenant le volet des tâches spécifié. |
Utilisez les valeurs GUID indiquées dans le Tableau 6 pour spécifier la valeur du paramètre rguidPersistenceGuid.
Tableau 6. Valeurs GUID du paramètre rguidPersistenceGuid
Panneau des tâches |
GUID |
---|---|
Asian Typography (Typographie asiatique) |
{00000716-2809-4A7C-BFF6-2A3B99FEEF91} |
Bullets and Numbering (Puces et numérotation) |
{00000725-2809-4A7C-BFF6-2A3B99FEEF91} |
Color Schemes (Schémas de couleur) |
{000005E5-2809-4A7C-BFF6-2A3B99FEEF91} |
Data Source (Source de données) |
{00000724-2809-4A7C-BFF6-2A3B99FEEF91} |
Design Checker (Vérificateur de conception) |
{00000855-2809-4A7C-BFF6-2A3B99FEEF91} |
Design Tasks (Tâches de conception) |
{000007BD-2809-4A7C-BFF6-2A3B99FEEF91} |
Font (Police) |
{000007B8-2809-4A7C-BFF6-2A3B99FEEF91} |
Grid (Grille) |
{00000717-2809-4A7C-BFF6-2A3B99FEEF91} |
Mise en page |
{00000768-2809-4A7C-BFF6-2A3B99FEEF91} |
Paragraph (Paragraphe) |
{000005AA-2809-4A7C-BFF6-2A3B99FEEF91} |
Spelling (Orthographe) |
{000006DA-2809-4A7C-BFF6-2A3B99FEEF91} |
Views (Vues) |
{000006DC-2809-4A7C-BFF6-2A3B99FEEF91} |
Remarque : |
---|
Les volets des tâches Asian Typography et Grid ne sont disponibles que dans les versions en langues asiatiques d'InfoPath 2007. |
CanShowVsWorkpane
CanShowVsWorkpane détermine si le volet des tâches InfoPath spécifié peut être affiché.
C++
STDAPI CanShowVsWorkpane( IN IUnknown* punkSite, IN REFGUID rguidPersistenceGuid, OUT BOOL* pfCanShow);
Le Tableau 7 décrit les paramètres de la fonction CanShowVsWorkpane.
Tableau 7. Paramètres de la fonction CanShowVsWorkpane
Paramètre |
Définition |
---|---|
punkSite |
Spécifie le pointeur IUnknown vers le fournisseur de service à partir de Visual Studio. |
rguidPersistenceGuid |
Spécifie le GUID associé au volet des tâches InfoPath. |
pfCanShow |
Retourne TRUE si le panneau des tâches peut être affiché, et FALSE dans le cas contraire. |
Utilisez les valeurs GUID indiquées dans le Tableau 8 pour spécifier la valeur du paramètre rguidPersistenceGuid.
Tableau 8. Valeurs GUID du paramètre rguidPersistenceGuid
Panneau des tâches |
GUID |
---|---|
Asian Typography (Typographie asiatique) |
{00000716-2809-4A7C-BFF6-2A3B99FEEF91} |
Bullets and Numbering (Puces et numérotation) |
{00000725-2809-4A7C-BFF6-2A3B99FEEF91} |
Color Schemes (Schémas de couleur) |
{000005E5-2809-4A7C-BFF6-2A3B99FEEF91} |
Data Source (Source de données) |
{00000724-2809-4A7C-BFF6-2A3B99FEEF91} |
Design Checker (Vérificateur de conception) |
{00000855-2809-4A7C-BFF6-2A3B99FEEF91} |
Design Tasks (Tâches de conception) |
{000007BD-2809-4A7C-BFF6-2A3B99FEEF91} |
Font (Police) |
{000007B8-2809-4A7C-BFF6-2A3B99FEEF91} |
Grid (Grille) |
{00000717-2809-4A7C-BFF6-2A3B99FEEF91} |
Mise en page |
{00000768-2809-4A7C-BFF6-2A3B99FEEF91} |
Paragraph (Paragraphe) |
{000005AA-2809-4A7C-BFF6-2A3B99FEEF91} |
Spelling (Orthographe) |
{000006DA-2809-4A7C-BFF6-2A3B99FEEF91} |
Views (Vues) |
{000006DC-2809-4A7C-BFF6-2A3B99FEEF91} |
Remarque : |
---|
Les volets des tâches Asian Typography et Grid ne sont disponibles que dans les versions en langues asiatiques d'InfoPath 2007. |
ExecVsExportTemplate
ExecVsExportTemplate affiche un avertissement si un InfoPath Designer est actuellement actif. Il retourne S_OK si l'avertissement a été présenté, et OLECMDERR_E_UNKNOWNGROUP dans le cas contraire.
C++
STDAPI ExecVsExportTemplate( IN IUnknown* punkSite);
Le Tableau 9 décrit les paramètres de la fonction ExecVsExportTemplate.
Tableau 9. Paramètres de la fonction ExecVsExportTemplate
Paramètre |
Définition |
---|---|
punkSite |
Spécifie le pointeur IUnknown vers le fournisseur de service à partir de Visual Studio. |
RunStartupTasksForVSTO
RunStartupTasksForVSTO exécute des tâches de démarrage spécifiques à VSTA après le chargement du projet.
C++
STDAPI RunStartupTasksForVSTO( IN IDispatch* pdispHostAdapter);
Le Tableau 10 décrit les paramètres de la fonction RunStartupTasksForVSTO.
Tableau 10. Paramètres de la fonction RunStartupTasksForVSTO
Paramètre |
Définition |
---|---|
pdispHostAdapter |
Spécifie le pointeur IDispatch vers le pointeur d'interface IVstaHostAdapter. |
ResetToolboxItems
ResetToolboxItems réinitialise les éléments InfoPath de la Boîte à outils Visual Studio.
C++
STDAPI ResetToolboxItems();
Conclusion
L'installation de Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System fournit le type de projet personnalisé InfoPath Form Template et intègre l'environnement de conception de modèles de formulaire Office InfoPath 2007 à l'environnement de conception Visual Studio 2005, de la manière décrite dans kit SDK de Visual Studio. InfoPath 2007 fournit neuf méthodes qui peuvent être appelées par l'environnement Visual Studio pour effectuer diverses tâches relatives au projet de modèle de formulaire InfoPath.
Ressources supplémentaires
Pour plus d'informations sur le développement réalisé avec InfoPath, consultez le Portail développeur InfoPath du Microsoft Office Developer Center (en anglais) :
Pour plus d'informations sur la configuration de VSTA, consultez