IInfoPathViewControl インターフェイス
ビュー内にあるコントロールを表します。
名前空間: Microsoft.Office.Interop.InfoPath
アセンブリ: Microsoft.Office.Interop.InfoPath (microsoft.office.interop.infopath.dll 内)
構文
'宣言
<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
コメント
IInfoPathViewControl インターフェイスは、IInfoPathDataImporter インターフェイスと併用され、開発者はこのインターフェイスを使用して、ControlType および DataType、Top および Left の位置、コントロールに関連付けられた XML NodeName、InputScopes など、ビュー内のコントロールの特定の情報を取得できます。Value プロパティは設定できる唯一のプロパティです。
ビューに存在する場合に列挙されるコントロールの一覧については、「IInfoPathDataImporterFields インターフェイス」の「GetControls メソッド」を参照してください。特定のコントロールで使用できる、指定できるデータ型の一覧については、「IInfoPathViewControl インターフェイス」の「Value プロパティ」を参照してください。
プログラムによる InfoPath フォームへのデータのインポートの詳細については、Microsoft Office 開発者センターの「InfoPath 開発者ポータル」を参照してください。
例
次の例では、IInfoPathDataImporter インターフェイスの Import メソッドを使用して、アクティブなフォームのビューにある IInfoPathViewControl コントロールの mshtml.IEnumUnknown コレクションを反復処理しています。
Import ルーチンはカスタム データ インポータの構築に使用されるソリューションの主要部分です。Visual Studio プロジェクトは、Microsoft Office InfoPath 2.0 タイプ ライブラリと System.Windows.Forms への参照を必要とします。それぞれの Imports ステートメントおよび mshtml.Implements ステートメントは、IInfoPathDataImporter、IInfoPathDataImporterFields、IInfoPathViewControl、IPropertyBag など、カスタム データ インポータ インターフェイスで提供されるメソッドの署名の生成に必要です。
メモ : |
---|
.NET クラス ライブラリを使用してデータ インポータを構築するには、クラス プロパティ エディタの [コンパイル] タブにある [COM の相互運用機能に登録] チェック ボックスをオンにします。 |
メモ : |
---|
カスタム データ インポータをデバッグするには、Visual Studio の [開始アクション] を Start an external program に設定し、<ドライブ>:\Program Files\Microsoft Office\Office12\ にある INFOPATH.EXE を参照します。このオプションは、クラス プロパティ エディタの [デバッグ] タブにあります。 |
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
関連項目
参照
IInfoPathViewControl のメンバ
Microsoft.Office.Interop.InfoPath 名前空間