次の方法で共有


IInfoPathDataImporter.Import(IPropertyBag, IEnumUnknown) メソッド

定義

現在のフォームにデータをインポートします。

public:
 void Import(Microsoft::Office::Interop::InfoPath::IPropertyBag ^ pPrintSettings, mshtml::IEnumUnknown ^ punkViewControls);
public void Import (Microsoft.Office.Interop.InfoPath.IPropertyBag pPrintSettings, mshtml.IEnumUnknown punkViewControls);
abstract member Import : Microsoft.Office.Interop.InfoPath.IPropertyBag * mshtml.IEnumUnknown -> unit
Public Sub Import (pPrintSettings As IPropertyBag, punkViewControls As IEnumUnknown)

パラメーター

pPrintSettings
IPropertyBag

印刷設定のコレクション。

punkViewControls
mshtml.IEnumUnknown

mshtml。ビュー内のコントロールの IEnumUnknown コレクション。

次の例では、インターフェイスの Import メソッドを IInfoPathDataImporter 使用して mshtml を反復処理します。 アクティブなフォームのビュー内の IInfoPathViewControl コントロールの IEnumUnknown コレクション。

Import ルーチンは、カスタム データ インポーターの構築に使用されるソリューションの主要な部分です。 Visual Studio プロジェクトでは、Microsoft Office InfoPath 2.0 タイプ ライブラリと System.Windows.Forms への参照と、それぞれおよび mshtml の Imports ステートメントが必要です。カスタム データ インポーター インターフェイスによって提供されるメソッド (、 IInfoPathDataImporterFieldsIInfoPathViewControlIPropertyBagなどIInfoPathDataImporter) のシグネチャを生成するには、Implements ステートメントが必要です。

: .NET クラス ライブラリを使用してカスタム データ インポーターをビルドするには、クラス プロパティ エディターの [コンパイル] タブの [COM 相互運用機能の登録] チェック ボックスをオンにします。

: カスタム データ インポーターをデバッグするには、Visual Studio で [スタート アクション] を [外部プログラムの開始] に設定し、ドライブ>:\Program Files\Microsoft Office\Office12\ にある<INFOPATH.EXEを参照します。 このオプションは、クラス プロパティ エディターの [デバッグ] タブで使用できます。

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

&lt;ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)&gt; 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() &lt;&gt; "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: " &amp; e.ToString &amp; " " &amp; e.Message)
      End If
   End Try
End Sub

注釈

インターフェイスを使用して、次の印刷設定を IPropertyBag 使用できます。

PageSizeA4、B4、Letter などの現在のページ サイズ。
TopMargin現在のビューの上余白。
BottomMargin現在のビューの下余白。
LeftMargin現在のビューの左余白。
RightMargin現在のビューの右余白。
MarginUnitsType余白の測定単位。

プログラムによって InfoPath フォームにデータをインポートする方法の詳細については、 InfoPath 開発者ポータルMicrosoft Office デベロッパー センターを参照してください。

適用対象