761 lines
31 KiB
ObjectPascal
761 lines
31 KiB
ObjectPascal
(***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is TurboPower Async Professional
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* TurboPower Software
|
|
*
|
|
* Portions created by the Initial Developer are Copyright (C) 1991-2002
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Sulaiman Mah
|
|
* Sean B. Durkin
|
|
* Sebastian Zierer
|
|
*
|
|
* ***** END LICENSE BLOCK ***** *)
|
|
|
|
{*********************************************************}
|
|
{* ADEXCEPT.PAS 5.00 *}
|
|
{*********************************************************}
|
|
|
|
{Global defines potentially affecting this unit}
|
|
{$I AWDEFINE.INC}
|
|
|
|
{Options required for this unit}
|
|
{$G+,X+,F-,V-,P-,T-,B-}
|
|
|
|
unit AdExcept;
|
|
{-Apro exceptions}
|
|
|
|
interface
|
|
|
|
uses
|
|
Messages,
|
|
Windows,
|
|
SysUtils,
|
|
Classes,
|
|
OoMisc;
|
|
|
|
{ The design of the string resources has changed for APRO 4.04. We no longer }
|
|
{ use the string resource manager (AdSrmgr.pas), we now use resourcestrings. }
|
|
{ To use a different language, specify the language below. Only select one }
|
|
{ language when compiling. Selecting multiple languages will result in }
|
|
{ duplicate identifiers. If you need to support multiple langauages, use the }
|
|
{ separate string resource units to create your own language DLLs or other }
|
|
{ techniques. See the comments in the applicable language include file for }
|
|
{ more details (in English). }
|
|
|
|
|
|
{Select English by default, only one can be enabled at any given time }
|
|
|
|
{*** English ***}
|
|
{.$I AdExcept.inc}
|
|
{*** French ***}
|
|
{$I AdExcept.fra}
|
|
{*** German ***}
|
|
{.$I AdExcept.deu}
|
|
{*** Spanish ***}
|
|
{.$I AdExcept.esp}
|
|
{*** Swedish ***}
|
|
{.$I AdExcept.sw}
|
|
{*** Norwegian ***}
|
|
{.$I AdExcept.nor}
|
|
{*** Danish ***}
|
|
{.$I AdExcept.dk}
|
|
|
|
|
|
type
|
|
{General Apro exception class}
|
|
EAPDException = class(Exception)
|
|
private
|
|
FErrorCode : Integer;
|
|
|
|
public
|
|
constructor Create(const EC : Integer; PassThru : Boolean);
|
|
constructor CreateUnknown(const Msg : String; Dummy : Byte);
|
|
|
|
class function MapCodeToStringID(const Code : Integer) : Word;
|
|
{-Return a string table index for Code}
|
|
|
|
property ErrorCode : Integer
|
|
read FErrorCode write FErrorCode;
|
|
end;
|
|
|
|
{Apro exception groups}
|
|
EGeneral = class(EAPDException);
|
|
EOpenComm = class(EAPDException);
|
|
ESerialIO = class(EAPDException);
|
|
EModem = class(EAPDException);
|
|
ETrigger = class(EAPDException);
|
|
EPacket = class(EAPDException);
|
|
EProtocol = class(EAPDException);
|
|
EINI = class(EAPDException);
|
|
EFax = class(EAPDException);
|
|
ETapi = class(EAPDException);
|
|
ERas = class(EAPDException);
|
|
EAdTerminal = class(EAPDException);
|
|
EXML = class(EAPDException);
|
|
EStateMachine = class(EAPDException);
|
|
|
|
{Specific general exceptions}
|
|
EBadArgument = class(EGeneral);
|
|
EGotQuitMsg = class(EGeneral);
|
|
EBufferTooBig = class(EGeneral);
|
|
EPortNotAssigned = class(EGeneral);
|
|
EInternal = class(EGeneral);
|
|
EModemNotAssigned = class(EGeneral);
|
|
EPhonebookNotAssigned = class(EGeneral);
|
|
ECannotUseWithWinSock = class(EGeneral);
|
|
|
|
{Specific OpenComm exceptions}
|
|
EBadId = class(EOpenComm);
|
|
EBaudRate = class(EOpenComm);
|
|
EByteSize = class(EOpenComm);
|
|
EDefault = class(EOpenComm);
|
|
EHardware = class(EOpenComm);
|
|
EMemory = class(EOpenComm);
|
|
ECommNotOpen = class(EOpenComm);
|
|
EAlreadyOpen = class(EOpenComm);
|
|
ENoHandles = class(EOpenComm);
|
|
ENoTimers = class(EOpenComm);
|
|
ENoPortSelected = class(EOpenComm);
|
|
ENotOpenedByTapi = class(EOpenComm);
|
|
|
|
{Specific serial I/O exceptions}
|
|
ENullApi = class(ESerialIO);
|
|
ERegisterHandlerFailed= class(ESerialIO);
|
|
EPutBlockFail = class(ESerialIO);
|
|
EGetBlockFail = class(ESerialIO);
|
|
EOutputBufferTooSmall = class(ESerialIO);
|
|
EBufferIsEmpty = class(ESerialIO);
|
|
ETracingNotEnabled = class(ESerialIO);
|
|
ELoggingNotEnabled = class(ESerialIO);
|
|
EBaseAddressNotSet = class(ESerialIO);
|
|
|
|
{Specific modem exceptions}
|
|
EModemNotStarted = class(EModem);
|
|
EModemBusy = class(EModem);
|
|
EModemNotDialing = class(EModem);
|
|
EModemNotResponding = class(EModem);
|
|
EModemRejectedCommand = class(EModem);
|
|
EModemStatusMismatch = class(EModem);
|
|
|
|
{Specific dialer exceptions}
|
|
EAlreadyDialing = class(EModem);
|
|
ENotDialing = class(EModem);
|
|
|
|
EDeviceNotSelected = class(EModem);
|
|
EModemDetectedBusy = class(EModem);
|
|
ENoDialtone = class(EModem);
|
|
ENoCarrier = class(EModem);
|
|
ENoAnswer = class(EModem);
|
|
|
|
{Specific trigger exceptions}
|
|
ENoMoreTriggers = class(ETrigger);
|
|
ETriggerTooLong = class(ETrigger);
|
|
EBadTriggerHandle = class(ETrigger);
|
|
|
|
{Specific packet exceptions}
|
|
EInvalidProperty = class(EPacket);
|
|
EStringSizeError = class(EPacket);
|
|
|
|
{Specific protocol exceptions}
|
|
ETimeout = class(EProtocol);
|
|
ETooManyErrors = class(EProtocol);
|
|
ESequenceError = class(EProtocol);
|
|
|
|
{Specific INI database exceptions}
|
|
EKeyTooLong = class(EINI);
|
|
EDataTooLarge = class(EINI);
|
|
EIniWrite = class(EINI);
|
|
EIniRead = class(EINI);
|
|
ERecordExists = class(EINI);
|
|
ERecordNotFound = class(EINI);
|
|
EDatabaseFull = class(EINI);
|
|
EDatabaseEmpty = class(EINI);
|
|
EBadFieldList = class(EINI);
|
|
EBadFieldForIndex = class(EINI);
|
|
|
|
{.Z+}
|
|
{Specific FAX exceptions}
|
|
EFaxBadFormat = class(EFax);
|
|
EBadGraphicsFormat = class(EFax);
|
|
EConvertAbort = class(EFax);
|
|
EUnpackAbort = class(EFax);
|
|
ECantMakeBitmap = class(EFax);
|
|
ENoImageLoaded = class(EFax);
|
|
ENoImageBlockMarked = class(EFax);
|
|
EInvalidPageNumber = class(EFax);
|
|
|
|
EFaxBadMachine = class(EFax);
|
|
EFaxBadModemResult = class(EFax);
|
|
EFaxTrainError = class(EFax);
|
|
EFaxInitError = class(EFax);
|
|
EFaxBusy = class(EFax);
|
|
EFaxVoiceCall = class(EFax);
|
|
EFaxDataCall = class(EFax);
|
|
EFaxNoDialTone = class(EFax);
|
|
EFaxNoCarrier = class(EFax);
|
|
EFaxSessionError = class(EFax);
|
|
EFaxPageError = class(EFax);
|
|
|
|
EAlreadyMonitored = class(EFax);
|
|
|
|
ETapiAllocated = class(ETapi);
|
|
ETapiBadDeviceID = class(ETapi);
|
|
ETapiBearerModeUnavail = class(ETapi);
|
|
ETapiCallUnavail = class(ETapi);
|
|
ETapiCompletionOverrun = class(ETapi);
|
|
ETapiConferenceFull = class(ETapi);
|
|
ETapiDialBilling = class(ETapi);
|
|
ETapiDialDialtone = class(ETapi);
|
|
ETapiDialPrompt = class(ETapi);
|
|
ETapiDialQuiet = class(ETapi);
|
|
ETapiIncompatibleApiVersion = class(ETapi);
|
|
ETapiIncompatibleExtVersion = class(ETapi);
|
|
ETapiIniFileCorrupt = class(ETapi);
|
|
ETapiInUse = class(ETapi);
|
|
ETapiInvalAddress = class(ETapi);
|
|
ETapiInvalAddressID = class(ETapi);
|
|
ETapiInvalAddressMode = class(ETapi);
|
|
ETapiInvalAddressState = class(ETapi);
|
|
ETapiInvalAppHandle = class(ETapi);
|
|
ETapiInvalAppName = class(ETapi);
|
|
ETapiInvalBearerMode = class(ETapi);
|
|
ETapiInvalCallComplMode = class(ETapi);
|
|
ETapiInvalCallHandle = class(ETapi);
|
|
ETapiInvalCallParams = class(ETapi);
|
|
ETapiInvalCallPrivilege = class(ETapi);
|
|
ETapiInvalCallSelect = class(ETapi);
|
|
ETapiInvalCallState = class(ETapi);
|
|
ETapiInvalCallStatelist = class(ETapi);
|
|
ETapiInvalCard = class(ETapi);
|
|
ETapiInvalCompletionID = class(ETapi);
|
|
ETapiInvalConfCallHandle = class(ETapi);
|
|
ETapiInvalConsultCallHandle = class(ETapi);
|
|
ETapiInvalCountryCode = class(ETapi);
|
|
ETapiInvalDeviceClass = class(ETapi);
|
|
ETapiInvalDeviceHandle = class(ETapi);
|
|
ETapiInvalDialParams = class(ETapi);
|
|
ETapiInvalDigitList = class(ETapi);
|
|
ETapiInvalDigitMode = class(ETapi);
|
|
ETapiInvalDigits = class(ETapi);
|
|
ETapiInvalExtVersion = class(ETapi);
|
|
ETapiInvalGroupID = class(ETapi);
|
|
ETapiInvalLineHandle = class(ETapi);
|
|
ETapiInvalLineState = class(ETapi);
|
|
ETapiInvalLocation = class(ETapi);
|
|
ETapiInvalMediaList = class(ETapi);
|
|
ETapiInvalMediaMode = class(ETapi);
|
|
ETapiInvalMessageID = class(ETapi);
|
|
ETapiInvalParam = class(ETapi);
|
|
ETapiInvalParkID = class(ETapi);
|
|
ETapiInvalParkMode = class(ETapi);
|
|
ETapiInvalPointer = class(ETapi);
|
|
ETapiInvalPrivSelect = class(ETapi);
|
|
ETapiInvalRate = class(ETapi);
|
|
ETapiInvalRequestMode = class(ETapi);
|
|
ETapiInvalTerminalID = class(ETapi);
|
|
ETapiInvalTerminalMode = class(ETapi);
|
|
ETapiInvalTimeout = class(ETapi);
|
|
ETapiInvalTone = class(ETapi);
|
|
ETapiInvalToneList = class(ETapi);
|
|
ETapiInvalToneMode = class(ETapi);
|
|
ETapiInvalTransferMode = class(ETapi);
|
|
ETapiLineMapperFailed = class(ETapi);
|
|
ETapiNoConference = class(ETapi);
|
|
ETapiNoDevice = class(ETapi);
|
|
ETapiNoDriver = class(ETapi);
|
|
ETapiNoMem = class(ETapi);
|
|
ETapiNoRequest = class(ETapi);
|
|
ETapiNotOwner = class(ETapi);
|
|
ETapiNotRegistered = class(ETapi);
|
|
ETapiOperationFailed = class(ETapi);
|
|
ETapiOperationUnavail = class(ETapi);
|
|
ETapiRateUnavail = class(ETapi);
|
|
ETapiResourceUnavail = class(ETapi);
|
|
ETapiRequestOverrun = class(ETapi);
|
|
ETapiStructureTooSmall = class(ETapi);
|
|
ETapiTargetNotFound = class(ETapi);
|
|
ETapiTargetSelf = class(ETapi);
|
|
ETapiUninitialized = class(ETapi);
|
|
ETapiUserUserInfoTooBig = class(ETapi);
|
|
ETapiReinit = class(ETapi);
|
|
ETapiAddressBlocked = class(ETapi);
|
|
ETapiBillingRejected = class(ETapi);
|
|
ETapiInvalFeature = class(ETapi);
|
|
ETapiNoMultipleInstance = class(ETapi);
|
|
|
|
{Tapi exceptions that don't simply mirror TAPI error codes}
|
|
ETapiBusy = class(ETapi);
|
|
ETapiNotSet = class(ETapi);
|
|
ETapiNoSelect = class(ETapi);
|
|
ETapiLoadFail = class(ETapi);
|
|
ETapiGetAddrFail = class(ETapi);
|
|
ETapiUnexpected = class(ETapi);
|
|
ETapiVoiceNotSupported = class(ETapi);
|
|
ETapiWaveFail = class(ETapi);
|
|
ETapiTranslateFail = class(ETapi);
|
|
|
|
{VoIP specific errors}
|
|
EVoIPNotSupported = class(ETapi);
|
|
|
|
{Ras exceptions}
|
|
ERasLoadFail = class(ERas);
|
|
|
|
{Terminal exceptions}
|
|
EAdTerminalClass = class of EAdTerminal;
|
|
EAdTermRangeError = class(EAdTerminal);
|
|
EAdTermInvalidParameter = class(EAdTerminal);
|
|
EAdTermTooLarge = class(EAdTerminal);
|
|
|
|
{TApdPager Exceptions}
|
|
{$M+}
|
|
EApdPagerException = class (Exception)
|
|
private
|
|
FErrorCode : Integer;
|
|
public
|
|
{ Parameters to the construtor are reversed to prevent problems with
|
|
C++ Builder }
|
|
constructor Create (const ErrCode : Integer; const Msg : string);
|
|
published
|
|
property ErrorCode : Integer read FErrorCode;
|
|
end;
|
|
{$M-}
|
|
|
|
{TApdGSMPhone Exceptions}
|
|
{$M+}
|
|
EApdGSMPhoneException = class (Exception)
|
|
private
|
|
FErrorCode : Integer;
|
|
public
|
|
{ Parameters to the construtor are reversed to prevent problems with
|
|
C++ Builder }
|
|
constructor Create (const ErrCode : Integer; const Msg : string);
|
|
published
|
|
property ErrorCode : Integer read FErrorCode;
|
|
end;
|
|
{$M-}
|
|
|
|
{ XML exceptions }
|
|
{$M+}
|
|
EAdStreamError = class(EXML)
|
|
private
|
|
seFilePos : Integer;
|
|
public
|
|
constructor CreateError(const FilePos : Integer;
|
|
const Reason : DOMString);
|
|
property FilePos : Integer
|
|
read seFilePos;
|
|
end;
|
|
{$M-}
|
|
|
|
EAdFilterError = class(EAdStreamError)
|
|
private
|
|
feReason : DOMString;
|
|
feLine : Integer;
|
|
feLinePos : Integer;
|
|
public
|
|
constructor CreateError(const FilePos, Line, LinePos : Integer;
|
|
const Reason : DOMString);
|
|
property Reason : DOMString
|
|
read feReason;
|
|
property Line : Integer
|
|
read feLine;
|
|
property LinePos : Integer
|
|
read feLinePos;
|
|
end;
|
|
|
|
EAdParserError = class(EAdFilterError)
|
|
protected
|
|
public
|
|
constructor CreateError(Line, LinePos : Integer;
|
|
const Reason : DOMString);
|
|
end;
|
|
|
|
function CheckException(const Ctl : TComponent;
|
|
const Res : Integer) : Integer;
|
|
function XlatException(const E : Exception) : Integer;
|
|
{-Translate an exception into an error code}
|
|
|
|
function AproLoadStr(const ErrorCode : SmallInt) : string;
|
|
function AproLoadAnsiStr(const ErrorCode : SmallInt) : AnsiString;
|
|
|
|
function AproLoadZ(P : PAnsiChar; Code : Integer) : PAnsiChar; // --sm ansi
|
|
|
|
function ErrorMsg(const ErrorCode : SmallInt) : string;
|
|
function MessageNumberToString(MessageNumber : SmallInt) : string;
|
|
{.Z-}
|
|
|
|
|
|
implementation
|
|
|
|
{ include AdStrMap here to prevent circular references in AdStrMap }
|
|
uses
|
|
AnsiStrings, AdStrMap;
|
|
|
|
function AproLoadZ(P : PAnsiChar; Code : Integer) : PAnsiChar;
|
|
begin
|
|
Result := AnsiStrings.StrPCopy(P, AproLoadAnsiStr(Code));
|
|
end;
|
|
|
|
function AproLoadStr(const ErrorCode : SmallInt) : string;
|
|
{-Return an error message for ErrorCode}
|
|
begin
|
|
Result := MessageNumberToString(ErrorCode);
|
|
|
|
if Result = '' then
|
|
Result := SysErrorMessage(ErrorCode);
|
|
end;
|
|
|
|
function AproLoadAnsiStr(const ErrorCode : SmallInt) : AnsiString;
|
|
begin
|
|
Result := AnsiString(AproLoadStr(ErrorCode));
|
|
end;
|
|
|
|
{Alias for function above}
|
|
function ErrorMsg(const ErrorCode : SmallInt) : string;
|
|
{-Return an error message for ErrorCode}
|
|
begin
|
|
Result := AproLoadStr(ErrorCode);
|
|
end;
|
|
|
|
function MessageNumberToString(MessageNumber : SmallInt) : string;
|
|
var
|
|
Middle : integer;
|
|
Min : integer;
|
|
Max : integer;
|
|
begin
|
|
Result := '';
|
|
|
|
Min := 0;
|
|
Max := AdMaxMessages;
|
|
MessageNumber := abs(MessageNumber);
|
|
while (Min <= Max) do begin
|
|
Middle := Round ((Min + Max) / 2);
|
|
if abs(AdMessageNumberLookup[Middle].MessageNumber) = abs(MessageNumber) then begin
|
|
{ found it }
|
|
Result := AdMessageNumberLookup[Middle].MessageString;
|
|
Exit;
|
|
end else if abs(MessageNumber) < abs(AdMessageNumberLookup[Middle].MessageNumber) then
|
|
Max := Middle - 1
|
|
else
|
|
Min := Middle + 1;
|
|
end;
|
|
|
|
end;
|
|
|
|
constructor EAPDException.Create(const EC : Integer; PassThru : Boolean);
|
|
begin
|
|
FErrorCode := EC;
|
|
inherited Create(AproLoadStr(Abs(EC)));
|
|
end;
|
|
|
|
constructor EAPDException.CreateUnknown(const Msg : String; Dummy : Byte);
|
|
begin
|
|
ErrorCode := 0;
|
|
|
|
inherited Create(Msg);
|
|
end;
|
|
|
|
class function EAPDException.MapCodeToStringID(const Code : Integer) : Word;
|
|
begin
|
|
Result := Abs(Code);
|
|
end;
|
|
|
|
function CheckException(const Ctl : TComponent; const Res : Integer) : Integer;
|
|
{-Check Res, raise appropriate exception if non-zero}
|
|
var
|
|
ErrorMsg : String;
|
|
FileIO : EInOutError;
|
|
|
|
begin
|
|
Result := Res;
|
|
if (Res < ecOk) then
|
|
if not (csLoading in Ctl.ComponentState) then begin
|
|
case Res of
|
|
ecHardwareFailure..ecFileNotFound:
|
|
begin
|
|
{find the error message for the error}
|
|
ErrorMsg := AproLoadStr(Abs(Res));
|
|
|
|
{if we've run out of memory, raise that exception}
|
|
if (Res = ecOutOfMemory) then
|
|
OutOfMemoryError
|
|
|
|
{otherwise, raise a file I/O exception}
|
|
else begin
|
|
FileIO := EInOutError.Create(ErrorMsg);
|
|
FileIO.ErrorCode := Abs(Res);
|
|
raise FileIO;
|
|
end;
|
|
end;
|
|
|
|
{EGeneral}
|
|
ecBadArgument : raise EBadArgument.Create(Res, False);
|
|
ecGotQuitMsg : raise EGotQuitMsg.Create(Res, False);
|
|
ecBufferTooBig : raise EBufferTooBig.Create(Res, False);
|
|
ecPortNotAssigned : raise EPortNotAssigned.Create(Res, False);
|
|
ecInternal,
|
|
ecNoFieldsDefined,
|
|
ecNoIndexKey,
|
|
ecDatabaseNotPrepared : raise EInternal.Create(Res, False);
|
|
ecModemNotAssigned : raise EModemNotAssigned.Create(Res, False);
|
|
ecPhonebookNotAssigned : raise EPhonebookNotAssigned.Create(Res, False);
|
|
ecCannotUseWithWinSock : raise ECannotUseWithWinsock.Create(Res, False);
|
|
|
|
{EOpenComm}
|
|
ecBadId : raise EBadId.Create(Res, False);
|
|
ecBaudRate : raise EBaudRate.Create(Res, False);
|
|
ecByteSize : raise EByteSize.Create(Res, False);
|
|
ecDefault : raise EDefault.Create(Res, False);
|
|
ecHardware : raise EHardware.Create(Res, False);
|
|
ecMemory : raise EMemory.Create(Res, False);
|
|
ecCommNotOpen : raise ECommNotOpen.Create(Res, False);
|
|
ecAlreadyOpen : raise EAlreadyOpen.Create(Res, False);
|
|
ecNoHandles : raise ENoHandles.Create(Res, False);
|
|
ecNoTimers : raise ENoTimers.Create(Res, False);
|
|
ecNoPortSelected : raise ENoPortSelected.Create(Res, False);
|
|
ecNotOpenedByTapi : raise ENotOpenedByTapi.Create(Res, False);
|
|
|
|
{ESerialIO}
|
|
ecNullApi : raise ENullApi.Create(Res, False);
|
|
ecRegisterHandlerFailed : raise ERegisterHandlerFailed.Create(Res, False);
|
|
ecPutBlockFail : raise EPutBlockFail.Create(Res, False);
|
|
ecGetBlockFail : raise EGetBlockFail.Create(Res, False);
|
|
ecOutputBufferTooSmall : raise EOutputBufferTooSmall.Create(Res, False);
|
|
ecBufferIsEmpty : raise EBufferIsEmpty.Create(Res, False);
|
|
ecTracingNotEnabled : raise ETracingNotEnabled.Create(Res, False);
|
|
ecLoggingNotEnabled : raise ELoggingNotEnabled.Create(Res, False);
|
|
ecBaseAddressNotSet : raise EBaseAddressNotSet.Create(Res, False);
|
|
|
|
{EModem}
|
|
ecModemNotStarted : raise EModemNotStarted.Create(Res, False);
|
|
ecModemBusy : raise EModemBusy.Create(Res, False);
|
|
ecModemNotDialing : raise EModemNotDialing.Create(Res, False);
|
|
ecNotDialing : raise ENotDialing.Create(Res, False);
|
|
ecAlreadyDialing : raise EAlreadyDialing.Create(Res, False);
|
|
ecModemNotResponding : raise EModemNotResponding.Create(Res, False);
|
|
ecModemRejectedCommand : raise EModemRejectedCommand.Create(Res, False);
|
|
ecModemStatusMismatch : raise EModemStatusMismatch.Create(Res, False);
|
|
|
|
{ETrigger}
|
|
ecNoMoreTriggers : raise ENoMoreTriggers.Create(Res, False);
|
|
ecTriggerTooLong : raise ETriggerTooLong.Create(Res, False);
|
|
ecBadTriggerHandle : raise EBadTriggerHandle.Create(Res, False);
|
|
|
|
{EProtocol}
|
|
ecTimeout : raise EProtocol.Create(Res, False);
|
|
ecTooManyErrors : raise EProtocol.Create(Res, False);
|
|
ecSequenceError : raise EProtocol.Create(Res, False);
|
|
|
|
{EIni}
|
|
ecKeyTooLong : raise EKeyTooLong.Create(Res, False);
|
|
ecDataTooLarge : raise EDataTooLarge.Create(Res, False);
|
|
ecIniWrite : raise EIniWrite.Create(Res, False);
|
|
ecIniRead : raise EIniRead.Create(Res, False);
|
|
ecRecordExists : raise ERecordExists.Create(Res, False);
|
|
ecRecordNotFound : raise ERecordNotFound.Create(Res, False);
|
|
ecDatabaseFull : raise EDatabaseFull.Create(Res, False);
|
|
ecDatabaseEmpty : raise EDatabaseEmpty.Create(Res, False);
|
|
ecBadFieldList : raise EBadFieldList.Create(Res, False);
|
|
ecBadFieldForIndex : raise EBadFieldForIndex.Create(Res, False);
|
|
|
|
{EFax}
|
|
ecFaxBadFormat : raise EFaxBadFormat.Create(Res, False);
|
|
ecBadGraphicsFormat : raise EBadGraphicsFormat.Create(Res, False);
|
|
ecConvertAbort : raise EConvertAbort.Create(Res, False);
|
|
ecUnpackAbort : raise EUnpackAbort.Create(Res, False);
|
|
ecCantMakeBitmap : raise ECantMakeBitmap.Create(Res, False);
|
|
ecInvalidPageNumber : raise EInvalidPageNumber.Create(Res, False);
|
|
|
|
ecFaxBadMachine : raise EFaxBadMachine.Create(Res, False);
|
|
ecFaxBadModemResult : raise EFaxBadModemResult.Create(Res, False);
|
|
ecFaxTrainError : raise EFaxTrainError.Create(Res, False);
|
|
ecFaxInitError : raise EFaxInitError.Create(Res, False);
|
|
ecFaxBusy : raise EFaxBusy.Create(Res, False);
|
|
ecFaxVoiceCall : raise EFaxVoiceCall.Create(Res, False);
|
|
ecFaxDataCall : raise EFaxDataCall.Create(Res, False);
|
|
ecFaxNoDialTone : raise EFaxNoDialTone.Create(Res, False);
|
|
ecFaxNoCarrier : raise EFaxNoCarrier.Create(Res, False);
|
|
ecFaxSessionError : raise EFaxSessionError.Create(Res, False);
|
|
ecFaxPageError : raise EFaxPageError.Create(Res, False);
|
|
|
|
ecAllocated : raise ETapiAllocated.Create(Res, False);
|
|
ecBadDeviceID : raise ETapiBadDeviceID.Create(Res, False);
|
|
ecBearerModeUnavail : raise ETapiBearerModeUnavail.Create(Res, False);
|
|
ecCallUnavail : raise ETapiCallUnavail.Create(Res, False);
|
|
ecCompletionOverrun : raise ETapiCompletionOverrun.Create(Res, False);
|
|
ecConferenceFull : raise ETapiConferenceFull.Create(Res, False);
|
|
ecDialBilling : raise ETapiDialBilling.Create(Res, False);
|
|
ecDialDialtone : raise ETapiDialDialtone.Create(Res, False);
|
|
ecDialPrompt : raise ETapiDialPrompt.Create(Res, False);
|
|
ecDialQuiet : raise ETapiDialQuiet.Create(Res, False);
|
|
ecIncompatibleApiVersion: raise ETapiIncompatibleApiVersion.Create(Res, False);
|
|
ecIncompatibleExtVersion: raise ETapiIncompatibleExtVersion.Create(Res, False);
|
|
ecIniFileCorrupt : raise ETapiIniFileCorrupt.Create(Res, False);
|
|
ecInUse : raise ETapiInUse.Create(Res, False);
|
|
ecInvalAddress : raise ETapiInvalAddress.Create(Res, False);
|
|
ecInvalAddressID : raise ETapiInvalAddressID.Create(Res, False);
|
|
ecInvalAddressMode : raise ETapiInvalAddressMode.Create(Res, False);
|
|
ecInvalAddressState : raise ETapiInvalAddressState.Create(Res, False);
|
|
ecInvalAppHandle : raise ETapiInvalAppHandle.Create(Res, False);
|
|
ecInvalAppName : raise ETapiInvalAppName.Create(Res, False);
|
|
ecInvalBearerMode : raise ETapiInvalBearerMode.Create(Res, False);
|
|
ecInvalCallComplMode : raise ETapiInvalCallComplMode.Create(Res, False);
|
|
ecInvalCallHandle : raise ETapiInvalCallHandle.Create(Res, False);
|
|
ecInvalCallParams : raise ETapiInvalCallParams.Create(Res, False);
|
|
ecInvalCallPrivilege : raise ETapiInvalCallPrivilege.Create(Res, False);
|
|
ecInvalCallSelect : raise ETapiInvalCallSelect.Create(Res, False);
|
|
ecInvalCallState : raise ETapiInvalCallState.Create(Res, False);
|
|
ecInvalCallStatelist : raise ETapiInvalCallStatelist.Create(Res, False);
|
|
ecInvalCard : raise ETapiInvalCard.Create(Res, False);
|
|
ecInvalCompletionID : raise ETapiInvalCompletionID.Create(Res, False);
|
|
ecInvalConfCallHandle : raise ETapiInvalConfCallHandle.Create(Res, False);
|
|
ecInvalConsultCallHandle: raise ETapiInvalConsultCallHandle.Create(Res, False);
|
|
ecInvalCountryCode : raise ETapiInvalCountryCode.Create(Res, False);
|
|
ecInvalDeviceClass : raise ETapiInvalDeviceClass.Create(Res, False);
|
|
ecInvalDeviceHandle : raise ETapiInvalDeviceHandle.Create(Res, False);
|
|
ecInvalDialParams : raise ETapiInvalDialParams.Create(Res, False);
|
|
ecInvalDigitList : raise ETapiInvalDigitList.Create(Res, False);
|
|
ecInvalDigitMode : raise ETapiInvalDigitMode.Create(Res, False);
|
|
ecInvalDigits : raise ETapiInvalDigits.Create(Res, False);
|
|
ecInvalExtVersion : raise ETapiInvalExtVersion.Create(Res, False);
|
|
ecInvalGroupID : raise ETapiInvalGroupID.Create(Res, False);
|
|
ecInvalLineHandle : raise ETapiInvalLineHandle.Create(Res, False);
|
|
ecInvalLineState : raise ETapiInvalLineState.Create(Res, False);
|
|
ecInvalLocation : raise ETapiInvalLocation.Create(Res, False);
|
|
ecInvalMediaList : raise ETapiInvalMediaList.Create(Res, False);
|
|
ecInvalMediaMode : raise ETapiInvalMediaMode.Create(Res, False);
|
|
ecInvalMessageID : raise ETapiInvalMessageID.Create(Res, False);
|
|
ecInvalParam : raise ETapiInvalParam.Create(Res, False);
|
|
ecInvalParkID : raise ETapiInvalParkID.Create(Res, False);
|
|
ecInvalParkMode : raise ETapiInvalParkMode.Create(Res, False);
|
|
ecInvalPointer : raise ETapiInvalPointer.Create(Res, False);
|
|
ecInvalPrivSelect : raise ETapiInvalPrivSelect.Create(Res, False);
|
|
ecInvalRate : raise ETapiInvalRate.Create(Res, False);
|
|
ecInvalRequestMode : raise ETapiInvalRequestMode.Create(Res, False);
|
|
ecInvalTerminalID : raise ETapiInvalTerminalID.Create(Res, False);
|
|
ecInvalTerminalMode : raise ETapiInvalTerminalMode.Create(Res, False);
|
|
ecInvalTimeout : raise ETapiInvalTimeout.Create(Res, False);
|
|
ecInvalTone : raise ETapiInvalTone.Create(Res, False);
|
|
ecInvalToneList : raise ETapiInvalToneList.Create(Res, False);
|
|
ecInvalToneMode : raise ETapiInvalToneMode.Create(Res, False);
|
|
ecInvalTransferMode : raise ETapiInvalTransferMode.Create(Res, False);
|
|
ecLineMapperFailed : raise ETapiLineMapperFailed.Create(Res, False);
|
|
ecNoConference : raise ETapiNoConference.Create(Res, False);
|
|
ecNoDevice : raise ETapiNoDevice.Create(Res, False);
|
|
ecNoDriver : raise ETapiNoDriver.Create(Res, False);
|
|
ecNoMem : raise ETapiNoMem.Create(Res, False);
|
|
ecNoRequest : raise ETapiNoRequest.Create(Res, False);
|
|
ecNotOwner : raise ETapiNotOwner.Create(Res, False);
|
|
ecNotRegistered : raise ETapiNotRegistered.Create(Res, False);
|
|
ecOperationFailed : raise ETapiOperationFailed.Create(Res, False);
|
|
ecOperationUnavail : raise ETapiOperationUnavail.Create(Res, False);
|
|
ecRateUnavail : raise ETapiRateUnavail.Create(Res, False);
|
|
ecResourceUnavail : raise ETapiResourceUnavail.Create(Res, False);
|
|
ecRequestOverrun : raise ETapiRequestOverrun.Create(Res, False);
|
|
ecStructureTooSmall : raise ETapiStructureTooSmall.Create(Res, False);
|
|
ecTargetNotFound : raise ETapiTargetNotFound.Create(Res, False);
|
|
ecTargetSelf : raise ETapiTargetSelf.Create(Res, False);
|
|
ecUninitialized : raise ETapiUninitialized.Create(Res, False);
|
|
ecUserUserInfoTooBig : raise ETapiUserUserInfoTooBig.Create(Res, False);
|
|
ecReinit : raise ETapiReinit.Create(Res, False);
|
|
ecAddressBlocked : raise ETapiAddressBlocked.Create(Res, False);
|
|
ecBillingRejected : raise ETapiBillingRejected.Create(Res, False);
|
|
ecInvalFeature : raise ETapiInvalFeature.Create(Res, False);
|
|
ecNoMultipleInstance : raise ETapiNoMultipleInstance.Create(Res, False);
|
|
ecTapiBusy : raise ETapiBusy.Create(Res, False);
|
|
ecTapiNotSet : raise ETapiNotSet.Create(Res, False);
|
|
ecTapiNoSelect : raise ETapiNoSelect.Create(Res, False);
|
|
ecTapiLoadFail : raise ETapiLoadFail.Create(Res, False);
|
|
ecTapiGetAddrFail : raise ETapiGetAddrFail.Create(Res, False);
|
|
ecTapiVoiceNotSupported : raise ETapiVoiceNotSupported.Create(Res, False);
|
|
ecTapiWaveFail : raise ETapiWaveFail.Create(Res, False);
|
|
ecTapiTranslateFail : raise ETapiTranslateFail.Create(Res, False);
|
|
|
|
{ERas}
|
|
ecRasLoadFail : raise ERasLoadFail.Create(Res, False);
|
|
|
|
{Couldn't find error message}
|
|
else raise EAPDException.CreateUnknown('Apro exception', 0);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function XlatException(const E : Exception) : Integer;
|
|
{-Translate an exception into an error code}
|
|
begin
|
|
if (E is EApdException) then
|
|
Result := EApdException(E).ErrorCode
|
|
else if (E is EInOutError) then
|
|
Result := -EInOutError(E).ErrorCode
|
|
else if (E is EOutOfMemory) then
|
|
Result := ecOutOfMemory
|
|
else
|
|
Result := -9999;
|
|
end;
|
|
|
|
{ EAdStreamError }
|
|
|
|
constructor EAdStreamError.CreateError(const FilePos: Integer;
|
|
const Reason: DOMString);
|
|
begin
|
|
inherited CreateUnknown(Reason, 0);
|
|
seFilePos := FilePos;
|
|
end;
|
|
|
|
{ EAdFilterError }
|
|
|
|
constructor EAdFilterError.CreateError(const FilePos, Line,
|
|
LinePos: Integer; const Reason: DOMString);
|
|
begin
|
|
inherited CreateError(FilePos, Reason);
|
|
|
|
feLine := Line;
|
|
feLinePos := LinePos;
|
|
feReason := Reason;
|
|
end;
|
|
|
|
{ EAdParserError }
|
|
|
|
constructor EAdParserError.CreateError(Line, LinePos: Integer;
|
|
const Reason: DOMString);
|
|
begin
|
|
inherited CreateError(FilePos, Line, LinePos, Reason);
|
|
end;
|
|
|
|
{ EApdGSMPhoneException }
|
|
|
|
constructor EApdGSMPhoneException.Create(const ErrCode: Integer;
|
|
const Msg: string);
|
|
begin
|
|
inherited Create (Msg);
|
|
|
|
FErrorCode := ErrCode;
|
|
end;
|
|
|
|
{ EApdPagerException }
|
|
|
|
constructor EApdPagerException.Create(const ErrCode: Integer;
|
|
const Msg: string);
|
|
begin
|
|
inherited Create (Msg);
|
|
|
|
FErrorCode := ErrCode;
|
|
end;
|
|
|
|
end.
|