Hi,
ich habe folgendes Problem: Ich möchte gerne das MS-Tool "Microsoft Baseline Security Analyzer" v2.0 oder und v2.1 über die
ActiveX (
COM) Schnittstelle steuern. Mit Delphi kann man ja schön die TypeLib importieren.
Leider tritt bei der Laufzeit eine
Exception auf: EOLESysError, 'Unbekannter Fehler', ClassID:{...}.
Dazu mein Code:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
SERVERSECURELib_TLB, ComObj,
ActiveX;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
mbsa : IScan;
i : Integer;
begin
// Alternative 1: mbsa := CreateComObject(CLASS_Scan) as IScan;
// Alternative 2: mbsa := CoScan.Create;
i := CoCreateInstance(CLASS_Scan,
nil, CLSCTX_INPROC_SERVER
or CLSCTX_LOCAL_SERVER, IUnknown, mbsa);
ShowMessage(IntToStr(i));
//Ausgabe: -2147467259
end;
end.
Wenn ich es mit C# versuche, werden gleich zwei unterschiedliche
Exception geworfen:
1. "Die
COM-Klassenfactory für die Komponente mit
CLSID {D86984D6-5AA7-11D9-89C9-000BDB08B646} konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80040154."
2. "Die
COM-Klassenfactory für die Komponente mit
CLSID {D86984D6-5AA7-11D9-89C9-000BDB08B646} konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80004005."
Die Meldungen deuten auf ein Problem mit der
COM-Klassenfactory hin. Das Problem tritt im übrigen auf allen Rechnern auf, mit denen ich es getestet habe (XP, Vista).
Kann mit jemand weiter helfen?
Danke im voraus.