Agregar una solicitud de firma a un documento XPS
En este tema se describe cómo agregar una solicitud de firma a un documento XPS. Una solicitud de firma pide a un usuario que firme un documento si está de acuerdo con la intención de firma.
Antes de usar los siguientes ejemplos de código en el programa, lea la declinación de responsabilidades en Tareas comunes de programaciónde firmas digitales.
Para agregar una solicitud de firma a un documento XPS:
- Cargue el documento XPS en un administrador de firmas, como se describe en Inicializar el Administradorde firmas.
- Agregue un bloque de firma al administrador de firmas.
- Cree una solicitud de firma en el nuevo bloque de firma.
- Establezca las propiedades de la solicitud de firma:
- Establezca la intención de firma.
- Establezca el nombre de la persona cuya firma se solicita (el firmante solicitado).
- Establezca la fecha en que se requiere la firma.
- Establezca otras propiedades de firma según sea necesario.
En el ejemplo de código siguiente se muestra cómo agregar una solicitud de firma a un documento 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;
}
Temas relacionados
-
Usado en esta sección
-
Para obtener más información