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 Présentation de l'intégration d'InfoPath 2007 à Visual Studio
API InfoPath Designer permettant d'intégrer InfoPath 2007 à Visual Studio 2005 API InfoPath Designer permettant d'intégrer InfoPath 2007 à Visual Studio 2005
Conclusion Conclusion
Ressources supplémentaires 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 :

  • Assembly Microsoft.Office.InfoPath

    Assembly Microsoft.Office.Interop.InfoPath.SemiTrust

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