Compartilhar via


Inicializar o Gerenciador de Assinaturas

Este tópico descreve como inicializar o gerenciador de assinaturas para uso com um documento XPS.

Antes de usar os exemplos de código a seguir em seu programa, leia o aviso de isenção de responsabilidade em Tarefas comuns de programação de assinatura digital.

Para usar os recursos do Windows 7 da API de Criptografia, defina o símbolo CRYPT_OID_INFO_HAS_EXTRA_FIELDS da seguinte maneira:

#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS

Em seguida, instancie uma interface IXpsSignatureManager chamando CoCreateInstance, conforme mostrado no exemplo de código a seguir.

IXpsSignatureManager    *newInterface;

// Note the implicit requirement that CoInitializeEx 
//  has previously been called from this thread.

hr = CoCreateInstance(
    __uuidof(XpsSignatureManager),
    NULL, 
    CLSCTX_INPROC_SERVER,
    __uuidof(IXpsSignatureManager),
    reinterpret_cast<LPVOID*>(&newInterface));

// make sure that you got a pointer 
// to the interface
if (SUCCEEDED(hr)) {
    // Load document into signature manager from file.
    //  xpsDocument is initialized with the file name
    //  of the document to load outside of this example.
    hr = newInterface->LoadPackageFile (xpsDocument);

    // Use newInterface

    // Release interface pointers when finished with them 
    newInterface->Release();
}    

A interface instanciada por CoCreateInstance pode ser usada por apenas um documento XPS, que deve ser carregado chamando LoadPackageFile ou LoadPackageStream antes de chamar qualquer outro método.

Depois que a interface IXpsSignatureManager tiver sido instanciada e um documento XPS tiver sido carregado, o gerenciador de assinaturas estará pronto para uso.

Próximas Etapas 

Assinar um documento

Adicionar uma solicitação de assinatura a um documento XPS

Verificar assinaturas de documento

Usado nesta seção

CoCreateInstance

IXpsSignatureManager

Para obter mais informações

Erros de API de Assinatura Digital do XPS

Erros de documento XPS

Especificação de papel XML