次の方法で共有


XmlForm.Extension プロパティ

System.Reflection を使用してフォームのプライマリ フォーム コード ファイルに含まれる関数およびグローバル変数にアクセスするための Object を取得します。

名前空間:  Microsoft.Office.InfoPath
アセンブリ:  Microsoft.Office.InfoPath (Microsoft.Office.InfoPath.dll)

構文

'宣言
Public MustOverride ReadOnly Property Extension As Object
    Get
'使用
Dim instance As XmlForm
Dim value As Object

value = instance.Extension
public abstract Object Extension { get; }

プロパティ値

型: System.Object
System.Reflection を使用してフォームのプライマリ フォーム コード ファイルに含まれる関数およびグローバル変数にアクセスするための Object

解説

Extension プロパティによって返される System.Object を使用すると、InfoPath フォームのコード ファイルに実装されている関数とグローバル変数を簡単に使用できるようになります。通常はカスタム作業ウィンドウ、カスタム ダイアログ ボックス、または関数や変数への直接アクセスが必要な場合があるビューの XSL 変換 (XSLT) で使用します。

カスタム作業ウィンドウ内で System.Object を使用するには、最初に、DHTML window オブジェクトのダイナミック HTML (DHTML) external プロパティを使用して、XmlForm オブジェクトへの参照を設定する必要があります。次に例を示します。

objXmlForm = window.external.XmlForm;

このメンバーには、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームのみがアクセスできます。

この型またはメンバーには、Microsoft InfoPath Filler で開かれたフォームを実行中のコードからのみアクセスできます。

次のコードの例では、Extension プロパティを使用して System.Object を返し、MyMethod というカスタム メソッドを呼び出します。

object extObj = this.Extension;
extObj.GetType().InvokeMember("MyMethod",
   BindingFlags.InvokeMethod |
   BindingFlags.DeclaredOnly |
   BindingFlags.Public |
   BindingFlags.Instance, null, extObj, null);
Dim extObj As Object extObj = Me.Extension
extObj.GetType().InvokeMember("MyMethod", _
   BindingFlags.InvokeMethod Or _
   BindingFlags.DeclaredOnly Or _
   BindingFlags.Public Or _
   BindingFlags.Instance, Nothing, extObj, Nothing)

次のコードの例では、InfoPath フォーム コード プロジェクト クラスの myCustomMethod というメソッドに、Extension プロパティを使用してカスタム作業ウィンドウからアクセスできることを示しています。

// Custom method added to the form code project.
public string myCustomMethod()
{
   return "Method value";
}
' Custom method added to the form code project.
Function myCustomMethod() As String
   myCustomMethod = "Method value"
End Function

カスタム作業ウィンドウのスクリプトから myCustomMethod にアクセスするには、DHTML window オブジェクトの DHTML external プロパティを使用します。

objXmlForm = window.external.XmlForm;
myString = objXmlForm.Extension.myCustomMethod();
Dim objXmlForm
Dim myString
Set objXmlForm = window.external.XmlForm
myString = objXmlForm.Extension.myCustomMethod()

関連項目

参照

XmlForm クラス

XmlForm メンバー

Microsoft.Office.InfoPath 名前空間