Ein freundliches Hallo an alle,
nach Schwierigkeiten mit der Tapi versuche ich zunächst mal einen Weg über die Capi zu finden, vielleicht bringt das ja neue Ideen. Nach Lektüre der CAPI-Beschreibung, ersten Programmierversuchen und Internetsuche mußte ich feststellen, dass viele Links auf Infos zu CAPI auf nicht mehr existierende Seiten zeigen. Ich hoffe es hat vielleicht noch jemand ein paar Infos oder gar Programmschnipsel, die mir weiter helfen können.
Da ich die "Capi2032.dll" nicht importieren konnte habe ich die Schnittstelle und Daten per Deklaration beschrieben. Bei meinen Versuchen erscheinen Fehlercodierungen, die ich nirgens finden konnte. Kann sein das ich irgend eine Datenbeschreibung falsch interpretiert habe. Jedenfalls stehe ich nach diversen Versuchen im Nebel. Ich hoffe jemand mach etwas Wind.
Die Daten:
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 
 | Type Connect_Req = RecordCommand           : Byte    ;
 Subcommand        : Byte    ;
 Controller        : Longword;
 CIP               : Word    ;
 CalledNumberTyp   : Byte    ;
 CalledNumber      : PChar   ;
 CallingNumberTyp  : Byte    ;
 CallingNumberTyp1 : Byte    ;
 CallingNumber     : PChar   ;
 CalledSubTyp      : Byte    ;
 CalledSub         : PChar   ;
 CallingSubTyp     : Byte    ;
 CallingSub        : Byte    ;
 BProt             : Word    ;
 BC                : Byte    ;
 LLC               : Byte    ;
 HLC               : Byte    ;
 AdditionalInfo    : Byte    ;
 end;
 | 
		
	  
Die Methoden:
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 
 |   Function  CAPI_REGISTER      (      D_MessageBuffersize    : Integer;       D_maxLogicalConnection : Integer;
 D_maxBDataBlocks       : Integer;
 D_maxBDataLen          : Integer;
 Var D_AppID                : Integer    ): Integer; stdcall; external 'Capi2032.dll';
 Function  CAPI_RELEASE        (     D_AppID                : Longint    ): Longint; stdcall; external 'Capi2032.dll';
 Function  CAPI_WAIT_FOR_SIGNAL(     D_AppID                : Longint    ): Longint; stdcall; external 'Capi2032.dll';
 Function  CAPI_PUT_MESSAGE    (     D_AppID                : Longint;
 pcapimessage           : Pointer    ): Longint; stdcall; external 'Capi2032.dll';
 Function  CAPI_GET_MESSAGE    (     D_AppID                : Longint;
 Var lpCapiBuffer           : Longint    ): Longint; stdcall; external 'Capi2032.dll';
 | 
		
	  
Put Message:
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 
 |   ConRq.Command           := CAPI_CONNECT;ConRq.Subcommand        := CAPI_REQ;
 ConRq.Controller        := $1;
 ConRq.CIP               := 1;        ConRq.CalledNumberTyp   := $80;      ConRq.CalledNumber      := PChar( Edit1.Text );
 ConRq.CalledSubTyp      := $80;      ConRq.CallingSub        := $0;       ConRq.CallingNumberTyp  := $0;       ConRq.CallingNumberTyp1 := $80;      ConRq.CallingNumber     := PChar( Edit2.Text );
 ConRq.CalledSubTyp      := $80;      ConRq.CalledSub         := $0;
 ConRq.BProt             := $1;
 ConRq.BC                := $04;
 ConRq.LLC               := $0;
 ConRq.HLC               := $0;
 ConRq.AdditionalInfo    := $0;
 
 Res := CAPI_PUT_MESSAGE( AppID, @ConRq );
 | 
		
	  
"CAPI_REGISTER" funktioniert und liefert eine ID. Nach Aufruf von "CAPI_PUT_MESSAGE" hat "
Res" den Wert '4360' oder '$1108'. Ich vermute das entweder die Datenstruktur nicht stimmt oder Parameter falsch sind. Da ich den Fehlercode aber nirgens finde hoffe ich, dass jemand den Fehler sieht oder sogar etwas hat, das funktioniert.
Grüße von der nicht mehr verregneten Nordsee
Peter