Einzelnen Beitrag anzeigen

franky.f

Registriert seit: 29. Jul 2008
8 Beiträge
 
#6

Re: Portierung VB --> Delphi, GetObject

  Alt 24. Sep 2008, 10:31
Zitat von jbg:
Das wäre die Implementierung der VB GetObject Funktion. Das "APPFX" ist der Dateiname und nicht der Klassenname, da die VB Funktion zwei Parameter hat und der erste den Dateinamen angibt.
Hallo,
Danke für die Antwort, leider funktioniert das noch nicht.

Delphi-Quellcode:
function VBGetObject(const Filename: Widestring; const ClassName: string = ''): IDispatch;
var
  ClassID: TCLSID;
  Unknown: IUnknown;
begin
  if ClassName <> 'then
    Result := GetActiveOleObject(ClassName)
  else
  begin
    OleCheck(GetClassFile(PWideChar(Filename), ClassID));
    OleCheck(GetActiveObject(ClassID, nil, Unknown));
    OleCheck(Unknown.QueryInterface(IDispatch, Result));
  end;
end;
Ich habe String und PChar jeweils durch die Wide-Variante ersetzt, dann meckerte Delphi nicht mehr.
Bei GetClassFile steigt er dann aus mit der Meldung "Datei konnte durch Moniker nicht geöffnet werden."
APPFX ist eine exe, vielleicht liegt es daran?
Wenn ich ihm den ganzen Pfad, also "C:\Programme\AppFX\APPFX.exe" serviere, dann kommt die Fehlermeldung "Ungültige Dateierweiterung".
APPFX lief bei meinen Versuchen.

Wie macht VB6 das nur, da funktioniert es ja?

Gruß
Frank
  Mit Zitat antworten Zitat