SmartTag.PersistTag メソッド (Int32, Int32, ) (2007 System)
更新 : 2007 年 11 月
スマート タグに関する情報を格納します。
名前空間 : Microsoft.Office.Tools.Word
アセンブリ : Microsoft.Office.Tools.Word.v9.0 (Microsoft.Office.Tools.Word.v9.0.dll 内)
構文
'宣言
Protected Sub PersistTag ( _
startIndex As Integer, _
length As Integer, _
propertyBag As ISmartTagProperties _
)
'使用
Dim startIndex As Integer
Dim length As Integer
Dim propertyBag As ISmartTagProperties
Me.PersistTag(startIndex, length, _
propertyBag)
protected void PersistTag(
int startIndex,
int length,
ISmartTagProperties propertyBag
)
パラメータ
startIndex
型 : System.Int32段落内でのスマート タグの開始位置。
length
型 : System.Int32スマート タグの長さ。
propertyBag
型 : ISmartTagPropertiesトークンのキーと値の組み合わせを格納しているプロパティ バッグ。nullnull 参照 (Visual Basic では Nothing) の場合があります。
例外
例外 | 条件 |
---|---|
InvalidOperationException | PersistTag(Int32, Int32, ISmartTagProperties) が、Recognize から呼び出されませんでした。 |
解説
PersistTag(Int32, Int32, ISmartTagProperties) は、認識されるタグをコミットします。スマート タグがテキスト内で見つかったことを示すには、これを Recognize メソッドから呼び出します。スマート タグ用の任意のカスタム プロパティをコミットするには、propertyBag パラメータを使用します。これらのプロパティを使用すると、スマート タグのショートカット メニューで項目の 1 つを選択した場合のアクションをカスタマイズできます。
例
Microsoft.Office.Tools.Word.SmartTag から派生するクラス内で Recognize メソッドをオーバーライドする方法のコード例を次に示します。この Recognize の実装例では、各スマート タグ項目と段落の内容とを比較します。このコードでは、段落内でスマート タグ項目が見つかると、カスタム スマート タグ プロパティを追加し、PersistTag(Int32, Int32, ISmartTagProperties) メソッドを使用してスマート タグを認識します。この例は、[参照の追加] ダイアログ ボックスの [COM] タブで、Microsoft Smart Tags 2.0 Type Library への参照が追加してあると仮定しています。次のコード例は、SmartTag クラス用のより大きなコード例の一部です。
Protected Overrides Sub Recognize(ByVal text As String, _
ByVal site As ISmartTagRecognizerSite, _
ByVal tokenList As ISmartTagTokenList)
' Determine whether each smart tag term exists in
' the document text.
Dim Term As String
For Each Term In Me.Terms
' Search the text for the current smart tag term.
Dim index As Integer = Me.ParagraphText.IndexOf(Term, 0)
While (index >= 0)
' Create a smart tag token and a property bag for the
' recognized term.
Dim propertyBag As ISmartTagProperties = _
site.GetNewPropertyBag()
' Write a new property value.
Dim key As String = "Key1"
propertyBag.Write(key, DateTime.Now)
' Attach the smart tag to the term in the document
Me.PersistTag(index, Term.Length, propertyBag)
' Increment the index and then find the next
' instance of the smart tag term.
index += Term.Length
index = ParagraphText.IndexOf(Term, index)
End While
Next
End Sub
protected override void Recognize(string text,
ISmartTagRecognizerSite site, ISmartTagTokenList tokenList)
{
foreach (string term in this.Terms)
{
// Search the text for the current smart tag term.
int index = this.ParagraphText.IndexOf(term, 0);
while (index >= 0)
{
// Create a smart tag token and a property bag for the
// recognized term.
ISmartTagProperties propertyBag =
site.GetNewPropertyBag();
// Write a new property value.
string key = "Key1";
propertyBag.Write(key, DateTime.Now.ToString());
// Attach the smart tag to the term in the document
this.PersistTag(index, term.Length, propertyBag);
// Increment the index and then find the next
// instance of the smart tag term.
index += term.Length;
index = ParagraphText.IndexOf(term, index);
}
}
}
アクセス許可
- 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。