Ver Mensaje Individual
  #3  
Antiguo 20-07-2020
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 947
Reputación: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
De verdad poco aportas...solo hay que deducir...

Bueno
Código Delphi [-]
//En la unidad este es el procedimiento
procedure TCCoreScanner.Open(appHandle: Integer; sfTypes: PSafeArray;
  lengthOfTypes: Smallint; out status: Integer);
begin
  DefaultInterface.Open(appHandle, sfTypes, lengthOfTypes, status);
end;


// Para hacer una prueba de conexión hago esto según la documentación esto en C++ estos son los tipos de Valores para la entrada 
{
HRESULT STDMETHODCALLTYPE Open(
/* [in] */ LONG reserved,
/* [in] */ SAFEARRAY * sfTypes, --Aqui donde no logro definir el tipo de valor para Delphi 
/* [in] */ SHORT lengthOfTypes,
/* [out] */ LONG *status) = 0;
}

procedure TForm1.btnWeightsClick(Sender: TObject);
var
   Encabezado, Estado: Integer;
  Tipo: array[0..0] of TSafeArrayBound;
  TipoFinal: PSafeArray;
  NumeberOfScannerTypes: SmallInt;
  Conectador: TCCoreScanner;
begin
    Conectador := TCCoreScanner.Create(Self);
    try
    Tipo[0].lLbound := 0;
    Tipo[0].cElements := 10;
//    TipoFinal := SafeArrayCreate(VT_I1,1, Tipo);
    TipoFinal:=@Tipo //TipoFinal da la impresión que es un puntero a TSafeArrayBound...
    NumeberOfScannerTypes := 1;  //SCANNER_TYPES_ALL Todos los tipos de Scaner que encuentra
    Conectador.Open(0, TipoFinal, NumeberOfScannerTypes, Estado);
    if Estado = 0 then
    begin
      lblEstadoEscaner.Caption := 'CoreScanner API: Open successful';
    end
    else
    begin
      lblEstadoEscaner.Caption := 'CoreScanner API: Open Failed';
    end;
  finally
    Conectador.Free;
    SafeArrayDestroy(TipoFinal);
  end;
end;

Saludos cordiales
Responder Con Cita