Microsoft Office InfoPath プライマリ相互運用機能アセンブリについて

InfoPath アプリケーションは COM (コンポーネント オブジェクト モデル) アプリケーションとして作成されており、外部オートメーションのプログラミング インターフェイスを COM インターフェイスとして公開します。 Visual C# や Visual Basic などのマネージド コード言語を使用する InfoPath ソリューションの作成をサポートするために、InfoPath セットアップ プログラムの .NET プログラミング サポート オプションでは、3 つの相互運用機能アセンブリがインストールされます。 相互運用アセンブリとは、マネージ コードとアンマネージ コードの仲介役として機能する .NET アセンブリで、COM オブジェクトのメンバーを、対応する .NET マネージ メンバーにマップします。

InfoPath によってインストールされる 3 つの相互運用アセンブリのファイルを以下に示します。

  • Microsoft.Office.Interop.InfoPath.dll

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

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

このトピックでは、外部オートメーション コード専用に使用される Microsoft.Office.Interop.InfoPath 相互運用機能アセンブリを通じて公開されるオブジェクト モデルについて説明します。 InfoPath フォーム テンプレート (.xsn) 内から実行されるマネージド コードの記述と実行専用に使用される Microsoft.Office.Interop.InfoPath.SemiTrust アセンブリの詳細については、「 InfoPath 2003 互換性のあるオブジェクト モデル」を参照してください。

インストールに関する重要な情報

InfoPath セットアップ プログラムの既定のインストール オプションは、Microsoft.Office.Interop.InfoPath アセンブリをグローバル アセンブリ キャッシュ (GAC) にインストールします。その内容は、C:\Windows\Assembly フォルダー (またはファイル システムを直接表示する場合は C:\Windows\assembly\GAC_MSIL) から表示できます。 このアセンブリは、「Microsoft Office InfoPath プライマリ相互運用機能アセンブリ」と呼ばれますが、よく Microsoft.Office.Interop.InfoPath.Xml アセンブリと共に使用され、GAC にインストールされてマネージ コードを使用する外部アプリケーションから InfoPath アプリケーションを自動化します。 Microsoft.Office.Interop.InfoPath.Xml アセンブリの詳細については、「InfoPath XML 相互運用機能アセンブリについて」を参照してください。

MICROSOFT.Office.Interop.InfoPath アセンブリが GAC に表示されない場合は、InfoPath が正しくインストールされていることを確認する必要があります。 既定で、セットアップ プログラムの .NET プログラミング サポート オプションは、セットアップを実行する前に、.NET Framework 1.1 再頒布可能パッケージ、.NET Framework 1.1 Software Development Kit (SDK)、またはそれ以降のバージョンの.NET Framework がインストールされている限り、[マイ コンピューターから実行] に設定されます。 これらの相互運用機能アセンブリがコンピューターで使用できない場合は、.NET Framework 1.1 以降がインストールされていることを確認してから、コントロール パネルプログラムと機能を使用して、Microsoft Office InfoPath.NET プログラミング サポート オプションを [マイ コンピューターから実行] に設定してセットアップを変更する必要があります。

.NET Framework 1.1 再頒布可能パッケージのダウンロードについては、「.NET Framework 1.1 再頒布可能パッケージ」を参照してください。

Microsoft.Office.Interop.InfoPath 名前空間

特定のタスクのマネージ コードを作成するプロセスは、Visual Basic for Applications や JScript などの言語を使用して行う同じタスクと似ていますが、Microsoft Visual Studio のオブジェクト ブラウザーから Microsoft.Office.Interop.InfoPath 名前空間を表示するときに公開されるオブジェクト モデルはさらに複雑です。 これは、.NET Framework の相互運用性は、すべての public インターフェイスを公開する COM サーバー、および .NET Framework 自体に必要ないくつかの追加の構成要素を必要とするためです。 相互運用機能アセンブリによって公開されるオブジェクト モデルがどのように複雑に見えるか、またその理由の詳細については、「InfoPath 2003 の互換性のあるオブジェクト モデル」のトピックの「COM オブジェクトが InfoPath 2003 互換オブジェクト モデルに公開されるしくみ」を参照してください。

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 XML Core Services (MSXML) を使用してフォームの基になる XML ドキュメントの内容を操作するには、IXMLDOMDocument2 型の変数を作成し、XDocument クラスの DOM プロパティを使用して、フォームの XML ドキュメント オブジェクト モデル (DOM) をその変数に割り当てる必要があります。

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

変数の名前とその後のピリオドを入力すると、IXMLDOMDocument2 クラスのメンバーの IntelliSense ステートメント入力候補のドロップダウン リストが表示されるので、MSXML を使用して XML ドキュメントを操作できます。

クラス ライブラリ リファレンス ドキュメントを使用する

Microsoft.Office.Interop.InfoPath 名前空間クラス ライブラリのリファレンス ドキュメントのorganizationは、コクラス インターフェイスと、それらが実装する継承されたインターフェイスの関係を反映しています。

アプリケーションなどのコクラス インターフェイスのトピックを開くと、 トピック の先頭にあるインターフェイスの説明に従って、コクラス インターフェイスのメンバーへのリンクに空のトピックが表示されます。 コクラス インターフェイスによって実装されるメンバーの一覧を表示するには、そのコクラスによって継承される最も新しいインターフェイスのトピックを開き、そのメンバーの表を開く必要があります。 継承インターフェイスへのリンクは、コクラス インターフェイスのトピックの「解説」セクションの先頭にあります。

Visual Studio コード エディターで F1 キーを押した場合の動作は、大抵の場合インターフェイスのメンバーを操作しているので、F1 ヘルプを呼び出したメンバーが直接表示されることを除いては、ほぼ同様です。 ただし、メンバーがバージョン付きのインターフェイスから実装される場合があるという点で、初めは混乱する可能性があります。 たとえば、カーソルを入力 myXDocument.UI.Alert して上に Alert 置き、F1 キーを押すと、"UI2" というタイトルのトピックが表示されます。アラートメソッド"が表示されます。 これは、 Alert メソッドが UI2 インターフェイスのメンバーの実装であるからです。

InfoPath オブジェクト モデルのメンバーにオプションのパラメーターを渡す

InfoPath オブジェクト モデルのメンバーにオプションのパラメーターが含まれており、さらにそのパラメーターの値を指定しない場合は、そのパラメーターの代わりに Type.Missing フィールドを渡す必要があります。 実際の値を省略する場合に Type.Missing フィールドを渡さないと、ビルド エラーが発生します。 これは、C# と Visual Basic のどちらで書かれたコードにも当てはまります。 たとえば、ViewObject インターフェイスの SelectNodes メソッドには、varEndNodevarViewContext の 2 つの省略可能なパラメーターが含まれています。 これらのオプション パラメーターに対して実際の値を指定しないコード行は、次のようになっている必要があります。

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

関連項目