Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriff auf einen PSION mit iDispatch (https://www.delphipraxis.net/9658-zugriff-auf-einen-psion-mit-idispatch.html)

Jürgen Anke 1. Okt 2003 09:24


Zugriff auf einen PSION mit iDispatch
 
:cry:
Hallo zusammen,
Ich möchte auf einen PSION "workabout" zugreifen und verschiedene Informationen auslesen. Die zum PSION gehörende Software "PsiWin" liefert dazu eine activeX-Componente, die ich in Delphi 5 Enterprise eingebunden habe und benutze. Ich habe keine Probleme, auf den PSION zuzugreifen, Dateien und oder Ordner zu kopieren, löschen etc. Mein Problem liegt in den Funktionen wo iDispatch eine Rolle spielt.

z.B.: function GetDriveInfo(Machine: Smallint; const DriveName: WideString): IDispatch;

Ich weiß, das Machine=2 sein muß und DriveName='A', wie kann ich aber den Rückgabewert verwenden? (iDispatch) wenn ich z.B.: die Verzeichnisse bzw. Dateien auf dem PSION in ein ListView einlesen möchte.

Ich muß noch dazu sagen, das ich mich schon noch zu den Anfängern zähle.

Über eine Antwort würde ich mich sehr freuen. Mit freundlichen Grüßen Jürgen Anke

Auszug aus der Unit:
Delphi-Quellcode:
// DispIntf: _DPsiWinEng
// Flags: (4112) Hidden Dispatchable
// GUID: {3C476931-F450-11CF-885E-0020AFC04E78}
_DPsiWinEng = dispinterface
['{3C476931-F450-11CF-885E-0020AFC04E78}']
function Init: Integer; dispid 1;
function Connect(TimeOutMiliseconds: Integer): Integer; dispid 2;
function GetDirectory(Machine: Smallint; const Directory: WideString): IDispatch; dispid 3;
function Disconnect: Integer; dispid 4;
function CopyFile(MachineFrom: Smallint; const FileFrom: WideString; MachineTo: Smallint;
const FileTo: WideString; Flags: Smallint): Integer; dispid 5;
...
[edit=sakura]Delphi-Tags gesetzt. Mfg, sakura[/edit]

sakura 1. Okt 2003 09:31

Re: Zugriff auf einen PSION mit iDispatch
 
Herzlich willkommen in der Delphi-PRAXiS.

Die Funktion liefert Dir mit IDispatch das Standard-COM Interface zurück. Ich kenne Deine Bibliothek leider nicht, aber irgendwo in der Doku steht hoffentlich, welches Interface sich wirklich dahinter verbirgt. Gehen wir mal davon aus, daß das zurückgelieferte Interface eigentlich IPsiDirectory heißt, dann musst Du Deinen Code wie folgend gestalten...

Delphi-Quellcode:
var
  IDir: IPsiDirectory;
begin
  ...
  IDir := YouPsiCom.GetDirectory(2; 'A') as IPsiDirectory;
  // ab hier kannst Du über IDir auf die Schnittstellen von IPsiDirectory zugreifen
Ich hoffe, daß es wenigstens ein wenig hilft ;-)

...:cat:...

P.S. In Zukunft bitte die DELPHI-Tags nutzen ;-)

Jürgen Anke 1. Okt 2003 10:00

Re: Zugriff auf einen PSION mit iDispatch
 
Ich probiere es gleich... melde mich dann noch mal.
Danke !!!

PS: was sind Delphi-Tags ?
Jürgen

[edit=sakura]P.S. Antwort kommt als PN ;-) Mfg, sakura[/edit]

Robert Marquardt 1. Okt 2003 10:13

Re: Zugriff auf einen PSION mit iDispatch
 
Eleganter ist es aber gleich das _TLB.pas der importierten ActiveX-Control zu aendern.
Delphi erstellt einfach eine Unit im Imports Verzeichnis mit _TLB am Namen.
Dort drinnen sind Interfaces und Delphi-Klassen.
Niemand verbietet dir dort das IDispatch (an den Delphi-Klassen) zu aendern.
Nur an den Delphi-Klassen aendrn. Nicht an den dispinterface.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz