다음을 통해 공유


Microsoft Office InfoPath 주 Interop 어셈블리

Microsoft Office InfoPath 2007 응용 프로그램은 COM(Component Object Model) 인터페이스처럼 양식 서식 파일 안에서 사용되는 외부 자동화 및 스크립트 모두에 대해 프로그래밍 인터페이스를 노출하는 COM 응용 프로그램입니다. Visual C#, Visual Basic 등 관리되는 코드 언어를 사용하는 InfoPath 솔루션의 작성을 지원하기 위해 Office InfoPath 2007 설치 프로그램의 .NET 프로그래밍 지원 옵션은 세 가지 Interop 어셈블리를 설치합니다. Interop 어셈블리는 COM 개체 구성원을 해당 .NET 관리 구성원에 매핑하여 관리 코드와 관리되지 않는 코드 간의 중개 역할을 하는 .NET 어셈블리입니다.

InfoPath에서 설치하는 세 가지 Interop 어셈블리 파일 이름은 다음과 같습니다.

  • Microsoft.Office.Interop.InfoPath.dll

  • Microsoft.Office.Interop.InfoPath.SemiTrust.dll

  • Microsoft.Office.Interop.InfoPath.Xml.dll

이 도움말에서는 외부 자동화 코드에만 사용되는 Microsoft.Office.Interop.InfoPath Interop 어셈블리를 통해 노출되는 개체 모델에 대해 설명합니다. InfoPath 양식 서식 파일(.xsn)의 양식에서 실행되는 관리되는 코드를 작성하고 실행하는 데만 사용되는 Microsoft.Office.Interop.InfoPath.SemiTrust 어셈블리에 대한 자세한 내용은 InfoPath 2003 호환 개체 모델을 참고하십시오.

중요한 설치 정보

기본적으로 Office InfoPath 2007 설치 프로그램의 표준 설치 옵션을 사용하면 GAC(전역 어셈블리 캐시)에 Microsoft.Office.Interop.InfoPath 어셈블리가 설치됩니다. 설치한 내용은 C:\Windows\Assembly 폴더에서 확인할 수 있습니다. 이 어셈블리를 "Microsoft Office InfoPath 주 Interop 어셈블리"라고 하며 GAC에 함께 설치되는 Microsoft.Office.Interop.InfoPath.Xml 어셈블리와 함께 사용되어 관리되는 코드를 사용하는 외부 응용 프로그램에서 InfoPath 응용 프로그램을 자동화합니다. Microsoft.Office.Interop.InfoPath.Xml 어셈블리에 대한 자세한 내용은 InfoPath XML Interop 어셈블리를 참고하십시오.

Microsoft.Office.Interop.InfoPath 어셈블리가 GAC에 표시되지 않으면 Office InfoPath 2007 이 제대로 설치되었는지 확인해야 합니다. 설치 프로그램을 실행하기 전에 .NET Framework 1.1 재배포 가능 패키지 또는 .NET Framework 1.1 SDK(소프트웨어 개발 키트)가 설치되어 있으면 InfoPath를 표준 설치할 경우 설치 프로그램에서 .NET 프로그래밍 지원 옵션이 내 컴퓨터에서 실행으로 설정됩니다. 이러한 Interop 어셈블리를 사용할 수 없으면 .NET Framework 1.1이 설치되었는지 확인한 다음 제어판의 프로그램 추가/제거를 실행하고 Microsoft Office InfoPath의 .NET 프로그래밍 지원 옵션을 내 컴퓨터에서 실행으로 설정해야 합니다.

.NET Framework 1.1 재배포 가능 패키지 다운로드에 대한 자세한 내용은 .NET Framework 1.1 재배포 가능 패키지를 참고하십시오.

Microsoft.Office.Interop.InfoPath 네임스페이스

InfoPath 양식 서식 파일에서 특정 작업을 위해 관리되는 코드를 작성하는 과정은 Microsoft Visual Basic 또는 JScript와 같은 COM 언어를 사용한 프로그래밍 작업과 매우 비슷하지만 Microsoft Visual Studio의 개체 브라우저에서 Microsoft.Office.Interop.InfoPath 네임스페이스를 볼 때 노출되는 개체 모델은 더 복잡해 보입니다. .NET Framework을 사용한 상호 운용성은 .NET Framework 자체에 필요한 일부 부가적인 생성자뿐 아니라 COM 서버에서 공개 인터페이스를 모두 노출해야 하기 때문입니다. Interop 어셈블리에서 노출되는 개체 모델이 더 복잡해 보이는 이유와 방식에 대한 자세한 내용은 InfoPath 호환 개체 모델 도움말 항목의 "COM 개체가 관리되는 코드에 노출되는 방법" 부분을 참고하십시오.

IntelliSense 사용

이 도움말의 예제에서는 Microsoft.Office.Interop.InfoPath 및 Microsoft.Office.Interop.InfoPath.Xml 어셈블리에 대한 참조를 만들었다고 가정합니다. 이러한 어셈블리에 대한 참조를 만드는 방법 및 외부 자동화 예제에 대한 자세한 내용은 외부 자동화 시나리오 및 예제를 참고하십시오.

외부 자동화 코드에서 Microsoft IntelliSense 문 완성을 사용하기 전에 먼저 다음 코드 줄과 같이 Application 클래스의 인스턴스에 대한 개체 변수를 만들어야 합니다.

Application myApp = 
    new Microsoft.Office.Interop.InfoPath.Application();
Dim myApp As Application = _
    New Microsoft.Office.Interop.InfoPath.Application()

개체 변수를 만들고 나서 변수 이름 다음에 마침표를 입력하면 Application 클래스의 멤버를 선택할 수 있도록 드롭다운 목록이 표시됩니다.

InfoPath 양식을 사용하려면 XDocument 형식의 개체 변수를 선언하고 다음 코드 줄과 같이 Application 개체 변수의 XDocuments 컬렉션에서 양식을 열어 초기화합니다.

XDocument myXDoc = myApp.XDocuments.Open(
    "c:\\temp\\Form1.xml",
    (int) XdDocumentVersionMode.xdFailOnVersionOlder);
Dim myXDoc As XDocument = myApp.XDocuments.Open( _
    "c:\\temp\\Form1.xml", _
    XdDocumentVersionMode.xdFailOnVersionOlder)

변수 이름 다음에 마침표를 입력하면 XDocument 클래스의 멤버에 대한 IntelliSense 문 완성 드롭다운 목록이 표시됩니다.

Microsoft Office용 Microsoft XML Core Services(MSXML) 5.0을 사용하여 양식의 기본 XML 문서 내용을 사용하려면 IXMLDOMDocument2 형식의 변수를 만들고 XDocument 클래스의 DOM 속성을 사용하여 양식의 XML DOM(Document Object Model)을 그 변수에 할당해야 합니다.

IXMLDOMDocument2 doc= myXDoc.DOM as IXMLDOMDocument2;
Dim doc As IXMLDOMDocument2 = myXDoc.DOM

변수 이름 다음에 마침표를 입력하면 IXMLDOMDocument2 클래스의 멤버에 대한 IntelliSense 문 완성 드롭다운 목록이 표시됩니다. 이렇게 하면 MSXML 5.0을 사용하여 XML 문서를 사용할 수 있습니다.

클래스 라이브러리 참조 설명서 사용

Microsoft.Office.Interop.InfoPath 네임스페이스 클래스 라이브러리 참조 문서의 구성에는 구현된 coclass 인터페이스 및 상속된 인터페이스가 반영됩니다. 문서의 항목은 Office InfoPath 2007 에 들어 있는 InfoPath 개발자 참조의 일부인 스크립트 작성에 대한 InfoPath 개체 모델 참조와 같은 방식으로 구성됩니다. ApplicationXDocument 인터페이스에 대한 항목만 제외하고 모든 COM coclass 인터페이스 항목은 InfoPath 스크립팅 참조의 해당 "개체" 및 "컬렉션" 항목에 매핑됩니다. 예를 들어 Microsoft.Office.Interop.InfoPath 네임스페이스 참조 문서의 "UIObject 인터페이스" 및 "WindowsCollection 인터페이스" 항목은 InfoPath 개체 모델 참조 스크립팅 참조의 "UI 개체" 및 "Windows 컬렉션" 항목에 매핑됩니다.

그러나 항목의 시작 부분에 있는 인터페이스의 설명 다음에 나오는 coclass 인터페이스 구성원에 대한 링크는 빈 항목을 표시합니다. coclass 인터페이스가 구현하는 구성원 목록을 표시하려면 coclass로부터 상속된 최근 인터페이스에 대한 항목을 열고 해당 구성원의 표를 열어야 합니다. 상속된 인터페이스에 대한 링크는 coclass 인터페이스 도움말 항목의 주의 사항 시작 부분에 제공됩니다.

Visual Studio 코드 편집기에서 F1 키를 누르면 주로 인터페이스의 멤버를 사용하기 때문에 F1 도움말을 호출한 멤버가 바로 열리는 것만 제외하고 동작이 비슷합니다. 그러나 처음 사용하는 경우 멤버가 버전이 있는 인터페이스에서 구현될 수 있다는 사실이 혼동될 수 있습니다. 예를 들어 myXDocument.UI.Alert를 입력하고 Alert 위에 커서를 놓은 다음 F1 키를 누르면 "UI2.Alert 메서드"라는 제목의 도움말 항목이 표시됩니다. UI2 인터페이스의 멤버를 구현한 것이 Alert 메서드이기 때문입니다.

InfoPath 개체 모델 구성원에 선택적 매개 변수 전달

InfoPath 개체 모델 구성원에 선택적 매개 변수가 들어 있고 이 매개 변수 값을 지정하지 않는 경우 이 매개 변수에 대한 Type.Missing 필드를 전달해야 합니다. 실제 값을 생략할 때 Type.Missing 필드를 전달하지 않으면 빌드 오류가 발생합니다. 이는 C#와 Visual Basic .NET으로 작성된 코드에 모두 적용됩니다. 예를 들어 SelectNodes 인터페이스의 ViewObject 메서드에는 두 개의 선택적 매개 변수인 varEndNode와 varViewContext가 있습니다. 이러한 선택적 매개 변수에 대해 실제 값을 지정하지 않는 코드 줄의 예는 다음과 같습니다.

myXDocument.View.SelectNodes(group1, Type.Missing, Type.Missing);
myXDocument.View.SelectNodes(group1, Type.Missing, Type.Missing)

참고 항목

개념

외부 자동화 시나리오 및 예제