Microsoft.Office.Interop.InfoPath.SemiTrust メンバーは InfoPath と互換性がありませんを使用します。Use Microsoft.Office.Interop.InfoPath.SemiTrust members not compatible with InfoPath

Microsoft Office InfoPath 2003 Toolkit を使用して作成されたフォーム テンプレートにコードを追加または、InfoPath 2003 と互換性のあるオブジェクト モデル (InfoPath 2003 オブジェクトを使用してフォーム テンプレートの作成で説明したように動作する新しいフォーム テンプレートを作成するとモデル)、既定では、Microsoft InfoPath は、オブジェクトのサブセットを使用し、メンバーと同じものに使用されている InfoPath 2003 でMicrosoft.Office.Interop.InfoPath.SemiTrust名前空間によって提供されます。When you add code to a form template that was created with the Microsoft Office InfoPath 2003 Toolkit or create a new form template that works with the InfoPath 2003-compatible object model (as described in Create a Form Template Using the InfoPath 2003 Object Model), by default, Microsoft InfoPath will use a subset of the objects and members provided by the Microsoft.Office.Interop.InfoPath.SemiTrust namespace that are identical to those used by InfoPath 2003. これは、InfoPath 2003 との互換性を維持するための措置です。This is done to provide compatibility with InfoPath 2003. しかし、 Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間によって提供されるオブジェクト モデルには、Office InfoPath 2007 および InfoPath で追加された新機能を提供する追加のオブジェクトやメンバーも含まれています。However, the object model provided by the Microsoft.Office.Interop.InfoPath.SemiTrust namespace includes additional objects and members that provide new functionality that was added to Office InfoPath 2007 and InfoPath.

たとえば、PermissionObject インターフェイスと Permission インターフェイスによって提供される新機能である Information Rights Management は、InfoPath 2003 では使用できません。この新機能や、Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間に追加されたその他の新しいオブジェクトは、InfoPath 2003 互換オブジェクト モデルを使用するマネージ コード フォーム テンプレートを開いたり作成したりした場合に既定では使用できません。For example, the PermissionObject and Permission interfaces provide new information rights management functionality that is not available in InfoPath 2003. This, and other new objects added to the Microsoft.Office.Interop.InfoPath.SemiTrust namespace are not available by default when you open or create managed code form template with InfoPath 2003-compatible object model.

同様に、_XDocument2 インターフェイスが InfoPath 2003 と同じ機能を提供するのに対し、 _XDocument3 インターフェイスは、Office InfoPath 2007 で追加されたプロパティやメソッドを含むようにバージョンアップされ、 _XDocument4 は、InfoPath で追加されたプロパティやメソッドを含むようにバージョンアップされています。Similarly, while the _XDocument2 interface provides the same functionality as InfoPath 2003; the _XDocument3 interface has been versioned to include additional properties and methods that were added in Office InfoPath 2007, and the _XDocument4 has been versioned to include additional properties and methods that were added in InfoPath.

Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間によって提供されるオブジェクト モデルを使用して作成したフォーム テンプレート プロジェクトで、Office InfoPath 2007 または InfoPath で追加されたオブジェクトやメンバーを使用することもできますが、それらのメンバーを使用するコードでは、InfoPath 2003 との互換性が失われます。If you want to use objects and members that were added in Office InfoPath 2007 or InfoPath in a form template project created using the object model provided by the Microsoft.Office.Interop.InfoPath.SemiTrust namespace, you can do so, but code that uses these members will not be compatible with InfoPath 2003.

注意

Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間によって提供されるオブジェクト モデルを使用して作成したビジネス ロジックを含むすべてのフォーム テンプレートは、InfoPath と互換性のあるオブジェクトやメンバーを使用しているかどうかに関係なく、InfoPath Forms Services を実行する Microsoft SharePoint Server 2010 に展開されたブラウザー対応のフォーム テンプレートではサポートされません。ブラウザー対応フォーム テンプレートのビジネス ロジックでは、 Microsoft.Office.InfoPath 名前空間によって提供される新しい InfoPath マネージ コード オブジェクト モデルを使用する必要があります。All form templates with business logic created using the object model provided by the Microsoft.Office.Interop.InfoPath.SemiTrust namespace, whether they use objects and members compatible with InfoPath or not, are not supported for browser-enabled form templates deployed to Microsoft SharePoint Server 2010 with InfoPath Forms Services. Business logic for browser-enabled form templates must use the new InfoPath managed code object model provided by the Microsoft.Office.InfoPath namespace.

Example

新しいオブジェクト モデルのメンバーにアクセスするための XDocument オブジェクト変数または Application オブジェクト変数を作成するCreating an XDocument or Application Object Variable to Access New Object Model Members

Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間で使用できる新しいオブジェクトやメンバーにアクセスするには、オブジェクト変数を宣言して、それらのメンバーを実装する正しいバージョンのインターフェイスにキャストする必要があります。既定では、 thisXDocument 変数と thisApplication 変数は、対応する _XDocument2 インターフェイスと _Application2 インターフェイスの InfoPath 2003 互換バージョンにアクセスします。新機能へのアクセスを提供する _XDocument3 インターフェイスと _Application3 インターフェイスにアクセスするには、 _XDocument3 型または _Application3 型のオブジェクト変数を宣言し、 thisXDocument 変数または thisApplication 変数によって返されるオブジェクトを同じ型にキャストする必要があります。以下に例を示します。To access the new objects and members that are available in the Microsoft.Office.Interop.InfoPath.SemiTrust namespace, you must declare and cast object variables to the correct version of the interface that implements these members. By default, the thisXDocument and thisApplication variables access the InfoPath 2003-compatible versions of the corresponding _XDocument2 and _Application2 interfaces. To access the _XDocument3 and _Application3 interfaces that provide access to new functionality, you must declare an object variable of the _XDocument3 or _Application3 type, and then cast the object returned by the thisXDocument or thisApplication variable to the same type as shown in the following examples.

// Declare an object variable of type _XDocument3 and
// cast the object returned by the thisXDocument variable to
// the same type.
_XDocument3 thisXDocument3 = (_XDocument3)thisXDocument;
' Declare an object variable of type _XDocument3 and
' cast the object returned by the thisXDocument variable to
' the same type.
Dim thisXDocument3 As _XDocument3 = _
   DirectCast(thisXDocument, _XDocument3)
// Declare an object variable of type _Application3 and
// cast the object returned by the thisApplication variable to
// the same type.
_Application3 thisApplication3 = (_Application3)thisXDocument;
' Declare an object variable of type _Application3 and
' cast the object returned by the thisXApplication variable to
' the same type.
Dim thisDocument As _XDocument3 = _
   DirectCast(thisXDocument, _XDocument3)

XDocument オブジェクト変数または Application オブジェクト変数からアクセサー プロパティを使用して新しいオブジェクトにアクセスするAccessing a New Object From The XDocument or Application Object Variable Using an Accessor Property

新しいバージョンの _ XDocument3 型または _Application3 型の変数を作成したら、それを使用して、InfoPath の新機能を提供するオブジェクトやメンバーにアクセスできます。After you have created a variable of the later version _ XDocument3 or _Application3 type, you can use it to access an object or member that provides new InfoPath functionality.

次の例は、_ XDocument3 型のオブジェクト変数を Permission アクセサー プロパティと共に使用して、新しい Permission インターフェイスとその Enabled プロパティにアクセスする方法を示しています。これにより、フォームでアクセス許可の設定が有効になっているかどうかを確認できます。The following example shows how to use an object variable of type _ XDocument3 with the Permission accessor property to access the new Permission interface and its Enabled property to determine if permission settings are enabled for the form.

// Declare an object variable of type _XDocument3 and
// cast the object returned by the thisXDocument variable to
// the same type.
_XDocument3 thisXDocument3 = (_XDocument3)thisXDocument;
// Use the object variable to access the later version object and
// property.
thisXDocument.UI.Alert(thisDocument3.Permission.Enabled.ToString());
' Declare an object variable of type _XDocument3 and
' cast the object returned by the thisXDocument variable to
' the same type.
Dim thisXDocument3 As _XDocument3 = _
   DirectCast(thisXDocument, _XDocument3)
' Use the object variable to access the later version object and
' property.
thisXDocument.UI.Alert(thisDocument3.Permission.Enabled.ToString())

バージョン付きのオブジェクトにアクセスしてバージョン付きの型にキャストするAccessing a Versioned Object and Casting to the Versioned Type

InfoPath 2003 オブジェクト モデルに存在していたオブジェクトに新しいプロパティやメソッドが追加された場合、それらの新しいメンバーを実装するオブジェクトにはバージョン付きの名前が付きます。If an object that existed in the InfoPath 2003 object model has new properties or methods added to it, the object that implements those new members will have a name that is versioned.

たとえば、ViewInfo オブジェクトでは、バージョン付きの ViewInfo2 オブジェクトを使用しないと利用できない 2 つの新しいプロパティ Caption および HideName にはアクセスできません。For example, the ViewInfo object does not provide access to two new properties that are only available when using the versioned ViewInfo2 object: the Caption and HideName properties.

これらのプロパティにアクセスするには、 ViewInfo2 型のオブジェクト変数を宣言し、_ XDocument3 オブジェクト変数の ViewInfos プロパティによって返されるオブジェクトを ViewInfo2 型にキャストする必要があります。以下に例を示します。To access these properties, you must declare an object variable of type ViewInfo2 and cast the object returned by the ViewInfos property of the _ XDocument3 object variable to the ViewInfo2 type as shown in the following example.

// Declare an object variable of type _XDocument3 and
// cast the object returned by the thisXDocument variable to
// the same type.
_XDocument3 thisXDocument3 = (_XDocument3)thisXDocument;
// Declare an object variable of type ViewInfo2 and cast the object 
// returned by the ViewInfos property to that type.
ViewInfo2 thisView = (ViewInfo2)thisXDocument3.ViewInfos["View2"];
// Display the value of the new HideName property.
thisXDocument3.UI.Alert(thisView.HideName.ToString());
' Declare an object variable of type _XDocument3 and
' cast the object returned by the thisXDocument variable to
' the same type.
Dim thisXDocument3 As _XDocument3 = _
   DirectCast(thisXDocument, _XDocument3)
' Declare an object variable of type ViewInfo2 and cast the object 
' returned by the ViewInfos property to that type.
Dim thisView As ViewInfo2 = _
   DirectCast(thisXDocument3.ViewInfos("View2"), ViewInfo2)
' Display the value of the new HideName property.
thisXDocument3.UI.Alert(thisView.HideName.ToString())