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 메서드에서 확인합니다. For a list of acceptable data types that can be used with specific controls, see the 특정 컨트롤에 사용할 수 있는 데이터 형식의 목록은 IInfoPathViewControl 인터페이스의 Value 속성에서 확인합니다.
프로그래밍 방식을 사용하여 데이터를 InfoPath 양식으로 가져오는 데 대한 자세한 내용은 Microsoft Office 개발자 센터에서 InfoPath Developer Portal을 참고하십시오.
예제
다음 예제에서는 IInfoPathDataImporter 인터페이스의 Import 메서드를 사용하여 현재 양식에서 IInfoPathViewControl 컨트롤의 mshtml.IEnumUnknown 컬렉션에 대해 실행을 반복합니다.
Import 루틴은 사용자 지정 데이터 가져오기 도구를 작성하는 데 사용되는 솔루션에서 있어서 주가 되는 부분입니다. Visual Studio 프로젝트에는 Microsoft Office InfoPath 2.0 형식 라이브러리 및 System.Windows.Forms에 대한 참조가 필요하며, IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl, IPropertyBag 등 사용자 지정 데이터 가져오기 인터페이스에서 제공하는 메서드의 서명을 생성하기 위해 각 프로젝트마다 Imports 문과 mshtml.Implements 문이 있어야 합니다.
참고: |
---|
.NET 클래스 라이브러리를 사용하여 사용자 지정 데이터 가져오기 도구를 작성하려면 클래스 속성 편집기의 컴파일 탭에서 COM Interop 등록 확인란을 선택합니다. |
참고: |
---|
사용자 지정 데이터 가져오기 도구를 디버그하려면 Visual Studio에서 시작 작업을 Start an external program으로 설정하고 <drive>:\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 네임스페이스