Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Typenbibliothek ActiveX (https://www.delphipraxis.net/106887-typenbibliothek-activex.html)

msickel 18. Jan 2008 08:54


Typenbibliothek ActiveX
 
Liste der Anhänge anzeigen (Anzahl: 1)
Liebe Delphi-Erfahrene ich habe da ein Problem mit dem ich nicht weiter komme.

Ich habe eine Typenbibliothek nach Delphi importiert und möchte daraus eine Funktion oder diverse Funktionen nutzen.
Delphi-Quellcode:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleServer, TeleVantage_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  TV7SessionNew : TV7Session;
  TV7DialingService : _IDialingService;
  TV7Address : _Address;
  TV7Folder : _Folder;
  TV7User : _SystemTarget;
  TV7Items : _Items;
  Tv7Call : _Call;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  TV7SessionNew := TV7Session.Create(Application);
  TV7SessionNew.Logon('10.17.1.240','Administrator','',12,tvApplicationTypeClient,32402,tvServerConnectionLevelFull,FALSE,tvStationUsageOwner);

  Tv7Folder := TV7SessionNew.GetDefaultFolder(tvFolderCalls);
  Tv7Items := Tv7Folder.Items;
end;

procedure TV7SessionNewCallStatusChange(ASender: TObject; const ID: WideString; Status, OldStatus: TVPartyStatus);
begin
 Form1.Edit1.Text := 'Status geändert!';
end;

end.
laut SDK Beschreibung sollte die Funktion CallStatusChange jedesmal aufgerufen werden wenn sich am Call was ändert (es klingelt, es wurde abgemommen, usw...)
leider passiert da aber nix! was mache ich falsch?

Ich muss noch dazusagen das der Logon an die Applikation geht, da ich mit einem anderen Stück Source einen Call generieren kann, dies würde nicht gehen wenn der Logon nicht funktionieren sollte (sag ich nur da ich im Augenblick noch nicht prüfe ob der Logon OK ist)

Ich hänge noch den Typenbibliothek Import als Datei dran.

Martin

sirius 18. Jan 2008 09:29

Re: Typenbibliothek ActiveX
 
du musst dem Objekt auch sagen, welche Funktion er aufrufen soll.

Delphi-Quellcode:
TV7SessionNew.OnCallStatusChange:=TV7SessionNewCallStatusChange;
Allerdings muss TV7SessionNewCallStatusChange eine Methode sein, also z.B. TForm1.TV7SessionNewCallStatusChange

msickel 18. Jan 2008 12:28

Re: Typenbibliothek ActiveX
 
Vielen Dank, so gehts, grad noch eine andere Frage hierzu

folgende Code Zeile habe ich noch integriert

Delphi-Quellcode:

Tv7Call := v7Session1.GetItem(ID,'');
allerdings habe ich hier wohl ein Typenumwandlungsproblem (die OrginalCodeZeile habe ich aus einem VB-Projekt )

die Orginal VB Zeile sieht so aus ( Set oCall = oSession.GetItem(ID) )

hier bekomme ich als Fehler immer Inkompatible Typen IDispatch und _Call

wie kann ich denn sowas anpassen.

Martin

sirius 18. Jan 2008 12:37

Re: Typenbibliothek ActiveX
 
IDispatch ist der Vorfahr von _Call.
evtl. so (aber bei Interfaces bin ich mir nicht sicher)
Delphi-Quellcode:
Tv7Call := _Call(v7Session1.GetItem(ID,''));
Vielleicht aber auch über Queryinterface und der GUID "IID__Call" :stupid: Da müsste sich mal jemand zu äúßern der sich mit Interfaces auskennt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr.

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