Delphi - escolher certificado digital - early binding

Para acessar a DLL com early binding em Delphi é necessário criar a unit NFe_Util_2G_TLB.pas para integração com a DLL através do processo de import Type Library da DLL NFe_Util_2G.dll no Delphi:

•Abra um novo projeto;
•selecione a opção Import Type Library do menu Project;
•na janela Import Type Library, clique no botão Add;
•procure o arquivo NFe_2G_Util.tlb que existe na mesma pasta onde a DLL foi registrada;
•clique no botão Create Unit;
Este processo cria a unit NFe_Util_2G_TLB.pas necessária para fazer a interface com a DLL.

Exemplo para escolher um certificado digital em Delphi com early binding

para ter mais detalhes acesse http://www.flexdocs.com.br/guiaNFe/uso.html


//
//
// Exemplo para escolher um certificado digital
//
//
//
uses

(...), NFe_Util_2G_TLB, ComCtrls, ComObj; // acrescentar a NFe_Util_2G_TLB, ComCtrls e ComObj no use da unit


var

Util:NFe_Util_2G_Interface; // declarar a interface da DLL

i:integer;

nome, mensagem: Widestring; // todas as strings que serão utilizadas como parâmetro devem ser widestring

begin


Util := NFe_Util_2G_TLB.CoUtil.Create; // instancia DLL

//
// inicializa variáveis
//
nome := ''; // se nome não for informado, a DLL irá abrir uma caixa de diálogo
// para escolha do certificado digital.
mensagem := '';

//
// obtem o nomeCertificado (Assunto) do certificado
//

i:= Util.PegaNomeCertificado(nome, mensagem);

if i = 5401 then
MessageDlg( 'Certificado selecionado:'#13+#13+nome, mtInformation, [mbOk], 0)
else
MessageDlg( 'O Certificado:'#13+#13+nome+#13+#13+'não foi localizado no repositório de certificados!', mtInformation, [mbOk], 0);
//
// o nomeCertificado é o campo Assunto do Certificado Digital que identifica o titular
// do certificado digital.
//
// A DLL utiliza este campo Assunto para identificar o certificado digital utilizado nas
// funcionalidades.
//
// Após a obtenção do nomeCertificado, a aplicação deve "guardá-lo" em alguma área de
// configuração da aplicação, vinculando-o com o CNPJ e a chave da licença de uso da
// DLL que serão necessárias na maioria das chamadas da DLL.
//
// libera DLL
//
Util :=nil;
end;