COMO FINALIZAR UMA DLL INICIADA PELO VB6?

DEXIE 15/04/2014 11:56:46
#437297
Olá pessoal!

Fiz uma DLL no VB6 e dentro dela coloquei um form.
Esse form faz alguns procedimentos, e após terminar quero fechar essa tela e voltar para a aplicação principal (que chamou a DLL)
Estou tentando fazer isso, mas não estou obtendo exito!

Fiz da seguinte maneira:
Dentro da classe da DLL criei o método iniciarLeitor

Public Function iniciarLeitor(Operacao As Tipo_Operacao, Usuario As Integer) As Boolean
iniciarLeitor = False
Leitor.Usuario = Usuario
Leitor.Operacao = Operacao
frmLeitor.Show vbModal
If Not frmLeitor.gerouErro Then
iniciarLeitor = True
End If
End Function


Até ai beleza, dentro deste forme tenho um evento de uma OCX.

Private Sub GrFingerX_ImageAcquired(ByVal idSensor As String, ByVal width As Long, ByVal height As Long, rawImage As Variant, ByVal res As Long)
DoEvents
With raw
.img = rawImage
.height = height
.width = width
.res = res
End With

gerouErro = True

If Leitor.Operacao = Gravar Then
If Gravar_Digital Then
gerouErro = False
Call Finalizar_Leitor
Unload Me
End If
Else
Call Identificar_Digital
End If
End Sub


O problema acontece quando tento dar Unload na tela, para voltar para a função principal (iniciarLeitor) e fornecer o retorno para a aplicação que chamou a DLL.
Como devo proceder para realizar o que desejo?

Agradeço desde já!
MEGADETH 17/04/2014 10:29:43
#437398
Resposta escolhida
Olá meu caro,

Crie uma propriedade get no seu form como fazemos nas classes, para armazenar a informação desejada, desta forma quando você fechar o seu form utilize o comando Me.Hide ou Me.Close

E no seu metodo da classe [ô]iniciarLeitor[ô] você faz esta modificação:

Public Function iniciarLeitor(Operacao As Tipo_Operacao, Usuario As Integer) As Boolean
iniciarLeitor = False
Leitor.Usuario = Usuario
Leitor.Operacao = Operacao

Dim fLeitor As New frmLeitor

With fLeitor
.Show vbModal
If Not .getGerouErro Then
iniciarLeitor = True
End If
End With

Unload fLeitor
End Function

Espero ter ajudado. Abraço
Tópico encerrado , respostas não são mais permitidas