Document.ProtectDocument メソッド (2007 System)
更新 : 2008 年 7 月
Visual Studio Tools for Office ランタイムによって呼び出されます。これにより、キャッシュされたデータが保存された後でも文書にパスワード保護を再適用できるようになります。
名前空間 : Microsoft.Office.Tools.Word
アセンブリ : Microsoft.Office.Tools.Word.v9.0 (Microsoft.Office.Tools.Word.v9.0.dll 内)
構文
'宣言
Protected Overridable Sub ProtectDocument
'使用
Me.ProtectDocument()
protected virtual void ProtectDocument()
解説
パスワードで保護された文書内のキャッシュされたデータが実行時に変更される可能性がある場合、Word のドキュメント レベルのプロジェクトでこのメソッドをオーバーライドします。このメソッドの実装では、Protect メソッドを使用して文書を保護します。
既定では、パスワードで保護された文書内のキャッシュされたデータへの変更は、文書が保存されるときには保持されません。キャッシュされたデータへの変更を保存するには、プロジェクトで次のメソッドをオーバーライドします。
UnprotectDocument. 文書を保存するとき、Visual Studio Tools for Office ランタイムはこのメソッドを呼び出します。このメソッドに、文書の保護を一時的に解除するコードを追加します。これにより、キャッシュされたデータへの変更を保存できるようになります。
ProtectDocument. 文書を保存した後、Visual Studio Tools for Office ランタイムはこのメソッドを呼び出します。このメソッドに、文書の保護を再適用するコードを追加します。
詳細については、「方法 : パスワードで保護されたドキュメント内のデータをキャッシュする」を参照してください。
パスワード保護とは関係のない何かのエラーが原因で、キャッシュされたデータを保存できなかった場合でも、Visual Studio Tools for Office ランタイムは ProtectDocument メソッドを呼び出します。たとえば、ICachedType インターフェイスを実装して、キャッシュされたデータを文書に保存する方法をカスタマイズしている場合、使用している ICachedType 実装が例外をスローし、キャッシュされたデータの保存が阻止されたときでも、ProtectDocument メソッドは呼び出されます。
例
次のコード例では、ProtectDocument メソッドをオーバーライドして、UnprotectDocument メソッドのオーバーライドにより削除された保護を再適用する方法を示します。このコードを使用する場合は、Word のドキュメント レベルのプロジェクトの ThisDocument クラスから実行してください。このコードでは、パスワードは securelyStoredPassword という名前のフィールドに格納されていることを前提としています。
<CachedAttribute()> _
Public CachedString As String = "This string is cached in the document."
Private protectionTypeValue As Word.WdProtectionType
Protected Overrides Sub UnprotectDocument()
If Me.ProtectionType <> Word.WdProtectionType.wdNoProtection Then
protectionTypeValue = Me.ProtectionType
Me.Unprotect(securelyStoredPassword)
End If
End Sub
Protected Overrides Sub ProtectDocument()
Me.Protect(protectionTypeValue, Password:=securelyStoredPassword)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the document.";
private Word.WdProtectionType protectionTypeValue;
protected override void UnprotectDocument()
{
if (this.ProtectionType != Word.WdProtectionType.wdNoProtection)
{
protectionTypeValue = this.ProtectionType;
this.Unprotect(ref securelyStoredPassword);
}
}
protected override void ProtectDocument()
{
this.Protect(protectionTypeValue, ref missing,
ref securelyStoredPassword, ref missing, ref missing);
}
アクセス許可
- 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。
参照
参照
Microsoft.Office.Tools.Word 名前空間
その他の技術情報
方法 : パスワードで保護されたドキュメント内のデータをキャッシュする
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2008 年 7 月 |
新しいトピックを追加 |
SP1 機能変更 |