Funções exportadas para registrar os callbacks
Para que o client tenha conhecimento das funções da automação que ele irá executar, essas funções devem ser registradas. Seguem as funções disponibilizadas na DLL DPOSDRV.DLL
para esse fim (a declaração está na linguagem C).
extern "C" {
void DIRETIVA_CALLBACK RegPDVDisplayTerminal(pCallBackDisplayTerminal);
void DIRETIVA_CALLBACK RegPDVDisplayErro(pCallBackDisplayErro);
void DIRETIVA_CALLBACK RegPDVMensagem(pCallBackMensagem);
void DIRETIVA_CALLBACK RegPDVBeep(pCallBackBeep);
void DIRETIVA_CALLBACK RegPDVSolicitaConfirmacao(pCallBackSolicitaConfirmacao);
void DIRETIVA_CALLBACK RegPDVEntraCartao(pCallBackEntraCartao);
void DIRETIVA_CALLBACK RegPDVEntraDataValidade(pCallBackEntraDataValidade);
void DIRETIVA_CALLBACK RegPDVEntraData(pCallBackEntraData);
void DIRETIVA_CALLBACK RegPDVEntraCodigoSeguranca(pCallBackEntraCodigoSeguranca);
void DIRETIVA_CALLBACK RegPDVSelecionaOpcao(pCallBackSelecionaOpcao);
void DIRETIVA_CALLBACK RegPDVEntraValor(pCallBackEntraValor);
void DIRETIVA_CALLBACK RegPDVEntraNumero(pCallBackEntraNumero);
void DIRETIVA_CALLBACK RegPDVOperacaoCancelada(pCallBackOperacaoCancelada);
void DIRETIVA_CALLBACK RegPDVSetaOperacaoCancelada(pCallBackSetaOperacaoCancelada);
void DIRETIVA_CALLBACK RegPDVProcessaMensagens(pCallBackProcessaMensagens);
void DIRETIVA_CALLBACK RegPDVEntraString(pCallBackEntraString);
void DIRETIVA_CALLBACK RegPDVConsultaAVS(pCallBackConsultaAVS);
void DIRETIVA_CALLBACK RegPDVMensagemAdicional(pCallBackMensagemAdicional);
void DIRETIVA_CALLBACK RegPDVImagemAdicional(pCallBackImagemAdicional);
void DIRETIVA_CALLBACK RegPDVEntraCodigoBarras(pCallBackEntraCodigoBarras);
void DIRETIVA_CALLBACK RegPDVEntraCodigoBarrasLido(pCallBackEntraCodigoBarrasLido);
void DIRETIVA_CALLBACK RegPDVMensagemAlerta(pCallBackMensagemAlerta);
void DIRETIVA_CALLBACK RegPDVPreviewComprovante(pCallBackPreviewComprovante);
void DIRETIVA_CALLBACK RegPDVSelecionaPlanos(pCallBackSelecionaPlanos);
void DIRETIVA_CALLBACK RegPDVSelecionaPlanosEx(pCallBackSelecionaPlanosEx);
void DIRETIVA_CALLBACK RegPDVEntraValorEspecial(pCallBackEntraValorEspecial);
void DIRETIVA_CALLBACK RegPDVComandos(pCallBackComandos);
}
Declaração dos parâmetros das funções
As funções passadas como parâmetros para os procedimentos de registro declarados acima deverão seguir a estrutura definida abaixo.
typedef void (DIRETIVA_CALLBACK *pCallBackDisplayTerminal)(char *pMensagem);
typedef void (DIRETIVA_CALLBACK *pCallBackDisplayErro)(char *pMensagem);
typedef void (DIRETIVA_CALLBACK *pCallBackMensagem)(char *pMensagem);
typedef void (DIRETIVA_CALLBACK *pCallBackBeep)(void);
typedef int (DIRETIVA_CALLBACK *pCallBackSolicitaConfirmacao)(char *pMensagem);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraCartao)(char *pLabel, char *pCartao);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraDataValidade)(char *pLabel, char *pDataValidade);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraData)(char *pLabel, char *pDataValidade);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraCodigoSeguranca)(char *pLabel, char *pEntraCodigoSeguranca,int iTamanhoMax);
typedef int (DIRETIVA_CALLBACK *pCallBackSelecionaOpcao)(char *pLabel, char *pOpcoes, int *iOpcaoSelecionada);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraValor)(char *pLabel, char *pValor, char *pValorMinimo, char *pValorMaximo);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraNumero)(char *pLabel, char *pNumero, char *pNumeroMinimo, char *pNumeroMaximo, int iMinimoDigitos,int iMaximoDigitos,int iDigitosExatos);
typedef int (DIRETIVA_CALLBACK *pCallBackOperacaoCancelada) (void);
typedef int (DIRETIVA_CALLBACK *pCallBackSetaOperacaoCancelada) (bool bCancelada);
typedef void (DIRETIVA_CALLBACK *pCallBackProcessaMensagens) (void);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraString)(char *pLabel, char *pString, char *pTamanhoMaximo);
typedef int (DIRETIVA_CALLBACK *pCallBackConsultaAVS)(char *cEndereco,char *cNumero,char *cApto,char *cBloco,char *cCEP, char *cBairro,char *cCPF);
typedef int (DIRETIVA_CALLBACK *pCallBackMensagemAdicional)(char *pMensagemAdicional);
typedef int (DIRETIVA_CALLBACK *pCallBackImagemAdicional)(int iIndiceImagem);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraCodigoBarras) (char *Label,char *Campo);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraCodigoBarrasLido)(char *Label,char *Campo);
typedef void (DIRETIVA_CALLBACK *pCallBackMensagemAlerta) (char *pMensagemAlerta);
typedef void (DIRETIVA_CALLBACK *pCallBackPreviewComprovante) (char * cComprovante);
typedef int (DIRETIVA_CALLBACK *pCallBackSelecionaPlanos)(int iCodigoRede, int iCodigoTransacao, int iTipoFinanciamento, int iMaximoParcelas, char *pValorMinimoParcela, int iMaxDiasPreDatado, char *pNumeroParcelas, char *pValorTransacao, char *pValorParcela, char *pValorEntrada, char *pData);
typedef int (DIRETIVA_CALLBACK *pCallBackSelecionaPlanosEx)(char *pSolicitacao, char *pRetorno);
typedef int (DIRETIVA_CALLBACK *pCallBackEntraValorEspecial)(char *pLabel, char *pValor, char *pParametros);
typedef int (DIRETIVA_CALLBACK *pCallBackComandos)(char *pParametrosEntrada, char *pDadosRetorno);