IInfoPathViewControl, interface

Représente une commande de la vue.

Espace de noms : Microsoft.Office.Interop.InfoPath
Assembly : Microsoft.Office.Interop.InfoPath (dans microsoft.office.interop.infopath.dll)

Syntaxe

<TypeLibTypeAttribute(384)> _
<ComConversionLossAttribute> _
<GuidAttribute("096CD6DA-0786-11D1-95FA-0080C78EE3BB")> _
<InterfaceTypeAttribute(1)> _
Public Interface IInfoPathViewControl

Dim instance As IInfoPathViewControl
[TypeLibTypeAttribute(384)] 
[ComConversionLossAttribute] 
[GuidAttribute("096CD6DA-0786-11D1-95FA-0080C78EE3BB")] 
[InterfaceTypeAttribute(1)] 
public interface IInfoPathViewControl

Remarques

L'interface IInfoPathViewControl, utilisée conjointement avec l'interface IInfoPathDataImporter, permet aux développeurs d'obtenir des informations spécifiques sur les commandes de la vue, telles que les positions ControlType, DataType, Top et Left, la valeur XML NodeName associée à la commande et InputScopes. La propriété Value est la seule à pouvoir être définie.

Pour obtenir la liste des commandes énumérées dans la vue, le cas échéant, reportez-vous à la méthode GetControls de l'interface IInfoPathDataImporterFields. Pour obtenir la liste des types de données acceptables et utilisables avec des commandes spécifiques, reportez-vous à la propriété Value de l'interface IInfoPathViewControl.

Pour plus d'informations sur l'importation programmable de données dans un formulaire InfoPath, reportez-vous au Portail des développeurs InfoPath (en anglais) dans le Centre de développement Microsoft Office.

Exemple

Dans l'exemple suivant, la méthode Import de l'interface IInfoPathDataImporter permet de lancer une répétition dans la collection mshtml.IEnumUnknown des commandes IInfoPathViewControl de la vue du formulaire actif.

La routine Import est la partie principale d'une solution permettant de créer un importateur de données personnalisé. Le projet Visual Studio requiert une référence à la bibliothèque de type Microsoft InfoPath 2.0 et System.Windows.Forms, avec des instructions Imports pour chacun ainsi que des instructions mshtml.Implements permettant de générer des signatures pour les méthodes fournies par les interfaces de l'importateur de données personnalisé, notamment IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl et IPropertyBag.

Remarque

Pour créer un importateur de données personnalisé à l'aide d'une bibliothèque de classe .NET, activez la case à cocher Inscrire pour COM interop sous l'onglet Compiler de l'éditeur de propriétés de classe.

Remarque

Pour déboguer un importateur de données personnalisé, définissez l'Action de démarrage de Visual Studio sur Start an external program, puis recherchez le fichier INFOPATH.EXE situé sous <lecteur>:\Program Files\Microsoft Office\Office12\. Cette option est disponible sous l'onglet Débogage de l'éditeur de propriétés de classe.

Imports Microsoft.Office.Interop.InfoPath
Imports System.Windows.Forms
Imports mshtml

<ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)> Public Class Class1
   Implements Microsoft.Office.Interop.InfoPath.IInfoPathDataImporter
   Implements Microsoft.Office.Interop.InfoPath.IInfoPathDataImporterFields
   Implements Microsoft.Office.Interop.InfoPath.IInfoPathViewControl
   Implements Microsoft.Office.Interop.InfoPath.IPropertyBag

   Public Const ClassId As String = _
      "1FEB0DF8-E7F1-4b21-A9EE-B06D5FECC572"
   Public Const InterfaceId As String = _
      "9F9F685C-71A0-46ec-A7F9-A86AF8CBC2A8"
   Public Const EventsId As String = _
      "ED7C0C49-3F89-40a2-A50E-C59E8F682B08" 

Public Sub Import(
   _ByVal pPrintSettings As Microsoft.Office.Interop.InfoPath.IPropertyBag, _
   ByVal punkViewControls As mshtml.IEnumUnknown) _
   Implements Microsoft.Office.Interop.InfoPath.IInfoPathDataImporter.Import

   Dim pControl As IInfoPathViewControl
   Dim pUnk As Object
   Dim pcelt As UInt16 = 1
   Dim pceltFetched As UInt16 = 0

   Try
      'Gets first control in the view
      punkViewControls.RemoteNext(pcelt, pUnk, pceltFetched)

      Do While pUnk.ToString() <> "Nothing"
         pControl = pUnk
         MessageBox.Show(pControl.ControlType)
         'Gets next control in the view
         punkViewControls.RemoteNext(pcelt, pUnk, pceltFetched)
      Loop
   Catch e As Exception
      If e.Message = _
         "Object reference not set to an instance of an object." Then
         ' Signals the end of the enumeration/controls in the view
      Else
         MessageBox.Show("Error: " & e.ToString & " " & e.Message)
      End If
   End Try
End Sub

Voir aussi

Référence

Membres IInfoPathViewControl
Microsoft.Office.Interop.InfoPath, espace de noms