Código: Selecionar todos
// Using Microsoft Excel ActiveX
#include "FiveWin.ch"
#include "Struct.ch"
#DEFINE GR_DEFAULT_CONTEXT 0
#DEFINE GR_NO_CONTEXT -1
STATIC DBFile, ConnectionString, connection
STATIC Raw, Template, DB
STATIC oActiveX, cMsg, oText, oWnd, cInfo, cEvents, GrFingerXCtrl1
STATIC oFoto, cFoto
function Main()
local oWnd
public oActiveX, oBitMap, oLbx, aFlds:={ "GRFinger for Fivewin..." }, nItem:=0
public cFile, MyContextID := "0"
DEFINE DIALOG oWnd RESOURCE "GRFingerX"
REDEFINE BITMAP oBitMap ID 100 OF oWnd FILENAME "GRFinger.bmp" //ADJUST
REDEFINE BUTTON ID 101 OF oWnd ACTION Enroll()
REDEFINE BUTTON ID 102 OF oWnd ACTION Verify()
REDEFINE BUTTON ID 103 OF oWnd ACTION Identify()
REDEFINE BUTTON ID 104 OF oWnd ACTION Extract()
REDEFINE BUTTON ID 105 OF oWnd ACTION fun()
REDEFINE BUTTON ID 106 OF oWnd ACTION oBitMap:LoadBMP(cFile:=cGetFile("Gráficos|*.bmp","Selecione um arquivo")); oBitMap:Refresh()
REDEFINE LISTBOX oLbx VAR nItem ;
ITEMS aFlds ;
ID 107 OF oWnd
ACTIVATE DIALOG oWnd CENTERED ON INIT InicializaControle() ;
VALID ( oActiveX:Finalize(), oActiveX:DestroyContext( MyContextID ), .T. )
return nil
FUNCTION InicializaControle()
if .not. IsActiveX( "GrFingerX.GrFingerXCtrl.1" )
oLbx:ADD("GRFingerX Activex nao instalado")
quit
endif
oActiveX := TOLEAUTO():New("GrFingerX.GrFingerXCtrl.1")
// Inicializa a captura do activex
oError := oActiveX:Initialize()
if oError <> 0
oLbx:ADD( "Erro de Inicializacao "+str(oError,3) )
endif
// Inicializa a captura do activex
oError := oActiveX:CapInitialize()
if oError <> 0
oLbx:ADD( "Erro de Captura "+str(oError,3) )
endif
// Cria contexto para o activex
oError := oActiveX:CreateContext( MyContextID )
if oError <> 0
oLbx:ADD( "Erro de Criacao do Contexto "+str(oError,3) )
endif
oError := oActiveX:CapLoadImageFromFile( "GRFingerX.bmp", 300 )
if oError <> 0
oLbx:ADD( "Erro de Carregamento de Imagem "+str(oError,3) )
endif
return nil
FUNCTION GrFingerFinalize(oActiveX)
oActiveX:Do( "CapFinalize" )
oActiveX:Do( "Finalize" )
RETURN NIL
FUNCTION GrFingerBiometricDisplay( template, RawImg, RawWidth, RawHeight, RawRes, hDC, handle, context )
oActiveX:Do( "biometricdisplay", template, RawImg, RawWidth, RawHeight, RawRes, hDC, handle, context )
msginfo("printbio-1")
If biometricDisplay
msginfo("biometricdisplay")
*' get image with biometric info
//oActiveX:Do("biometricdisplay", template.tpt, raw.img, raw.width, raw.height, raw.res, formMain.hDC, handle, context)
//formMain.GrFingerXCtrl1.biometricDisplay template.tpt, raw.img, raw.width, raw.height, raw.res, formMain.hDC, handle, context
Else
*' get raw image
//oActiveX:Do("CapRawImageToHandle", raw:img, raw:width, raw:height, oWnd:hDC, @handle)
//formMain.GrFingerXCtrl1.CapRawImageToHandle raw.img, raw.width, raw.height, formMain.hDC, handle
ActXInvoke( ActXPdisp( oActiveX:hActiveX ), "CapRawImageToHandle", raw:img, raw:width, raw:height, oWnd:hDC, @handle)
msginfo(Handle)
End If
*' draw image on picture box
If !(handle ==NIL)
oFoto:Picture = handle
Msginfo()
oFoto:Update()
End If
RETURN NIL //End Sub
FUNCTION GrFingerDestroyContext( MyContextID )
lRet := oActiveX:Do( "DestroyContext", MyContextID )
RETURN lRet
FUNCTION CSTR( string )
RETURN string
FUNCTION Enroll()
RETURN .t.
FUNCTION Verify()
RETURN .t.
FUNCTION Identify()
RETURN .t.
FUNCTION Extract()
LOCAL err, lRet:=.F.
STRUCT raw
MEMBER img As STRING LEN 2048
MEMBER width As LONG // Image width.
MEMBER height As LONG // Image height.
MEMBER res As LONG // Image resolution.
ENDSTRUCT
STRUCT Template
MEMBER tpt AS STRING LEN 1000
MEMBER Size AS LONG
ENDSTRUCT
template:tpt := SPACE(1000)
template:size:= 500
raw:img := oBitMap:hBitmap
raw:width := oBitMap:nWidth
raw:height := oBitMap:nHeight
oError := oActiveX:Extract( raw:img, raw:Width, raw:Height, 500, template:tpt, template:size, MyContextID )
if oError < 0
oLbx:ADD( "Erro de Extracao "+str(oError,3) )
endIf
RETURN .t.
FUNCTION fun()
RETURN .t.
E fazendo alterações e dando certo por favor POSTe para nóis.