XPS ドキュメントに署名要求を追加する
このトピックでは、XPS ドキュメントに署名要求を追加する方法について説明します。 署名要求では、ユーザーが署名の意図に同意した場合に、ドキュメントへの署名を求めます。
プログラムで次のコード例を使用する前に、「一般的なデジタル署名プログラミング タスク」の免責事項をお読みください。
XPS ドキュメントに署名要求を追加するには、次のようにします。
- 「署名マネージャーの初期化」の説明に従って、XPS ドキュメントを署名マネージャーに読み込みます。
- 署名マネージャーに署名ブロックを追加します。
- 新しい署名ブロックに署名要求を作成します。
- 署名要求のプロパティを設定します。
- 署名の意図を設定します。
- 署名が要求されるユーザー (要求された署名者) の名前を設定します。
- 署名が要求される日付を設定します。
- 必要に応じて、その他の署名プロパティを設定します。
次のコード例は、XPS ドキュメントに署名要求を追加する方法を示しています。
HRESULT
AddSignatureRequestToDocument (
__in IXpsSignatureManager *signatureManager,
__in LPCWSTR reasonForSignatureRequest,
__in LPCWSTR nameOfRequestedSigner,
__in LPCWSTR requestSignByDate
)
{
HRESULT hr = S_OK;
IXpsSignatureBlock *signatureDefinition = NULL;
IXpsSignatureRequest *signatureRequest = NULL;
// Create a new signature block and get a pointer to it
hr = signatureManager->AddSignatureBlock (NULL, 0, &signatureDefinition);
if (SUCCEEDED(hr)) {
// Create a new signature request to use for this signature block
hr = signatureDefinition->CreateRequest(NULL, &signatureRequest);
}
if (SUCCEEDED(hr)) {
// Initialize the properties of the signature request
// Set the string that describes the purpose of the signature
// to the person who will sign the document.
hr = signatureRequest->SetIntent(reasonForSignatureRequest);
}
if (SUCCEEDED(hr)) {
// Set the name of the person whose signature is requested.
hr = signatureRequest->SetRequestedSigner(nameOfRequestedSigner);
}
if (SUCCEEDED(hr)) {
// Set the date that the person should sign the document.
// The person is requested to sign the document on or before
// the date specified in this field. Refer to the help text
// for the correct format of this string.
hr = signatureRequest->SetRequestSignByDate(requestSignByDate);
}
if (NULL != signatureDefinition) signatureDefinition->Release();
if (NULL != signatureRequest) signatureRequest->Release();
return hr;
}
関連トピック
-
このセクションで使用
-
詳細情報