InfoPath 2003 互換オブジェクト モデルInfoPath 2003 Compatible Object Models

Microsoft InfoPath は COM (コンポーネント オブジェクト モデル) アプリケーションとして作成されており、外部オートメーションとフォーム テンプレート スクリプトの両方のプログラミング インターフェイスを COM インターフェイスとして公開します。マネージ コード言語 (Visual C# および Visual Basic) を使用する InfoPath ソリューションの作成をサポートするために、InfoPath セットアップ プログラムによって 3 つの相互運用アセンブリがインストールされます。相互運用アセンブリとは、マネージ コードとアンマネージ コードの仲介役として機能する .NET アセンブリで、COM オブジェクトのメンバーを、対応する .NET マネージ メンバーにマップします。Microsoft InfoPath is written as a Component Object Model (COM) application and exposes its programmability interfaces for both external automation and form template script as COM interfaces. To support the creation of InfoPath solutions that use the Visual C# and Visual Basic managed-code languages, the InfoPath setup program installs three interop assemblies. Interop assemblies are .NET assemblies that act as a bridge between managed and unmanaged code, mapping COM object members to equivalent .NET managed members.

InfoPath によってインストールされる 3 つの相互運用アセンブリのファイルを以下に示します。The files for the three interop assemblies installed by InfoPath are named:

  • Microsoft.Office.Interop.InfoPath.dllMicrosoft.Office.Interop.InfoPath.dll

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

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

ここでは、Microsoft.Office.Interop.InfoPath.SemiTrust 相互運用アセンブリによって公開されるオブジェクト モデルについて説明します。このアセンブリは、InfoPath フォーム テンプレート (.xsn) 内からマネージ コード ビジネス ロジックを書いたり実行したりするためだけに使用されます。This topic discusses the object model exposed through the Microsoft.Office.Interop.InfoPath.SemiTrust interop assembly, which is used exclusively for writing and running managed-code business logic from within InfoPath form templates (.xsn).

Microsoft.Office.Interop.InfoPath アセンブリおよび Microsoft.Office.Interop.InfoPath.Xml アセンブリの詳細については、Microsoft.Office.Interop.InfoPath 名前空間および Microsoft.Office.Interop.InfoPath.Xml 名前空間のドキュメントを参照してください。For information on the Microsoft.Office.Interop.InfoPath and Microsoft.Office.Interop.InfoPath.Xml assemblies, see the documentation for the Microsoft.Office.Interop.InfoPath and Microsoft.Office.Interop.InfoPath.Xml namespaces.

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

既定では、InfoPath セットアップ プログラムのインストール オプションで [ 標準] を選択すると、Microsoft.Office.Interop.InfoPath.SemiTrust アセンブリと Microsoft.Office.Interop.InfoPath.Xml アセンブリのコピーが C:\Program Files\Microsoft Office\Office14 フォルダーにインストールされます。また、Microsoft.Office.Interop.InfoPath アセンブリと Microsoft.Office.Interop.InfoPath.Xml アセンブリがグローバル アセンブリ キャッシュ (GAC) にインストールされます。グローバル アセンブリ キャッシュ (GAC) の内容は、C:\Windows\Assembly フォルダーから見ることができます。By default, the Typical installation option of the InfoPath setup program installs copies of the Microsoft.Office.Interop.InfoPath.SemiTrust and Microsoft.Office.Interop.InfoPath.Xml assemblies in the C:\Program Files\Microsoft Office\Office14 folder. The Microsoft.Office.Interop.InfoPath and Microsoft.Office.Interop.InfoPath.Xml assemblies are also installed in the Global Assembly Cache (GAC), the contents of which can be viewed from the C:\Windows\Assembly folder.

これらのアセンブリがインストールされていない場合は、Microsoft InfoPath が正しくインストールされていることを確認する必要があります。セットアップを実行する前に .NET Framwork 2.0 以降がインストールされていれば、[ 標準] を選択して InfoPath をインストールすると、InfoPath セットアップ プログラムの [ .NET プログラミング サポート] オプションが [ マイ コンピューターから実行] に設定されます。コンピューターでこれらの相互運用アセンブリを使用できない場合は, .NET Framework 2.0 以降がインストールされていることを確認する必要があります。その後、[ コントロール パネル] の [ プログラムの追加と削除] を実行して、[ .NET プログラミング サポート] オプションを [ マイ コンピューターから実行] に設定します。If these assemblies are not installed, you should confirm that Microsoft InfoPath was installed correctly. As long as the .NET Framework 2.0 or later is installed before running setup, the .NET Programmability Support option in the InfoPath setup program is set to Run from My Computer for a Typical installation of InfoPath. If these interop assemblies are not available on your computer, you must confirm that the .NET Framework 2.0 or later is installed, and then run Add or Remove Programs from the Control Panel and set the .NET Programmability Support option to Run from My Computer.

.NET Framework 2.0 再配布可能バージョンのダウンロードの詳細については、「.NET Framework 2.0 再配布可能バージョン」を参照してください。For information on downloading the .NET Framework 2.0 Redistributable, see .NET Framework 2.0 Redistributable.

Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間The Microsoft.Office.Interop.InfoPath.SemiTrust Namespace

Microsoft Office InfoPath 2003 Service Pack 1 および Microsoft Office InfoPath 2003 Toolkit for Visual Studio® .NET がリリースされるまでは、InfoPath フォーム テンプレートのすべてのプログラム ロジックは、Microsoft Script Editor (MSE) の開発環境で書かれた Microsoft JScript または Microsoft VBScript を使用して作成されていました。MSE で書かれたスクリプトは実行時に解釈され、IPEDITOR.dll ダイナミック リンク ライブラリによって公開される COM オブジェクト モデルにアクセスします。Prior to the release of Microsoft Office InfoPath 2003 Service Pack 1 and the Microsoft Office InfoPath 2003 Toolkit for Visual Studio® .NET, all programming logic for InfoPath form templates was created using Microsoft JScript or Microsoft VBScript written in the Microsoft Script Editor (MSE) development environment. Script written in MSE is interpreted at run time and accesses the COM object model exposed by the IPEDITOR.dll dynamic link library.

プログラム ロジックに Visual C# や Visual Basic のマネージ コード言語を使用するフォーム テンプレートの作成をサポートするために、共通言語ランタイム (CLR) をホストできるようにするための機能が InfoPath に追加され、InfoPath によって公開される COM オブジェクト モデルとマネージ コードとの相互運用を安全な形で実現するための Microsoft.Office.Interop.InfoPath.SemiTrust 相互運用アセンブリが作成されました。InfoPath マネージ コード フォーム テンプレートに適用されるセキュリティ モデルについては、「コードを含むフォーム テンプレートのセキュリティ モデルについて」を参照してください。To support the creation of form templates that use managed-code languages such as Visual C# and Visual Basic for programming logic, functionality was added to InfoPath to enable hosting the common language runtime (CLR) and the Microsoft.Office.Interop.InfoPath.SemiTrust interop assembly was created to enable managed code to interoperate with the COM object model exposed by InfoPath in a secure manner. For information on the security model that applies to InfoPath managed-code form templates, see About the Security Model for Form Templates with Code.

InfoPath フォーム テンプレートの特定のタスクのマネージ コードを書くプロセスは、同じプログラミング タスクをスクリプトを書いて実行する場合とよく似ていますが、Visual Studio 2012 の [ オブジェクト ブラウザー] で Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間を表示したときに公開される InfoPath 2003 互換オブジェクト モデルは、スクリプトの場合より、はるかに複雑に見えます。これは、InfoPath 2003 互換オブジェクト モデルをサポートするために使用される .NET Framework の相互運用技術では、COM サーバーのすべてのパブリック インターフェイスに加えて, .NET Framework 自体が必要とする追加のコンストラクトも COM サーバーで公開される必要があるためです。Although the process of writing managed code for a given task in an InfoPath form template is very similar to performing the same programming task by writing script, the InfoPath 2003-compatible object model exposed when viewing the Microsoft.Office.Interop.InfoPath.SemiTrust namespace from the Object Browser in Visual Studio 2012 looks much more complex. This is because the .NET Framework interoperability technology used to support the InfoPath 2003-compatible object model requires a COM server to expose all of its public interfaces, as well as some additional constructs required by the .NET Framework itself.

COM オブジェクトが InfoPath 2003 互換オブジェクト モデルに公開されるしくみHow COM Objects are Exposed to the InfoPath 2003 Compatible Object Model

JScript、VBScript、Visual Basic などの高水準言語 (.NET バージョンの Visual Basic や Visual C# は含まない) を使用して COM サーバーをネイティブで操作する場合、公開されるオブジェクト モデルは、基になる COM クラスや COM インターフェイスより単純になります。たとえば、これらの言語を使用した場合、InfoPath の UI オブジェクトでは 7 つのメソッドのセット (ユーザーにメッセージ ボックスを表示するための Alert メソッドなど) が公開されます。When working natively with a COM server from high-level languages such as JScript, VBScript, or Visual Basic (but not the .NET version of Visual Basic and Visual C#), the object model that is exposed is simpler than the underlying COM classes and interfaces. For example, when working from these languages, the InfoPath UI object exposes a set of seven methods, such as the Alert method for displaying a message box to users.

ただし、 UI オブジェクトをサポートする基になる COM コンストラクトは、実際には 3 つのエンティティで構成されています。 UIUI2 という 2 つのインターフェイスと、この 2 つのインターフェイスのメンバーを実装する COM コクラスです。 UI インターフェイスに 2 つのバージョンがあるのは、COM フレームワークでは、インターフェイスの実装を呼び出すプログラムやコンポーネントの下位互換性を維持するために、インターフェイスの定義を変更せずにおく必要があるためです。However, the underlying COM constructs that support the UI object are actually composed of three entities: two interfaces named UI and UI2, and a COM coclass that implements the members of these two interfaces. There are two versions of the UI interface because the COM framework requires the definition of an interface to remain fixed to maintain backward compatibility for programs and components that call an implementation of that interface.

この例では、InfoPath の最初のリリースのために定義された UI インターフェイスによって、 Alert メソッドなどの 4 つのメソッドが提供されます。 UI2 インターフェイスは、InfoPath Service Pack 1 リリースのために定義されたもので、 UI インターフェイスの 2 番目のバージョンと見なすことができます。 UI2 インターフェイスでは、元の UI インターフェイスの 4 つのメソッドが継承されているほか、3 つの新しいメソッド ( Confirm メソッドなど) が追加されています。スクリプトでもマネージ コードでも、 **** を使用して XDocument.UI.Confirm メソッドを呼び出すコード行を書くことができますが、基になるコードで実際に呼び出されるのは、COM コクラスに実装されている UI2 インターフェイスの Confirm メソッドです。In this case, the UI interface, which was defined for the initial release of InfoPath, provides four methods, including the Alert method. The UI2 interface can be considered a second version of the UI interface, and it was defined for the InfoPath Service Pack 1 release. The UI2 interface inherits the four methods of the original UI interface and adds three new methods, such as the Confirm method. Although you can write a line of code either in script or managed code that calls the Confirm method using XDocument.UI.Confirm, the underlying code is actually calling the Confirm method of the UI2 interface from the implementation of that method in the COM coclass.

スクリプト環境に公開されるオブジェクト モデルではこれらの詳細が隠されていますが、マネージ コードから COM サーバーを操作する必要がある相互運用アセンブリでは、コクラスと両方のインターフェイスが公開されます。MSE スクリプト環境で使用される単一の UI オブジェクトに対して、 Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間では次の 3 つのアイテムが公開されます。The object model as it is exposed to scripting hides these details, but the interop assembly required to work with a COM server from managed code exposes the coclass and both interfaces publicly. For the single UI object used in the MSE scripting environment, the Microsoft.Office.Interop.InfoPath.SemiTrust namespace exposes the following three items:

  • UI インターフェイスUI interface

  • UI2 インターフェイスUI2 interface

  • UIObject コクラス インターフェイスUIObject coclass interface

これら 3 つのインターフェイスのすべてが [ オブジェクト ブラウザー] で公開され、この名前空間のクラス ライブラリ ドキュメントにも含まれています。ただし、実際に使用するのは、 UI オブジェクトを実装する UIObject コクラス インターフェイスと、 UIObject コクラス インターフェイスによって実装されるインターフェイスの最新バージョンである UI2 インターフェイスのメンバーのみです。 UIObject コクラス インターフェイスにその親の XDocument オブジェクトからアクセスするには、スクリプトの場合と同様に、 UI アクセサー プロパティを使用します。いくつかの重要な例外を除いては、InfoPath の最初のリリースから含まれていて InfoPath Service Pack 1 のリリース時に更新されたすべてのオブジェクトに、このパターンが当てはまります。Although all three of these interfaces are exposed in the Object Browser and are contained in the Class Library documentation for the namespace, you only work with the UIObject coclass interface, which implements the UI object, and with the members of the UI2 interface, which is the most current version of the interface that is implemented by the UIObject coclass interface. To access the UIObject coclass interface from its parent XDocument object, just as in script, you use the UI accessor property. Except for a few notable exceptions, this is the pattern for all objects from the original release of InfoPath that were updated when InfoPath Service Pack 1 was released.

Certificate オブジェクトなど、InfoPath Service Pack 1 で追加された新しいオブジェクトでは、基本的なパターンは同じですが、状況がいくぶん単純になります。この場合、関係のあるアイテムは 2 つだけです。1 つは、 CertificateObject コクラス インターフェイス、もう 1 つは、 CertificateObject コクラス インターフェイスによって実装される最新かつ唯一のインターフェイスである Certificate インターフェイスのメンバーです。このオブジェクトに親からアクセスするには、スクリプトから InfoPath COM オブジェクトを使用する場合と同様に、 Certificate アクセサー プロパティを使用します。While the pattern is basically the same, the situation is slightly simpler for the entirely new objects that were added in InfoPath Service Pack 1, such as the Certificate object. In this case, there are only two items to be concerned with: the CertificateObject coclass interface and the members of the Certificate interface, which is the most recent and only interface implemented by the CertificateObject coclass interface. Just as when using InfoPath COM objects from script, the Certificate accessor property is used to access the object from its parent.

コレクションのインターフェイスにも同じパターンが当てはまります。ただし、コレクションのコクラス インターフェイスの名前には、"Object" ではなく "Collection" が付きます。たとえば、COM DataAdapters コレクションのコクラス インターフェイスの名前は DataAdaptersCollection で、このコクラス インターフェイスが実装するインターフェイスは DataAdapters インターフェイスです。コレクションへのアクセスに XDocument 親オブジェクトの DataAdapters アクセサー プロパティを使用する点も同様です。This same pattern applies to the interfaces for collections, except the coclass interface for a collection has "Collection" appended to its name instead of "Object". For example, the coclass interface for the COM DataAdapters collection is named DataAdaptersCollection and the interface it implements is the DataAdapters interface. Similarly, the DataAdapters accessor property of the XDocument parent object is used to access the collection.

この命名パターンには 3 つの例外があります。COM Application オブジェクトと COM XDocument オブジェクトのコクラス インターフェイスの名前には、"Object" が付きません。これらの名前は、対応する COM オブジェクトと同じ Application および XDocument になります。また、 Application コクラス インターフェイスと XDocument コクラス インターフェイスによって実装されるインターフェイスの名前は、先頭にアンダースコア文字 () が付いて、 _Application2 および _XDocument2 になります。3 つ目の例外は、COM DataObject オブジェクトです。このオブジェクトのコクラス インターフェイスの名前は、 DataSourceObject です。ただし、このコクラス インターフェイスが実装するインターフェイスは、他の InfoPath COM オブジェクトと同様に、 DataObject になります。There are three exceptions to this naming pattern. The coclass interfaces for the COM Application and XDocument objects do not have "Object" appended to their names. Their names are identical to their corresponding COM objects: Application and XDocument. Additionally, the names of the interfaces implemented by the Application and XDocument coclass interfaces are prefixed with the underscore character (): _Application2 and _XDocument2 . The third exception is the COM DataObject object. The coclass interface for this object is named DataSourceObject , but just like other InfoPath COM objects, the interface it implements is the DataObject interface.

Microsoft XML Core Services (MSXML) 5.0 for Microsoft Office オブジェクトが InfoPath 2003 互換オブジェクト モデルに公開されるしくみHow Microsoft XML Core Services (MSXML) 5.0 for Microsoft Office Objects are Exposed to the InfoPath 2003 Compatible Object Model

COM サーバーでもある Microsoft XML Core Services (MSXML) によって提供されるオブジェクト モデルのオブジェクトとメンバーのサブセットが、Microsoft.Office.Interop.InfoPath.SemiTrust 相互運用アセンブリによって公開されるインターフェイスでラップされます。これが必要になるのは、InfoPath COM オブジェクト モデルの一部のメンバーが MSXML に依存しており、それらのメンバーに安全な形でアクセスできるようにする必要があるからです。MSXML オブジェクト モデルのオブジェクトやメンバーをラップする Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間のインターフェイスの名前は、MSXML COM サーバーによって公開される名前と同じです。ほとんどの場合、これらの名前には、"IXMLDOM" というプレフィックスが付いています。これは、それらが XML Document Object Model (DOM) の操作に使用されるためです。たとえば、フォームの基になる XML ドキュメントへの参照を取得するために使用される XDocument インターフェイスの DOM プロパティは、Microsoft.Office.Interop.InfoPath.SemiTrust 相互運用アセンブリによってラップされた IXMLDOMDocument インターフェイスを返します。 IXMLDOMDocument インターフェイスのメンバーを呼び出して使用する方法は、マネージ コードを使用しないフォーム テンプレートでスクリプトを使用する場合と基本的に同じです。A subset of the objects and members of the object model provided by Microsoft XML Core Services (MSXML), which is also a COM server, are wrapped by interfaces exposed by the Microsoft.Office.Interop.InfoPath.SemiTrust interop assembly. The reason this is necessary is that some of the members of the InfoPath COM object model rely on MSXML and must be able to access these members in a secure manner. The names of interfaces in the Microsoft.Office.Interop.InfoPath.SemiTrust namespace that wrap the objects and members of the MSXML object model are the same as the names exposed by the MSXML COM server. In most cases, these names are prefixed with "IXMLDOM" because they are used to work with the XML Document Object Model (DOM). For example, the DOM property of the XDocument interface, which is used to return a reference to a form's underlying XML document, returns the IXMLDOMDocument interface that is wrapped by the Microsoft.Office.Interop.InfoPath.SemiTrust interop assembly. You call and use the members of the IXMLDOMDocument interface in basically the same way as when using script in form templates that don't use managed code.

マネージ コード フォーム テンプレートで Microsoft XML Core Services (MSXML) for Microsoft Office オブジェクト モデルのメンバーを使用する方法の詳細については、「InfoPath 2003 オブジェクト モデルを使用して MSXML および System.Xml を操作する」を参照してください。For more information on using members of the Microsoft XML Core Services (MSXML) for Microsoft Office object model in managed-code form templates, see Working with MSXML and System.Xml Using the InfoPath 2003 Object Model.

IntelliSense を使用するUsing IntelliSense

thisXDocument 変数と thisApplication 変数は、マネージ コード フォーム テンプレートで InfoPath 2003 互換オブジェクト モデルに対して書かれるほとんどのコードで使用されます。これらの変数は、既定のクラス ファイル FormCode.cs または FormCode.vb の _Startup メソッドで初期化されます。この thisXDocument 変数と thisApplication 変数を使用して、 XDocument コクラス インターフェイスと Application コクラス インターフェイスのメンバーにアクセスすることができます。いずれかの変数の名前を入力し、続けてピリオドを入力すると、IntelliSense のステートメント入力候補機能により、対応するコクラス インターフェイスのメンバーの一覧が表示されます。このように操作を続けることで、使用するオブジェクト モデル メンバーにアクセスできます。For most of the code you write against the InfoPath 2003-compatible object model in a managed-code form template, you will use the thisXDocument and thisApplication variables that are initialized in the _Startup method of the default FormCode.cs or FormCode.vb class file. You can use the thisXDocument and thisApplication variables to access the members of the XDocument and Application coclass interfaces. After you type the name of either variable followed by a period, IntelliSense statement completion will display the list members of the corresponding coclass interface. You can continue in this fashion to access the object model member you want to work with.

次の単純な例では、 thisXDocument 変数を使用して Alert メソッドにアクセスし、 変数からアクセスした thisApplication プロパティを使用して InfoPath アプリケーションのバージョンを表示しています。The following shows a simple example that uses the thisXDocument variable to access the Alert method to display the version of the InfoPath application by using the Version property accessed from the thisApplication variable.

thisXDocument.UI.Alert(thisApplication.Version);
thisXDocument.UI.Alert(thisApplication.Version)

クラス ライブラリ リファレンス ドキュメントを使用するUsing the Class Library Reference Documentation

Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間のクラス ライブラリ リファレンス ドキュメントの構成は、コクラス インターフェイスと、そのコクラス インターフェイスによって実装される継承インターフェイスとの関係を反映しています。詳細については、このトピックの前方にある「COM オブジェクトが InfoPath 2003 互換オブジェクト モデルに公開されるしくみ」を参照してください。The organization of the Microsoft.Office.Interop.InfoPath.SemiTrust namespace Class Library reference documentation reflects the relationships between coclass interfaces and the inherited interfaces they implement. This is described in the "How COM Objects are Exposed to Managed Code" section earlier in this topic.

Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間のリファレンス ドキュメントの構成と命名体系は、一見わかりにくく見えますが、そのトピックの構成は、InfoPath に付属の『InfoPath 開発者リファレンス』の一部である『InfoPath オブジェクト モデル リファレンス』と基本的に同じです。 Application インターフェイスと XDocument インターフェイスのトピックを例外として、その他の COM コクラス インターフェイスのすべてのトピックは、『InfoPath スクリプト リファレンス』の対応する "オブジェクト" および "コレクション" のトピックに対応しています。たとえば、 Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間のリファレンス ドキュメントのトピック「UIObject インターフェイス」および「WindowsCollection インターフェイス」は、InfoPath オブジェクト モデル リファレンスのスクリプト リファレンスの同等の内容を持つトピック「UI オブジェクト」および「Windows コレクション」に対応しています。Although the organization and naming of the Microsoft.Office.Interop.InfoPath.SemiTrust namespace reference documentation appears confusing at first, the topics are basically organized in the same way as the InfoPath Object Model Reference that is part of the InfoPath Developer's Reference, which is included with InfoPath. With the exception of the topics for the Application and XDocument interfaces, all of the COM coclass interface topics map to the equivalent "Object" and "Collection" topics from the InfoPath scripting reference. For example, the "UIObject Interface" and the "WindowsCollection Interface" topics of the Microsoft.Office.Interop.InfoPath.SemiTrust namespace reference documentation correspond to similar content in the "UI Object" and "Windows Collection" topics of the InfoPath Object Model Reference scripting reference.

ただし、トピックの冒頭のインターフェイスの説明に続くコクラス インターフェイスのメンバーへのリンクでは、空のトピックが表示されます。コクラス インターフェイスによって実装されるメンバーの一覧を表示するには、そのコクラスによって継承される最も新しいインターフェイスのトピックを開き、そのメンバーの表を開く必要があります。継承インターフェイスへのリンクは、コクラス インターフェイスのトピックの「解説」セクションの先頭にあります。However, the link to the members of the coclass interface following the description of the interface at the beginning of the topic displays an empty topic. To display the list of members that are implemented by the coclass interface, you must open the topic for the most recent interface that is inherited by the coclass, and then open the table of its members. A link to the inherited interface is provided at the beginning of the Remarks section in the coclass interface topic.

コード エディターで F1 キーを押した場合の動作は、インターフェイスのメンバーを操作している場合がほとんどなので、F1 ヘルプを呼び出したメンバーが直接表示される以外は、ほとんど同じです。ただし、メンバーがバージョン付きのインターフェイスから実装される場合があるという点で、初めは混乱する可能性があります。たとえば、「 thisXDocument.UI.Alert」と入力し、 Alert にカーソルを置いて F1 キーを押すと、「UI2.Alert メソッド」というタイトルのトピックが表示されます。これは、 Alert メソッドが UI2 インターフェイスのメンバーの実装であるからです。When you press F1 in the Code Editor, the behavior is similar, except that the member on which you invoke F1 Help will be displayed directly, because you are most typically working with members of an interface. However, the fact that a member can be implemented from a versioned interface may be confusing the first time you encounter it. For example, if you type thisXDocument.UI.Alert and place the cursor on Alert and press F1, a topic titled "UI2.Alert Method" is displayed. This is because the Alert method is an implementation of a member of the UI2 interface.

InfoPath オブジェクト モデルのメンバーにオプションのパラメーターを渡すPassing Optional Parameters to InfoPath Object Model Members

InfoPath 2003 互換オブジェクト モデルのメンバーにオプションのパラメーターが含まれていて、そのパラメーターの値を指定しない場合は、代わりに Type.Missing フィールドを渡す必要があります。実際の値を省略する場合に Type.Missing フィールドを渡さないと、ビルド エラーが発生します。これは、Visual C# と Visual Basic のどちらで書かれたコードにも当てはまります。たとえば、 ViewObject インターフェイスの SelectNodes メソッドには、 varEndNodevarViewContext という 2 つのオプション パラメーターが含まれています。これらのオプション パラメーターに対して実際の値を指定しないコード行は、次のようになっている必要があります。If an InfoPath 2003-compatible object model member contains an optional parameter, and you do not specify a value for that parameter, you must pass the Type.Missing field for that parameter instead. Failure to pass the Type.Missing field when an actual value is omitted will result in a build error. This is true for code written in both Visual C# and Visual Basic. For example, the SelectNodes method of the ViewObject interface includes two optional parameters: varEndNode and varViewContext. A line of code that does not specify actual values for these optional parameters should look like the following examples.

IXMLDOMNode group1 = 
   thisXDocument.DOM.selectSingleNode("/my:myFields/my:group1");
thisXDocument.View.SelectNodes(group1, Type.Missing, Type.Missing);
Dim group1 As IXMLDOMNode = _
   thisXDocument.DOM.selectSingleNode("/my:myFields/my:group1")
thisXDocument.View.SelectNodes(group1, Type.Missing, Type.Missing)

共通言語仕様の準拠About Common Language Specification Compliance

Microsoft.Office.Interop.InfoPath.SemiTrust アセンブリのすべてのインターフェイスとメンバーは、内部で CLSCompliant 属性が false に設定されています。リファレンス ドキュメントは一部 System.Reflection を使用して生成されるため、各インターフェイスおよびメンバーの説明に、"このインターフェイス/メソッド/プロパティは CLS に準拠していません" という記述が含まれています。しかし、実際には、 Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間のほとんどのインターフェイスとメンバーが CLS に準拠しています。Internally, every interface and member in the Microsoft.Office.Interop.InfoPath.SemiTrust assembly has its CLSCompliant attribute set to false. Because the reference documentation is generated in part using System.Reflection, the description of each interface and member has the phrase "This interface/method/property is not CLS-compliant" appended to it. However, most of the interfaces and members of the Microsoft.Office.Interop.InfoPath.SemiTrust namespace actually are CLS-compliant.

関連項目See also