delphi 保存网页MHT

时间:2021-11-28 16:45:14

delphi 保存网页MHT


 
uses ADODB_TLB, CDO_TLB, ComObj,MSHTML;
{$R *.dfm}
{能把网页如 WWW.QQ.COM保存为一个单文件 .MHT
但不能把一个 A.HTM 保存为一个单文件 .MHT

procedure WB_SaveAs_MHT(WB: TWebBrowser; FileName: TFileName);
var
  Msg: IMessage;
  Conf: IConfiguration;
  Stream: _Stream;
  URL: Widestring;
begin
 
  if not Assigned(WB.Document) then
    Exit;
  URL := WB.LocationURL;
 
  Msg := CoMessage.Create;
  Conf := CoConfiguration.Create;
  try
    Msg.Configuration := Conf;
    Msg.CreateMHTMLBody(URL, cdoSuppressNone, '', '');
    Stream := Msg.GetStream;
    Stream.SaveToFile(FileName, adSaveCreateOverWrite);
  finally
    Msg := nil;
    Conf := nil;
    Stream := nil;
  end;
end; (* WB_SaveAs_MHT *)
procedure TForm1.FormCreate(Sender: TObject);
var
  f: string;
begin
  f := ExtractFilePath(Application.ExeName) + 'WebDoc.htm';
  WebBrowser1.Navigate('file:///C:\Users\Admin\Desktop\新建文件夹\WebDoc.htm');
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  WB_SaveAs_MHT(WebBrowser1,'C:\Users\Admin\Desktop\11.mht');
end;
 
 
ADODB_TLB.pas
unit ADODB_TLB;

// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //

// PASTLWTR : 1.2
// File generated on 2009-05-15 21:38:11 from Type Library described below.

// ************************************************************************ //
// Type Lib: C:\Program Files\Common Files\System\ado\msado15.dll (1)
// LIBID: {2A75196C-D9EB-4129-B803-931327F72D5C}
// LCID: 0
// Helpfile: C:\Program Files\Common Files\System\ado\ado270.chm
// HelpString: Microsoft ActiveX Data Objects 2.8 Library
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\system32\stdole2.tlb)
// Errors:
// Hint: TypeInfo 'Property' changed to 'Property_'
// Hint: TypeInfo 'Record' changed to 'Record_'
// Hint: Parameter 'Object' of _DynaCollection.Append changed to 'Object_'
// Hint: Symbol 'Type' renamed to 'type_'
// Hint: Parameter 'Type' of Command15.CreateParameter changed to 'Type_'
// Hint: Parameter 'Type' of Fields.Append changed to 'Type_'
// Hint: Parameter 'Type' of Fields20._Append changed to 'Type_'
// Hint: Symbol 'Type' renamed to 'type_'
// Hint: Symbol 'Type' renamed to 'type_'
// Hint: Symbol 'Type' renamed to 'type_'
// Hint: Symbol 'Type' renamed to 'type_'
// Hint: Symbol 'Type' renamed to 'type_'
// Hint: Symbol 'Type' renamed to 'type_'
// Hint: Symbol 'Type' renamed to 'type_'
// Error creating palette bitmap of (TConnection) : Server C:\Program Files\Common Files\System\ado\msado15.dll contains no icons
// Error creating palette bitmap of (TRecord) : Server C:\Program Files\Common Files\System\ado\msado15.dll contains no icons
// Error creating palette bitmap of (TStream) : Server C:\Program Files\Common Files\System\ado\msado15.dll contains no icons
// Error creating palette bitmap of (TCommand) : Server C:\Program Files\Common Files\System\ado\msado15.dll contains no icons
// Error creating palette bitmap of (TRecordset) : Server C:\Program Files\Common Files\System\ado\msado15.dll contains no icons
// Error creating palette bitmap of (TParameter) : Server C:\Program Files\Common Files\System\ado\msado15.dll contains no icons
// ************************************************************************ //
// *************************************************************************//
// NOTE:
// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties
// which return objects that may need to be explicitly created via a function
// call prior to any access via the property. These items have been disabled
// in order to prevent accidental use from within the object inspector. You
// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively
// removing them from the $IFDEF blocks. However, such items must still be
// programmatically created via a method of the appropriate CoClass before
// they can be used.
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
interface

uses Windows, ActiveX, Classes, Graphics, OleServer, StdVCL, Variants;

// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
ADODBMajorVersion = 2;
ADODBMinorVersion = 8;

LIBID_ADODB: TGUID = '{2A75196C-D9EB-4129-B803-931327F72D5C}';

IID__Collection: TGUID = '{00000512-0000-0010-8000-00AA006D2EA4}';
IID__DynaCollection: TGUID = '{00000513-0000-0010-8000-00AA006D2EA4}';
IID__ADO: TGUID = '{00000534-0000-0010-8000-00AA006D2EA4}';
IID_Properties: TGUID = '{00000504-0000-0010-8000-00AA006D2EA4}';
IID_Property_: TGUID = '{00000503-0000-0010-8000-00AA006D2EA4}';
IID_Error: TGUID = '{00000500-0000-0010-8000-00AA006D2EA4}';
IID_Errors: TGUID = '{00000501-0000-0010-8000-00AA006D2EA4}';
IID_Command15: TGUID = '{00000508-0000-0010-8000-00AA006D2EA4}';
IID_Connection15: TGUID = '{00000515-0000-0010-8000-00AA006D2EA4}';
IID__Connection: TGUID = '{00000550-0000-0010-8000-00AA006D2EA4}';
IID_Recordset15: TGUID = '{0000050E-0000-0010-8000-00AA006D2EA4}';
IID_Recordset20: TGUID = '{0000054F-0000-0010-8000-00AA006D2EA4}';
IID_Recordset21: TGUID = '{00000555-0000-0010-8000-00AA006D2EA4}';
IID__Recordset: TGUID = '{00000556-0000-0010-8000-00AA006D2EA4}';
IID_Fields15: TGUID = '{00000506-0000-0010-8000-00AA006D2EA4}';
IID_Fields20: TGUID = '{0000054D-0000-0010-8000-00AA006D2EA4}';
IID_Fields: TGUID = '{00000564-0000-0010-8000-00AA006D2EA4}';
IID_Field20: TGUID = '{0000054C-0000-0010-8000-00AA006D2EA4}';
IID_Field: TGUID = '{00000569-0000-0010-8000-00AA006D2EA4}';
IID__Parameter: TGUID = '{0000050C-0000-0010-8000-00AA006D2EA4}';
IID_Parameters: TGUID = '{0000050D-0000-0010-8000-00AA006D2EA4}';
IID_Command25: TGUID = '{0000054E-0000-0010-8000-00AA006D2EA4}';
IID__Command: TGUID = '{B08400BD-F9D1-4D02-B856-71D5DBA123E9}';
IID_ConnectionEventsVt: TGUID = '{00000402-0000-0010-8000-00AA006D2EA4}';
IID_RecordsetEventsVt: TGUID = '{00000403-0000-0010-8000-00AA006D2EA4}';
DIID_ConnectionEvents: TGUID = '{00000400-0000-0010-8000-00AA006D2EA4}';
DIID_RecordsetEvents: TGUID = '{00000266-0000-0010-8000-00AA006D2EA4}';
IID_ADOConnectionConstruction15: TGUID = '{00000516-0000-0010-8000-00AA006D2EA4}';
IID_ADOConnectionConstruction: TGUID = '{00000551-0000-0010-8000-00AA006D2EA4}';
CLASS_Connection: TGUID = '{00000514-0000-0010-8000-00AA006D2EA4}';
IID__Record: TGUID = '{00000562-0000-0010-8000-00AA006D2EA4}';
CLASS_Record_: TGUID = '{00000560-0000-0010-8000-00AA006D2EA4}';
IID__Stream: TGUID = '{00000565-0000-0010-8000-00AA006D2EA4}';
CLASS_Stream: TGUID = '{00000566-0000-0010-8000-00AA006D2EA4}';
IID_ADORecordConstruction: TGUID = '{00000567-0000-0010-8000-00AA006D2EA4}';
IID_ADOStreamConstruction: TGUID = '{00000568-0000-0010-8000-00AA006D2EA4}';
IID_ADOCommandConstruction: TGUID = '{00000517-0000-0010-8000-00AA006D2EA4}';
CLASS_Command: TGUID = '{00000507-0000-0010-8000-00AA006D2EA4}';
CLASS_Recordset: TGUID = '{00000535-0000-0010-8000-00AA006D2EA4}';
IID_ADORecordsetConstruction: TGUID = '{00000283-0000-0010-8000-00AA006D2EA4}';
IID_Field15: TGUID = '{00000505-0000-0010-8000-00AA006D2EA4}';
CLASS_Parameter: TGUID = '{0000050B-0000-0010-8000-00AA006D2EA4}';

// *********************************************************************//
// Declaration of Enumerations defined in Type Library
// *********************************************************************//
// Constants for enum CursorTypeEnum
type
CursorTypeEnum = TOleEnum;
const
adOpenUnspecified = $FFFFFFFF;
adOpenForwardOnly = $00000000;
adOpenKeyset = $00000001;
adOpenDynamic = $00000002;
adOpenStatic = $00000003;

// Constants for enum CursorOptionEnum
type
CursorOptionEnum = TOleEnum;
const
adHoldRecords = $00000100;
adMovePrevious = $00000200;
adAddNew = $01000400;
adDelete = $01000800;
adUpdate = $01008000;
adBookmark = $00002000;
adApproxPosition = $00004000;
adUpdateBatch = $00010000;
adResync = $00020000;
adNotify = $00040000;
adFind = $00080000;
adSeek = $00400000;
adIndex = $00800000;

// Constants for enum LockTypeEnum
type
LockTypeEnum = TOleEnum;
const
adLockUnspecified = $FFFFFFFF;
adLockReadOnly = $00000001;
adLockPessimistic = $00000002;
adLockOptimistic = $00000003;
adLockBatchOptimistic = $00000004;

// Constants for enum ExecuteOptionEnum
type
ExecuteOptionEnum = TOleEnum;
const
adOptionUnspecified = $FFFFFFFF;
adAsyncExecute = $00000010;
adAsyncFetch = $00000020;
adAsyncFetchNonBlocking = $00000040;
adExecuteNoRecords = $00000080;
adExecuteStream = $00000400;
adExecuteRecord = $00000800;

// Constants for enum ConnectOptionEnum
type
ConnectOptionEnum = TOleEnum;
const
adConnectUnspecified = $FFFFFFFF;
adAsyncConnect = $00000010;

// Constants for enum ObjectStateEnum
type
ObjectStateEnum = TOleEnum;
const
adStateClosed = $00000000;
adStateOpen = $00000001;
adStateConnecting = $00000002;
adStateExecuting = $00000004;
adStateFetching = $00000008;

// Constants for enum CursorLocationEnum
type
CursorLocationEnum = TOleEnum;
const
adUseNone = $00000001;
adUseServer = $00000002;
adUseClient = $00000003;
adUseClientBatch = $00000003;

// Constants for enum DataTypeEnum
type
DataTypeEnum = TOleEnum;
const
adEmpty = $00000000;
adTinyInt = $00000010;
adSmallInt = $00000002;
adInteger = $00000003;
adBigInt = $00000014;
adUnsignedTinyInt = $00000011;
adUnsignedSmallInt = $00000012;
adUnsignedInt = $00000013;
adUnsignedBigInt = $00000015;
adSingle = $00000004;
adDouble = $00000005;
adCurrency = $00000006;
adDecimal = $0000000E;
adNumeric = $00000083;
adBoolean = $0000000B;
adError = $0000000A;
adUserDefined = $00000084;
adVariant = $0000000C;
adIDispatch = $00000009;
adIUnknown = $0000000D;
adGUID = $00000048;
adDate = $00000007;
adDBDate = $00000085;
adDBTime = $00000086;
adDBTimeStamp = $00000087;
adBSTR = $00000008;
adChar = $00000081;
adVarChar = $000000C8;
adLongVarChar = $000000C9;
adWChar = $00000082;
adVarWChar = $000000CA;
adLongVarWChar = $000000CB;
adBinary = $00000080;
adVarBinary = $000000CC;
adLongVarBinary = $000000CD;
adChapter = $00000088;
adFileTime = $00000040;
adPropVariant = $0000008A;
adVarNumeric = $0000008B;
adArray = $00002000;

// Constants for enum FieldAttributeEnum
type
FieldAttributeEnum = TOleEnum;
const
adFldUnspecified = $FFFFFFFF;
adFldMayDefer = $00000002;
adFldUpdatable = $00000004;
adFldUnknownUpdatable = $00000008;
adFldFixed = $00000010;
adFldIsNullable = $00000020;
adFldMayBeNull = $00000040;
adFldLong = $00000080;
adFldRowID = $00000100;
adFldRowVersion = $00000200;
adFldCacheDeferred = $00001000;
adFldIsChapter = $00002000;
adFldNegativeScale = $00004000;
adFldKeyColumn = $00008000;
adFldIsRowURL = $00010000;
adFldIsDefaultStream = $00020000;
adFldIsCollection = $00040000;

// Constants for enum EditModeEnum
type
EditModeEnum = TOleEnum;
const
adEditNone = $00000000;
adEditInProgress = $00000001;
adEditAdd = $00000002;
adEditDelete = $00000004;

// Constants for enum RecordStatusEnum
type
RecordStatusEnum = TOleEnum;
const
adRecOK = $00000000;
adRecNew = $00000001;
adRecModified = $00000002;
adRecDeleted = $00000004;
adRecUnmodified = $00000008;
adRecInvalid = $00000010;
adRecMultipleChanges = $00000040;
adRecPendingChanges = $00000080;
adRecCanceled = $00000100;
adRecCantRelease = $00000400;
adRecConcurrencyViolation = $00000800;
adRecIntegrityViolation = $00001000;
adRecMaxChangesExceeded = $00002000;
adRecObjectOpen = $00004000;
adRecOutOfMemory = $00008000;
adRecPermissionDenied = $00010000;
adRecSchemaViolation = $00020000;
adRecDBDeleted = $00040000;

// Constants for enum GetRowsOptionEnum
type
GetRowsOptionEnum = TOleEnum;
const
adGetRowsRest = $FFFFFFFF;

// Constants for enum PositionEnum
type
PositionEnum = TOleEnum;
const
adPosUnknown = $FFFFFFFF;
adPosBOF = $FFFFFFFE;
adPosEOF = $FFFFFFFD;

// Constants for enum BookmarkEnum
type
BookmarkEnum = TOleEnum;
const
adBookmarkCurrent = $00000000;
adBookmarkFirst = $00000001;
adBookmarkLast = $00000002;

// Constants for enum MarshalOptionsEnum
type
MarshalOptionsEnum = TOleEnum;
const
adMarshalAll = $00000000;
adMarshalModifiedOnly = $00000001;

// Constants for enum AffectEnum
type
AffectEnum = TOleEnum;
const
adAffectCurrent = $00000001;
adAffectGroup = $00000002;
adAffectAll = $00000003;
adAffectAllChapters = $00000004;

// Constants for enum ResyncEnum
type
ResyncEnum = TOleEnum;
const
adResyncUnderlyingValues = $00000001;
adResyncAllValues = $00000002;

// Constants for enum CompareEnum
type
CompareEnum = TOleEnum;
const
adCompareLessThan = $00000000;
adCompareEqual = $00000001;
adCompareGreaterThan = $00000002;
adCompareNotEqual = $00000003;
adCompareNotComparable = $00000004;

// Constants for enum FilterGroupEnum
type
FilterGroupEnum = TOleEnum;
const
adFilterNone = $00000000;
adFilterPendingRecords = $00000001;
adFilterAffectedRecords = $00000002;
adFilterFetchedRecords = $00000003;
adFilterPredicate = $00000004;
adFilterConflictingRecords = $00000005;

// Constants for enum SearchDirectionEnum
type
SearchDirectionEnum = TOleEnum;
const
adSearchForward = $00000001;
adSearchBackward = $FFFFFFFF;

// Constants for enum PersistFormatEnum
type
PersistFormatEnum = TOleEnum;
const
adPersistADTG = $00000000;
adPersistXML = $00000001;

// Constants for enum StringFormatEnum
type
StringFormatEnum = TOleEnum;
const
adClipString = $00000002;

// Constants for enum ConnectPromptEnum
type
ConnectPromptEnum = TOleEnum;
const
adPromptAlways = $00000001;
adPromptComplete = $00000002;
adPromptCompleteRequired = $00000003;
adPromptNever = $00000004;

// Constants for enum ConnectModeEnum
type
ConnectModeEnum = TOleEnum;
const
adModeUnknown = $00000000;
adModeRead = $00000001;
adModeWrite = $00000002;
adModeReadWrite = $00000003;
adModeShareDenyRead = $00000004;
adModeShareDenyWrite = $00000008;
adModeShareExclusive = $0000000C;
adModeShareDenyNone = $00000010;
adModeRecursive = $00400000;

// Constants for enum RecordCreateOptionsEnum
type
RecordCreateOptionsEnum = TOleEnum;
const
adCreateCollection = $00002000;
adCreateStructDoc = $80000000;
adCreateNonCollection = $00000000;
adOpenIfExists = $02000000;
adCreateOverwrite = $04000000;
adFailIfNotExists = $FFFFFFFF;

// Constants for enum RecordOpenOptionsEnum
type
RecordOpenOptionsEnum = TOleEnum;
const
adOpenRecordUnspecified = $FFFFFFFF;
adOpenSource = $00800000;
adOpenOutput = $00800000;
adOpenAsync = $00001000;
adDelayFetchStream = $00004000;
adDelayFetchFields = $00008000;
adOpenExecuteCommand = $00010000;

// Constants for enum IsolationLevelEnum
type
IsolationLevelEnum = TOleEnum;
const
adXactUnspecified = $FFFFFFFF;
adXactChaos = $00000010;
adXactReadUncommitted = $00000100;
adXactBrowse = $00000100;
adXactCursorStability = $00001000;
adXactReadCommitted = $00001000;
adXactRepeatableRead = $00010000;
adXactSerializable = $00100000;
adXactIsolated = $00100000;

// Constants for enum XactAttributeEnum
type
XactAttributeEnum = TOleEnum;
const
adXactCommitRetaining = $00020000;
adXactAbortRetaining = $00040000;
adXactAsyncPhaseOne = $00080000;
adXactSyncPhaseOne = $00100000;

// Constants for enum PropertyAttributesEnum
type
PropertyAttributesEnum = TOleEnum;
const
adPropNotSupported = $00000000;
adPropRequired = $00000001;
adPropOptional = $00000002;
adPropRead = $00000200;
adPropWrite = $00000400;

// Constants for enum ErrorValueEnum
type
ErrorValueEnum = TOleEnum;
const
adErrProviderFailed = $00000BB8;
adErrInvalidArgument = $00000BB9;
adErrOpeningFile = $00000BBA;
adErrReadFile = $00000BBB;
adErrWriteFile = $00000BBC;
adErrNoCurrentRecord = $00000BCD;
adErrIllegalOperation = $00000C93;
adErrCantChangeProvider = $00000C94;
adErrInTransaction = $00000CAE;
adErrFeatureNotAvailable = $00000CB3;
adErrItemNotFound = $00000CC1;
adErrObjectInCollection = $00000D27;
adErrObjectNotSet = $00000D5C;
adErrDataConversion = $00000D5D;
adErrObjectClosed = $00000E78;
adErrObjectOpen = $00000E79;
adErrProviderNotFound = $00000E7A;
adErrBoundToCommand = $00000E7B;
adErrInvalidParamInfo = $00000E7C;
adErrInvalidConnection = $00000E7D;
adErrNotReentrant = $00000E7E;
adErrStillExecuting = $00000E7F;
adErrOperationCancelled = $00000E80;
adErrStillConnecting = $00000E81;
adErrInvalidTransaction = $00000E82;
adErrNotExecuting = $00000E83;
adErrUnsafeOperation = $00000E84;
adwrnSecurityDialog = $00000E85;
adwrnSecurityDialogHeader = $00000E86;
adErrIntegrityViolation = $00000E87;
adErrPermissionDenied = $00000E88;
adErrDataOverflow = $00000E89;
adErrSchemaViolation = $00000E8A;
adErrSignMismatch = $00000E8B;
adErrCantConvertvalue = $00000E8C;
adErrCantCreate = $00000E8D;
adErrColumnNotOnThisRow = $00000E8E;
adErrURLDoesNotExist = $00000E8F;
adErrTreePermissionDenied = $00000E90;
adErrInvalidURL = $00000E91;
adErrResourceLocked = $00000E92;
adErrResourceExists = $00000E93;
adErrCannotComplete = $00000E94;
adErrVolumeNotFound = $00000E95;
adErrOutOfSpace = $00000E96;
adErrResourceOutOfScope = $00000E97;
adErrUnavailable = $00000E98;
adErrURLNamedRowDoesNotExist = $00000E99;
adErrDelResOutOfScope = $00000E9A;
adErrPropInvalidColumn = $00000E9B;
adErrPropInvalidOption = $00000E9C;
adErrPropInvalidValue = $00000E9D;
adErrPropConflicting = $00000E9E;
adErrPropNotAllSettable = $00000E9F;
adErrPropNotSet = $00000EA0;
adErrPropNotSettable = $00000EA1;
adErrPropNotSupported = $00000EA2;
adErrCatalogNotSet = $00000EA3;
adErrCantChangeConnection = $00000EA4;
adErrFieldsUpdateFailed = $00000EA5;
adErrDenyNotSupported = $00000EA6;
adErrDenyTypeNotSupported = $00000EA7;
adErrProviderNotSpecified = $00000EA9;
adErrConnectionStringTooLong = $00000EAA;

// Constants for enum ParameterAttributesEnum
type
ParameterAttributesEnum = TOleEnum;
const
adParamSigned = $00000010;
adParamNullable = $00000040;
adParamLong = $00000080;

// Constants for enum ParameterDirectionEnum
type
ParameterDirectionEnum = TOleEnum;
const
adParamUnknown = $00000000;
adParamInput = $00000001;
adParamOutput = $00000002;
adParamInputOutput = $00000003;
adParamReturnValue = $00000004;

// Constants for enum CommandTypeEnum
type
CommandTypeEnum = TOleEnum;
const
adCmdUnspecified = $FFFFFFFF;
adCmdUnknown = $00000008;
adCmdText = $00000001;
adCmdTable = $00000002;
adCmdStoredProc = $00000004;
adCmdFile = $00000100;
adCmdTableDirect = $00000200;

// Constants for enum EventStatusEnum
type
EventStatusEnum = TOleEnum;
const
adStatusOK = $00000001;
adStatusErrorsOccurred = $00000002;
adStatusCantDeny = $00000003;
adStatusCancel = $00000004;
adStatusUnwantedEvent = $00000005;

// Constants for enum EventReasonEnum
type
EventReasonEnum = TOleEnum;
const
adRsnAddNew = $00000001;
adRsnDelete = $00000002;
adRsnUpdate = $00000003;
adRsnUndoUpdate = $00000004;
adRsnUndoAddNew = $00000005;
adRsnUndoDelete = $00000006;
adRsnRequery = $00000007;
adRsnResynch = $00000008;
adRsnClose = $00000009;
adRsnMove = $0000000A;
adRsnFirstChange = $0000000B;
adRsnMoveFirst = $0000000C;
adRsnMoveNext = $0000000D;
adRsnMovePrevious = $0000000E;
adRsnMoveLast = $0000000F;

// Constants for enum SchemaEnum
type
SchemaEnum = TOleEnum;
const
adSchemaProviderSpecific = $FFFFFFFF;
adSchemaAsserts = $00000000;
adSchemaCatalogs = $00000001;
adSchemaCharacterSets = $00000002;
adSchemaCollations = $00000003;
adSchemaColumns = $00000004;
adSchemaCheckConstraints = $00000005;
adSchemaConstraintColumnUsage = $00000006;
adSchemaConstraintTableUsage = $00000007;
adSchemaKeyColumnUsage = $00000008;
adSchemaReferentialContraints = $00000009;
adSchemaReferentialConstraints = $00000009;
adSchemaTableConstraints = $0000000A;
adSchemaColumnsDomainUsage = $0000000B;
adSchemaIndexes = $0000000C;
adSchemaColumnPrivileges = $0000000D;
adSchemaTablePrivileges = $0000000E;
adSchemaUsagePrivileges = $0000000F;
adSchemaProcedures = $00000010;
adSchemaSchemata = $00000011;
adSchemaSQLLanguages = $00000012;
adSchemaStatistics = $00000013;
adSchemaTables = $00000014;
adSchemaTranslations = $00000015;
adSchemaProviderTypes = $00000016;
adSchemaViews = $00000017;
adSchemaViewColumnUsage = $00000018;
adSchemaViewTableUsage = $00000019;
adSchemaProcedureParameters = $0000001A;
adSchemaForeignKeys = $0000001B;
adSchemaPrimaryKeys = $0000001C;
adSchemaProcedureColumns = $0000001D;
adSchemaDBInfoKeywords = $0000001E;
adSchemaDBInfoLiterals = $0000001F;
adSchemaCubes = $00000020;
adSchemaDimensions = $00000021;
adSchemaHierarchies = $00000022;
adSchemaLevels = $00000023;
adSchemaMeasures = $00000024;
adSchemaProperties = $00000025;
adSchemaMembers = $00000026;
adSchemaTrustees = $00000027;
adSchemaFunctions = $00000028;
adSchemaActions = $00000029;
adSchemaCommands = $0000002A;
adSchemaSets = $0000002B;

// Constants for enum FieldStatusEnum
type
FieldStatusEnum = TOleEnum;
const
adFieldOK = $00000000;
adFieldCantConvertValue = $00000002;
adFieldIsNull = $00000003;
adFieldTruncated = $00000004;
adFieldSignMismatch = $00000005;
adFieldDataOverflow = $00000006;
adFieldCantCreate = $00000007;
adFieldUnavailable = $00000008;
adFieldPermissionDenied = $00000009;
adFieldIntegrityViolation = $0000000A;
adFieldSchemaViolation = $0000000B;
adFieldBadStatus = $0000000C;
adFieldDefault = $0000000D;
adFieldIgnore = $0000000F;
adFieldDoesNotExist = $00000010;
adFieldInvalidURL = $00000011;
adFieldResourceLocked = $00000012;
adFieldResourceExists = $00000013;
adFieldCannotComplete = $00000014;
adFieldVolumeNotFound = $00000015;
adFieldOutOfSpace = $00000016;
adFieldCannotDeleteSource = $00000017;
adFieldReadOnly = $00000018;
adFieldResourceOutOfScope = $00000019;
adFieldAlreadyExists = $0000001A;
adFieldPendingInsert = $00010000;
adFieldPendingDelete = $00020000;
adFieldPendingChange = $00040000;
adFieldPendingUnknown = $00080000;
adFieldPendingUnknownDelete = $00100000;

// Constants for enum SeekEnum
type
SeekEnum = TOleEnum;
const
adSeekFirstEQ = $00000001;
adSeekLastEQ = $00000002;
adSeekAfterEQ = $00000004;
adSeekAfter = $00000008;
adSeekBeforeEQ = $00000010;
adSeekBefore = $00000020;

// Constants for enum ADCPROP_UPDATECRITERIA_ENUM
type
ADCPROP_UPDATECRITERIA_ENUM = TOleEnum;
const
adCriteriaKey = $00000000;
adCriteriaAllCols = $00000001;
adCriteriaUpdCols = $00000002;
adCriteriaTimeStamp = $00000003;

// Constants for enum ADCPROP_ASYNCTHREADPRIORITY_ENUM
type
ADCPROP_ASYNCTHREADPRIORITY_ENUM = TOleEnum;
const
adPriorityLowest = $00000001;
adPriorityBelowNormal = $00000002;
adPriorityNormal = $00000003;
adPriorityAboveNormal = $00000004;
adPriorityHighest = $00000005;

// Constants for enum ADCPROP_AUTORECALC_ENUM
type
ADCPROP_AUTORECALC_ENUM = TOleEnum;
const
adRecalcUpFront = $00000000;
adRecalcAlways = $00000001;

// Constants for enum ADCPROP_UPDATERESYNC_ENUM
type
ADCPROP_UPDATERESYNC_ENUM = TOleEnum;
const
adResyncNone = $00000000;
adResyncAutoIncrement = $00000001;
adResyncConflicts = $00000002;
adResyncUpdates = $00000004;
adResyncInserts = $00000008;
adResyncAll = $0000000F;

// Constants for enum MoveRecordOptionsEnum
type
MoveRecordOptionsEnum = TOleEnum;
const
adMoveUnspecified = $FFFFFFFF;
adMoveOverWrite = $00000001;
adMoveDontUpdateLinks = $00000002;
adMoveAllowEmulation = $00000004;

// Constants for enum CopyRecordOptionsEnum
type
CopyRecordOptionsEnum = TOleEnum;
const
adCopyUnspecified = $FFFFFFFF;
adCopyOverWrite = $00000001;
adCopyAllowEmulation = $00000004;
adCopyNonRecursive = $00000002;

// Constants for enum StreamTypeEnum
type
StreamTypeEnum = TOleEnum;
const
adTypeBinary = $00000001;
adTypeText = $00000002;

// Constants for enum LineSeparatorEnum
type
LineSeparatorEnum = TOleEnum;
const
adLF = $0000000A;
adCR = $0000000D;
adCRLF = $FFFFFFFF;

// Constants for enum StreamOpenOptionsEnum
type
StreamOpenOptionsEnum = TOleEnum;
const
adOpenStreamUnspecified = $FFFFFFFF;
adOpenStreamAsync = $00000001;
adOpenStreamFromRecord = $00000004;

// Constants for enum StreamWriteEnum
type
StreamWriteEnum = TOleEnum;
const
adWriteChar = $00000000;
adWriteLine = $00000001;
stWriteChar = $00000000;
stWriteLine = $00000001;

// Constants for enum SaveOptionsEnum
type
SaveOptionsEnum = TOleEnum;
const
adSaveCreateNotExist = $00000001;
adSaveCreateOverWrite = $00000002;

// Constants for enum FieldEnum
type
FieldEnum = TOleEnum;
const
adDefaultStream = $FFFFFFFF;
adRecordURL = $FFFFFFFE;

// Constants for enum StreamReadEnum
type
StreamReadEnum = TOleEnum;
const
adReadAll = $FFFFFFFF;
adReadLine = $FFFFFFFE;

// Constants for enum RecordTypeEnum
type
RecordTypeEnum = TOleEnum;
const
adSimpleRecord = $00000000;
adCollectionRecord = $00000001;
adStructDoc = $00000002;

type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
_Collection = interface;
_CollectionDisp = dispinterface;
_DynaCollection = interface;
_DynaCollectionDisp = dispinterface;
_ADO = interface;
_ADODisp = dispinterface;
Properties = interface;
PropertiesDisp = dispinterface;
Property_ = interface;
Property_Disp = dispinterface;
Error = interface;
ErrorDisp = dispinterface;
Errors = interface;
ErrorsDisp = dispinterface;
Command15 = interface;
Command15Disp = dispinterface;
Connection15 = interface;
Connection15Disp = dispinterface;
_Connection = interface;
_ConnectionDisp = dispinterface;
Recordset15 = interface;
Recordset15Disp = dispinterface;
Recordset20 = interface;
Recordset20Disp = dispinterface;
Recordset21 = interface;
Recordset21Disp = dispinterface;
_Recordset = interface;
_RecordsetDisp = dispinterface;
Fields15 = interface;
Fields15Disp = dispinterface;
Fields20 = interface;
Fields20Disp = dispinterface;
Fields = interface;
FieldsDisp = dispinterface;
Field20 = interface;
Field20Disp = dispinterface;
Field = interface;
FieldDisp = dispinterface;
_Parameter = interface;
_ParameterDisp = dispinterface;
Parameters = interface;
ParametersDisp = dispinterface;
Command25 = interface;
Command25Disp = dispinterface;
_Command = interface;
_CommandDisp = dispinterface;
ConnectionEventsVt = interface;
RecordsetEventsVt = interface;
ConnectionEvents = dispinterface;
RecordsetEvents = dispinterface;
ADOConnectionConstruction15 = interface;
ADOConnectionConstruction = interface;
_Record = interface;
_RecordDisp = dispinterface;
_Stream = interface;
_StreamDisp = dispinterface;
ADORecordConstruction = interface;
ADOStreamConstruction = interface;
ADOCommandConstruction = interface;
ADORecordsetConstruction = interface;
Field15 = interface;
Field15Disp = dispinterface;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
Connection = _Connection;
Record_ = _Record;
Stream = _Stream;
Command = _Command;
Recordset = _Recordset;
Parameter = _Parameter;

// *********************************************************************//
// Declaration of structures, unions and aliases.
// *********************************************************************//
POleVariant1 = ^OleVariant; {*}

PositionEnum_Param = PositionEnum;
SearchDirection = SearchDirectionEnum;
ADO_LONGPTR = Integer;

// *********************************************************************//
// Interface: _Collection
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000512-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_Collection = interface(IDispatch)
['{00000512-0000-0010-8000-00AA006D2EA4}']
function Get_Count: Integer; safecall;
function _NewEnum: IUnknown; safecall;
procedure Refresh; safecall;
property Count: Integer read Get_Count;
end;

// *********************************************************************//
// DispIntf: _CollectionDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000512-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_CollectionDisp = dispinterface
['{00000512-0000-0010-8000-00AA006D2EA4}']
property Count: Integer readonly dispid 1;
function _NewEnum: IUnknown; dispid -4;
procedure Refresh; dispid 2;
end;

// *********************************************************************//
// Interface: _DynaCollection
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000513-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_DynaCollection = interface(_Collection)
['{00000513-0000-0010-8000-00AA006D2EA4}']
procedure Append(const Object_: IDispatch); safecall;
procedure Delete(Index: OleVariant); safecall;
end;

// *********************************************************************//
// DispIntf: _DynaCollectionDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000513-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_DynaCollectionDisp = dispinterface
['{00000513-0000-0010-8000-00AA006D2EA4}']
procedure Append(const Object_: IDispatch); dispid 1610809344;
procedure Delete(Index: OleVariant); dispid 1610809345;
property Count: Integer readonly dispid 1;
function _NewEnum: IUnknown; dispid -4;
procedure Refresh; dispid 2;
end;

// *********************************************************************//
// Interface: _ADO
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000534-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_ADO = interface(IDispatch)
['{00000534-0000-0010-8000-00AA006D2EA4}']
function Get_Properties: Properties; safecall;
property Properties: Properties read Get_Properties;
end;

// *********************************************************************//
// DispIntf: _ADODisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000534-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_ADODisp = dispinterface
['{00000534-0000-0010-8000-00AA006D2EA4}']
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: Properties
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000504-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Properties = interface(_Collection)
['{00000504-0000-0010-8000-00AA006D2EA4}']
function Get_Item(Index: OleVariant): Property_; safecall;
property Item[Index: OleVariant]: Property_ read Get_Item; default;
end;

// *********************************************************************//
// DispIntf: PropertiesDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000504-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
PropertiesDisp = dispinterface
['{00000504-0000-0010-8000-00AA006D2EA4}']
property Item[Index: OleVariant]: Property_ readonly dispid 0; default;
property Count: Integer readonly dispid 1;
function _NewEnum: IUnknown; dispid -4;
procedure Refresh; dispid 2;
end;

// *********************************************************************//
// Interface: Property_
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000503-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Property_ = interface(IDispatch)
['{00000503-0000-0010-8000-00AA006D2EA4}']
function Get_Value: OleVariant; safecall;
procedure Set_Value(pval: OleVariant); safecall;
function Get_Name: WideString; safecall;
function Get_type_: DataTypeEnum; safecall;
function Get_Attributes: Integer; safecall;
procedure Set_Attributes(plAttributes: Integer); safecall;
property Value: OleVariant read Get_Value write Set_Value;
property Name: WideString read Get_Name;
property type_: DataTypeEnum read Get_type_;
property Attributes: Integer read Get_Attributes write Set_Attributes;
end;

// *********************************************************************//
// DispIntf: Property_Disp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000503-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Property_Disp = dispinterface
['{00000503-0000-0010-8000-00AA006D2EA4}']
property Value: OleVariant dispid 0;
property Name: WideString readonly dispid 1610743810;
property type_: DataTypeEnum readonly dispid 1610743811;
property Attributes: Integer dispid 1610743812;
end;

// *********************************************************************//
// Interface: Error
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000500-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Error = interface(IDispatch)
['{00000500-0000-0010-8000-00AA006D2EA4}']
function Get_Number: Integer; safecall;
function Get_Source: WideString; safecall;
function Get_Description: WideString; safecall;
function Get_HelpFile: WideString; safecall;
function Get_HelpContext: Integer; safecall;
function Get_SQLState: WideString; safecall;
function Get_NativeError: Integer; safecall;
property Number: Integer read Get_Number;
property Source: WideString read Get_Source;
property Description: WideString read Get_Description;
property HelpFile: WideString read Get_HelpFile;
property HelpContext: Integer read Get_HelpContext;
property SQLState: WideString read Get_SQLState;
property NativeError: Integer read Get_NativeError;
end;

// *********************************************************************//
// DispIntf: ErrorDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000500-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ErrorDisp = dispinterface
['{00000500-0000-0010-8000-00AA006D2EA4}']
property Number: Integer readonly dispid 1;
property Source: WideString readonly dispid 2;
property Description: WideString readonly dispid 0;
property HelpFile: WideString readonly dispid 3;
property HelpContext: Integer readonly dispid 4;
property SQLState: WideString readonly dispid 5;
property NativeError: Integer readonly dispid 6;
end;

// *********************************************************************//
// Interface: Errors
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000501-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Errors = interface(_Collection)
['{00000501-0000-0010-8000-00AA006D2EA4}']
function Get_Item(Index: OleVariant): Error; safecall;
procedure Clear; safecall;
property Item[Index: OleVariant]: Error read Get_Item; default;
end;

// *********************************************************************//
// DispIntf: ErrorsDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000501-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ErrorsDisp = dispinterface
['{00000501-0000-0010-8000-00AA006D2EA4}']
property Item[Index: OleVariant]: Error readonly dispid 0; default;
procedure Clear; dispid 1610809345;
property Count: Integer readonly dispid 1;
function _NewEnum: IUnknown; dispid -4;
procedure Refresh; dispid 2;
end;

// *********************************************************************//
// Interface: Command15
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000508-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Command15 = interface(_ADO)
['{00000508-0000-0010-8000-00AA006D2EA4}']
function Get_ActiveConnection: _Connection; safecall;
procedure _Set_ActiveConnection(const ppvObject: _Connection); safecall;
procedure Set_ActiveConnection(ppvObject: OleVariant); safecall;
function Get_CommandText: WideString; safecall;
procedure Set_CommandText(const pbstr: WideString); safecall;
function Get_CommandTimeout: Integer; safecall;
procedure Set_CommandTimeout(pl: Integer); safecall;
function Get_Prepared: WordBool; safecall;
procedure Set_Prepared(pfPrepared: WordBool); safecall;
function Execute(out RecordsAffected: OleVariant; var Parameters: OleVariant; Options: Integer): _Recordset; safecall;
function CreateParameter(const Name: WideString; Type_: DataTypeEnum;
Direction: ParameterDirectionEnum; Size: ADO_LONGPTR; Value: OleVariant): _Parameter; safecall;
function Get_Parameters: Parameters; safecall;
procedure Set_CommandType(plCmdType: CommandTypeEnum); safecall;
function Get_CommandType: CommandTypeEnum; safecall;
function Get_Name: WideString; safecall;
procedure Set_Name(const pbstrName: WideString); safecall;
property CommandText: WideString read Get_CommandText write Set_CommandText;
property CommandTimeout: Integer read Get_CommandTimeout write Set_CommandTimeout;
property Prepared: WordBool read Get_Prepared write Set_Prepared;
property Parameters: Parameters read Get_Parameters;
property CommandType: CommandTypeEnum read Get_CommandType write Set_CommandType;
property Name: WideString read Get_Name write Set_Name;
end;

// *********************************************************************//
// DispIntf: Command15Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000508-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Command15Disp = dispinterface
['{00000508-0000-0010-8000-00AA006D2EA4}']
function ActiveConnection: _Connection; dispid 1;
property CommandText: WideString dispid 2;
property CommandTimeout: Integer dispid 3;
property Prepared: WordBool dispid 4;
function Execute(out RecordsAffected: OleVariant; var Parameters: OleVariant; Options: Integer): _Recordset; dispid 5;
function CreateParameter(const Name: WideString; Type_: DataTypeEnum;
Direction: ParameterDirectionEnum; Size: ADO_LONGPTR; Value: OleVariant): _Parameter; dispid 6;
property Parameters: Parameters readonly dispid 0;
property CommandType: CommandTypeEnum dispid 7;
property Name: WideString dispid 8;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: Connection15
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {00000515-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Connection15 = interface(_ADO)
['{00000515-0000-0010-8000-00AA006D2EA4}']
function Get_ConnectionString: WideString; safecall;
procedure Set_ConnectionString(const pbstr: WideString); safecall;
function Get_CommandTimeout: Integer; safecall;
procedure Set_CommandTimeout(plTimeout: Integer); safecall;
function Get_ConnectionTimeout: Integer; safecall;
procedure Set_ConnectionTimeout(plTimeout: Integer); safecall;
function Get_Version: WideString; safecall;
procedure Close; safecall;
function Execute(const CommandText: WideString; out RecordsAffected: OleVariant;
Options: Integer): _Recordset; safecall;
function BeginTrans: Integer; safecall;
procedure CommitTrans; safecall;
procedure RollbackTrans; safecall;
procedure Open(const ConnectionString: WideString; const UserID: WideString;
const Password: WideString; Options: Integer); safecall;
function Get_Errors: Errors; safecall;
function Get_DefaultDatabase: WideString; safecall;
procedure Set_DefaultDatabase(const pbstr: WideString); safecall;
function Get_IsolationLevel: IsolationLevelEnum; safecall;
procedure Set_IsolationLevel(Level: IsolationLevelEnum); safecall;
function Get_Attributes: Integer; safecall;
procedure Set_Attributes(plAttr: Integer); safecall;
function Get_CursorLocation: CursorLocationEnum; safecall;
procedure Set_CursorLocation(plCursorLoc: CursorLocationEnum); safecall;
function Get_Mode: ConnectModeEnum; safecall;
procedure Set_Mode(plMode: ConnectModeEnum); safecall;
function Get_Provider: WideString; safecall;
procedure Set_Provider(const pbstr: WideString); safecall;
function Get_State: Integer; safecall;
function OpenSchema(Schema: SchemaEnum; Restrictions: OleVariant; SchemaID: OleVariant): _Recordset; safecall;
property ConnectionString: WideString read Get_ConnectionString write Set_ConnectionString;
property CommandTimeout: Integer read Get_CommandTimeout write Set_CommandTimeout;
property ConnectionTimeout: Integer read Get_ConnectionTimeout write Set_ConnectionTimeout;
property Version: WideString read Get_Version;
property Errors: Errors read Get_Errors;
property DefaultDatabase: WideString read Get_DefaultDatabase write Set_DefaultDatabase;
property IsolationLevel: IsolationLevelEnum read Get_IsolationLevel write Set_IsolationLevel;
property Attributes: Integer read Get_Attributes write Set_Attributes;
property CursorLocation: CursorLocationEnum read Get_CursorLocation write Set_CursorLocation;
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
property Provider: WideString read Get_Provider write Set_Provider;
property State: Integer read Get_State;
end;

// *********************************************************************//
// DispIntf: Connection15Disp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {00000515-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Connection15Disp = dispinterface
['{00000515-0000-0010-8000-00AA006D2EA4}']
property ConnectionString: WideString dispid 0;
property CommandTimeout: Integer dispid 2;
property ConnectionTimeout: Integer dispid 3;
property Version: WideString readonly dispid 4;
procedure Close; dispid 5;
function Execute(const CommandText: WideString; out RecordsAffected: OleVariant;
Options: Integer): _Recordset; dispid 6;
function BeginTrans: Integer; dispid 7;
procedure CommitTrans; dispid 8;
procedure RollbackTrans; dispid 9;
procedure Open(const ConnectionString: WideString; const UserID: WideString;
const Password: WideString; Options: Integer); dispid 10;
property Errors: Errors readonly dispid 11;
property DefaultDatabase: WideString dispid 12;
property IsolationLevel: IsolationLevelEnum dispid 13;
property Attributes: Integer dispid 14;
property CursorLocation: CursorLocationEnum dispid 15;
property Mode: ConnectModeEnum dispid 16;
property Provider: WideString dispid 17;
property State: Integer readonly dispid 18;
function OpenSchema(Schema: SchemaEnum; Restrictions: OleVariant; SchemaID: OleVariant): _Recordset; dispid 19;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: _Connection
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {00000550-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_Connection = interface(Connection15)
['{00000550-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod__Connection_0_1; safecall;
procedure GhostMethod__Connection_4_2; safecall;
procedure GhostMethod__Connection_8_3; safecall;
procedure GhostMethod__Connection_12_4; safecall;
procedure GhostMethod__Connection_16_5; safecall;
procedure GhostMethod__Connection_20_6; safecall;
procedure GhostMethod__Connection_24_7; safecall;
procedure GhostMethod__Connection_28_8; safecall;
procedure GhostMethod__Connection_32_9; safecall;
procedure GhostMethod__Connection_36_10; safecall;
procedure GhostMethod__Connection_40_11; safecall;
procedure GhostMethod__Connection_44_12; safecall;
procedure GhostMethod__Connection_48_13; safecall;
procedure GhostMethod__Connection_52_14; safecall;
procedure GhostMethod__Connection_56_15; safecall;
procedure GhostMethod__Connection_60_16; safecall;
procedure GhostMethod__Connection_64_17; safecall;
procedure GhostMethod__Connection_68_18; safecall;
procedure GhostMethod__Connection_72_19; safecall;
procedure GhostMethod__Connection_76_20; safecall;
procedure GhostMethod__Connection_80_21; safecall;
procedure GhostMethod__Connection_84_22; safecall;
procedure GhostMethod__Connection_88_23; safecall;
procedure GhostMethod__Connection_92_24; safecall;
procedure GhostMethod__Connection_96_25; safecall;
procedure GhostMethod__Connection_100_26; safecall;
procedure GhostMethod__Connection_104_27; safecall;
procedure GhostMethod__Connection_108_28; safecall;
procedure GhostMethod__Connection_112_29; safecall;
procedure GhostMethod__Connection_116_30; safecall;
procedure GhostMethod__Connection_120_31; safecall;
procedure GhostMethod__Connection_124_32; safecall;
procedure GhostMethod__Connection_128_33; safecall;
procedure GhostMethod__Connection_132_34; safecall;
procedure GhostMethod__Connection_136_35; safecall;
procedure GhostMethod__Connection_140_36; safecall;
procedure Cancel; safecall;
end;

// *********************************************************************//
// DispIntf: _ConnectionDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {00000550-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_ConnectionDisp = dispinterface
['{00000550-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod__Connection_0_1; dispid 1610678272;
procedure GhostMethod__Connection_4_2; dispid 1610678273;
procedure GhostMethod__Connection_8_3; dispid 1610678274;
procedure GhostMethod__Connection_12_4; dispid 1610678275;
procedure GhostMethod__Connection_16_5; dispid 1610678276;
procedure GhostMethod__Connection_20_6; dispid 1610678277;
procedure GhostMethod__Connection_24_7; dispid 1610678278;
procedure GhostMethod__Connection_28_8; dispid 1610678279;
procedure GhostMethod__Connection_32_9; dispid 1610678280;
procedure GhostMethod__Connection_36_10; dispid 1610678281;
procedure GhostMethod__Connection_40_11; dispid 1610678282;
procedure GhostMethod__Connection_44_12; dispid 1610678283;
procedure GhostMethod__Connection_48_13; dispid 1610678284;
procedure GhostMethod__Connection_52_14; dispid 1610678285;
procedure GhostMethod__Connection_56_15; dispid 1610678286;
procedure GhostMethod__Connection_60_16; dispid 1610678287;
procedure GhostMethod__Connection_64_17; dispid 1610678288;
procedure GhostMethod__Connection_68_18; dispid 1610678289;
procedure GhostMethod__Connection_72_19; dispid 1610678290;
procedure GhostMethod__Connection_76_20; dispid 1610678291;
procedure GhostMethod__Connection_80_21; dispid 1610678292;
procedure GhostMethod__Connection_84_22; dispid 1610678293;
procedure GhostMethod__Connection_88_23; dispid 1610678294;
procedure GhostMethod__Connection_92_24; dispid 1610678295;
procedure GhostMethod__Connection_96_25; dispid 1610678296;
procedure GhostMethod__Connection_100_26; dispid 1610678297;
procedure GhostMethod__Connection_104_27; dispid 1610678298;
procedure GhostMethod__Connection_108_28; dispid 1610678299;
procedure GhostMethod__Connection_112_29; dispid 1610678300;
procedure GhostMethod__Connection_116_30; dispid 1610678301;
procedure GhostMethod__Connection_120_31; dispid 1610678302;
procedure GhostMethod__Connection_124_32; dispid 1610678303;
procedure GhostMethod__Connection_128_33; dispid 1610678304;
procedure GhostMethod__Connection_132_34; dispid 1610678305;
procedure GhostMethod__Connection_136_35; dispid 1610678306;
procedure GhostMethod__Connection_140_36; dispid 1610678307;
procedure Cancel; dispid 21;
property ConnectionString: WideString dispid 0;
property CommandTimeout: Integer dispid 2;
property ConnectionTimeout: Integer dispid 3;
property Version: WideString readonly dispid 4;
procedure Close; dispid 5;
function Execute(const CommandText: WideString; out RecordsAffected: OleVariant;
Options: Integer): _Recordset; dispid 6;
function BeginTrans: Integer; dispid 7;
procedure CommitTrans; dispid 8;
procedure RollbackTrans; dispid 9;
procedure Open(const ConnectionString: WideString; const UserID: WideString;
const Password: WideString; Options: Integer); dispid 10;
property Errors: Errors readonly dispid 11;
property DefaultDatabase: WideString dispid 12;
property IsolationLevel: IsolationLevelEnum dispid 13;
property Attributes: Integer dispid 14;
property CursorLocation: CursorLocationEnum dispid 15;
property Mode: ConnectModeEnum dispid 16;
property Provider: WideString dispid 17;
property State: Integer readonly dispid 18;
function OpenSchema(Schema: SchemaEnum; Restrictions: OleVariant; SchemaID: OleVariant): _Recordset; dispid 19;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: Recordset15
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000050E-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Recordset15 = interface(_ADO)
['{0000050E-0000-0010-8000-00AA006D2EA4}']
function Get_AbsolutePosition: PositionEnum_Param; safecall;
procedure Set_AbsolutePosition(pl: PositionEnum_Param); safecall;
procedure _Set_ActiveConnection(const pvar: IDispatch); safecall;
procedure Set_ActiveConnection(pvar: OleVariant); safecall;
function Get_ActiveConnection: OleVariant; safecall;
function Get_BOF: WordBool; safecall;
function Get_Bookmark: OleVariant; safecall;
procedure Set_Bookmark(pvBookmark: OleVariant); safecall;
function Get_CacheSize: Integer; safecall;
procedure Set_CacheSize(pl: Integer); safecall;
function Get_CursorType: CursorTypeEnum; safecall;
procedure Set_CursorType(plCursorType: CursorTypeEnum); safecall;
function Get_EOF: WordBool; safecall;
function Get_Fields: Fields; safecall;
function Get_LockType: LockTypeEnum; safecall;
procedure Set_LockType(plLockType: LockTypeEnum); safecall;
function Get_MaxRecords: ADO_LONGPTR; safecall;
procedure Set_MaxRecords(plMaxRecords: ADO_LONGPTR); safecall;
function Get_RecordCount: ADO_LONGPTR; safecall;
procedure _Set_Source(const pvSource: IDispatch); safecall;
procedure Set_Source(const pvSource: WideString); safecall;
function Get_Source: OleVariant; safecall;
procedure AddNew(FieldList: OleVariant; Values: OleVariant); safecall;
procedure CancelUpdate; safecall;
procedure Close; safecall;
procedure Delete(AffectRecords: AffectEnum); safecall;
function GetRows(Rows: Integer; Start: OleVariant; Fields: OleVariant): OleVariant; safecall;
procedure Move(NumRecords: ADO_LONGPTR; Start: OleVariant); safecall;
procedure MoveNext; safecall;
procedure MovePrevious; safecall;
procedure MoveFirst; safecall;
procedure MoveLast; safecall;
procedure Open(Source: OleVariant; ActiveConnection: OleVariant; CursorType: CursorTypeEnum;
LockType: LockTypeEnum; Options: Integer); safecall;
procedure Requery(Options: Integer); safecall;
procedure _xResync(AffectRecords: AffectEnum); safecall;
procedure Update(Fields: OleVariant; Values: OleVariant); safecall;
function Get_AbsolutePage: PositionEnum_Param; safecall;
procedure Set_AbsolutePage(pl: PositionEnum_Param); safecall;
function Get_EditMode: EditModeEnum; safecall;
function Get_Filter: OleVariant; safecall;
procedure Set_Filter(Criteria: OleVariant); safecall;
function Get_PageCount: ADO_LONGPTR; safecall;
function Get_PageSize: Integer; safecall;
procedure Set_PageSize(pl: Integer); safecall;
function Get_Sort: WideString; safecall;
procedure Set_Sort(const Criteria: WideString); safecall;
function Get_Status: Integer; safecall;
function Get_State: Integer; safecall;
function _xClone: _Recordset; safecall;
procedure UpdateBatch(AffectRecords: AffectEnum); safecall;
procedure CancelBatch(AffectRecords: AffectEnum); safecall;
function Get_CursorLocation: CursorLocationEnum; safecall;
procedure Set_CursorLocation(plCursorLoc: CursorLocationEnum); safecall;
function NextRecordset(out RecordsAffected: OleVariant): _Recordset; safecall;
function Supports(CursorOptions: CursorOptionEnum): WordBool; safecall;
function Get_Collect(Index: OleVariant): OleVariant; safecall;
procedure Set_Collect(Index: OleVariant; pvar: OleVariant); safecall;
function Get_MarshalOptions: MarshalOptionsEnum; safecall;
procedure Set_MarshalOptions(peMarshal: MarshalOptionsEnum); safecall;
procedure Find(const Criteria: WideString; SkipRecords: ADO_LONGPTR;
SearchDirection: SearchDirectionEnum; Start: OleVariant); safecall;
property AbsolutePosition: PositionEnum_Param read Get_AbsolutePosition write Set_AbsolutePosition;
property BOF: WordBool read Get_BOF;
property Bookmark: OleVariant read Get_Bookmark write Set_Bookmark;
property CacheSize: Integer read Get_CacheSize write Set_CacheSize;
property CursorType: CursorTypeEnum read Get_CursorType write Set_CursorType;
property EOF: WordBool read Get_EOF;
property Fields: Fields read Get_Fields;
property LockType: LockTypeEnum read Get_LockType write Set_LockType;
property MaxRecords: ADO_LONGPTR read Get_MaxRecords write Set_MaxRecords;
property RecordCount: ADO_LONGPTR read Get_RecordCount;
property AbsolutePage: PositionEnum_Param read Get_AbsolutePage write Set_AbsolutePage;
property EditMode: EditModeEnum read Get_EditMode;
property Filter: OleVariant read Get_Filter write Set_Filter;
property PageCount: ADO_LONGPTR read Get_PageCount;
property PageSize: Integer read Get_PageSize write Set_PageSize;
property Sort: WideString read Get_Sort write Set_Sort;
property Status: Integer read Get_Status;
property State: Integer read Get_State;
property CursorLocation: CursorLocationEnum read Get_CursorLocation write Set_CursorLocation;
property Collect[Index: OleVariant]: OleVariant read Get_Collect write Set_Collect;
property MarshalOptions: MarshalOptionsEnum read Get_MarshalOptions write Set_MarshalOptions;
end;

// *********************************************************************//
// DispIntf: Recordset15Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000050E-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Recordset15Disp = dispinterface
['{0000050E-0000-0010-8000-00AA006D2EA4}']
property AbsolutePosition: PositionEnum_Param dispid 1000;
function ActiveConnection: IDispatch; dispid 1001;
property BOF: WordBool readonly dispid 1002;
property Bookmark: OleVariant dispid 1003;
property CacheSize: Integer dispid 1004;
property CursorType: CursorTypeEnum dispid 1005;
property EOF: WordBool readonly dispid 1006;
property Fields: Fields readonly dispid 0;
property LockType: LockTypeEnum dispid 1008;
property MaxRecords: ADO_LONGPTR dispid 1009;
property RecordCount: ADO_LONGPTR readonly dispid 1010;
function Source: IDispatch; dispid 1011;
procedure AddNew(FieldList: OleVariant; Values: OleVariant); dispid 1012;
procedure CancelUpdate; dispid 1013;
procedure Close; dispid 1014;
procedure Delete(AffectRecords: AffectEnum); dispid 1015;
function GetRows(Rows: Integer; Start: OleVariant; Fields: OleVariant): OleVariant; dispid 1016;
procedure Move(NumRecords: ADO_LONGPTR; Start: OleVariant); dispid 1017;
procedure MoveNext; dispid 1018;
procedure MovePrevious; dispid 1019;
procedure MoveFirst; dispid 1020;
procedure MoveLast; dispid 1021;
procedure Open(Source: OleVariant; ActiveConnection: OleVariant; CursorType: CursorTypeEnum;
LockType: LockTypeEnum; Options: Integer); dispid 1022;
procedure Requery(Options: Integer); dispid 1023;
procedure _xResync(AffectRecords: AffectEnum); dispid 1610809378;
procedure Update(Fields: OleVariant; Values: OleVariant); dispid 1025;
property AbsolutePage: PositionEnum_Param dispid 1047;
property EditMode: EditModeEnum readonly dispid 1026;
property Filter: OleVariant dispid 1030;
property PageCount: ADO_LONGPTR readonly dispid 1050;
property PageSize: Integer dispid 1048;
property Sort: WideString dispid 1031;
property Status: Integer readonly dispid 1029;
property State: Integer readonly dispid 1054;
function _xClone: _Recordset; dispid 1610809392;
procedure UpdateBatch(AffectRecords: AffectEnum); dispid 1035;
procedure CancelBatch(AffectRecords: AffectEnum); dispid 1049;
property CursorLocation: CursorLocationEnum dispid 1051;
function NextRecordset(out RecordsAffected: OleVariant): _Recordset; dispid 1052;
function Supports(CursorOptions: CursorOptionEnum): WordBool; dispid 1036;
property Collect[Index: OleVariant]: OleVariant dispid -8;
property MarshalOptions: MarshalOptionsEnum dispid 1053;
procedure Find(const Criteria: WideString; SkipRecords: ADO_LONGPTR;
SearchDirection: SearchDirectionEnum; Start: OleVariant); dispid 1058;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: Recordset20
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000054F-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Recordset20 = interface(Recordset15)
['{0000054F-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Recordset20_0_1; safecall;
procedure GhostMethod_Recordset20_4_2; safecall;
procedure GhostMethod_Recordset20_8_3; safecall;
procedure GhostMethod_Recordset20_12_4; safecall;
procedure GhostMethod_Recordset20_16_5; safecall;
procedure GhostMethod_Recordset20_20_6; safecall;
procedure GhostMethod_Recordset20_24_7; safecall;
procedure GhostMethod_Recordset20_28_8; safecall;
procedure GhostMethod_Recordset20_32_9; safecall;
procedure GhostMethod_Recordset20_36_10; safecall;
procedure GhostMethod_Recordset20_40_11; safecall;
procedure GhostMethod_Recordset20_44_12; safecall;
procedure GhostMethod_Recordset20_48_13; safecall;
procedure GhostMethod_Recordset20_52_14; safecall;
procedure GhostMethod_Recordset20_56_15; safecall;
procedure GhostMethod_Recordset20_60_16; safecall;
procedure GhostMethod_Recordset20_64_17; safecall;
procedure GhostMethod_Recordset20_68_18; safecall;
procedure GhostMethod_Recordset20_72_19; safecall;
procedure GhostMethod_Recordset20_76_20; safecall;
procedure GhostMethod_Recordset20_80_21; safecall;
procedure GhostMethod_Recordset20_84_22; safecall;
procedure GhostMethod_Recordset20_88_23; safecall;
procedure GhostMethod_Recordset20_92_24; safecall;
procedure GhostMethod_Recordset20_96_25; safecall;
procedure GhostMethod_Recordset20_100_26; safecall;
procedure GhostMethod_Recordset20_104_27; safecall;
procedure GhostMethod_Recordset20_108_28; safecall;
procedure GhostMethod_Recordset20_112_29; safecall;
procedure GhostMethod_Recordset20_116_30; safecall;
procedure GhostMethod_Recordset20_120_31; safecall;
procedure GhostMethod_Recordset20_124_32; safecall;
procedure GhostMethod_Recordset20_128_33; safecall;
procedure GhostMethod_Recordset20_132_34; safecall;
procedure GhostMethod_Recordset20_136_35; safecall;
procedure GhostMethod_Recordset20_140_36; safecall;
procedure GhostMethod_Recordset20_144_37; safecall;
procedure GhostMethod_Recordset20_148_38; safecall;
procedure GhostMethod_Recordset20_152_39; safecall;
procedure GhostMethod_Recordset20_156_40; safecall;
procedure GhostMethod_Recordset20_160_41; safecall;
procedure GhostMethod_Recordset20_164_42; safecall;
procedure GhostMethod_Recordset20_168_43; safecall;
procedure GhostMethod_Recordset20_172_44; safecall;
procedure GhostMethod_Recordset20_176_45; safecall;
procedure GhostMethod_Recordset20_180_46; safecall;
procedure GhostMethod_Recordset20_184_47; safecall;
procedure GhostMethod_Recordset20_188_48; safecall;
procedure GhostMethod_Recordset20_192_49; safecall;
procedure GhostMethod_Recordset20_196_50; safecall;
procedure GhostMethod_Recordset20_200_51; safecall;
procedure GhostMethod_Recordset20_204_52; safecall;
procedure GhostMethod_Recordset20_208_53; safecall;
procedure GhostMethod_Recordset20_212_54; safecall;
procedure GhostMethod_Recordset20_216_55; safecall;
procedure GhostMethod_Recordset20_220_56; safecall;
procedure GhostMethod_Recordset20_224_57; safecall;
procedure GhostMethod_Recordset20_228_58; safecall;
procedure GhostMethod_Recordset20_232_59; safecall;
procedure GhostMethod_Recordset20_236_60; safecall;
procedure GhostMethod_Recordset20_240_61; safecall;
procedure GhostMethod_Recordset20_244_62; safecall;
procedure GhostMethod_Recordset20_248_63; safecall;
procedure GhostMethod_Recordset20_252_64; safecall;
procedure GhostMethod_Recordset20_256_65; safecall;
procedure GhostMethod_Recordset20_260_66; safecall;
procedure GhostMethod_Recordset20_264_67; safecall;
procedure GhostMethod_Recordset20_268_68; safecall;
procedure Cancel; safecall;
function Get_DataSource: IUnknown; safecall;
procedure _Set_DataSource(const ppunkDataSource: IUnknown); safecall;
procedure _xSave(const FileName: WideString; PersistFormat: PersistFormatEnum); safecall;
function Get_ActiveCommand: IDispatch; safecall;
procedure Set_StayInSync(pbStayInSync: WordBool); safecall;
function Get_StayInSync: WordBool; safecall;
function GetString(StringFormat: StringFormatEnum; NumRows: Integer;
const ColumnDelimeter: WideString; const RowDelimeter: WideString;
const NullExpr: WideString): WideString; safecall;
function Get_DataMember: WideString; safecall;
procedure Set_DataMember(const pbstrDataMember: WideString); safecall;
function CompareBookmarks(Bookmark1: OleVariant; Bookmark2: OleVariant): CompareEnum; safecall;
function Clone(LockType: LockTypeEnum): _Recordset; safecall;
procedure Resync(AffectRecords: AffectEnum; ResyncValues: ResyncEnum); safecall;
property DataSource: IUnknown read Get_DataSource write _Set_DataSource;
property ActiveCommand: IDispatch read Get_ActiveCommand;
property StayInSync: WordBool read Get_StayInSync write Set_StayInSync;
property DataMember: WideString read Get_DataMember write Set_DataMember;
end;

// *********************************************************************//
// DispIntf: Recordset20Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000054F-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Recordset20Disp = dispinterface
['{0000054F-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Recordset20_0_1; dispid 1610678272;
procedure GhostMethod_Recordset20_4_2; dispid 1610678273;
procedure GhostMethod_Recordset20_8_3; dispid 1610678274;
procedure GhostMethod_Recordset20_12_4; dispid 1610678275;
procedure GhostMethod_Recordset20_16_5; dispid 1610678276;
procedure GhostMethod_Recordset20_20_6; dispid 1610678277;
procedure GhostMethod_Recordset20_24_7; dispid 1610678278;
procedure GhostMethod_Recordset20_28_8; dispid 1610678279;
procedure GhostMethod_Recordset20_32_9; dispid 1610678280;
procedure GhostMethod_Recordset20_36_10; dispid 1610678281;
procedure GhostMethod_Recordset20_40_11; dispid 1610678282;
procedure GhostMethod_Recordset20_44_12; dispid 1610678283;
procedure GhostMethod_Recordset20_48_13; dispid 1610678284;
procedure GhostMethod_Recordset20_52_14; dispid 1610678285;
procedure GhostMethod_Recordset20_56_15; dispid 1610678286;
procedure GhostMethod_Recordset20_60_16; dispid 1610678287;
procedure GhostMethod_Recordset20_64_17; dispid 1610678288;
procedure GhostMethod_Recordset20_68_18; dispid 1610678289;
procedure GhostMethod_Recordset20_72_19; dispid 1610678290;
procedure GhostMethod_Recordset20_76_20; dispid 1610678291;
procedure GhostMethod_Recordset20_80_21; dispid 1610678292;
procedure GhostMethod_Recordset20_84_22; dispid 1610678293;
procedure GhostMethod_Recordset20_88_23; dispid 1610678294;
procedure GhostMethod_Recordset20_92_24; dispid 1610678295;
procedure GhostMethod_Recordset20_96_25; dispid 1610678296;
procedure GhostMethod_Recordset20_100_26; dispid 1610678297;
procedure GhostMethod_Recordset20_104_27; dispid 1610678298;
procedure GhostMethod_Recordset20_108_28; dispid 1610678299;
procedure GhostMethod_Recordset20_112_29; dispid 1610678300;
procedure GhostMethod_Recordset20_116_30; dispid 1610678301;
procedure GhostMethod_Recordset20_120_31; dispid 1610678302;
procedure GhostMethod_Recordset20_124_32; dispid 1610678303;
procedure GhostMethod_Recordset20_128_33; dispid 1610678304;
procedure GhostMethod_Recordset20_132_34; dispid 1610678305;
procedure GhostMethod_Recordset20_136_35; dispid 1610678306;
procedure GhostMethod_Recordset20_140_36; dispid 1610678307;
procedure GhostMethod_Recordset20_144_37; dispid 1610678308;
procedure GhostMethod_Recordset20_148_38; dispid 1610678309;
procedure GhostMethod_Recordset20_152_39; dispid 1610678310;
procedure GhostMethod_Recordset20_156_40; dispid 1610678311;
procedure GhostMethod_Recordset20_160_41; dispid 1610678312;
procedure GhostMethod_Recordset20_164_42; dispid 1610678313;
procedure GhostMethod_Recordset20_168_43; dispid 1610678314;
procedure GhostMethod_Recordset20_172_44; dispid 1610678315;
procedure GhostMethod_Recordset20_176_45; dispid 1610678316;
procedure GhostMethod_Recordset20_180_46; dispid 1610678317;
procedure GhostMethod_Recordset20_184_47; dispid 1610678318;
procedure GhostMethod_Recordset20_188_48; dispid 1610678319;
procedure GhostMethod_Recordset20_192_49; dispid 1610678320;
procedure GhostMethod_Recordset20_196_50; dispid 1610678321;
procedure GhostMethod_Recordset20_200_51; dispid 1610678322;
procedure GhostMethod_Recordset20_204_52; dispid 1610678323;
procedure GhostMethod_Recordset20_208_53; dispid 1610678324;
procedure GhostMethod_Recordset20_212_54; dispid 1610678325;
procedure GhostMethod_Recordset20_216_55; dispid 1610678326;
procedure GhostMethod_Recordset20_220_56; dispid 1610678327;
procedure GhostMethod_Recordset20_224_57; dispid 1610678328;
procedure GhostMethod_Recordset20_228_58; dispid 1610678329;
procedure GhostMethod_Recordset20_232_59; dispid 1610678330;
procedure GhostMethod_Recordset20_236_60; dispid 1610678331;
procedure GhostMethod_Recordset20_240_61; dispid 1610678332;
procedure GhostMethod_Recordset20_244_62; dispid 1610678333;
procedure GhostMethod_Recordset20_248_63; dispid 1610678334;
procedure GhostMethod_Recordset20_252_64; dispid 1610678335;
procedure GhostMethod_Recordset20_256_65; dispid 1610678336;
procedure GhostMethod_Recordset20_260_66; dispid 1610678337;
procedure GhostMethod_Recordset20_264_67; dispid 1610678338;
procedure GhostMethod_Recordset20_268_68; dispid 1610678339;
procedure Cancel; dispid 1055;
property DataSource: IUnknown dispid 1056;
procedure _xSave(const FileName: WideString; PersistFormat: PersistFormatEnum); dispid 1610874883;
property ActiveCommand: IDispatch readonly dispid 1061;
property StayInSync: WordBool dispid 1063;
function GetString(StringFormat: StringFormatEnum; NumRows: Integer;
const ColumnDelimeter: WideString; const RowDelimeter: WideString;
const NullExpr: WideString): WideString; dispid 1062;
property DataMember: WideString dispid 1064;
function CompareBookmarks(Bookmark1: OleVariant; Bookmark2: OleVariant): CompareEnum; dispid 1065;
function Clone(LockType: LockTypeEnum): _Recordset; dispid 1034;
procedure Resync(AffectRecords: AffectEnum; ResyncValues: ResyncEnum); dispid 1024;
property AbsolutePosition: PositionEnum_Param dispid 1000;
function ActiveConnection: IDispatch; dispid 1001;
property BOF: WordBool readonly dispid 1002;
property Bookmark: OleVariant dispid 1003;
property CacheSize: Integer dispid 1004;
property CursorType: CursorTypeEnum dispid 1005;
property EOF: WordBool readonly dispid 1006;
property Fields: Fields readonly dispid 0;
property LockType: LockTypeEnum dispid 1008;
property MaxRecords: ADO_LONGPTR dispid 1009;
property RecordCount: ADO_LONGPTR readonly dispid 1010;
function Source: IDispatch; dispid 1011;
procedure AddNew(FieldList: OleVariant; Values: OleVariant); dispid 1012;
procedure CancelUpdate; dispid 1013;
procedure Close; dispid 1014;
procedure Delete(AffectRecords: AffectEnum); dispid 1015;
function GetRows(Rows: Integer; Start: OleVariant; Fields: OleVariant): OleVariant; dispid 1016;
procedure Move(NumRecords: ADO_LONGPTR; Start: OleVariant); dispid 1017;
procedure MoveNext; dispid 1018;
procedure MovePrevious; dispid 1019;
procedure MoveFirst; dispid 1020;
procedure MoveLast; dispid 1021;
procedure Open(Source: OleVariant; ActiveConnection: OleVariant; CursorType: CursorTypeEnum;
LockType: LockTypeEnum; Options: Integer); dispid 1022;
procedure Requery(Options: Integer); dispid 1023;
procedure _xResync(AffectRecords: AffectEnum); dispid 1610809378;
procedure Update(Fields: OleVariant; Values: OleVariant); dispid 1025;
property AbsolutePage: PositionEnum_Param dispid 1047;
property EditMode: EditModeEnum readonly dispid 1026;
property Filter: OleVariant dispid 1030;
property PageCount: ADO_LONGPTR readonly dispid 1050;
property PageSize: Integer dispid 1048;
property Sort: WideString dispid 1031;
property Status: Integer readonly dispid 1029;
property State: Integer readonly dispid 1054;
function _xClone: _Recordset; dispid 1610809392;
procedure UpdateBatch(AffectRecords: AffectEnum); dispid 1035;
procedure CancelBatch(AffectRecords: AffectEnum); dispid 1049;
property CursorLocation: CursorLocationEnum dispid 1051;
function NextRecordset(out RecordsAffected: OleVariant): _Recordset; dispid 1052;
function Supports(CursorOptions: CursorOptionEnum): WordBool; dispid 1036;
property Collect[Index: OleVariant]: OleVariant dispid -8;
property MarshalOptions: MarshalOptionsEnum dispid 1053;
procedure Find(const Criteria: WideString; SkipRecords: ADO_LONGPTR;
SearchDirection: SearchDirectionEnum; Start: OleVariant); dispid 1058;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: Recordset21
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000555-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Recordset21 = interface(Recordset20)
['{00000555-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Recordset21_0_1; safecall;
procedure GhostMethod_Recordset21_4_2; safecall;
procedure GhostMethod_Recordset21_8_3; safecall;
procedure GhostMethod_Recordset21_12_4; safecall;
procedure GhostMethod_Recordset21_16_5; safecall;
procedure GhostMethod_Recordset21_20_6; safecall;
procedure GhostMethod_Recordset21_24_7; safecall;
procedure GhostMethod_Recordset21_28_8; safecall;
procedure GhostMethod_Recordset21_32_9; safecall;
procedure GhostMethod_Recordset21_36_10; safecall;
procedure GhostMethod_Recordset21_40_11; safecall;
procedure GhostMethod_Recordset21_44_12; safecall;
procedure GhostMethod_Recordset21_48_13; safecall;
procedure GhostMethod_Recordset21_52_14; safecall;
procedure GhostMethod_Recordset21_56_15; safecall;
procedure GhostMethod_Recordset21_60_16; safecall;
procedure GhostMethod_Recordset21_64_17; safecall;
procedure GhostMethod_Recordset21_68_18; safecall;
procedure GhostMethod_Recordset21_72_19; safecall;
procedure GhostMethod_Recordset21_76_20; safecall;
procedure GhostMethod_Recordset21_80_21; safecall;
procedure GhostMethod_Recordset21_84_22; safecall;
procedure GhostMethod_Recordset21_88_23; safecall;
procedure GhostMethod_Recordset21_92_24; safecall;
procedure GhostMethod_Recordset21_96_25; safecall;
procedure GhostMethod_Recordset21_100_26; safecall;
procedure GhostMethod_Recordset21_104_27; safecall;
procedure GhostMethod_Recordset21_108_28; safecall;
procedure GhostMethod_Recordset21_112_29; safecall;
procedure GhostMethod_Recordset21_116_30; safecall;
procedure GhostMethod_Recordset21_120_31; safecall;
procedure GhostMethod_Recordset21_124_32; safecall;
procedure GhostMethod_Recordset21_128_33; safecall;
procedure GhostMethod_Recordset21_132_34; safecall;
procedure GhostMethod_Recordset21_136_35; safecall;
procedure GhostMethod_Recordset21_140_36; safecall;
procedure GhostMethod_Recordset21_144_37; safecall;
procedure GhostMethod_Recordset21_148_38; safecall;
procedure GhostMethod_Recordset21_152_39; safecall;
procedure GhostMethod_Recordset21_156_40; safecall;
procedure GhostMethod_Recordset21_160_41; safecall;
procedure GhostMethod_Recordset21_164_42; safecall;
procedure GhostMethod_Recordset21_168_43; safecall;
procedure GhostMethod_Recordset21_172_44; safecall;
procedure GhostMethod_Recordset21_176_45; safecall;
procedure GhostMethod_Recordset21_180_46; safecall;
procedure GhostMethod_Recordset21_184_47; safecall;
procedure GhostMethod_Recordset21_188_48; safecall;
procedure GhostMethod_Recordset21_192_49; safecall;
procedure GhostMethod_Recordset21_196_50; safecall;
procedure GhostMethod_Recordset21_200_51; safecall;
procedure GhostMethod_Recordset21_204_52; safecall;
procedure GhostMethod_Recordset21_208_53; safecall;
procedure GhostMethod_Recordset21_212_54; safecall;
procedure GhostMethod_Recordset21_216_55; safecall;
procedure GhostMethod_Recordset21_220_56; safecall;
procedure GhostMethod_Recordset21_224_57; safecall;
procedure GhostMethod_Recordset21_228_58; safecall;
procedure GhostMethod_Recordset21_232_59; safecall;
procedure GhostMethod_Recordset21_236_60; safecall;
procedure GhostMethod_Recordset21_240_61; safecall;
procedure GhostMethod_Recordset21_244_62; safecall;
procedure GhostMethod_Recordset21_248_63; safecall;
procedure GhostMethod_Recordset21_252_64; safecall;
procedure GhostMethod_Recordset21_256_65; safecall;
procedure GhostMethod_Recordset21_260_66; safecall;
procedure GhostMethod_Recordset21_264_67; safecall;
procedure GhostMethod_Recordset21_268_68; safecall;
procedure GhostMethod_Recordset21_272_69; safecall;
procedure GhostMethod_Recordset21_276_70; safecall;
procedure GhostMethod_Recordset21_280_71; safecall;
procedure GhostMethod_Recordset21_284_72; safecall;
procedure GhostMethod_Recordset21_288_73; safecall;
procedure GhostMethod_Recordset21_292_74; safecall;
procedure GhostMethod_Recordset21_296_75; safecall;
procedure GhostMethod_Recordset21_300_76; safecall;
procedure GhostMethod_Recordset21_304_77; safecall;
procedure GhostMethod_Recordset21_308_78; safecall;
procedure GhostMethod_Recordset21_312_79; safecall;
procedure GhostMethod_Recordset21_316_80; safecall;
procedure GhostMethod_Recordset21_320_81; safecall;
procedure Seek(KeyValues: OleVariant; SeekOption: SeekEnum); safecall;
procedure Set_Index(const pbstrIndex: WideString); safecall;
function Get_Index: WideString; safecall;
property Index: WideString read Get_Index write Set_Index;
end;

// *********************************************************************//
// DispIntf: Recordset21Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000555-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Recordset21Disp = dispinterface
['{00000555-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Recordset21_0_1; dispid 1610678272;
procedure GhostMethod_Recordset21_4_2; dispid 1610678273;
procedure GhostMethod_Recordset21_8_3; dispid 1610678274;
procedure GhostMethod_Recordset21_12_4; dispid 1610678275;
procedure GhostMethod_Recordset21_16_5; dispid 1610678276;
procedure GhostMethod_Recordset21_20_6; dispid 1610678277;
procedure GhostMethod_Recordset21_24_7; dispid 1610678278;
procedure GhostMethod_Recordset21_28_8; dispid 1610678279;
procedure GhostMethod_Recordset21_32_9; dispid 1610678280;
procedure GhostMethod_Recordset21_36_10; dispid 1610678281;
procedure GhostMethod_Recordset21_40_11; dispid 1610678282;
procedure GhostMethod_Recordset21_44_12; dispid 1610678283;
procedure GhostMethod_Recordset21_48_13; dispid 1610678284;
procedure GhostMethod_Recordset21_52_14; dispid 1610678285;
procedure GhostMethod_Recordset21_56_15; dispid 1610678286;
procedure GhostMethod_Recordset21_60_16; dispid 1610678287;
procedure GhostMethod_Recordset21_64_17; dispid 1610678288;
procedure GhostMethod_Recordset21_68_18; dispid 1610678289;
procedure GhostMethod_Recordset21_72_19; dispid 1610678290;
procedure GhostMethod_Recordset21_76_20; dispid 1610678291;
procedure GhostMethod_Recordset21_80_21; dispid 1610678292;
procedure GhostMethod_Recordset21_84_22; dispid 1610678293;
procedure GhostMethod_Recordset21_88_23; dispid 1610678294;
procedure GhostMethod_Recordset21_92_24; dispid 1610678295;
procedure GhostMethod_Recordset21_96_25; dispid 1610678296;
procedure GhostMethod_Recordset21_100_26; dispid 1610678297;
procedure GhostMethod_Recordset21_104_27; dispid 1610678298;
procedure GhostMethod_Recordset21_108_28; dispid 1610678299;
procedure GhostMethod_Recordset21_112_29; dispid 1610678300;
procedure GhostMethod_Recordset21_116_30; dispid 1610678301;
procedure GhostMethod_Recordset21_120_31; dispid 1610678302;
procedure GhostMethod_Recordset21_124_32; dispid 1610678303;
procedure GhostMethod_Recordset21_128_33; dispid 1610678304;
procedure GhostMethod_Recordset21_132_34; dispid 1610678305;
procedure GhostMethod_Recordset21_136_35; dispid 1610678306;
procedure GhostMethod_Recordset21_140_36; dispid 1610678307;
procedure GhostMethod_Recordset21_144_37; dispid 1610678308;
procedure GhostMethod_Recordset21_148_38; dispid 1610678309;
procedure GhostMethod_Recordset21_152_39; dispid 1610678310;
procedure GhostMethod_Recordset21_156_40; dispid 1610678311;
procedure GhostMethod_Recordset21_160_41; dispid 1610678312;
procedure GhostMethod_Recordset21_164_42; dispid 1610678313;
procedure GhostMethod_Recordset21_168_43; dispid 1610678314;
procedure GhostMethod_Recordset21_172_44; dispid 1610678315;
procedure GhostMethod_Recordset21_176_45; dispid 1610678316;
procedure GhostMethod_Recordset21_180_46; dispid 1610678317;
procedure GhostMethod_Recordset21_184_47; dispid 1610678318;
procedure GhostMethod_Recordset21_188_48; dispid 1610678319;
procedure GhostMethod_Recordset21_192_49; dispid 1610678320;
procedure GhostMethod_Recordset21_196_50; dispid 1610678321;
procedure GhostMethod_Recordset21_200_51; dispid 1610678322;
procedure GhostMethod_Recordset21_204_52; dispid 1610678323;
procedure GhostMethod_Recordset21_208_53; dispid 1610678324;
procedure GhostMethod_Recordset21_212_54; dispid 1610678325;
procedure GhostMethod_Recordset21_216_55; dispid 1610678326;
procedure GhostMethod_Recordset21_220_56; dispid 1610678327;
procedure GhostMethod_Recordset21_224_57; dispid 1610678328;
procedure GhostMethod_Recordset21_228_58; dispid 1610678329;
procedure GhostMethod_Recordset21_232_59; dispid 1610678330;
procedure GhostMethod_Recordset21_236_60; dispid 1610678331;
procedure GhostMethod_Recordset21_240_61; dispid 1610678332;
procedure GhostMethod_Recordset21_244_62; dispid 1610678333;
procedure GhostMethod_Recordset21_248_63; dispid 1610678334;
procedure GhostMethod_Recordset21_252_64; dispid 1610678335;
procedure GhostMethod_Recordset21_256_65; dispid 1610678336;
procedure GhostMethod_Recordset21_260_66; dispid 1610678337;
procedure GhostMethod_Recordset21_264_67; dispid 1610678338;
procedure GhostMethod_Recordset21_268_68; dispid 1610678339;
procedure GhostMethod_Recordset21_272_69; dispid 1610678340;
procedure GhostMethod_Recordset21_276_70; dispid 1610678341;
procedure GhostMethod_Recordset21_280_71; dispid 1610678342;
procedure GhostMethod_Recordset21_284_72; dispid 1610678343;
procedure GhostMethod_Recordset21_288_73; dispid 1610678344;
procedure GhostMethod_Recordset21_292_74; dispid 1610678345;
procedure GhostMethod_Recordset21_296_75; dispid 1610678346;
procedure GhostMethod_Recordset21_300_76; dispid 1610678347;
procedure GhostMethod_Recordset21_304_77; dispid 1610678348;
procedure GhostMethod_Recordset21_308_78; dispid 1610678349;
procedure GhostMethod_Recordset21_312_79; dispid 1610678350;
procedure GhostMethod_Recordset21_316_80; dispid 1610678351;
procedure GhostMethod_Recordset21_320_81; dispid 1610678352;
procedure Seek(KeyValues: OleVariant; SeekOption: SeekEnum); dispid 1066;
property Index: WideString dispid 1067;
procedure GhostMethod_Recordset20_0_1; dispid 1610678272;
procedure GhostMethod_Recordset20_4_2; dispid 1610678273;
procedure GhostMethod_Recordset20_8_3; dispid 1610678274;
procedure GhostMethod_Recordset20_12_4; dispid 1610678275;
procedure GhostMethod_Recordset20_16_5; dispid 1610678276;
procedure GhostMethod_Recordset20_20_6; dispid 1610678277;
procedure GhostMethod_Recordset20_24_7; dispid 1610678278;
procedure GhostMethod_Recordset20_28_8; dispid 1610678279;
procedure GhostMethod_Recordset20_32_9; dispid 1610678280;
procedure GhostMethod_Recordset20_36_10; dispid 1610678281;
procedure GhostMethod_Recordset20_40_11; dispid 1610678282;
procedure GhostMethod_Recordset20_44_12; dispid 1610678283;
procedure GhostMethod_Recordset20_48_13; dispid 1610678284;
procedure GhostMethod_Recordset20_52_14; dispid 1610678285;
procedure GhostMethod_Recordset20_56_15; dispid 1610678286;
procedure GhostMethod_Recordset20_60_16; dispid 1610678287;
procedure GhostMethod_Recordset20_64_17; dispid 1610678288;
procedure GhostMethod_Recordset20_68_18; dispid 1610678289;
procedure GhostMethod_Recordset20_72_19; dispid 1610678290;
procedure GhostMethod_Recordset20_76_20; dispid 1610678291;
procedure GhostMethod_Recordset20_80_21; dispid 1610678292;
procedure GhostMethod_Recordset20_84_22; dispid 1610678293;
procedure GhostMethod_Recordset20_88_23; dispid 1610678294;
procedure GhostMethod_Recordset20_92_24; dispid 1610678295;
procedure GhostMethod_Recordset20_96_25; dispid 1610678296;
procedure GhostMethod_Recordset20_100_26; dispid 1610678297;
procedure GhostMethod_Recordset20_104_27; dispid 1610678298;
procedure GhostMethod_Recordset20_108_28; dispid 1610678299;
procedure GhostMethod_Recordset20_112_29; dispid 1610678300;
procedure GhostMethod_Recordset20_116_30; dispid 1610678301;
procedure GhostMethod_Recordset20_120_31; dispid 1610678302;
procedure GhostMethod_Recordset20_124_32; dispid 1610678303;
procedure GhostMethod_Recordset20_128_33; dispid 1610678304;
procedure GhostMethod_Recordset20_132_34; dispid 1610678305;
procedure GhostMethod_Recordset20_136_35; dispid 1610678306;
procedure GhostMethod_Recordset20_140_36; dispid 1610678307;
procedure GhostMethod_Recordset20_144_37; dispid 1610678308;
procedure GhostMethod_Recordset20_148_38; dispid 1610678309;
procedure GhostMethod_Recordset20_152_39; dispid 1610678310;
procedure GhostMethod_Recordset20_156_40; dispid 1610678311;
procedure GhostMethod_Recordset20_160_41; dispid 1610678312;
procedure GhostMethod_Recordset20_164_42; dispid 1610678313;
procedure GhostMethod_Recordset20_168_43; dispid 1610678314;
procedure GhostMethod_Recordset20_172_44; dispid 1610678315;
procedure GhostMethod_Recordset20_176_45; dispid 1610678316;
procedure GhostMethod_Recordset20_180_46; dispid 1610678317;
procedure GhostMethod_Recordset20_184_47; dispid 1610678318;
procedure GhostMethod_Recordset20_188_48; dispid 1610678319;
procedure GhostMethod_Recordset20_192_49; dispid 1610678320;
procedure GhostMethod_Recordset20_196_50; dispid 1610678321;
procedure GhostMethod_Recordset20_200_51; dispid 1610678322;
procedure GhostMethod_Recordset20_204_52; dispid 1610678323;
procedure GhostMethod_Recordset20_208_53; dispid 1610678324;
procedure GhostMethod_Recordset20_212_54; dispid 1610678325;
procedure GhostMethod_Recordset20_216_55; dispid 1610678326;
procedure GhostMethod_Recordset20_220_56; dispid 1610678327;
procedure GhostMethod_Recordset20_224_57; dispid 1610678328;
procedure GhostMethod_Recordset20_228_58; dispid 1610678329;
procedure GhostMethod_Recordset20_232_59; dispid 1610678330;
procedure GhostMethod_Recordset20_236_60; dispid 1610678331;
procedure GhostMethod_Recordset20_240_61; dispid 1610678332;
procedure GhostMethod_Recordset20_244_62; dispid 1610678333;
procedure GhostMethod_Recordset20_248_63; dispid 1610678334;
procedure GhostMethod_Recordset20_252_64; dispid 1610678335;
procedure GhostMethod_Recordset20_256_65; dispid 1610678336;
procedure GhostMethod_Recordset20_260_66; dispid 1610678337;
procedure GhostMethod_Recordset20_264_67; dispid 1610678338;
procedure GhostMethod_Recordset20_268_68; dispid 1610678339;
procedure Cancel; dispid 1055;
property DataSource: IUnknown dispid 1056;
procedure _xSave(const FileName: WideString; PersistFormat: PersistFormatEnum); dispid 1610874883;
property ActiveCommand: IDispatch readonly dispid 1061;
property StayInSync: WordBool dispid 1063;
function GetString(StringFormat: StringFormatEnum; NumRows: Integer;
const ColumnDelimeter: WideString; const RowDelimeter: WideString;
const NullExpr: WideString): WideString; dispid 1062;
property DataMember: WideString dispid 1064;
function CompareBookmarks(Bookmark1: OleVariant; Bookmark2: OleVariant): CompareEnum; dispid 1065;
function Clone(LockType: LockTypeEnum): _Recordset; dispid 1034;
procedure Resync(AffectRecords: AffectEnum; ResyncValues: ResyncEnum); dispid 1024;
property AbsolutePosition: PositionEnum_Param dispid 1000;
function ActiveConnection: IDispatch; dispid 1001;
property BOF: WordBool readonly dispid 1002;
property Bookmark: OleVariant dispid 1003;
property CacheSize: Integer dispid 1004;
property CursorType: CursorTypeEnum dispid 1005;
property EOF: WordBool readonly dispid 1006;
property Fields: Fields readonly dispid 0;
property LockType: LockTypeEnum dispid 1008;
property MaxRecords: ADO_LONGPTR dispid 1009;
property RecordCount: ADO_LONGPTR readonly dispid 1010;
function Source: IDispatch; dispid 1011;
procedure AddNew(FieldList: OleVariant; Values: OleVariant); dispid 1012;
procedure CancelUpdate; dispid 1013;
procedure Close; dispid 1014;
procedure Delete(AffectRecords: AffectEnum); dispid 1015;
function GetRows(Rows: Integer; Start: OleVariant; Fields: OleVariant): OleVariant; dispid 1016;
procedure Move(NumRecords: ADO_LONGPTR; Start: OleVariant); dispid 1017;
procedure MoveNext; dispid 1018;
procedure MovePrevious; dispid 1019;
procedure MoveFirst; dispid 1020;
procedure MoveLast; dispid 1021;
procedure Open(Source: OleVariant; ActiveConnection: OleVariant; CursorType: CursorTypeEnum;
LockType: LockTypeEnum; Options: Integer); dispid 1022;
procedure Requery(Options: Integer); dispid 1023;
procedure _xResync(AffectRecords: AffectEnum); dispid 1610809378;
procedure Update(Fields: OleVariant; Values: OleVariant); dispid 1025;
property AbsolutePage: PositionEnum_Param dispid 1047;
property EditMode: EditModeEnum readonly dispid 1026;
property Filter: OleVariant dispid 1030;
property PageCount: ADO_LONGPTR readonly dispid 1050;
property PageSize: Integer dispid 1048;
property Sort: WideString dispid 1031;
property Status: Integer readonly dispid 1029;
property State: Integer readonly dispid 1054;
function _xClone: _Recordset; dispid 1610809392;
procedure UpdateBatch(AffectRecords: AffectEnum); dispid 1035;
procedure CancelBatch(AffectRecords: AffectEnum); dispid 1049;
property CursorLocation: CursorLocationEnum dispid 1051;
function NextRecordset(out RecordsAffected: OleVariant): _Recordset; dispid 1052;
function Supports(CursorOptions: CursorOptionEnum): WordBool; dispid 1036;
property Collect[Index: OleVariant]: OleVariant dispid -8;
property MarshalOptions: MarshalOptionsEnum dispid 1053;
procedure Find(const Criteria: WideString; SkipRecords: ADO_LONGPTR;
SearchDirection: SearchDirectionEnum; Start: OleVariant); dispid 1058;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: _Recordset
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000556-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_Recordset = interface(Recordset21)
['{00000556-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod__Recordset_0_1; safecall;
procedure GhostMethod__Recordset_4_2; safecall;
procedure GhostMethod__Recordset_8_3; safecall;
procedure GhostMethod__Recordset_12_4; safecall;
procedure GhostMethod__Recordset_16_5; safecall;
procedure GhostMethod__Recordset_20_6; safecall;
procedure GhostMethod__Recordset_24_7; safecall;
procedure GhostMethod__Recordset_28_8; safecall;
procedure GhostMethod__Recordset_32_9; safecall;
procedure GhostMethod__Recordset_36_10; safecall;
procedure GhostMethod__Recordset_40_11; safecall;
procedure GhostMethod__Recordset_44_12; safecall;
procedure GhostMethod__Recordset_48_13; safecall;
procedure GhostMethod__Recordset_52_14; safecall;
procedure GhostMethod__Recordset_56_15; safecall;
procedure GhostMethod__Recordset_60_16; safecall;
procedure GhostMethod__Recordset_64_17; safecall;
procedure GhostMethod__Recordset_68_18; safecall;
procedure GhostMethod__Recordset_72_19; safecall;
procedure GhostMethod__Recordset_76_20; safecall;
procedure GhostMethod__Recordset_80_21; safecall;
procedure GhostMethod__Recordset_84_22; safecall;
procedure GhostMethod__Recordset_88_23; safecall;
procedure GhostMethod__Recordset_92_24; safecall;
procedure GhostMethod__Recordset_96_25; safecall;
procedure GhostMethod__Recordset_100_26; safecall;
procedure GhostMethod__Recordset_104_27; safecall;
procedure GhostMethod__Recordset_108_28; safecall;
procedure GhostMethod__Recordset_112_29; safecall;
procedure GhostMethod__Recordset_116_30; safecall;
procedure GhostMethod__Recordset_120_31; safecall;
procedure GhostMethod__Recordset_124_32; safecall;
procedure GhostMethod__Recordset_128_33; safecall;
procedure GhostMethod__Recordset_132_34; safecall;
procedure GhostMethod__Recordset_136_35; safecall;
procedure GhostMethod__Recordset_140_36; safecall;
procedure GhostMethod__Recordset_144_37; safecall;
procedure GhostMethod__Recordset_148_38; safecall;
procedure GhostMethod__Recordset_152_39; safecall;
procedure GhostMethod__Recordset_156_40; safecall;
procedure GhostMethod__Recordset_160_41; safecall;
procedure GhostMethod__Recordset_164_42; safecall;
procedure GhostMethod__Recordset_168_43; safecall;
procedure GhostMethod__Recordset_172_44; safecall;
procedure GhostMethod__Recordset_176_45; safecall;
procedure GhostMethod__Recordset_180_46; safecall;
procedure GhostMethod__Recordset_184_47; safecall;
procedure GhostMethod__Recordset_188_48; safecall;
procedure GhostMethod__Recordset_192_49; safecall;
procedure GhostMethod__Recordset_196_50; safecall;
procedure GhostMethod__Recordset_200_51; safecall;
procedure GhostMethod__Recordset_204_52; safecall;
procedure GhostMethod__Recordset_208_53; safecall;
procedure GhostMethod__Recordset_212_54; safecall;
procedure GhostMethod__Recordset_216_55; safecall;
procedure GhostMethod__Recordset_220_56; safecall;
procedure GhostMethod__Recordset_224_57; safecall;
procedure GhostMethod__Recordset_228_58; safecall;
procedure GhostMethod__Recordset_232_59; safecall;
procedure GhostMethod__Recordset_236_60; safecall;
procedure GhostMethod__Recordset_240_61; safecall;
procedure GhostMethod__Recordset_244_62; safecall;
procedure GhostMethod__Recordset_248_63; safecall;
procedure GhostMethod__Recordset_252_64; safecall;
procedure GhostMethod__Recordset_256_65; safecall;
procedure GhostMethod__Recordset_260_66; safecall;
procedure GhostMethod__Recordset_264_67; safecall;
procedure GhostMethod__Recordset_268_68; safecall;
procedure GhostMethod__Recordset_272_69; safecall;
procedure GhostMethod__Recordset_276_70; safecall;
procedure GhostMethod__Recordset_280_71; safecall;
procedure GhostMethod__Recordset_284_72; safecall;
procedure GhostMethod__Recordset_288_73; safecall;
procedure GhostMethod__Recordset_292_74; safecall;
procedure GhostMethod__Recordset_296_75; safecall;
procedure GhostMethod__Recordset_300_76; safecall;
procedure GhostMethod__Recordset_304_77; safecall;
procedure GhostMethod__Recordset_308_78; safecall;
procedure GhostMethod__Recordset_312_79; safecall;
procedure GhostMethod__Recordset_316_80; safecall;
procedure GhostMethod__Recordset_320_81; safecall;
procedure GhostMethod__Recordset_324_82; safecall;
procedure GhostMethod__Recordset_328_83; safecall;
procedure GhostMethod__Recordset_332_84; safecall;
procedure Save(Destination: OleVariant; PersistFormat: PersistFormatEnum); safecall;
end;

// *********************************************************************//
// DispIntf: _RecordsetDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000556-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_RecordsetDisp = dispinterface
['{00000556-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod__Recordset_0_1; dispid 1610678272;
procedure GhostMethod__Recordset_4_2; dispid 1610678273;
procedure GhostMethod__Recordset_8_3; dispid 1610678274;
procedure GhostMethod__Recordset_12_4; dispid 1610678275;
procedure GhostMethod__Recordset_16_5; dispid 1610678276;
procedure GhostMethod__Recordset_20_6; dispid 1610678277;
procedure GhostMethod__Recordset_24_7; dispid 1610678278;
procedure GhostMethod__Recordset_28_8; dispid 1610678279;
procedure GhostMethod__Recordset_32_9; dispid 1610678280;
procedure GhostMethod__Recordset_36_10; dispid 1610678281;
procedure GhostMethod__Recordset_40_11; dispid 1610678282;
procedure GhostMethod__Recordset_44_12; dispid 1610678283;
procedure GhostMethod__Recordset_48_13; dispid 1610678284;
procedure GhostMethod__Recordset_52_14; dispid 1610678285;
procedure GhostMethod__Recordset_56_15; dispid 1610678286;
procedure GhostMethod__Recordset_60_16; dispid 1610678287;
procedure GhostMethod__Recordset_64_17; dispid 1610678288;
procedure GhostMethod__Recordset_68_18; dispid 1610678289;
procedure GhostMethod__Recordset_72_19; dispid 1610678290;
procedure GhostMethod__Recordset_76_20; dispid 1610678291;
procedure GhostMethod__Recordset_80_21; dispid 1610678292;
procedure GhostMethod__Recordset_84_22; dispid 1610678293;
procedure GhostMethod__Recordset_88_23; dispid 1610678294;
procedure GhostMethod__Recordset_92_24; dispid 1610678295;
procedure GhostMethod__Recordset_96_25; dispid 1610678296;
procedure GhostMethod__Recordset_100_26; dispid 1610678297;
procedure GhostMethod__Recordset_104_27; dispid 1610678298;
procedure GhostMethod__Recordset_108_28; dispid 1610678299;
procedure GhostMethod__Recordset_112_29; dispid 1610678300;
procedure GhostMethod__Recordset_116_30; dispid 1610678301;
procedure GhostMethod__Recordset_120_31; dispid 1610678302;
procedure GhostMethod__Recordset_124_32; dispid 1610678303;
procedure GhostMethod__Recordset_128_33; dispid 1610678304;
procedure GhostMethod__Recordset_132_34; dispid 1610678305;
procedure GhostMethod__Recordset_136_35; dispid 1610678306;
procedure GhostMethod__Recordset_140_36; dispid 1610678307;
procedure GhostMethod__Recordset_144_37; dispid 1610678308;
procedure GhostMethod__Recordset_148_38; dispid 1610678309;
procedure GhostMethod__Recordset_152_39; dispid 1610678310;
procedure GhostMethod__Recordset_156_40; dispid 1610678311;
procedure GhostMethod__Recordset_160_41; dispid 1610678312;
procedure GhostMethod__Recordset_164_42; dispid 1610678313;
procedure GhostMethod__Recordset_168_43; dispid 1610678314;
procedure GhostMethod__Recordset_172_44; dispid 1610678315;
procedure GhostMethod__Recordset_176_45; dispid 1610678316;
procedure GhostMethod__Recordset_180_46; dispid 1610678317;
procedure GhostMethod__Recordset_184_47; dispid 1610678318;
procedure GhostMethod__Recordset_188_48; dispid 1610678319;
procedure GhostMethod__Recordset_192_49; dispid 1610678320;
procedure GhostMethod__Recordset_196_50; dispid 1610678321;
procedure GhostMethod__Recordset_200_51; dispid 1610678322;
procedure GhostMethod__Recordset_204_52; dispid 1610678323;
procedure GhostMethod__Recordset_208_53; dispid 1610678324;
procedure GhostMethod__Recordset_212_54; dispid 1610678325;
procedure GhostMethod__Recordset_216_55; dispid 1610678326;
procedure GhostMethod__Recordset_220_56; dispid 1610678327;
procedure GhostMethod__Recordset_224_57; dispid 1610678328;
procedure GhostMethod__Recordset_228_58; dispid 1610678329;
procedure GhostMethod__Recordset_232_59; dispid 1610678330;
procedure GhostMethod__Recordset_236_60; dispid 1610678331;
procedure GhostMethod__Recordset_240_61; dispid 1610678332;
procedure GhostMethod__Recordset_244_62; dispid 1610678333;
procedure GhostMethod__Recordset_248_63; dispid 1610678334;
procedure GhostMethod__Recordset_252_64; dispid 1610678335;
procedure GhostMethod__Recordset_256_65; dispid 1610678336;
procedure GhostMethod__Recordset_260_66; dispid 1610678337;
procedure GhostMethod__Recordset_264_67; dispid 1610678338;
procedure GhostMethod__Recordset_268_68; dispid 1610678339;
procedure GhostMethod__Recordset_272_69; dispid 1610678340;
procedure GhostMethod__Recordset_276_70; dispid 1610678341;
procedure GhostMethod__Recordset_280_71; dispid 1610678342;
procedure GhostMethod__Recordset_284_72; dispid 1610678343;
procedure GhostMethod__Recordset_288_73; dispid 1610678344;
procedure GhostMethod__Recordset_292_74; dispid 1610678345;
procedure GhostMethod__Recordset_296_75; dispid 1610678346;
procedure GhostMethod__Recordset_300_76; dispid 1610678347;
procedure GhostMethod__Recordset_304_77; dispid 1610678348;
procedure GhostMethod__Recordset_308_78; dispid 1610678349;
procedure GhostMethod__Recordset_312_79; dispid 1610678350;
procedure GhostMethod__Recordset_316_80; dispid 1610678351;
procedure GhostMethod__Recordset_320_81; dispid 1610678352;
procedure GhostMethod__Recordset_324_82; dispid 1610678353;
procedure GhostMethod__Recordset_328_83; dispid 1610678354;
procedure GhostMethod__Recordset_332_84; dispid 1610678355;
procedure Save(Destination: OleVariant; PersistFormat: PersistFormatEnum); dispid 1057;
procedure GhostMethod_Recordset21_0_1; dispid 1610678272;
procedure GhostMethod_Recordset21_4_2; dispid 1610678273;
procedure GhostMethod_Recordset21_8_3; dispid 1610678274;
procedure GhostMethod_Recordset21_12_4; dispid 1610678275;
procedure GhostMethod_Recordset21_16_5; dispid 1610678276;
procedure GhostMethod_Recordset21_20_6; dispid 1610678277;
procedure GhostMethod_Recordset21_24_7; dispid 1610678278;
procedure GhostMethod_Recordset21_28_8; dispid 1610678279;
procedure GhostMethod_Recordset21_32_9; dispid 1610678280;
procedure GhostMethod_Recordset21_36_10; dispid 1610678281;
procedure GhostMethod_Recordset21_40_11; dispid 1610678282;
procedure GhostMethod_Recordset21_44_12; dispid 1610678283;
procedure GhostMethod_Recordset21_48_13; dispid 1610678284;
procedure GhostMethod_Recordset21_52_14; dispid 1610678285;
procedure GhostMethod_Recordset21_56_15; dispid 1610678286;
procedure GhostMethod_Recordset21_60_16; dispid 1610678287;
procedure GhostMethod_Recordset21_64_17; dispid 1610678288;
procedure GhostMethod_Recordset21_68_18; dispid 1610678289;
procedure GhostMethod_Recordset21_72_19; dispid 1610678290;
procedure GhostMethod_Recordset21_76_20; dispid 1610678291;
procedure GhostMethod_Recordset21_80_21; dispid 1610678292;
procedure GhostMethod_Recordset21_84_22; dispid 1610678293;
procedure GhostMethod_Recordset21_88_23; dispid 1610678294;
procedure GhostMethod_Recordset21_92_24; dispid 1610678295;
procedure GhostMethod_Recordset21_96_25; dispid 1610678296;
procedure GhostMethod_Recordset21_100_26; dispid 1610678297;
procedure GhostMethod_Recordset21_104_27; dispid 1610678298;
procedure GhostMethod_Recordset21_108_28; dispid 1610678299;
procedure GhostMethod_Recordset21_112_29; dispid 1610678300;
procedure GhostMethod_Recordset21_116_30; dispid 1610678301;
procedure GhostMethod_Recordset21_120_31; dispid 1610678302;
procedure GhostMethod_Recordset21_124_32; dispid 1610678303;
procedure GhostMethod_Recordset21_128_33; dispid 1610678304;
procedure GhostMethod_Recordset21_132_34; dispid 1610678305;
procedure GhostMethod_Recordset21_136_35; dispid 1610678306;
procedure GhostMethod_Recordset21_140_36; dispid 1610678307;
procedure GhostMethod_Recordset21_144_37; dispid 1610678308;
procedure GhostMethod_Recordset21_148_38; dispid 1610678309;
procedure GhostMethod_Recordset21_152_39; dispid 1610678310;
procedure GhostMethod_Recordset21_156_40; dispid 1610678311;
procedure GhostMethod_Recordset21_160_41; dispid 1610678312;
procedure GhostMethod_Recordset21_164_42; dispid 1610678313;
procedure GhostMethod_Recordset21_168_43; dispid 1610678314;
procedure GhostMethod_Recordset21_172_44; dispid 1610678315;
procedure GhostMethod_Recordset21_176_45; dispid 1610678316;
procedure GhostMethod_Recordset21_180_46; dispid 1610678317;
procedure GhostMethod_Recordset21_184_47; dispid 1610678318;
procedure GhostMethod_Recordset21_188_48; dispid 1610678319;
procedure GhostMethod_Recordset21_192_49; dispid 1610678320;
procedure GhostMethod_Recordset21_196_50; dispid 1610678321;
procedure GhostMethod_Recordset21_200_51; dispid 1610678322;
procedure GhostMethod_Recordset21_204_52; dispid 1610678323;
procedure GhostMethod_Recordset21_208_53; dispid 1610678324;
procedure GhostMethod_Recordset21_212_54; dispid 1610678325;
procedure GhostMethod_Recordset21_216_55; dispid 1610678326;
procedure GhostMethod_Recordset21_220_56; dispid 1610678327;
procedure GhostMethod_Recordset21_224_57; dispid 1610678328;
procedure GhostMethod_Recordset21_228_58; dispid 1610678329;
procedure GhostMethod_Recordset21_232_59; dispid 1610678330;
procedure GhostMethod_Recordset21_236_60; dispid 1610678331;
procedure GhostMethod_Recordset21_240_61; dispid 1610678332;
procedure GhostMethod_Recordset21_244_62; dispid 1610678333;
procedure GhostMethod_Recordset21_248_63; dispid 1610678334;
procedure GhostMethod_Recordset21_252_64; dispid 1610678335;
procedure GhostMethod_Recordset21_256_65; dispid 1610678336;
procedure GhostMethod_Recordset21_260_66; dispid 1610678337;
procedure GhostMethod_Recordset21_264_67; dispid 1610678338;
procedure GhostMethod_Recordset21_268_68; dispid 1610678339;
procedure GhostMethod_Recordset21_272_69; dispid 1610678340;
procedure GhostMethod_Recordset21_276_70; dispid 1610678341;
procedure GhostMethod_Recordset21_280_71; dispid 1610678342;
procedure GhostMethod_Recordset21_284_72; dispid 1610678343;
procedure GhostMethod_Recordset21_288_73; dispid 1610678344;
procedure GhostMethod_Recordset21_292_74; dispid 1610678345;
procedure GhostMethod_Recordset21_296_75; dispid 1610678346;
procedure GhostMethod_Recordset21_300_76; dispid 1610678347;
procedure GhostMethod_Recordset21_304_77; dispid 1610678348;
procedure GhostMethod_Recordset21_308_78; dispid 1610678349;
procedure GhostMethod_Recordset21_312_79; dispid 1610678350;
procedure GhostMethod_Recordset21_316_80; dispid 1610678351;
procedure GhostMethod_Recordset21_320_81; dispid 1610678352;
procedure Seek(KeyValues: OleVariant; SeekOption: SeekEnum); dispid 1066;
property Index: WideString dispid 1067;
procedure GhostMethod_Recordset20_0_1; dispid 1610678272;
procedure GhostMethod_Recordset20_4_2; dispid 1610678273;
procedure GhostMethod_Recordset20_8_3; dispid 1610678274;
procedure GhostMethod_Recordset20_12_4; dispid 1610678275;
procedure GhostMethod_Recordset20_16_5; dispid 1610678276;
procedure GhostMethod_Recordset20_20_6; dispid 1610678277;
procedure GhostMethod_Recordset20_24_7; dispid 1610678278;
procedure GhostMethod_Recordset20_28_8; dispid 1610678279;
procedure GhostMethod_Recordset20_32_9; dispid 1610678280;
procedure GhostMethod_Recordset20_36_10; dispid 1610678281;
procedure GhostMethod_Recordset20_40_11; dispid 1610678282;
procedure GhostMethod_Recordset20_44_12; dispid 1610678283;
procedure GhostMethod_Recordset20_48_13; dispid 1610678284;
procedure GhostMethod_Recordset20_52_14; dispid 1610678285;
procedure GhostMethod_Recordset20_56_15; dispid 1610678286;
procedure GhostMethod_Recordset20_60_16; dispid 1610678287;
procedure GhostMethod_Recordset20_64_17; dispid 1610678288;
procedure GhostMethod_Recordset20_68_18; dispid 1610678289;
procedure GhostMethod_Recordset20_72_19; dispid 1610678290;
procedure GhostMethod_Recordset20_76_20; dispid 1610678291;
procedure GhostMethod_Recordset20_80_21; dispid 1610678292;
procedure GhostMethod_Recordset20_84_22; dispid 1610678293;
procedure GhostMethod_Recordset20_88_23; dispid 1610678294;
procedure GhostMethod_Recordset20_92_24; dispid 1610678295;
procedure GhostMethod_Recordset20_96_25; dispid 1610678296;
procedure GhostMethod_Recordset20_100_26; dispid 1610678297;
procedure GhostMethod_Recordset20_104_27; dispid 1610678298;
procedure GhostMethod_Recordset20_108_28; dispid 1610678299;
procedure GhostMethod_Recordset20_112_29; dispid 1610678300;
procedure GhostMethod_Recordset20_116_30; dispid 1610678301;
procedure GhostMethod_Recordset20_120_31; dispid 1610678302;
procedure GhostMethod_Recordset20_124_32; dispid 1610678303;
procedure GhostMethod_Recordset20_128_33; dispid 1610678304;
procedure GhostMethod_Recordset20_132_34; dispid 1610678305;
procedure GhostMethod_Recordset20_136_35; dispid 1610678306;
procedure GhostMethod_Recordset20_140_36; dispid 1610678307;
procedure GhostMethod_Recordset20_144_37; dispid 1610678308;
procedure GhostMethod_Recordset20_148_38; dispid 1610678309;
procedure GhostMethod_Recordset20_152_39; dispid 1610678310;
procedure GhostMethod_Recordset20_156_40; dispid 1610678311;
procedure GhostMethod_Recordset20_160_41; dispid 1610678312;
procedure GhostMethod_Recordset20_164_42; dispid 1610678313;
procedure GhostMethod_Recordset20_168_43; dispid 1610678314;
procedure GhostMethod_Recordset20_172_44; dispid 1610678315;
procedure GhostMethod_Recordset20_176_45; dispid 1610678316;
procedure GhostMethod_Recordset20_180_46; dispid 1610678317;
procedure GhostMethod_Recordset20_184_47; dispid 1610678318;
procedure GhostMethod_Recordset20_188_48; dispid 1610678319;
procedure GhostMethod_Recordset20_192_49; dispid 1610678320;
procedure GhostMethod_Recordset20_196_50; dispid 1610678321;
procedure GhostMethod_Recordset20_200_51; dispid 1610678322;
procedure GhostMethod_Recordset20_204_52; dispid 1610678323;
procedure GhostMethod_Recordset20_208_53; dispid 1610678324;
procedure GhostMethod_Recordset20_212_54; dispid 1610678325;
procedure GhostMethod_Recordset20_216_55; dispid 1610678326;
procedure GhostMethod_Recordset20_220_56; dispid 1610678327;
procedure GhostMethod_Recordset20_224_57; dispid 1610678328;
procedure GhostMethod_Recordset20_228_58; dispid 1610678329;
procedure GhostMethod_Recordset20_232_59; dispid 1610678330;
procedure GhostMethod_Recordset20_236_60; dispid 1610678331;
procedure GhostMethod_Recordset20_240_61; dispid 1610678332;
procedure GhostMethod_Recordset20_244_62; dispid 1610678333;
procedure GhostMethod_Recordset20_248_63; dispid 1610678334;
procedure GhostMethod_Recordset20_252_64; dispid 1610678335;
procedure GhostMethod_Recordset20_256_65; dispid 1610678336;
procedure GhostMethod_Recordset20_260_66; dispid 1610678337;
procedure GhostMethod_Recordset20_264_67; dispid 1610678338;
procedure GhostMethod_Recordset20_268_68; dispid 1610678339;
procedure Cancel; dispid 1055;
property DataSource: IUnknown dispid 1056;
procedure _xSave(const FileName: WideString; PersistFormat: PersistFormatEnum); dispid 1610874883;
property ActiveCommand: IDispatch readonly dispid 1061;
property StayInSync: WordBool dispid 1063;
function GetString(StringFormat: StringFormatEnum; NumRows: Integer;
const ColumnDelimeter: WideString; const RowDelimeter: WideString;
const NullExpr: WideString): WideString; dispid 1062;
property DataMember: WideString dispid 1064;
function CompareBookmarks(Bookmark1: OleVariant; Bookmark2: OleVariant): CompareEnum; dispid 1065;
function Clone(LockType: LockTypeEnum): _Recordset; dispid 1034;
procedure Resync(AffectRecords: AffectEnum; ResyncValues: ResyncEnum); dispid 1024;
property AbsolutePosition: PositionEnum_Param dispid 1000;
function ActiveConnection: IDispatch; dispid 1001;
property BOF: WordBool readonly dispid 1002;
property Bookmark: OleVariant dispid 1003;
property CacheSize: Integer dispid 1004;
property CursorType: CursorTypeEnum dispid 1005;
property EOF: WordBool readonly dispid 1006;
property Fields: Fields readonly dispid 0;
property LockType: LockTypeEnum dispid 1008;
property MaxRecords: ADO_LONGPTR dispid 1009;
property RecordCount: ADO_LONGPTR readonly dispid 1010;
function Source: IDispatch; dispid 1011;
procedure AddNew(FieldList: OleVariant; Values: OleVariant); dispid 1012;
procedure CancelUpdate; dispid 1013;
procedure Close; dispid 1014;
procedure Delete(AffectRecords: AffectEnum); dispid 1015;
function GetRows(Rows: Integer; Start: OleVariant; Fields: OleVariant): OleVariant; dispid 1016;
procedure Move(NumRecords: ADO_LONGPTR; Start: OleVariant); dispid 1017;
procedure MoveNext; dispid 1018;
procedure MovePrevious; dispid 1019;
procedure MoveFirst; dispid 1020;
procedure MoveLast; dispid 1021;
procedure Open(Source: OleVariant; ActiveConnection: OleVariant; CursorType: CursorTypeEnum;
LockType: LockTypeEnum; Options: Integer); dispid 1022;
procedure Requery(Options: Integer); dispid 1023;
procedure _xResync(AffectRecords: AffectEnum); dispid 1610809378;
procedure Update(Fields: OleVariant; Values: OleVariant); dispid 1025;
property AbsolutePage: PositionEnum_Param dispid 1047;
property EditMode: EditModeEnum readonly dispid 1026;
property Filter: OleVariant dispid 1030;
property PageCount: ADO_LONGPTR readonly dispid 1050;
property PageSize: Integer dispid 1048;
property Sort: WideString dispid 1031;
property Status: Integer readonly dispid 1029;
property State: Integer readonly dispid 1054;
function _xClone: _Recordset; dispid 1610809392;
procedure UpdateBatch(AffectRecords: AffectEnum); dispid 1035;
procedure CancelBatch(AffectRecords: AffectEnum); dispid 1049;
property CursorLocation: CursorLocationEnum dispid 1051;
function NextRecordset(out RecordsAffected: OleVariant): _Recordset; dispid 1052;
function Supports(CursorOptions: CursorOptionEnum): WordBool; dispid 1036;
property Collect[Index: OleVariant]: OleVariant dispid -8;
property MarshalOptions: MarshalOptionsEnum dispid 1053;
procedure Find(const Criteria: WideString; SkipRecords: ADO_LONGPTR;
SearchDirection: SearchDirectionEnum; Start: OleVariant); dispid 1058;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: Fields15
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000506-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Fields15 = interface(_Collection)
['{00000506-0000-0010-8000-00AA006D2EA4}']
function Get_Item(Index: OleVariant): Field; safecall;
property Item[Index: OleVariant]: Field read Get_Item; default;
end;

// *********************************************************************//
// DispIntf: Fields15Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000506-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Fields15Disp = dispinterface
['{00000506-0000-0010-8000-00AA006D2EA4}']
property Item[Index: OleVariant]: Field readonly dispid 0; default;
property Count: Integer readonly dispid 1;
function _NewEnum: IUnknown; dispid -4;
procedure Refresh; dispid 2;
end;

// *********************************************************************//
// Interface: Fields20
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000054D-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Fields20 = interface(Fields15)
['{0000054D-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Fields20_0_1; safecall;
procedure GhostMethod_Fields20_4_2; safecall;
procedure GhostMethod_Fields20_8_3; safecall;
procedure GhostMethod_Fields20_12_4; safecall;
procedure GhostMethod_Fields20_16_5; safecall;
procedure GhostMethod_Fields20_20_6; safecall;
procedure GhostMethod_Fields20_24_7; safecall;
procedure GhostMethod_Fields20_28_8; safecall;
procedure GhostMethod_Fields20_32_9; safecall;
procedure GhostMethod_Fields20_36_10; safecall;
procedure GhostMethod_Fields20_40_11; safecall;
procedure _Append(const Name: WideString; Type_: DataTypeEnum; DefinedSize: ADO_LONGPTR;
Attrib: FieldAttributeEnum); safecall;
procedure Delete(Index: OleVariant); safecall;
end;

// *********************************************************************//
// DispIntf: Fields20Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000054D-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Fields20Disp = dispinterface
['{0000054D-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Fields20_0_1; dispid 1610678272;
procedure GhostMethod_Fields20_4_2; dispid 1610678273;
procedure GhostMethod_Fields20_8_3; dispid 1610678274;
procedure GhostMethod_Fields20_12_4; dispid 1610678275;
procedure GhostMethod_Fields20_16_5; dispid 1610678276;
procedure GhostMethod_Fields20_20_6; dispid 1610678277;
procedure GhostMethod_Fields20_24_7; dispid 1610678278;
procedure GhostMethod_Fields20_28_8; dispid 1610678279;
procedure GhostMethod_Fields20_32_9; dispid 1610678280;
procedure GhostMethod_Fields20_36_10; dispid 1610678281;
procedure GhostMethod_Fields20_40_11; dispid 1610678282;
procedure _Append(const Name: WideString; Type_: DataTypeEnum; DefinedSize: ADO_LONGPTR;
Attrib: FieldAttributeEnum); dispid 1610874880;
procedure Delete(Index: OleVariant); dispid 4;
property Item[Index: OleVariant]: Field readonly dispid 0; default;
property Count: Integer readonly dispid 1;
function _NewEnum: IUnknown; dispid -4;
procedure Refresh; dispid 2;
end;

// *********************************************************************//
// Interface: Fields
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000564-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Fields = interface(Fields20)
['{00000564-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Fields_0_1; safecall;
procedure GhostMethod_Fields_4_2; safecall;
procedure GhostMethod_Fields_8_3; safecall;
procedure GhostMethod_Fields_12_4; safecall;
procedure GhostMethod_Fields_16_5; safecall;
procedure GhostMethod_Fields_20_6; safecall;
procedure GhostMethod_Fields_24_7; safecall;
procedure GhostMethod_Fields_28_8; safecall;
procedure GhostMethod_Fields_32_9; safecall;
procedure GhostMethod_Fields_36_10; safecall;
procedure GhostMethod_Fields_40_11; safecall;
procedure GhostMethod_Fields_44_12; safecall;
procedure GhostMethod_Fields_48_13; safecall;
procedure Append(const Name: WideString; Type_: DataTypeEnum; DefinedSize: ADO_LONGPTR;
Attrib: FieldAttributeEnum; FieldValue: OleVariant); safecall;
procedure Update; safecall;
procedure Resync(ResyncValues: ResyncEnum); safecall;
procedure CancelUpdate; safecall;
end;

// *********************************************************************//
// DispIntf: FieldsDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000564-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
FieldsDisp = dispinterface
['{00000564-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Fields_0_1; dispid 1610678272;
procedure GhostMethod_Fields_4_2; dispid 1610678273;
procedure GhostMethod_Fields_8_3; dispid 1610678274;
procedure GhostMethod_Fields_12_4; dispid 1610678275;
procedure GhostMethod_Fields_16_5; dispid 1610678276;
procedure GhostMethod_Fields_20_6; dispid 1610678277;
procedure GhostMethod_Fields_24_7; dispid 1610678278;
procedure GhostMethod_Fields_28_8; dispid 1610678279;
procedure GhostMethod_Fields_32_9; dispid 1610678280;
procedure GhostMethod_Fields_36_10; dispid 1610678281;
procedure GhostMethod_Fields_40_11; dispid 1610678282;
procedure GhostMethod_Fields_44_12; dispid 1610678283;
procedure GhostMethod_Fields_48_13; dispid 1610678284;
procedure Append(const Name: WideString; Type_: DataTypeEnum; DefinedSize: ADO_LONGPTR;
Attrib: FieldAttributeEnum; FieldValue: OleVariant); dispid 3;
procedure Update; dispid 5;
procedure Resync(ResyncValues: ResyncEnum); dispid 6;
procedure CancelUpdate; dispid 7;
procedure GhostMethod_Fields20_0_1; dispid 1610678272;
procedure GhostMethod_Fields20_4_2; dispid 1610678273;
procedure GhostMethod_Fields20_8_3; dispid 1610678274;
procedure GhostMethod_Fields20_12_4; dispid 1610678275;
procedure GhostMethod_Fields20_16_5; dispid 1610678276;
procedure GhostMethod_Fields20_20_6; dispid 1610678277;
procedure GhostMethod_Fields20_24_7; dispid 1610678278;
procedure GhostMethod_Fields20_28_8; dispid 1610678279;
procedure GhostMethod_Fields20_32_9; dispid 1610678280;
procedure GhostMethod_Fields20_36_10; dispid 1610678281;
procedure GhostMethod_Fields20_40_11; dispid 1610678282;
procedure _Append(const Name: WideString; Type_: DataTypeEnum; DefinedSize: ADO_LONGPTR;
Attrib: FieldAttributeEnum); dispid 1610874880;
procedure Delete(Index: OleVariant); dispid 4;
property Item[Index: OleVariant]: Field readonly dispid 0; default;
property Count: Integer readonly dispid 1;
function _NewEnum: IUnknown; dispid -4;
procedure Refresh; dispid 2;
end;

// *********************************************************************//
// Interface: Field20
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000054C-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Field20 = interface(_ADO)
['{0000054C-0000-0010-8000-00AA006D2EA4}']
function Get_ActualSize: ADO_LONGPTR; safecall;
function Get_Attributes: Integer; safecall;
function Get_DefinedSize: ADO_LONGPTR; safecall;
function Get_Name: WideString; safecall;
function Get_type_: DataTypeEnum; safecall;
function Get_Value: OleVariant; safecall;
procedure Set_Value(pvar: OleVariant); safecall;
function Get_Precision: Byte; safecall;
function Get_NumericScale: Byte; safecall;
procedure AppendChunk(Data: OleVariant); safecall;
function GetChunk(Length: Integer): OleVariant; safecall;
function Get_OriginalValue: OleVariant; safecall;
function Get_UnderlyingValue: OleVariant; safecall;
function Get_DataFormat: IUnknown; safecall;
procedure _Set_DataFormat(const ppiDF: IUnknown); safecall;
procedure Set_Precision(pbPrecision: Byte); safecall;
procedure Set_NumericScale(pbNumericScale: Byte); safecall;
procedure Set_type_(pDataType: DataTypeEnum); safecall;
procedure Set_DefinedSize(pl: ADO_LONGPTR); safecall;
procedure Set_Attributes(pl: Integer); safecall;
property ActualSize: ADO_LONGPTR read Get_ActualSize;
property Attributes: Integer read Get_Attributes write Set_Attributes;
property DefinedSize: ADO_LONGPTR read Get_DefinedSize write Set_DefinedSize;
property Name: WideString read Get_Name;
property type_: DataTypeEnum read Get_type_ write Set_type_;
property Value: OleVariant read Get_Value write Set_Value;
property Precision: Byte read Get_Precision write Set_Precision;
property NumericScale: Byte read Get_NumericScale write Set_NumericScale;
property OriginalValue: OleVariant read Get_OriginalValue;
property UnderlyingValue: OleVariant read Get_UnderlyingValue;
property DataFormat: IUnknown read Get_DataFormat write _Set_DataFormat;
end;

// *********************************************************************//
// DispIntf: Field20Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000054C-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Field20Disp = dispinterface
['{0000054C-0000-0010-8000-00AA006D2EA4}']
property ActualSize: ADO_LONGPTR readonly dispid 1109;
property Attributes: Integer dispid 1114;
property DefinedSize: ADO_LONGPTR dispid 1103;
property Name: WideString readonly dispid 1100;
property type_: DataTypeEnum dispid 1102;
property Value: OleVariant dispid 0;
property Precision: Byte dispid 1112;
property NumericScale: Byte dispid 1113;
procedure AppendChunk(Data: OleVariant); dispid 1107;
function GetChunk(Length: Integer): OleVariant; dispid 1108;
property OriginalValue: OleVariant readonly dispid 1104;
property UnderlyingValue: OleVariant readonly dispid 1105;
property DataFormat: IUnknown dispid 1115;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: Field
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000569-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Field = interface(Field20)
['{00000569-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Field_0_1; safecall;
procedure GhostMethod_Field_4_2; safecall;
procedure GhostMethod_Field_8_3; safecall;
procedure GhostMethod_Field_12_4; safecall;
procedure GhostMethod_Field_16_5; safecall;
procedure GhostMethod_Field_20_6; safecall;
procedure GhostMethod_Field_24_7; safecall;
procedure GhostMethod_Field_28_8; safecall;
procedure GhostMethod_Field_32_9; safecall;
procedure GhostMethod_Field_36_10; safecall;
procedure GhostMethod_Field_40_11; safecall;
procedure GhostMethod_Field_44_12; safecall;
procedure GhostMethod_Field_48_13; safecall;
procedure GhostMethod_Field_52_14; safecall;
procedure GhostMethod_Field_56_15; safecall;
procedure GhostMethod_Field_60_16; safecall;
procedure GhostMethod_Field_64_17; safecall;
procedure GhostMethod_Field_68_18; safecall;
procedure GhostMethod_Field_72_19; safecall;
procedure GhostMethod_Field_76_20; safecall;
procedure GhostMethod_Field_80_21; safecall;
procedure GhostMethod_Field_84_22; safecall;
procedure GhostMethod_Field_88_23; safecall;
procedure GhostMethod_Field_92_24; safecall;
procedure GhostMethod_Field_96_25; safecall;
procedure GhostMethod_Field_100_26; safecall;
procedure GhostMethod_Field_104_27; safecall;
procedure GhostMethod_Field_108_28; safecall;
function Get_Status: Integer; safecall;
property Status: Integer read Get_Status;
end;

// *********************************************************************//
// DispIntf: FieldDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000569-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
FieldDisp = dispinterface
['{00000569-0000-0010-8000-00AA006D2EA4}']
procedure GhostMethod_Field_0_1; dispid 1610678272;
procedure GhostMethod_Field_4_2; dispid 1610678273;
procedure GhostMethod_Field_8_3; dispid 1610678274;
procedure GhostMethod_Field_12_4; dispid 1610678275;
procedure GhostMethod_Field_16_5; dispid 1610678276;
procedure GhostMethod_Field_20_6; dispid 1610678277;
procedure GhostMethod_Field_24_7; dispid 1610678278;
procedure GhostMethod_Field_28_8; dispid 1610678279;
procedure GhostMethod_Field_32_9; dispid 1610678280;
procedure GhostMethod_Field_36_10; dispid 1610678281;
procedure GhostMethod_Field_40_11; dispid 1610678282;
procedure GhostMethod_Field_44_12; dispid 1610678283;
procedure GhostMethod_Field_48_13; dispid 1610678284;
procedure GhostMethod_Field_52_14; dispid 1610678285;
procedure GhostMethod_Field_56_15; dispid 1610678286;
procedure GhostMethod_Field_60_16; dispid 1610678287;
procedure GhostMethod_Field_64_17; dispid 1610678288;
procedure GhostMethod_Field_68_18; dispid 1610678289;
procedure GhostMethod_Field_72_19; dispid 1610678290;
procedure GhostMethod_Field_76_20; dispid 1610678291;
procedure GhostMethod_Field_80_21; dispid 1610678292;
procedure GhostMethod_Field_84_22; dispid 1610678293;
procedure GhostMethod_Field_88_23; dispid 1610678294;
procedure GhostMethod_Field_92_24; dispid 1610678295;
procedure GhostMethod_Field_96_25; dispid 1610678296;
procedure GhostMethod_Field_100_26; dispid 1610678297;
procedure GhostMethod_Field_104_27; dispid 1610678298;
procedure GhostMethod_Field_108_28; dispid 1610678299;
property Status: Integer readonly dispid 1116;
property ActualSize: ADO_LONGPTR readonly dispid 1109;
property Attributes: Integer dispid 1114;
property DefinedSize: ADO_LONGPTR dispid 1103;
property Name: WideString readonly dispid 1100;
property type_: DataTypeEnum dispid 1102;
property Value: OleVariant dispid 0;
property Precision: Byte dispid 1112;
property NumericScale: Byte dispid 1113;
procedure AppendChunk(Data: OleVariant); dispid 1107;
function GetChunk(Length: Integer): OleVariant; dispid 1108;
property OriginalValue: OleVariant readonly dispid 1104;
property UnderlyingValue: OleVariant readonly dispid 1105;
property DataFormat: IUnknown dispid 1115;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: _Parameter
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000050C-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_Parameter = interface(_ADO)
['{0000050C-0000-0010-8000-00AA006D2EA4}']
function Get_Name: WideString; safecall;
procedure Set_Name(const pbstr: WideString); safecall;
function Get_Value: OleVariant; safecall;
procedure Set_Value(pvar: OleVariant); safecall;
function Get_type_: DataTypeEnum; safecall;
procedure Set_type_(psDataType: DataTypeEnum); safecall;
procedure Set_Direction(plParmDirection: ParameterDirectionEnum); safecall;
function Get_Direction: ParameterDirectionEnum; safecall;
procedure Set_Precision(pbPrecision: Byte); safecall;
function Get_Precision: Byte; safecall;
procedure Set_NumericScale(pbScale: Byte); safecall;
function Get_NumericScale: Byte; safecall;
procedure Set_Size(pl: ADO_LONGPTR); safecall;
function Get_Size: ADO_LONGPTR; safecall;
procedure AppendChunk(Val: OleVariant); safecall;
function Get_Attributes: Integer; safecall;
procedure Set_Attributes(plParmAttribs: Integer); safecall;
property Name: WideString read Get_Name write Set_Name;
property Value: OleVariant read Get_Value write Set_Value;
property type_: DataTypeEnum read Get_type_ write Set_type_;
property Direction: ParameterDirectionEnum read Get_Direction write Set_Direction;
property Precision: Byte read Get_Precision write Set_Precision;
property NumericScale: Byte read Get_NumericScale write Set_NumericScale;
property Size: ADO_LONGPTR read Get_Size write Set_Size;
property Attributes: Integer read Get_Attributes write Set_Attributes;
end;

// *********************************************************************//
// DispIntf: _ParameterDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000050C-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_ParameterDisp = dispinterface
['{0000050C-0000-0010-8000-00AA006D2EA4}']
property Name: WideString dispid 1;
property Value: OleVariant dispid 0;
property type_: DataTypeEnum dispid 2;
property Direction: ParameterDirectionEnum dispid 3;
property Precision: Byte dispid 4;
property NumericScale: Byte dispid 5;
property Size: ADO_LONGPTR dispid 6;
procedure AppendChunk(Val: OleVariant); dispid 7;
property Attributes: Integer dispid 8;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: Parameters
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000050D-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Parameters = interface(_DynaCollection)
['{0000050D-0000-0010-8000-00AA006D2EA4}']
function Get_Item(Index: OleVariant): _Parameter; safecall;
property Item[Index: OleVariant]: _Parameter read Get_Item; default;
end;

// *********************************************************************//
// DispIntf: ParametersDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000050D-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ParametersDisp = dispinterface
['{0000050D-0000-0010-8000-00AA006D2EA4}']
property Item[Index: OleVariant]: _Parameter readonly dispid 0; default;
procedure Append(const Object_: IDispatch); dispid 1610809344;
procedure Delete(Index: OleVariant); dispid 1610809345;
property Count: Integer readonly dispid 1;
function _NewEnum: IUnknown; dispid -4;
procedure Refresh; dispid 2;
end;

// *********************************************************************//
// Interface: Command25
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000054E-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Command25 = interface(Command15)
['{0000054E-0000-0010-8000-00AA006D2EA4}']
function Get_State: Integer; safecall;
procedure Cancel; safecall;
property State: Integer read Get_State;
end;

// *********************************************************************//
// DispIntf: Command25Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {0000054E-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Command25Disp = dispinterface
['{0000054E-0000-0010-8000-00AA006D2EA4}']
property State: Integer readonly dispid 9;
procedure Cancel; dispid 10;
function ActiveConnection: _Connection; dispid 1;
property CommandText: WideString dispid 2;
property CommandTimeout: Integer dispid 3;
property Prepared: WordBool dispid 4;
function Execute(out RecordsAffected: OleVariant; var Parameters: OleVariant; Options: Integer): _Recordset; dispid 5;
function CreateParameter(const Name: WideString; Type_: DataTypeEnum;
Direction: ParameterDirectionEnum; Size: ADO_LONGPTR; Value: OleVariant): _Parameter; dispid 6;
property Parameters: Parameters readonly dispid 0;
property CommandType: CommandTypeEnum dispid 7;
property Name: WideString dispid 8;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: _Command
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {B08400BD-F9D1-4D02-B856-71D5DBA123E9}
// *********************************************************************//
_Command = interface(Command25)
['{B08400BD-F9D1-4D02-B856-71D5DBA123E9}']
procedure _Set_CommandStream(const pvStream: IUnknown); safecall;
function Get_CommandStream: OleVariant; safecall;
procedure Set_Dialect(const pbstrDialect: WideString); safecall;
function Get_Dialect: WideString; safecall;
procedure Set_NamedParameters(pfNamedParameters: WordBool); safecall;
function Get_NamedParameters: WordBool; safecall;
property Dialect: WideString read Get_Dialect write Set_Dialect;
property NamedParameters: WordBool read Get_NamedParameters write Set_NamedParameters;
end;

// *********************************************************************//
// DispIntf: _CommandDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {B08400BD-F9D1-4D02-B856-71D5DBA123E9}
// *********************************************************************//
_CommandDisp = dispinterface
['{B08400BD-F9D1-4D02-B856-71D5DBA123E9}']
function CommandStream: IUnknown; dispid 11;
property Dialect: WideString dispid 12;
property NamedParameters: WordBool dispid 13;
property State: Integer readonly dispid 9;
procedure Cancel; dispid 10;
function ActiveConnection: _Connection; dispid 1;
property CommandText: WideString dispid 2;
property CommandTimeout: Integer dispid 3;
property Prepared: WordBool dispid 4;
function Execute(out RecordsAffected: OleVariant; var Parameters: OleVariant; Options: Integer): _Recordset; dispid 5;
function CreateParameter(const Name: WideString; Type_: DataTypeEnum;
Direction: ParameterDirectionEnum; Size: ADO_LONGPTR; Value: OleVariant): _Parameter; dispid 6;
property Parameters: Parameters readonly dispid 0;
property CommandType: CommandTypeEnum dispid 7;
property Name: WideString dispid 8;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: ConnectionEventsVt
// Flags: (16) Hidden
// GUID: {00000402-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ConnectionEventsVt = interface(IUnknown)
['{00000402-0000-0010-8000-00AA006D2EA4}']
function InfoMessage(const pError: Error; var adStatus: EventStatusEnum;
const pConnection: _Connection): HResult; stdcall;
function BeginTransComplete(TransactionLevel: Integer; const pError: Error;
var adStatus: EventStatusEnum; const pConnection: _Connection): HResult; stdcall;
function CommitTransComplete(const pError: Error; var adStatus: EventStatusEnum;
const pConnection: _Connection): HResult; stdcall;
function RollbackTransComplete(const pError: Error; var adStatus: EventStatusEnum;
const pConnection: _Connection): HResult; stdcall;
function WillExecute(var Source: WideString; var CursorType: CursorTypeEnum;
var LockType: LockTypeEnum; var Options: Integer;
var adStatus: EventStatusEnum; const pCommand: _Command;
const pRecordset: _Recordset; const pConnection: _Connection): HResult; stdcall;
function ExecuteComplete(RecordsAffected: Integer; const pError: Error;
var adStatus: EventStatusEnum; const pCommand: _Command;
const pRecordset: _Recordset; const pConnection: _Connection): HResult; stdcall;
function WillConnect(var ConnectionString: WideString; var UserID: WideString;
var Password: WideString; var Options: Integer;
var adStatus: EventStatusEnum; const pConnection: _Connection): HResult; stdcall;
function ConnectComplete(const pError: Error; var adStatus: EventStatusEnum;
const pConnection: _Connection): HResult; stdcall;
function Disconnect(var adStatus: EventStatusEnum; const pConnection: _Connection): HResult; stdcall;
end;

// *********************************************************************//
// Interface: RecordsetEventsVt
// Flags: (16) Hidden
// GUID: {00000403-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
RecordsetEventsVt = interface(IUnknown)
['{00000403-0000-0010-8000-00AA006D2EA4}']
function WillChangeField(cFields: Integer; Fields: OleVariant; var adStatus: EventStatusEnum;
const pRecordset: _Recordset): HResult; stdcall;
function FieldChangeComplete(cFields: Integer; Fields: OleVariant; const pError: Error;
var adStatus: EventStatusEnum; const pRecordset: _Recordset): HResult; stdcall;
function WillChangeRecord(adReason: EventReasonEnum; cRecords: Integer;
var adStatus: EventStatusEnum; const pRecordset: _Recordset): HResult; stdcall;
function RecordChangeComplete(adReason: EventReasonEnum; cRecords: Integer;
const pError: Error; var adStatus: EventStatusEnum;
const pRecordset: _Recordset): HResult; stdcall;
function WillChangeRecordset(adReason: EventReasonEnum; var adStatus: EventStatusEnum;
const pRecordset: _Recordset): HResult; stdcall;
function RecordsetChangeComplete(adReason: EventReasonEnum; const pError: Error;
var adStatus: EventStatusEnum; const pRecordset: _Recordset): HResult; stdcall;
function WillMove(adReason: EventReasonEnum; var adStatus: EventStatusEnum;
const pRecordset: _Recordset): HResult; stdcall;
function MoveComplete(adReason: EventReasonEnum; const pError: Error;
var adStatus: EventStatusEnum; const pRecordset: _Recordset): HResult; stdcall;
function EndOfRecordset(var fMoreData: WordBool; var adStatus: EventStatusEnum;
const pRecordset: _Recordset): HResult; stdcall;
function FetchProgress(Progress: Integer; MaxProgress: Integer; var adStatus: EventStatusEnum;
const pRecordset: _Recordset): HResult; stdcall;
function FetchComplete(const pError: Error; var adStatus: EventStatusEnum;
const pRecordset: _Recordset): HResult; stdcall;
end;

// *********************************************************************//
// DispIntf: ConnectionEvents
// Flags: (4096) Dispatchable
// GUID: {00000400-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ConnectionEvents = dispinterface
['{00000400-0000-0010-8000-00AA006D2EA4}']
procedure InfoMessage(const pError: Error; var adStatus: EventStatusEnum;
const pConnection: _Connection); dispid 0;
procedure BeginTransComplete(TransactionLevel: Integer; const pError: Error;
var adStatus: EventStatusEnum; const pConnection: _Connection); dispid 1;
procedure CommitTransComplete(const pError: Error; var adStatus: EventStatusEnum;
const pConnection: _Connection); dispid 3;
procedure RollbackTransComplete(const pError: Error; var adStatus: EventStatusEnum;
const pConnection: _Connection); dispid 2;
procedure WillExecute(var Source: WideString; var CursorType: CursorTypeEnum;
var LockType: LockTypeEnum; var Options: Integer;
var adStatus: EventStatusEnum; const pCommand: _Command;
const pRecordset: _Recordset; const pConnection: _Connection); dispid 4;
procedure ExecuteComplete(RecordsAffected: Integer; const pError: Error;
var adStatus: EventStatusEnum; const pCommand: _Command;
const pRecordset: _Recordset; const pConnection: _Connection); dispid 5;
procedure WillConnect(var ConnectionString: WideString; var UserID: WideString;
var Password: WideString; var Options: Integer;
var adStatus: EventStatusEnum; const pConnection: _Connection); dispid 6;
procedure ConnectComplete(const pError: Error; var adStatus: EventStatusEnum;
const pConnection: _Connection); dispid 7;
procedure Disconnect(var adStatus: EventStatusEnum; const pConnection: _Connection); dispid 8;
end;

// *********************************************************************//
// DispIntf: RecordsetEvents
// Flags: (4096) Dispatchable
// GUID: {00000266-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
RecordsetEvents = dispinterface
['{00000266-0000-0010-8000-00AA006D2EA4}']
procedure WillChangeField(cFields: Integer; Fields: OleVariant; var adStatus: EventStatusEnum;
const pRecordset: _Recordset); dispid 9;
procedure FieldChangeComplete(cFields: Integer; Fields: OleVariant; const pError: Error;
var adStatus: EventStatusEnum; const pRecordset: _Recordset); dispid 10;
procedure WillChangeRecord(adReason: EventReasonEnum; cRecords: Integer;
var adStatus: EventStatusEnum; const pRecordset: _Recordset); dispid 11;
procedure RecordChangeComplete(adReason: EventReasonEnum; cRecords: Integer;
const pError: Error; var adStatus: EventStatusEnum;
const pRecordset: _Recordset); dispid 12;
procedure WillChangeRecordset(adReason: EventReasonEnum; var adStatus: EventStatusEnum;
const pRecordset: _Recordset); dispid 13;
procedure RecordsetChangeComplete(adReason: EventReasonEnum; const pError: Error;
var adStatus: EventStatusEnum; const pRecordset: _Recordset); dispid 14;
procedure WillMove(adReason: EventReasonEnum; var adStatus: EventStatusEnum;
const pRecordset: _Recordset); dispid 15;
procedure MoveComplete(adReason: EventReasonEnum; const pError: Error;
var adStatus: EventStatusEnum; const pRecordset: _Recordset); dispid 16;
procedure EndOfRecordset(var fMoreData: WordBool; var adStatus: EventStatusEnum;
const pRecordset: _Recordset); dispid 17;
procedure FetchProgress(Progress: Integer; MaxProgress: Integer; var adStatus: EventStatusEnum;
const pRecordset: _Recordset); dispid 18;
procedure FetchComplete(const pError: Error; var adStatus: EventStatusEnum;
const pRecordset: _Recordset); dispid 19;
end;

// *********************************************************************//
// Interface: ADOConnectionConstruction15
// Flags: (512) Restricted
// GUID: {00000516-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ADOConnectionConstruction15 = interface(IUnknown)
['{00000516-0000-0010-8000-00AA006D2EA4}']
function Get_DSO(out ppDSO: IUnknown): HResult; stdcall;
function Get_Session(out ppSession: IUnknown): HResult; stdcall;
function WrapDSOandSession(const pDSO: IUnknown; const pSession: IUnknown): HResult; stdcall;
end;

// *********************************************************************//
// Interface: ADOConnectionConstruction
// Flags: (512) Restricted
// GUID: {00000551-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ADOConnectionConstruction = interface(ADOConnectionConstruction15)
['{00000551-0000-0010-8000-00AA006D2EA4}']
end;

// *********************************************************************//
// Interface: _Record
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {00000562-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_Record = interface(_ADO)
['{00000562-0000-0010-8000-00AA006D2EA4}']
function Get_ActiveConnection: OleVariant; safecall;
procedure Set_ActiveConnection(const pvar: WideString); safecall;
procedure _Set_ActiveConnection(const pvar: _Connection); safecall;
function Get_State: ObjectStateEnum; safecall;
function Get_Source: OleVariant; safecall;
procedure Set_Source(const pvar: WideString); safecall;
procedure _Set_Source(const pvar: IDispatch); safecall;
function Get_Mode: ConnectModeEnum; safecall;
procedure Set_Mode(pMode: ConnectModeEnum); safecall;
function Get_ParentURL: WideString; safecall;
function MoveRecord(const Source: WideString; const Destination: WideString;
const UserName: WideString; const Password: WideString;
Options: MoveRecordOptionsEnum; Async: WordBool): WideString; safecall;
function CopyRecord(const Source: WideString; const Destination: WideString;
const UserName: WideString; const Password: WideString;
Options: CopyRecordOptionsEnum; Async: WordBool): WideString; safecall;
procedure DeleteRecord(const Source: WideString; Async: WordBool); safecall;
procedure Open(Source: OleVariant; ActiveConnection: OleVariant; Mode: ConnectModeEnum;
CreateOptions: RecordCreateOptionsEnum; Options: RecordOpenOptionsEnum;
const UserName: WideString; const Password: WideString); safecall;
procedure Close; safecall;
function Get_Fields: Fields; safecall;
function Get_RecordType: RecordTypeEnum; safecall;
function GetChildren: _Recordset; safecall;
procedure Cancel; safecall;
property State: ObjectStateEnum read Get_State;
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
property ParentURL: WideString read Get_ParentURL;
property Fields: Fields read Get_Fields;
property RecordType: RecordTypeEnum read Get_RecordType;
end;

// *********************************************************************//
// DispIntf: _RecordDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {00000562-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_RecordDisp = dispinterface
['{00000562-0000-0010-8000-00AA006D2EA4}']
function ActiveConnection: OleVariant; dispid 1;
property State: ObjectStateEnum readonly dispid 2;
function Source: OleVariant; dispid 3;
property Mode: ConnectModeEnum dispid 4;
property ParentURL: WideString readonly dispid 5;
function MoveRecord(const Source: WideString; const Destination: WideString;
const UserName: WideString; const Password: WideString;
Options: MoveRecordOptionsEnum; Async: WordBool): WideString; dispid 6;
function CopyRecord(const Source: WideString; const Destination: WideString;
const UserName: WideString; const Password: WideString;
Options: CopyRecordOptionsEnum; Async: WordBool): WideString; dispid 7;
procedure DeleteRecord(const Source: WideString; Async: WordBool); dispid 8;
procedure Open(Source: OleVariant; ActiveConnection: OleVariant; Mode: ConnectModeEnum;
CreateOptions: RecordCreateOptionsEnum; Options: RecordOpenOptionsEnum;
const UserName: WideString; const Password: WideString); dispid 9;
procedure Close; dispid 10;
property Fields: Fields readonly dispid 0;
property RecordType: RecordTypeEnum readonly dispid 11;
function GetChildren: _Recordset; dispid 12;
procedure Cancel; dispid 13;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// Interface: _Stream
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {00000565-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_Stream = interface(IDispatch)
['{00000565-0000-0010-8000-00AA006D2EA4}']
function Get_Size: ADO_LONGPTR; safecall;
function Get_EOS: WordBool; safecall;
function Get_Position: ADO_LONGPTR; safecall;
procedure Set_Position(pPos: ADO_LONGPTR); safecall;
function Get_type_: StreamTypeEnum; safecall;
procedure Set_type_(ptype: StreamTypeEnum); safecall;
function Get_LineSeparator: LineSeparatorEnum; safecall;
procedure Set_LineSeparator(pLS: LineSeparatorEnum); safecall;
function Get_State: ObjectStateEnum; safecall;
function Get_Mode: ConnectModeEnum; safecall;
procedure Set_Mode(pMode: ConnectModeEnum); safecall;
function Get_Charset: WideString; safecall;
procedure Set_Charset(const pbstrCharset: WideString); safecall;
function Read(NumBytes: Integer): OleVariant; safecall;
procedure Open(Source: OleVariant; Mode: ConnectModeEnum; Options: StreamOpenOptionsEnum;
const UserName: WideString; const Password: WideString); safecall;
procedure Close; safecall;
procedure SkipLine; safecall;
procedure Write(Buffer: OleVariant); safecall;
procedure SetEOS; safecall;
procedure CopyTo(const DestStream: _Stream; CharNumber: ADO_LONGPTR); safecall;
procedure Flush; safecall;
procedure SaveToFile(const FileName: WideString; Options: SaveOptionsEnum); safecall;
procedure LoadFromFile(const FileName: WideString); safecall;
function ReadText(NumChars: Integer): WideString; safecall;
procedure WriteText(const Data: WideString; Options: StreamWriteEnum); safecall;
procedure Cancel; safecall;
property Size: ADO_LONGPTR read Get_Size;
property EOS: WordBool read Get_EOS;
property Position: ADO_LONGPTR read Get_Position write Set_Position;
property type_: StreamTypeEnum read Get_type_ write Set_type_;
property LineSeparator: LineSeparatorEnum read Get_LineSeparator write Set_LineSeparator;
property State: ObjectStateEnum read Get_State;
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
property Charset: WideString read Get_Charset write Set_Charset;
end;

// *********************************************************************//
// DispIntf: _StreamDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {00000565-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
_StreamDisp = dispinterface
['{00000565-0000-0010-8000-00AA006D2EA4}']
property Size: ADO_LONGPTR readonly dispid 1;
property EOS: WordBool readonly dispid 2;
property Position: ADO_LONGPTR dispid 3;
property type_: StreamTypeEnum dispid 4;
property LineSeparator: LineSeparatorEnum dispid 5;
property State: ObjectStateEnum readonly dispid 6;
property Mode: ConnectModeEnum dispid 7;
property Charset: WideString dispid 8;
function Read(NumBytes: Integer): OleVariant; dispid 9;
procedure Open(Source: OleVariant; Mode: ConnectModeEnum; Options: StreamOpenOptionsEnum;
const UserName: WideString; const Password: WideString); dispid 10;
procedure Close; dispid 11;
procedure SkipLine; dispid 12;
procedure Write(Buffer: OleVariant); dispid 13;
procedure SetEOS; dispid 14;
procedure CopyTo(const DestStream: _Stream; CharNumber: ADO_LONGPTR); dispid 15;
procedure Flush; dispid 16;
procedure SaveToFile(const FileName: WideString; Options: SaveOptionsEnum); dispid 17;
procedure LoadFromFile(const FileName: WideString); dispid 18;
function ReadText(NumChars: Integer): WideString; dispid 19;
procedure WriteText(const Data: WideString; Options: StreamWriteEnum); dispid 20;
procedure Cancel; dispid 21;
end;

// *********************************************************************//
// Interface: ADORecordConstruction
// Flags: (4608) Restricted Dispatchable
// GUID: {00000567-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ADORecordConstruction = interface(IDispatch)
['{00000567-0000-0010-8000-00AA006D2EA4}']
function Get_Row(out ppRow: IUnknown): HResult; stdcall;
function Set_Row(const ppRow: IUnknown): HResult; stdcall;
function Set_ParentRow(const Param1: IUnknown): HResult; stdcall;
end;

// *********************************************************************//
// Interface: ADOStreamConstruction
// Flags: (4608) Restricted Dispatchable
// GUID: {00000568-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ADOStreamConstruction = interface(IDispatch)
['{00000568-0000-0010-8000-00AA006D2EA4}']
function Get_Stream(out ppStm: IUnknown): HResult; stdcall;
function Set_Stream(const ppStm: IUnknown): HResult; stdcall;
end;

// *********************************************************************//
// Interface: ADOCommandConstruction
// Flags: (512) Restricted
// GUID: {00000517-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ADOCommandConstruction = interface(IUnknown)
['{00000517-0000-0010-8000-00AA006D2EA4}']
function Get_OLEDBCommand(out ppOLEDBCommand: IUnknown): HResult; stdcall;
function Set_OLEDBCommand(const ppOLEDBCommand: IUnknown): HResult; stdcall;
end;

// *********************************************************************//
// Interface: ADORecordsetConstruction
// Flags: (4608) Restricted Dispatchable
// GUID: {00000283-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
ADORecordsetConstruction = interface(IDispatch)
['{00000283-0000-0010-8000-00AA006D2EA4}']
function Get_Rowset(out ppRowset: IUnknown): HResult; stdcall;
function Set_Rowset(const ppRowset: IUnknown): HResult; stdcall;
function Get_Chapter(out plChapter: ADO_LONGPTR): HResult; stdcall;
function Set_Chapter(plChapter: ADO_LONGPTR): HResult; stdcall;
function Get_RowPosition(out ppRowPos: IUnknown): HResult; stdcall;
function Set_RowPosition(const ppRowPos: IUnknown): HResult; stdcall;
end;

// *********************************************************************//
// Interface: Field15
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000505-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Field15 = interface(_ADO)
['{00000505-0000-0010-8000-00AA006D2EA4}']
function Get_ActualSize: ADO_LONGPTR; safecall;
function Get_Attributes: Integer; safecall;
function Get_DefinedSize: ADO_LONGPTR; safecall;
function Get_Name: WideString; safecall;
function Get_type_: DataTypeEnum; safecall;
function Get_Value: OleVariant; safecall;
procedure Set_Value(pvar: OleVariant); safecall;
function Get_Precision: Byte; safecall;
function Get_NumericScale: Byte; safecall;
procedure AppendChunk(Data: OleVariant); safecall;
function GetChunk(Length: Integer): OleVariant; safecall;
function Get_OriginalValue: OleVariant; safecall;
function Get_UnderlyingValue: OleVariant; safecall;
property ActualSize: ADO_LONGPTR read Get_ActualSize;
property Attributes: Integer read Get_Attributes;
property DefinedSize: ADO_LONGPTR read Get_DefinedSize;
property Name: WideString read Get_Name;
property type_: DataTypeEnum read Get_type_;
property Value: OleVariant read Get_Value write Set_Value;
property Precision: Byte read Get_Precision;
property NumericScale: Byte read Get_NumericScale;
property OriginalValue: OleVariant read Get_OriginalValue;
property UnderlyingValue: OleVariant read Get_UnderlyingValue;
end;

// *********************************************************************//
// DispIntf: Field15Disp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {00000505-0000-0010-8000-00AA006D2EA4}
// *********************************************************************//
Field15Disp = dispinterface
['{00000505-0000-0010-8000-00AA006D2EA4}']
property ActualSize: ADO_LONGPTR readonly dispid 1109;
property Attributes: Integer readonly dispid 1114;
property DefinedSize: ADO_LONGPTR readonly dispid 1103;
property Name: WideString readonly dispid 1100;
property type_: DataTypeEnum readonly dispid 1102;
property Value: OleVariant dispid 0;
property Precision: Byte readonly dispid 1112;
property NumericScale: Byte readonly dispid 1113;
procedure AppendChunk(Data: OleVariant); dispid 1107;
function GetChunk(Length: Integer): OleVariant; dispid 1108;
property OriginalValue: OleVariant readonly dispid 1104;
property UnderlyingValue: OleVariant readonly dispid 1105;
property Properties: Properties readonly dispid 500;
end;

// *********************************************************************//
// The Class CoConnection provides a Create and CreateRemote method to
// create instances of the default interface _Connection exposed by
// the CoClass Connection. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoConnection = class
class function Create: _Connection;
class function CreateRemote(const MachineName: string): _Connection;
end;

TConnectionInfoMessage = procedure(ASender: TObject; const pError: Error;
var adStatus: EventStatusEnum;
const pConnection: _Connection) of object;
TConnectionBeginTransComplete = procedure(ASender: TObject; TransactionLevel: Integer;
const pError: Error;
var adStatus: EventStatusEnum;
const pConnection: _Connection) of object;
TConnectionCommitTransComplete = procedure(ASender: TObject; const pError: Error;
var adStatus: EventStatusEnum;
const pConnection: _Connection) of object;
TConnectionRollbackTransComplete = procedure(ASender: TObject; const pError: Error;
var adStatus: EventStatusEnum;
const pConnection: _Connection) of object;
TConnectionWillExecute = procedure(ASender: TObject; var Source: WideString;
var CursorType: CursorTypeEnum;
var LockType: LockTypeEnum;
var Options: Integer;
var adStatus: EventStatusEnum;
const pCommand: _Command;
const pRecordset: _Recordset;
const pConnection: _Connection) of object;
TConnectionExecuteComplete = procedure(ASender: TObject; RecordsAffected: Integer;
const pError: Error;
var adStatus: EventStatusEnum;
const pCommand: _Command;
const pRecordset: _Recordset;
const pConnection: _Connection) of object;
TConnectionWillConnect = procedure(ASender: TObject; var ConnectionString: WideString;
var UserID: WideString;
var Password: WideString;
var Options: Integer;
var adStatus: EventStatusEnum;
const pConnection: _Connection) of object;
TConnectionConnectComplete = procedure(ASender: TObject; const pError: Error;
var adStatus: EventStatusEnum;
const pConnection: _Connection) of object;
TConnectionDisconnect = procedure(ASender: TObject; var adStatus: EventStatusEnum;
const pConnection: _Connection) of object;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TConnection
// Help String :
// Default Interface: _Connection
// Def. Intf. DISP? : No
// Event Interface: ConnectionEvents
// TypeFlags : (6) CanCreate Licensed
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TConnectionProperties= class;
{$ENDIF}
TConnection = class(TOleServer)
private
FOnInfoMessage: TConnectionInfoMessage;
FOnBeginTransComplete: TConnectionBeginTransComplete;
FOnCommitTransComplete: TConnectionCommitTransComplete;
FOnRollbackTransComplete: TConnectionRollbackTransComplete;
FOnWillExecute: TConnectionWillExecute;
FOnExecuteComplete: TConnectionExecuteComplete;
FOnWillConnect: TConnectionWillConnect;
FOnConnectComplete: TConnectionConnectComplete;
FOnDisconnect: TConnectionDisconnect;
FIntf: _Connection;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TConnectionProperties;
function GetServerProperties: TConnectionProperties;
{$ENDIF}
function GetDefaultInterface: _Connection;
protected
procedure InitServerData; override;
procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override;
function Get_ConnectionString: WideString;
procedure Set_ConnectionString(const pbstr: WideString);
function Get_CommandTimeout: Integer;
procedure Set_CommandTimeout(plTimeout: Integer);
function Get_ConnectionTimeout: Integer;
procedure Set_ConnectionTimeout(plTimeout: Integer);
function Get_Version: WideString;
function Get_Errors: Errors;
function Get_DefaultDatabase: WideString;
procedure Set_DefaultDatabase(const pbstr: WideString);
function Get_IsolationLevel: IsolationLevelEnum;
procedure Set_IsolationLevel(Level: IsolationLevelEnum);
function Get_Attributes: Integer;
procedure Set_Attributes(plAttr: Integer);
function Get_CursorLocation: CursorLocationEnum;
procedure Set_CursorLocation(plCursorLoc: CursorLocationEnum);
function Get_Mode: ConnectModeEnum;
procedure Set_Mode(plMode: ConnectModeEnum);
function Get_Provider: WideString;
procedure Set_Provider(const pbstr: WideString);
function Get_State: Integer;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: _Connection);
procedure Disconnect; override;
procedure Close;
function Execute(const CommandText: WideString; out RecordsAffected: OleVariant;
Options: Integer): _Recordset;
function BeginTrans: Integer;
procedure CommitTrans;
procedure RollbackTrans;
procedure Open(const ConnectionString: WideString; const UserID: WideString;
const Password: WideString; Options: Integer);
function OpenSchema(Schema: SchemaEnum): _Recordset; overload;
function OpenSchema(Schema: SchemaEnum; Restrictions: OleVariant): _Recordset; overload;
function OpenSchema(Schema: SchemaEnum; Restrictions: OleVariant; SchemaID: OleVariant): _Recordset; overload;
procedure Cancel;
property DefaultInterface: _Connection read GetDefaultInterface;
property Version: WideString read Get_Version;
property Errors: Errors read Get_Errors;
property State: Integer read Get_State;
property ConnectionString: WideString read Get_ConnectionString write Set_ConnectionString;
property CommandTimeout: Integer read Get_CommandTimeout write Set_CommandTimeout;
property ConnectionTimeout: Integer read Get_ConnectionTimeout write Set_ConnectionTimeout;
property DefaultDatabase: WideString read Get_DefaultDatabase write Set_DefaultDatabase;
property IsolationLevel: IsolationLevelEnum read Get_IsolationLevel write Set_IsolationLevel;
property Attributes: Integer read Get_Attributes write Set_Attributes;
property CursorLocation: CursorLocationEnum read Get_CursorLocation write Set_CursorLocation;
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
property Provider: WideString read Get_Provider write Set_Provider;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TConnectionProperties read GetServerProperties;
{$ENDIF}
property OnInfoMessage: TConnectionInfoMessage read FOnInfoMessage write FOnInfoMessage;
property OnBeginTransComplete: TConnectionBeginTransComplete read FOnBeginTransComplete write FOnBeginTransComplete;
property OnCommitTransComplete: TConnectionCommitTransComplete read FOnCommitTransComplete write FOnCommitTransComplete;
property OnRollbackTransComplete: TConnectionRollbackTransComplete read FOnRollbackTransComplete write FOnRollbackTransComplete;
property OnWillExecute: TConnectionWillExecute read FOnWillExecute write FOnWillExecute;
property OnExecuteComplete: TConnectionExecuteComplete read FOnExecuteComplete write FOnExecuteComplete;
property OnWillConnect: TConnectionWillConnect read FOnWillConnect write FOnWillConnect;
property OnConnectComplete: TConnectionConnectComplete read FOnConnectComplete write FOnConnectComplete;
property OnDisconnect: TConnectionDisconnect read FOnDisconnect write FOnDisconnect;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TConnection
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TConnectionProperties = class(TPersistent)
private
FServer: TConnection;
function GetDefaultInterface: _Connection;
constructor Create(AServer: TConnection);
protected
function Get_ConnectionString: WideString;
procedure Set_ConnectionString(const pbstr: WideString);
function Get_CommandTimeout: Integer;
procedure Set_CommandTimeout(plTimeout: Integer);
function Get_ConnectionTimeout: Integer;
procedure Set_ConnectionTimeout(plTimeout: Integer);
function Get_Version: WideString;
function Get_Errors: Errors;
function Get_DefaultDatabase: WideString;
procedure Set_DefaultDatabase(const pbstr: WideString);
function Get_IsolationLevel: IsolationLevelEnum;
procedure Set_IsolationLevel(Level: IsolationLevelEnum);
function Get_Attributes: Integer;
procedure Set_Attributes(plAttr: Integer);
function Get_CursorLocation: CursorLocationEnum;
procedure Set_CursorLocation(plCursorLoc: CursorLocationEnum);
function Get_Mode: ConnectModeEnum;
procedure Set_Mode(plMode: ConnectModeEnum);
function Get_Provider: WideString;
procedure Set_Provider(const pbstr: WideString);
function Get_State: Integer;
public
property DefaultInterface: _Connection read GetDefaultInterface;
published
property ConnectionString: WideString read Get_ConnectionString write Set_ConnectionString;
property CommandTimeout: Integer read Get_CommandTimeout write Set_CommandTimeout;
property ConnectionTimeout: Integer read Get_ConnectionTimeout write Set_ConnectionTimeout;
property DefaultDatabase: WideString read Get_DefaultDatabase write Set_DefaultDatabase;
property IsolationLevel: IsolationLevelEnum read Get_IsolationLevel write Set_IsolationLevel;
property Attributes: Integer read Get_Attributes write Set_Attributes;
property CursorLocation: CursorLocationEnum read Get_CursorLocation write Set_CursorLocation;
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
property Provider: WideString read Get_Provider write Set_Provider;
end;
{$ENDIF}

// *********************************************************************//
// The Class CoRecord_ provides a Create and CreateRemote method to
// create instances of the default interface _Record exposed by
// the CoClass Record_. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoRecord_ = class
class function Create: _Record;
class function CreateRemote(const MachineName: string): _Record;
end;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TRecord
// Help String :
// Default Interface: _Record
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (6) CanCreate Licensed
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TRecordProperties= class;
{$ENDIF}
TRecord = class(TOleServer)
private
FIntf: _Record;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TRecordProperties;
function GetServerProperties: TRecordProperties;
{$ENDIF}
function GetDefaultInterface: _Record;
protected
procedure InitServerData; override;
function Get_ActiveConnection: OleVariant;
procedure Set_ActiveConnection(const pvar: WideString);
procedure _Set_ActiveConnection(const pvar: _Connection);
function Get_State: ObjectStateEnum;
function Get_Source: OleVariant;
procedure Set_Source(const pvar: WideString);
procedure _Set_Source(const pvar: IDispatch);
function Get_Mode: ConnectModeEnum;
procedure Set_Mode(pMode: ConnectModeEnum);
function Get_ParentURL: WideString;
function Get_Fields: Fields;
function Get_RecordType: RecordTypeEnum;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: _Record);
procedure Disconnect; override;
function MoveRecord(const Source: WideString; const Destination: WideString;
const UserName: WideString; const Password: WideString;
Options: MoveRecordOptionsEnum; Async: WordBool): WideString;
function CopyRecord(const Source: WideString; const Destination: WideString;
const UserName: WideString; const Password: WideString;
Options: CopyRecordOptionsEnum; Async: WordBool): WideString;
procedure DeleteRecord(const Source: WideString; Async: WordBool);
procedure Open(Source: OleVariant; ActiveConnection: OleVariant; Mode: ConnectModeEnum;
CreateOptions: RecordCreateOptionsEnum; Options: RecordOpenOptionsEnum;
const UserName: WideString; const Password: WideString);
procedure Close;
function GetChildren: _Recordset;
procedure Cancel;
property DefaultInterface: _Record read GetDefaultInterface;
property State: ObjectStateEnum read Get_State;
property ParentURL: WideString read Get_ParentURL;
property Fields: Fields read Get_Fields;
property RecordType: RecordTypeEnum read Get_RecordType;
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TRecordProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TRecord
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TRecordProperties = class(TPersistent)
private
FServer: TRecord;
function GetDefaultInterface: _Record;
constructor Create(AServer: TRecord);
protected
function Get_ActiveConnection: OleVariant;
procedure Set_ActiveConnection(const pvar: WideString);
procedure _Set_ActiveConnection(const pvar: _Connection);
function Get_State: ObjectStateEnum;
function Get_Source: OleVariant;
procedure Set_Source(const pvar: WideString);
procedure _Set_Source(const pvar: IDispatch);
function Get_Mode: ConnectModeEnum;
procedure Set_Mode(pMode: ConnectModeEnum);
function Get_ParentURL: WideString;
function Get_Fields: Fields;
function Get_RecordType: RecordTypeEnum;
public
property DefaultInterface: _Record read GetDefaultInterface;
published
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
end;
{$ENDIF}

// *********************************************************************//
// The Class CoStream provides a Create and CreateRemote method to
// create instances of the default interface _Stream exposed by
// the CoClass Stream. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoStream = class
class function Create: _Stream;
class function CreateRemote(const MachineName: string): _Stream;
end;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TStream
// Help String :
// Default Interface: _Stream
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (6) CanCreate Licensed
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TStreamProperties= class;
{$ENDIF}
TStream = class(TOleServer)
private
FIntf: _Stream;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TStreamProperties;
function GetServerProperties: TStreamProperties;
{$ENDIF}
function GetDefaultInterface: _Stream;
protected
procedure InitServerData; override;
function Get_Size: ADO_LONGPTR;
function Get_EOS: WordBool;
function Get_Position: ADO_LONGPTR;
procedure Set_Position(pPos: ADO_LONGPTR);
function Get_type_: StreamTypeEnum;
procedure Set_type_(ptype: StreamTypeEnum);
function Get_LineSeparator: LineSeparatorEnum;
procedure Set_LineSeparator(pLS: LineSeparatorEnum);
function Get_State: ObjectStateEnum;
function Get_Mode: ConnectModeEnum;
procedure Set_Mode(pMode: ConnectModeEnum);
function Get_Charset: WideString;
procedure Set_Charset(const pbstrCharset: WideString);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: _Stream);
procedure Disconnect; override;
function Read(NumBytes: Integer): OleVariant;
procedure Open(Source: OleVariant; Mode: ConnectModeEnum; Options: StreamOpenOptionsEnum;
const UserName: WideString; const Password: WideString);
procedure Close;
procedure SkipLine;
procedure Write(Buffer: OleVariant);
procedure SetEOS;
procedure CopyTo(const DestStream: _Stream; CharNumber: ADO_LONGPTR);
procedure Flush;
procedure SaveToFile(const FileName: WideString; Options: SaveOptionsEnum);
procedure LoadFromFile(const FileName: WideString);
function ReadText(NumChars: Integer): WideString;
procedure WriteText(const Data: WideString; Options: StreamWriteEnum);
procedure Cancel;
property DefaultInterface: _Stream read GetDefaultInterface;
property Size: ADO_LONGPTR read Get_Size;
property EOS: WordBool read Get_EOS;
property State: ObjectStateEnum read Get_State;
property Position: ADO_LONGPTR read Get_Position write Set_Position;
property type_: StreamTypeEnum read Get_type_ write Set_type_;
property LineSeparator: LineSeparatorEnum read Get_LineSeparator write Set_LineSeparator;
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
property Charset: WideString read Get_Charset write Set_Charset;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TStreamProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TStream
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TStreamProperties = class(TPersistent)
private
FServer: TStream;
function GetDefaultInterface: _Stream;
constructor Create(AServer: TStream);
protected
function Get_Size: ADO_LONGPTR;
function Get_EOS: WordBool;
function Get_Position: ADO_LONGPTR;
procedure Set_Position(pPos: ADO_LONGPTR);
function Get_type_: StreamTypeEnum;
procedure Set_type_(ptype: StreamTypeEnum);
function Get_LineSeparator: LineSeparatorEnum;
procedure Set_LineSeparator(pLS: LineSeparatorEnum);
function Get_State: ObjectStateEnum;
function Get_Mode: ConnectModeEnum;
procedure Set_Mode(pMode: ConnectModeEnum);
function Get_Charset: WideString;
procedure Set_Charset(const pbstrCharset: WideString);
public
property DefaultInterface: _Stream read GetDefaultInterface;
published
property Position: ADO_LONGPTR read Get_Position write Set_Position;
property type_: StreamTypeEnum read Get_type_ write Set_type_;
property LineSeparator: LineSeparatorEnum read Get_LineSeparator write Set_LineSeparator;
property Mode: ConnectModeEnum read Get_Mode write Set_Mode;
property Charset: WideString read Get_Charset write Set_Charset;
end;
{$ENDIF}

// *********************************************************************//
// The Class CoCommand provides a Create and CreateRemote method to
// create instances of the default interface _Command exposed by
// the CoClass Command. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoCommand = class
class function Create: _Command;
class function CreateRemote(const MachineName: string): _Command;
end;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TCommand
// Help String :
// Default Interface: _Command
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (6) CanCreate Licensed
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TCommandProperties= class;
{$ENDIF}
TCommand = class(TOleServer)
private
FIntf: _Command;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TCommandProperties;
function GetServerProperties: TCommandProperties;
{$ENDIF}
function GetDefaultInterface: _Command;
protected
procedure InitServerData; override;
procedure _Set_CommandStream(const pvStream: IUnknown);
function Get_CommandStream: OleVariant;
procedure Set_Dialect(const pbstrDialect: WideString);
function Get_Dialect: WideString;
procedure Set_NamedParameters(pfNamedParameters: WordBool);
function Get_NamedParameters: WordBool;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: _Command);
procedure Disconnect; override;
property DefaultInterface: _Command read GetDefaultInterface;
property Dialect: WideString read Get_Dialect write Set_Dialect;
property NamedParameters: WordBool read Get_NamedParameters write Set_NamedParameters;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TCommandProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TCommand
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TCommandProperties = class(TPersistent)
private
FServer: TCommand;
function GetDefaultInterface: _Command;
constructor Create(AServer: TCommand);
protected
procedure _Set_CommandStream(const pvStream: IUnknown);
function Get_CommandStream: OleVariant;
procedure Set_Dialect(const pbstrDialect: WideString);
function Get_Dialect: WideString;
procedure Set_NamedParameters(pfNamedParameters: WordBool);
function Get_NamedParameters: WordBool;
public
property DefaultInterface: _Command read GetDefaultInterface;
published
property Dialect: WideString read Get_Dialect write Set_Dialect;
property NamedParameters: WordBool read Get_NamedParameters write Set_NamedParameters;
end;
{$ENDIF}

// *********************************************************************//
// The Class CoRecordset provides a Create and CreateRemote method to
// create instances of the default interface _Recordset exposed by
// the CoClass Recordset. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoRecordset = class
class function Create: _Recordset;
class function CreateRemote(const MachineName: string): _Recordset;
end;

TRecordsetWillChangeField = procedure(ASender: TObject; cFields: Integer; Fields: OleVariant;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetFieldChangeComplete = procedure(ASender: TObject; cFields: Integer; Fields: OleVariant;
const pError: Error;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetWillChangeRecord = procedure(ASender: TObject; adReason: EventReasonEnum;
cRecords: Integer;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetRecordChangeComplete = procedure(ASender: TObject; adReason: EventReasonEnum;
cRecords: Integer;
const pError: Error;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetWillChangeRecordset = procedure(ASender: TObject; adReason: EventReasonEnum;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetRecordsetChangeComplete = procedure(ASender: TObject; adReason: EventReasonEnum;
const pError: Error;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetWillMove = procedure(ASender: TObject; adReason: EventReasonEnum;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetMoveComplete = procedure(ASender: TObject; adReason: EventReasonEnum;
const pError: Error;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetEndOfRecordset = procedure(ASender: TObject; var fMoreData: WordBool;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetFetchProgress = procedure(ASender: TObject; Progress: Integer; MaxProgress: Integer;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;
TRecordsetFetchComplete = procedure(ASender: TObject; const pError: Error;
var adStatus: EventStatusEnum;
const pRecordset: _Recordset) of object;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TRecordset
// Help String :
// Default Interface: _Recordset
// Def. Intf. DISP? : No
// Event Interface: RecordsetEvents
// TypeFlags : (6) CanCreate Licensed
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TRecordsetProperties= class;
{$ENDIF}
TRecordset = class(TOleServer)
private
FOnWillChangeField: TRecordsetWillChangeField;
FOnFieldChangeComplete: TRecordsetFieldChangeComplete;
FOnWillChangeRecord: TRecordsetWillChangeRecord;
FOnRecordChangeComplete: TRecordsetRecordChangeComplete;
FOnWillChangeRecordset: TRecordsetWillChangeRecordset;
FOnRecordsetChangeComplete: TRecordsetRecordsetChangeComplete;
FOnWillMove: TRecordsetWillMove;
FOnMoveComplete: TRecordsetMoveComplete;
FOnEndOfRecordset: TRecordsetEndOfRecordset;
FOnFetchProgress: TRecordsetFetchProgress;
FOnFetchComplete: TRecordsetFetchComplete;
FIntf: _Recordset;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TRecordsetProperties;
function GetServerProperties: TRecordsetProperties;
{$ENDIF}
function GetDefaultInterface: _Recordset;
protected
procedure InitServerData; override;
procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: _Recordset);
procedure Disconnect; override;
procedure Save(Destination: OleVariant; PersistFormat: PersistFormatEnum);
property DefaultInterface: _Recordset read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TRecordsetProperties read GetServerProperties;
{$ENDIF}
property OnWillChangeField: TRecordsetWillChangeField read FOnWillChangeField write FOnWillChangeField;
property OnFieldChangeComplete: TRecordsetFieldChangeComplete read FOnFieldChangeComplete write FOnFieldChangeComplete;
property OnWillChangeRecord: TRecordsetWillChangeRecord read FOnWillChangeRecord write FOnWillChangeRecord;
property OnRecordChangeComplete: TRecordsetRecordChangeComplete read FOnRecordChangeComplete write FOnRecordChangeComplete;
property OnWillChangeRecordset: TRecordsetWillChangeRecordset read FOnWillChangeRecordset write FOnWillChangeRecordset;
property OnRecordsetChangeComplete: TRecordsetRecordsetChangeComplete read FOnRecordsetChangeComplete write FOnRecordsetChangeComplete;
property OnWillMove: TRecordsetWillMove read FOnWillMove write FOnWillMove;
property OnMoveComplete: TRecordsetMoveComplete read FOnMoveComplete write FOnMoveComplete;
property OnEndOfRecordset: TRecordsetEndOfRecordset read FOnEndOfRecordset write FOnEndOfRecordset;
property OnFetchProgress: TRecordsetFetchProgress read FOnFetchProgress write FOnFetchProgress;
property OnFetchComplete: TRecordsetFetchComplete read FOnFetchComplete write FOnFetchComplete;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TRecordset
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TRecordsetProperties = class(TPersistent)
private
FServer: TRecordset;
function GetDefaultInterface: _Recordset;
constructor Create(AServer: TRecordset);
protected
public
property DefaultInterface: _Recordset read GetDefaultInterface;
published
end;
{$ENDIF}

// *********************************************************************//
// The Class CoParameter provides a Create and CreateRemote method to
// create instances of the default interface _Parameter exposed by
// the CoClass Parameter. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoParameter = class
class function Create: _Parameter;
class function CreateRemote(const MachineName: string): _Parameter;
end;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TParameter
// Help String :
// Default Interface: _Parameter
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (6) CanCreate Licensed
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TParameterProperties= class;
{$ENDIF}
TParameter = class(TOleServer)
private
FIntf: _Parameter;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TParameterProperties;
function GetServerProperties: TParameterProperties;
{$ENDIF}
function GetDefaultInterface: _Parameter;
protected
procedure InitServerData; override;
function Get_Name: WideString;
procedure Set_Name(const pbstr: WideString);
function Get_Value: OleVariant;
procedure Set_Value(pvar: OleVariant);
function Get_type_: DataTypeEnum;
procedure Set_type_(psDataType: DataTypeEnum);
procedure Set_Direction(plParmDirection: ParameterDirectionEnum);
function Get_Direction: ParameterDirectionEnum;
procedure Set_Precision(pbPrecision: Byte);
function Get_Precision: Byte;
procedure Set_NumericScale(pbScale: Byte);
function Get_NumericScale: Byte;
procedure Set_Size(pl: ADO_LONGPTR);
function Get_Size: ADO_LONGPTR;
function Get_Attributes: Integer;
procedure Set_Attributes(plParmAttribs: Integer);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: _Parameter);
procedure Disconnect; override;
procedure AppendChunk(Val: OleVariant);
property DefaultInterface: _Parameter read GetDefaultInterface;
property Value: OleVariant read Get_Value write Set_Value;
property Name: WideString read Get_Name write Set_Name;
property type_: DataTypeEnum read Get_type_ write Set_type_;
property Direction: ParameterDirectionEnum read Get_Direction write Set_Direction;
property Precision: Byte read Get_Precision write Set_Precision;
property NumericScale: Byte read Get_NumericScale write Set_NumericScale;
property Size: ADO_LONGPTR read Get_Size write Set_Size;
property Attributes: Integer read Get_Attributes write Set_Attributes;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TParameterProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TParameter
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TParameterProperties = class(TPersistent)
private
FServer: TParameter;
function GetDefaultInterface: _Parameter;
constructor Create(AServer: TParameter);
protected
function Get_Name: WideString;
procedure Set_Name(const pbstr: WideString);
function Get_Value: OleVariant;
procedure Set_Value(pvar: OleVariant);
function Get_type_: DataTypeEnum;
procedure Set_type_(psDataType: DataTypeEnum);
procedure Set_Direction(plParmDirection: ParameterDirectionEnum);
function Get_Direction: ParameterDirectionEnum;
procedure Set_Precision(pbPrecision: Byte);
function Get_Precision: Byte;
procedure Set_NumericScale(pbScale: Byte);
function Get_NumericScale: Byte;
procedure Set_Size(pl: ADO_LONGPTR);
function Get_Size: ADO_LONGPTR;
function Get_Attributes: Integer;
procedure Set_Attributes(plParmAttribs: Integer);
public
property DefaultInterface: _Parameter read GetDefaultInterface;
published
property Name: WideString read Get_Name write Set_Name;
property type_: DataTypeEnum read Get_type_ write Set_type_;
property Direction: ParameterDirectionEnum read Get_Direction write Set_Direction;
property Precision: Byte read Get_Precision write Set_Precision;
property NumericScale: Byte read Get_NumericScale write Set_NumericScale;
property Size: ADO_LONGPTR read Get_Size write Set_Size;
property Attributes: Integer read Get_Attributes write Set_Attributes;
end;
{$ENDIF}

procedure Register;

resourcestring
dtlServerPage = 'ActiveX';

dtlOcxPage = 'ActiveX';

implementation

uses ComObj;

class function CoConnection.Create: _Connection;
begin
Result := CreateComObject(CLASS_Connection) as _Connection;
end;

class function CoConnection.CreateRemote(const MachineName: string): _Connection;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Connection) as _Connection;
end;

procedure TConnection.InitServerData;
const
CServerData: TServerData = (
ClassID: '{00000514-0000-0010-8000-00AA006D2EA4}';
IntfIID: '{00000550-0000-0010-8000-00AA006D2EA4}';
EventIID: '{00000400-0000-0010-8000-00AA006D2EA4}';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TConnection.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
ConnectEvents(punk);
Fintf:= punk as _Connection;
end;
end;

procedure TConnection.ConnectTo(svrIntf: _Connection);
begin
Disconnect;
FIntf := svrIntf;
ConnectEvents(FIntf);
end;

procedure TConnection.DisConnect;
begin
if Fintf <> nil then
begin
DisconnectEvents(FIntf);
FIntf := nil;
end;
end;

function TConnection.GetDefaultInterface: _Connection;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TConnection.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TConnectionProperties.Create(Self);
{$ENDIF}
end;

destructor TConnection.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TConnection.GetServerProperties: TConnectionProperties;
begin
Result := FProps;
end;
{$ENDIF}

procedure TConnection.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
begin
case DispID of
-1: Exit; // DISPID_UNKNOWN
0: if Assigned(FOnInfoMessage) then
FOnInfoMessage(Self,
IUnknown(TVarData(Params[0]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[1]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[2]).VPointer) as _Connection {const _Connection});
1: if Assigned(FOnBeginTransComplete) then
FOnBeginTransComplete(Self,
Params[0] {Integer},
IUnknown(TVarData(Params[1]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[2]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[3]).VPointer) as _Connection {const _Connection});
3: if Assigned(FOnCommitTransComplete) then
FOnCommitTransComplete(Self,
IUnknown(TVarData(Params[0]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[1]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[2]).VPointer) as _Connection {const _Connection});
2: if Assigned(FOnRollbackTransComplete) then
FOnRollbackTransComplete(Self,
IUnknown(TVarData(Params[0]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[1]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[2]).VPointer) as _Connection {const _Connection});
4: if Assigned(FOnWillExecute) then
FOnWillExecute(Self,
WideString((TVarData(Params[0]).VPointer)^) {var WideString},
CursorTypeEnum((TVarData(Params[1]).VPointer)^) {var CursorTypeEnum},
LockTypeEnum((TVarData(Params[2]).VPointer)^) {var LockTypeEnum},
Integer((TVarData(Params[3]).VPointer)^) {var Integer},
EventStatusEnum((TVarData(Params[4]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[5]).VPointer) as _Command {const _Command},
IUnknown(TVarData(Params[6]).VPointer) as _Recordset {const _Recordset},
IUnknown(TVarData(Params[7]).VPointer) as _Connection {const _Connection});
5: if Assigned(FOnExecuteComplete) then
FOnExecuteComplete(Self,
Params[0] {Integer},
IUnknown(TVarData(Params[1]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[2]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[3]).VPointer) as _Command {const _Command},
IUnknown(TVarData(Params[4]).VPointer) as _Recordset {const _Recordset},
IUnknown(TVarData(Params[5]).VPointer) as _Connection {const _Connection});
6: if Assigned(FOnWillConnect) then
FOnWillConnect(Self,
WideString((TVarData(Params[0]).VPointer)^) {var WideString},
WideString((TVarData(Params[1]).VPointer)^) {var WideString},
WideString((TVarData(Params[2]).VPointer)^) {var WideString},
Integer((TVarData(Params[3]).VPointer)^) {var Integer},
EventStatusEnum((TVarData(Params[4]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[5]).VPointer) as _Connection {const _Connection});
7: if Assigned(FOnConnectComplete) then
FOnConnectComplete(Self,
IUnknown(TVarData(Params[0]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[1]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[2]).VPointer) as _Connection {const _Connection});
8: if Assigned(FOnDisconnect) then
FOnDisconnect(Self,
EventStatusEnum((TVarData(Params[0]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[1]).VPointer) as _Connection {const _Connection});
end; {case DispID}
end;

function TConnection.Get_ConnectionString: WideString;
begin
Result := DefaultInterface.ConnectionString;
end;

procedure TConnection.Set_ConnectionString(const pbstr: WideString);
{ Warning: The property ConnectionString has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ConnectionString := pbstr;
end;

function TConnection.Get_CommandTimeout: Integer;
begin
Result := DefaultInterface.CommandTimeout;
end;

procedure TConnection.Set_CommandTimeout(plTimeout: Integer);
begin
DefaultInterface.Set_CommandTimeout(plTimeout);
end;

function TConnection.Get_ConnectionTimeout: Integer;
begin
Result := DefaultInterface.ConnectionTimeout;
end;

procedure TConnection.Set_ConnectionTimeout(plTimeout: Integer);
begin
DefaultInterface.Set_ConnectionTimeout(plTimeout);
end;

function TConnection.Get_Version: WideString;
begin
Result := DefaultInterface.Version;
end;

function TConnection.Get_Errors: Errors;
begin
Result := DefaultInterface.Errors;
end;

function TConnection.Get_DefaultDatabase: WideString;
begin
Result := DefaultInterface.DefaultDatabase;
end;

procedure TConnection.Set_DefaultDatabase(const pbstr: WideString);
{ Warning: The property DefaultDatabase has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.DefaultDatabase := pbstr;
end;

function TConnection.Get_IsolationLevel: IsolationLevelEnum;
begin
Result := DefaultInterface.IsolationLevel;
end;

procedure TConnection.Set_IsolationLevel(Level: IsolationLevelEnum);
begin
DefaultInterface.Set_IsolationLevel(Level);
end;

function TConnection.Get_Attributes: Integer;
begin
Result := DefaultInterface.Attributes;
end;

procedure TConnection.Set_Attributes(plAttr: Integer);
begin
DefaultInterface.Set_Attributes(plAttr);
end;

function TConnection.Get_CursorLocation: CursorLocationEnum;
begin
Result := DefaultInterface.CursorLocation;
end;

procedure TConnection.Set_CursorLocation(plCursorLoc: CursorLocationEnum);
begin
DefaultInterface.Set_CursorLocation(plCursorLoc);
end;

function TConnection.Get_Mode: ConnectModeEnum;
begin
Result := DefaultInterface.Mode;
end;

procedure TConnection.Set_Mode(plMode: ConnectModeEnum);
begin
DefaultInterface.Set_Mode(plMode);
end;

function TConnection.Get_Provider: WideString;
begin
Result := DefaultInterface.Provider;
end;

procedure TConnection.Set_Provider(const pbstr: WideString);
{ Warning: The property Provider has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Provider := pbstr;
end;

function TConnection.Get_State: Integer;
begin
Result := DefaultInterface.State;
end;

procedure TConnection.Close;
begin
DefaultInterface.Close;
end;

function TConnection.Execute(const CommandText: WideString; out RecordsAffected: OleVariant;
Options: Integer): _Recordset;
begin
Result := DefaultInterface.Execute(CommandText, RecordsAffected, Options);
end;

function TConnection.BeginTrans: Integer;
begin
Result := DefaultInterface.BeginTrans;
end;

procedure TConnection.CommitTrans;
begin
DefaultInterface.CommitTrans;
end;

procedure TConnection.RollbackTrans;
begin
DefaultInterface.RollbackTrans;
end;

procedure TConnection.Open(const ConnectionString: WideString; const UserID: WideString;
const Password: WideString; Options: Integer);
begin
DefaultInterface.Open(ConnectionString, UserID, Password, Options);
end;

function TConnection.OpenSchema(Schema: SchemaEnum): _Recordset;
begin
Result := DefaultInterface.OpenSchema(Schema, EmptyParam, EmptyParam);
end;

function TConnection.OpenSchema(Schema: SchemaEnum; Restrictions: OleVariant): _Recordset;
begin
Result := DefaultInterface.OpenSchema(Schema, Restrictions, EmptyParam);
end;

function TConnection.OpenSchema(Schema: SchemaEnum; Restrictions: OleVariant; SchemaID: OleVariant): _Recordset;
begin
Result := DefaultInterface.OpenSchema(Schema, Restrictions, SchemaID);
end;

procedure TConnection.Cancel;
begin
DefaultInterface.Cancel;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TConnectionProperties.Create(AServer: TConnection);
begin
inherited Create;
FServer := AServer;
end;

function TConnectionProperties.GetDefaultInterface: _Connection;
begin
Result := FServer.DefaultInterface;
end;

function TConnectionProperties.Get_ConnectionString: WideString;
begin
Result := DefaultInterface.ConnectionString;
end;

procedure TConnectionProperties.Set_ConnectionString(const pbstr: WideString);
{ Warning: The property ConnectionString has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ConnectionString := pbstr;
end;

function TConnectionProperties.Get_CommandTimeout: Integer;
begin
Result := DefaultInterface.CommandTimeout;
end;

procedure TConnectionProperties.Set_CommandTimeout(plTimeout: Integer);
begin
DefaultInterface.Set_CommandTimeout(plTimeout);
end;

function TConnectionProperties.Get_ConnectionTimeout: Integer;
begin
Result := DefaultInterface.ConnectionTimeout;
end;

procedure TConnectionProperties.Set_ConnectionTimeout(plTimeout: Integer);
begin
DefaultInterface.Set_ConnectionTimeout(plTimeout);
end;

function TConnectionProperties.Get_Version: WideString;
begin
Result := DefaultInterface.Version;
end;

function TConnectionProperties.Get_Errors: Errors;
begin
Result := DefaultInterface.Errors;
end;

function TConnectionProperties.Get_DefaultDatabase: WideString;
begin
Result := DefaultInterface.DefaultDatabase;
end;

procedure TConnectionProperties.Set_DefaultDatabase(const pbstr: WideString);
{ Warning: The property DefaultDatabase has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.DefaultDatabase := pbstr;
end;

function TConnectionProperties.Get_IsolationLevel: IsolationLevelEnum;
begin
Result := DefaultInterface.IsolationLevel;
end;

procedure TConnectionProperties.Set_IsolationLevel(Level: IsolationLevelEnum);
begin
DefaultInterface.Set_IsolationLevel(Level);
end;

function TConnectionProperties.Get_Attributes: Integer;
begin
Result := DefaultInterface.Attributes;
end;

procedure TConnectionProperties.Set_Attributes(plAttr: Integer);
begin
DefaultInterface.Set_Attributes(plAttr);
end;

function TConnectionProperties.Get_CursorLocation: CursorLocationEnum;
begin
Result := DefaultInterface.CursorLocation;
end;

procedure TConnectionProperties.Set_CursorLocation(plCursorLoc: CursorLocationEnum);
begin
DefaultInterface.Set_CursorLocation(plCursorLoc);
end;

function TConnectionProperties.Get_Mode: ConnectModeEnum;
begin
Result := DefaultInterface.Mode;
end;

procedure TConnectionProperties.Set_Mode(plMode: ConnectModeEnum);
begin
DefaultInterface.Set_Mode(plMode);
end;

function TConnectionProperties.Get_Provider: WideString;
begin
Result := DefaultInterface.Provider;
end;

procedure TConnectionProperties.Set_Provider(const pbstr: WideString);
{ Warning: The property Provider has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Provider := pbstr;
end;

function TConnectionProperties.Get_State: Integer;
begin
Result := DefaultInterface.State;
end;

{$ENDIF}

class function CoRecord_.Create: _Record;
begin
Result := CreateComObject(CLASS_Record_) as _Record;
end;

class function CoRecord_.CreateRemote(const MachineName: string): _Record;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Record_) as _Record;
end;

procedure TRecord.InitServerData;
const
CServerData: TServerData = (
ClassID: '{00000560-0000-0010-8000-00AA006D2EA4}';
IntfIID: '{00000562-0000-0010-8000-00AA006D2EA4}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TRecord.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as _Record;
end;
end;

procedure TRecord.ConnectTo(svrIntf: _Record);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TRecord.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TRecord.GetDefaultInterface: _Record;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TRecord.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TRecordProperties.Create(Self);
{$ENDIF}
end;

destructor TRecord.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TRecord.GetServerProperties: TRecordProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TRecord.Get_ActiveConnection: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.ActiveConnection;
end;

procedure TRecord.Set_ActiveConnection(const pvar: WideString);
{ Warning: The property ActiveConnection has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ActiveConnection := pvar;
end;

procedure TRecord._Set_ActiveConnection(const pvar: _Connection);
{ Warning: The property ActiveConnection has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ActiveConnection := pvar;
end;

function TRecord.Get_State: ObjectStateEnum;
begin
Result := DefaultInterface.State;
end;

function TRecord.Get_Source: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.Source;
end;

procedure TRecord.Set_Source(const pvar: WideString);
{ Warning: The property Source has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Source := pvar;
end;

procedure TRecord._Set_Source(const pvar: IDispatch);
{ Warning: The property Source has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Source := pvar;
end;

function TRecord.Get_Mode: ConnectModeEnum;
begin
Result := DefaultInterface.Mode;
end;

procedure TRecord.Set_Mode(pMode: ConnectModeEnum);
begin
DefaultInterface.Set_Mode(pMode);
end;

function TRecord.Get_ParentURL: WideString;
begin
Result := DefaultInterface.ParentURL;
end;

function TRecord.Get_Fields: Fields;
begin
Result := DefaultInterface.Fields;
end;

function TRecord.Get_RecordType: RecordTypeEnum;
begin
Result := DefaultInterface.RecordType;
end;

function TRecord.MoveRecord(const Source: WideString; const Destination: WideString;
const UserName: WideString; const Password: WideString;
Options: MoveRecordOptionsEnum; Async: WordBool): WideString;
begin
Result := DefaultInterface.MoveRecord(Source, Destination, UserName, Password, Options, Async);
end;

function TRecord.CopyRecord(const Source: WideString; const Destination: WideString;
const UserName: WideString; const Password: WideString;
Options: CopyRecordOptionsEnum; Async: WordBool): WideString;
begin
Result := DefaultInterface.CopyRecord(Source, Destination, UserName, Password, Options, Async);
end;

procedure TRecord.DeleteRecord(const Source: WideString; Async: WordBool);
begin
DefaultInterface.DeleteRecord(Source, Async);
end;

procedure TRecord.Open(Source: OleVariant; ActiveConnection: OleVariant; Mode: ConnectModeEnum;
CreateOptions: RecordCreateOptionsEnum; Options: RecordOpenOptionsEnum;
const UserName: WideString; const Password: WideString);
begin
DefaultInterface.Open(Source, ActiveConnection, Mode, CreateOptions, Options, UserName, Password);
end;

procedure TRecord.Close;
begin
DefaultInterface.Close;
end;

function TRecord.GetChildren: _Recordset;
begin
Result := DefaultInterface.GetChildren;
end;

procedure TRecord.Cancel;
begin
DefaultInterface.Cancel;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TRecordProperties.Create(AServer: TRecord);
begin
inherited Create;
FServer := AServer;
end;

function TRecordProperties.GetDefaultInterface: _Record;
begin
Result := FServer.DefaultInterface;
end;

function TRecordProperties.Get_ActiveConnection: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.ActiveConnection;
end;

procedure TRecordProperties.Set_ActiveConnection(const pvar: WideString);
{ Warning: The property ActiveConnection has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ActiveConnection := pvar;
end;

procedure TRecordProperties._Set_ActiveConnection(const pvar: _Connection);
{ Warning: The property ActiveConnection has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ActiveConnection := pvar;
end;

function TRecordProperties.Get_State: ObjectStateEnum;
begin
Result := DefaultInterface.State;
end;

function TRecordProperties.Get_Source: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.Source;
end;

procedure TRecordProperties.Set_Source(const pvar: WideString);
{ Warning: The property Source has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Source := pvar;
end;

procedure TRecordProperties._Set_Source(const pvar: IDispatch);
{ Warning: The property Source has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Source := pvar;
end;

function TRecordProperties.Get_Mode: ConnectModeEnum;
begin
Result := DefaultInterface.Mode;
end;

procedure TRecordProperties.Set_Mode(pMode: ConnectModeEnum);
begin
DefaultInterface.Set_Mode(pMode);
end;

function TRecordProperties.Get_ParentURL: WideString;
begin
Result := DefaultInterface.ParentURL;
end;

function TRecordProperties.Get_Fields: Fields;
begin
Result := DefaultInterface.Fields;
end;

function TRecordProperties.Get_RecordType: RecordTypeEnum;
begin
Result := DefaultInterface.RecordType;
end;

{$ENDIF}

class function CoStream.Create: _Stream;
begin
Result := CreateComObject(CLASS_Stream) as _Stream;
end;

class function CoStream.CreateRemote(const MachineName: string): _Stream;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Stream) as _Stream;
end;

procedure TStream.InitServerData;
const
CServerData: TServerData = (
ClassID: '{00000566-0000-0010-8000-00AA006D2EA4}';
IntfIID: '{00000565-0000-0010-8000-00AA006D2EA4}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TStream.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as _Stream;
end;
end;

procedure TStream.ConnectTo(svrIntf: _Stream);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TStream.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TStream.GetDefaultInterface: _Stream;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TStream.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TStreamProperties.Create(Self);
{$ENDIF}
end;

destructor TStream.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TStream.GetServerProperties: TStreamProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TStream.Get_Size: ADO_LONGPTR;
begin
Result := DefaultInterface.Size;
end;

function TStream.Get_EOS: WordBool;
begin
Result := DefaultInterface.EOS;
end;

function TStream.Get_Position: ADO_LONGPTR;
begin
Result := DefaultInterface.Position;
end;

procedure TStream.Set_Position(pPos: ADO_LONGPTR);
begin
DefaultInterface.Set_Position(pPos);
end;

function TStream.Get_type_: StreamTypeEnum;
begin
Result := DefaultInterface.type_;
end;

procedure TStream.Set_type_(ptype: StreamTypeEnum);
begin
DefaultInterface.Set_type_(ptype);
end;

function TStream.Get_LineSeparator: LineSeparatorEnum;
begin
Result := DefaultInterface.LineSeparator;
end;

procedure TStream.Set_LineSeparator(pLS: LineSeparatorEnum);
begin
DefaultInterface.Set_LineSeparator(pLS);
end;

function TStream.Get_State: ObjectStateEnum;
begin
Result := DefaultInterface.State;
end;

function TStream.Get_Mode: ConnectModeEnum;
begin
Result := DefaultInterface.Mode;
end;

procedure TStream.Set_Mode(pMode: ConnectModeEnum);
begin
DefaultInterface.Set_Mode(pMode);
end;

function TStream.Get_Charset: WideString;
begin
Result := DefaultInterface.Charset;
end;

procedure TStream.Set_Charset(const pbstrCharset: WideString);
{ Warning: The property Charset has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Charset := pbstrCharset;
end;

function TStream.Read(NumBytes: Integer): OleVariant;
begin
Result := DefaultInterface.Read(NumBytes);
end;

procedure TStream.Open(Source: OleVariant; Mode: ConnectModeEnum; Options: StreamOpenOptionsEnum;
const UserName: WideString; const Password: WideString);
begin
DefaultInterface.Open(Source, Mode, Options, UserName, Password);
end;

procedure TStream.Close;
begin
DefaultInterface.Close;
end;

procedure TStream.SkipLine;
begin
DefaultInterface.SkipLine;
end;

procedure TStream.Write(Buffer: OleVariant);
begin
DefaultInterface.Write(Buffer);
end;

procedure TStream.SetEOS;
begin
DefaultInterface.SetEOS;
end;

procedure TStream.CopyTo(const DestStream: _Stream; CharNumber: ADO_LONGPTR);
begin
DefaultInterface.CopyTo(DestStream, CharNumber);
end;

procedure TStream.Flush;
begin
DefaultInterface.Flush;
end;

procedure TStream.SaveToFile(const FileName: WideString; Options: SaveOptionsEnum);
begin
DefaultInterface.SaveToFile(FileName, Options);
end;

procedure TStream.LoadFromFile(const FileName: WideString);
begin
DefaultInterface.LoadFromFile(FileName);
end;

function TStream.ReadText(NumChars: Integer): WideString;
begin
Result := DefaultInterface.ReadText(NumChars);
end;

procedure TStream.WriteText(const Data: WideString; Options: StreamWriteEnum);
begin
DefaultInterface.WriteText(Data, Options);
end;

procedure TStream.Cancel;
begin
DefaultInterface.Cancel;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TStreamProperties.Create(AServer: TStream);
begin
inherited Create;
FServer := AServer;
end;

function TStreamProperties.GetDefaultInterface: _Stream;
begin
Result := FServer.DefaultInterface;
end;

function TStreamProperties.Get_Size: ADO_LONGPTR;
begin
Result := DefaultInterface.Size;
end;

function TStreamProperties.Get_EOS: WordBool;
begin
Result := DefaultInterface.EOS;
end;

function TStreamProperties.Get_Position: ADO_LONGPTR;
begin
Result := DefaultInterface.Position;
end;

procedure TStreamProperties.Set_Position(pPos: ADO_LONGPTR);
begin
DefaultInterface.Set_Position(pPos);
end;

function TStreamProperties.Get_type_: StreamTypeEnum;
begin
Result := DefaultInterface.type_;
end;

procedure TStreamProperties.Set_type_(ptype: StreamTypeEnum);
begin
DefaultInterface.Set_type_(ptype);
end;

function TStreamProperties.Get_LineSeparator: LineSeparatorEnum;
begin
Result := DefaultInterface.LineSeparator;
end;

procedure TStreamProperties.Set_LineSeparator(pLS: LineSeparatorEnum);
begin
DefaultInterface.Set_LineSeparator(pLS);
end;

function TStreamProperties.Get_State: ObjectStateEnum;
begin
Result := DefaultInterface.State;
end;

function TStreamProperties.Get_Mode: ConnectModeEnum;
begin
Result := DefaultInterface.Mode;
end;

procedure TStreamProperties.Set_Mode(pMode: ConnectModeEnum);
begin
DefaultInterface.Set_Mode(pMode);
end;

function TStreamProperties.Get_Charset: WideString;
begin
Result := DefaultInterface.Charset;
end;

procedure TStreamProperties.Set_Charset(const pbstrCharset: WideString);
{ Warning: The property Charset has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Charset := pbstrCharset;
end;

{$ENDIF}

class function CoCommand.Create: _Command;
begin
Result := CreateComObject(CLASS_Command) as _Command;
end;

class function CoCommand.CreateRemote(const MachineName: string): _Command;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Command) as _Command;
end;

procedure TCommand.InitServerData;
const
CServerData: TServerData = (
ClassID: '{00000507-0000-0010-8000-00AA006D2EA4}';
IntfIID: '{B08400BD-F9D1-4D02-B856-71D5DBA123E9}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TCommand.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as _Command;
end;
end;

procedure TCommand.ConnectTo(svrIntf: _Command);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TCommand.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TCommand.GetDefaultInterface: _Command;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TCommand.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TCommandProperties.Create(Self);
{$ENDIF}
end;

destructor TCommand.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TCommand.GetServerProperties: TCommandProperties;
begin
Result := FProps;
end;
{$ENDIF}

procedure TCommand._Set_CommandStream(const pvStream: IUnknown);
{ Warning: The property CommandStream has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.CommandStream := pvStream;
end;

function TCommand.Get_CommandStream: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.CommandStream;
end;

procedure TCommand.Set_Dialect(const pbstrDialect: WideString);
{ Warning: The property Dialect has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Dialect := pbstrDialect;
end;

function TCommand.Get_Dialect: WideString;
begin
Result := DefaultInterface.Dialect;
end;

procedure TCommand.Set_NamedParameters(pfNamedParameters: WordBool);
begin
DefaultInterface.Set_NamedParameters(pfNamedParameters);
end;

function TCommand.Get_NamedParameters: WordBool;
begin
Result := DefaultInterface.NamedParameters;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TCommandProperties.Create(AServer: TCommand);
begin
inherited Create;
FServer := AServer;
end;

function TCommandProperties.GetDefaultInterface: _Command;
begin
Result := FServer.DefaultInterface;
end;

procedure TCommandProperties._Set_CommandStream(const pvStream: IUnknown);
{ Warning: The property CommandStream has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.CommandStream := pvStream;
end;

function TCommandProperties.Get_CommandStream: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.CommandStream;
end;

procedure TCommandProperties.Set_Dialect(const pbstrDialect: WideString);
{ Warning: The property Dialect has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Dialect := pbstrDialect;
end;

function TCommandProperties.Get_Dialect: WideString;
begin
Result := DefaultInterface.Dialect;
end;

procedure TCommandProperties.Set_NamedParameters(pfNamedParameters: WordBool);
begin
DefaultInterface.Set_NamedParameters(pfNamedParameters);
end;

function TCommandProperties.Get_NamedParameters: WordBool;
begin
Result := DefaultInterface.NamedParameters;
end;

{$ENDIF}

class function CoRecordset.Create: _Recordset;
begin
Result := CreateComObject(CLASS_Recordset) as _Recordset;
end;

class function CoRecordset.CreateRemote(const MachineName: string): _Recordset;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Recordset) as _Recordset;
end;

procedure TRecordset.InitServerData;
const
CServerData: TServerData = (
ClassID: '{00000535-0000-0010-8000-00AA006D2EA4}';
IntfIID: '{00000556-0000-0010-8000-00AA006D2EA4}';
EventIID: '{00000266-0000-0010-8000-00AA006D2EA4}';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TRecordset.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
ConnectEvents(punk);
Fintf:= punk as _Recordset;
end;
end;

procedure TRecordset.ConnectTo(svrIntf: _Recordset);
begin
Disconnect;
FIntf := svrIntf;
ConnectEvents(FIntf);
end;

procedure TRecordset.DisConnect;
begin
if Fintf <> nil then
begin
DisconnectEvents(FIntf);
FIntf := nil;
end;
end;

function TRecordset.GetDefaultInterface: _Recordset;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TRecordset.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TRecordsetProperties.Create(Self);
{$ENDIF}
end;

destructor TRecordset.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TRecordset.GetServerProperties: TRecordsetProperties;
begin
Result := FProps;
end;
{$ENDIF}

procedure TRecordset.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
begin
case DispID of
-1: Exit; // DISPID_UNKNOWN
9: if Assigned(FOnWillChangeField) then
FOnWillChangeField(Self,
Params[0] {Integer},
Params[1] {OleVariant},
EventStatusEnum((TVarData(Params[2]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[3]).VPointer) as _Recordset {const _Recordset});
10: if Assigned(FOnFieldChangeComplete) then
FOnFieldChangeComplete(Self,
Params[0] {Integer},
Params[1] {OleVariant},
IUnknown(TVarData(Params[2]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[3]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[4]).VPointer) as _Recordset {const _Recordset});
11: if Assigned(FOnWillChangeRecord) then
FOnWillChangeRecord(Self,
Params[0] {EventReasonEnum},
Params[1] {Integer},
EventStatusEnum((TVarData(Params[2]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[3]).VPointer) as _Recordset {const _Recordset});
12: if Assigned(FOnRecordChangeComplete) then
FOnRecordChangeComplete(Self,
Params[0] {EventReasonEnum},
Params[1] {Integer},
IUnknown(TVarData(Params[2]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[3]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[4]).VPointer) as _Recordset {const _Recordset});
13: if Assigned(FOnWillChangeRecordset) then
FOnWillChangeRecordset(Self,
Params[0] {EventReasonEnum},
EventStatusEnum((TVarData(Params[1]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[2]).VPointer) as _Recordset {const _Recordset});
14: if Assigned(FOnRecordsetChangeComplete) then
FOnRecordsetChangeComplete(Self,
Params[0] {EventReasonEnum},
IUnknown(TVarData(Params[1]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[2]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[3]).VPointer) as _Recordset {const _Recordset});
15: if Assigned(FOnWillMove) then
FOnWillMove(Self,
Params[0] {EventReasonEnum},
EventStatusEnum((TVarData(Params[1]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[2]).VPointer) as _Recordset {const _Recordset});
16: if Assigned(FOnMoveComplete) then
FOnMoveComplete(Self,
Params[0] {EventReasonEnum},
IUnknown(TVarData(Params[1]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[2]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[3]).VPointer) as _Recordset {const _Recordset});
17: if Assigned(FOnEndOfRecordset) then
FOnEndOfRecordset(Self,
WordBool((TVarData(Params[0]).VPointer)^) {var WordBool},
EventStatusEnum((TVarData(Params[1]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[2]).VPointer) as _Recordset {const _Recordset});
18: if Assigned(FOnFetchProgress) then
FOnFetchProgress(Self,
Params[0] {Integer},
Params[1] {Integer},
EventStatusEnum((TVarData(Params[2]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[3]).VPointer) as _Recordset {const _Recordset});
19: if Assigned(FOnFetchComplete) then
FOnFetchComplete(Self,
IUnknown(TVarData(Params[0]).VPointer) as Error {const Error},
EventStatusEnum((TVarData(Params[1]).VPointer)^) {var EventStatusEnum},
IUnknown(TVarData(Params[2]).VPointer) as _Recordset {const _Recordset});
end; {case DispID}
end;

procedure TRecordset.Save(Destination: OleVariant; PersistFormat: PersistFormatEnum);
begin
DefaultInterface.Save(Destination, PersistFormat);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TRecordsetProperties.Create(AServer: TRecordset);
begin
inherited Create;
FServer := AServer;
end;

function TRecordsetProperties.GetDefaultInterface: _Recordset;
begin
Result := FServer.DefaultInterface;
end;

{$ENDIF}

class function CoParameter.Create: _Parameter;
begin
Result := CreateComObject(CLASS_Parameter) as _Parameter;
end;

class function CoParameter.CreateRemote(const MachineName: string): _Parameter;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Parameter) as _Parameter;
end;

procedure TParameter.InitServerData;
const
CServerData: TServerData = (
ClassID: '{0000050B-0000-0010-8000-00AA006D2EA4}';
IntfIID: '{0000050C-0000-0010-8000-00AA006D2EA4}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TParameter.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as _Parameter;
end;
end;

procedure TParameter.ConnectTo(svrIntf: _Parameter);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TParameter.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TParameter.GetDefaultInterface: _Parameter;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TParameter.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TParameterProperties.Create(Self);
{$ENDIF}
end;

destructor TParameter.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TParameter.GetServerProperties: TParameterProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TParameter.Get_Name: WideString;
begin
Result := DefaultInterface.Name;
end;

procedure TParameter.Set_Name(const pbstr: WideString);
{ Warning: The property Name has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Name := pbstr;
end;

function TParameter.Get_Value: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.Value;
end;

procedure TParameter.Set_Value(pvar: OleVariant);
begin
DefaultInterface.Set_Value(pvar);
end;

function TParameter.Get_type_: DataTypeEnum;
begin
Result := DefaultInterface.type_;
end;

procedure TParameter.Set_type_(psDataType: DataTypeEnum);
begin
DefaultInterface.Set_type_(psDataType);
end;

procedure TParameter.Set_Direction(plParmDirection: ParameterDirectionEnum);
begin
DefaultInterface.Set_Direction(plParmDirection);
end;

function TParameter.Get_Direction: ParameterDirectionEnum;
begin
Result := DefaultInterface.Direction;
end;

procedure TParameter.Set_Precision(pbPrecision: Byte);
begin
DefaultInterface.Set_Precision(pbPrecision);
end;

function TParameter.Get_Precision: Byte;
begin
Result := DefaultInterface.Precision;
end;

procedure TParameter.Set_NumericScale(pbScale: Byte);
begin
DefaultInterface.Set_NumericScale(pbScale);
end;

function TParameter.Get_NumericScale: Byte;
begin
Result := DefaultInterface.NumericScale;
end;

procedure TParameter.Set_Size(pl: ADO_LONGPTR);
begin
DefaultInterface.Set_Size(pl);
end;

function TParameter.Get_Size: ADO_LONGPTR;
begin
Result := DefaultInterface.Size;
end;

function TParameter.Get_Attributes: Integer;
begin
Result := DefaultInterface.Attributes;
end;

procedure TParameter.Set_Attributes(plParmAttribs: Integer);
begin
DefaultInterface.Set_Attributes(plParmAttribs);
end;

procedure TParameter.AppendChunk(Val: OleVariant);
begin
DefaultInterface.AppendChunk(Val);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TParameterProperties.Create(AServer: TParameter);
begin
inherited Create;
FServer := AServer;
end;

function TParameterProperties.GetDefaultInterface: _Parameter;
begin
Result := FServer.DefaultInterface;
end;

function TParameterProperties.Get_Name: WideString;
begin
Result := DefaultInterface.Name;
end;

procedure TParameterProperties.Set_Name(const pbstr: WideString);
{ Warning: The property Name has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Name := pbstr;
end;

function TParameterProperties.Get_Value: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.Value;
end;

procedure TParameterProperties.Set_Value(pvar: OleVariant);
begin
DefaultInterface.Set_Value(pvar);
end;

function TParameterProperties.Get_type_: DataTypeEnum;
begin
Result := DefaultInterface.type_;
end;

procedure TParameterProperties.Set_type_(psDataType: DataTypeEnum);
begin
DefaultInterface.Set_type_(psDataType);
end;

procedure TParameterProperties.Set_Direction(plParmDirection: ParameterDirectionEnum);
begin
DefaultInterface.Set_Direction(plParmDirection);
end;

function TParameterProperties.Get_Direction: ParameterDirectionEnum;
begin
Result := DefaultInterface.Direction;
end;

procedure TParameterProperties.Set_Precision(pbPrecision: Byte);
begin
DefaultInterface.Set_Precision(pbPrecision);
end;

function TParameterProperties.Get_Precision: Byte;
begin
Result := DefaultInterface.Precision;
end;

procedure TParameterProperties.Set_NumericScale(pbScale: Byte);
begin
DefaultInterface.Set_NumericScale(pbScale);
end;

function TParameterProperties.Get_NumericScale: Byte;
begin
Result := DefaultInterface.NumericScale;
end;

procedure TParameterProperties.Set_Size(pl: ADO_LONGPTR);
begin
DefaultInterface.Set_Size(pl);
end;

function TParameterProperties.Get_Size: ADO_LONGPTR;
begin
Result := DefaultInterface.Size;
end;

function TParameterProperties.Get_Attributes: Integer;
begin
Result := DefaultInterface.Attributes;
end;

procedure TParameterProperties.Set_Attributes(plParmAttribs: Integer);
begin
DefaultInterface.Set_Attributes(plParmAttribs);
end;

{$ENDIF}

procedure Register;
begin
RegisterComponents(dtlServerPage, [TConnection, TRecord, TStream, TCommand,
TRecordset, TParameter]);
end;

end.

 
CDO_TLB.pas
unit CDO_TLB;

// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //

// PASTLWTR : 1.2
// File generated on 2009-05-15 21:45:09 from Type Library described below.

// ************************************************************************ //
// Type Lib: C:\WINDOWS\system32\cdosys.dll (1)
// LIBID: {CD000000-8B95-11D1-82DB-00C04FB1625D}
// LCID: 0
// Helpfile: C:\WINDOWS\system32\cdosys.chm
// HelpString: Microsoft CDO for Windows 2000 Library
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\system32\stdole2.tlb)
// (2) v2.8 ADODB, (C:\Program Files\Common Files\System\ado\msado15.dll)
// Errors:
// Hint: Parameter 'Interface' of IBodyPart.GetInterface changed to 'Interface_'
// Hint: Parameter 'var' of IMessages.FileName changed to 'var_'
// Hint: Member 'To' of 'IMessage' changed to 'To_'
// Hint: Parameter 'Interface' of IMessage.GetInterface changed to 'Interface_'
// Hint: Parameter 'Interface' of IConfiguration.GetInterface changed to 'Interface_'
// Error creating palette bitmap of (TMessage) : Server C:\WINDOWS\system32\cdosys.dll contains no icons
// Error creating palette bitmap of (TConfiguration) : Server C:\WINDOWS\system32\cdosys.dll contains no icons
// Error creating palette bitmap of (TDropDirectory) : Server C:\WINDOWS\system32\cdosys.dll contains no icons
// ************************************************************************ //
// *************************************************************************//
// NOTE:
// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties
// which return objects that may need to be explicitly created via a function
// call prior to any access via the property. These items have been disabled
// in order to prevent accidental use from within the object inspector. You
// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively
// removing them from the $IFDEF blocks. However, such items must still be
// programmatically created via a method of the appropriate CoClass before
// they can be used.
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
interface

uses Windows, ActiveX, ADODB_TLB, Classes, Graphics, OleServer, StdVCL, Variants;

// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
CDOMajorVersion = 1;
CDOMinorVersion = 0;

LIBID_CDO: TGUID = '{CD000000-8B95-11D1-82DB-00C04FB1625D}';

IID_IBodyParts: TGUID = '{CD000023-8B95-11D1-82DB-00C04FB1625D}';
IID_IBodyPart: TGUID = '{CD000021-8B95-11D1-82DB-00C04FB1625D}';
IID_IDataSource: TGUID = '{CD000029-8B95-11D1-82DB-00C04FB1625D}';
IID_IMessages: TGUID = '{CD000025-8B95-11D1-82DB-00C04FB1625D}';
IID_IMessage: TGUID = '{CD000020-8B95-11D1-82DB-00C04FB1625D}';
IID_IConfiguration: TGUID = '{CD000022-8B95-11D1-82DB-00C04FB1625D}';
CLASS_Message: TGUID = '{CD000001-8B95-11D1-82DB-00C04FB1625D}';
CLASS_Configuration: TGUID = '{CD000002-8B95-11D1-82DB-00C04FB1625D}';
IID_IDropDirectory: TGUID = '{CD000024-8B95-11D1-82DB-00C04FB1625D}';
CLASS_DropDirectory: TGUID = '{CD000004-8B95-11D1-82DB-00C04FB1625D}';
IID_ISMTPScriptConnector: TGUID = '{CD000030-8B95-11D1-82DB-00C04FB1625D}';
IID_ISMTPOnArrival: TGUID = '{CD000026-8B95-11D1-82DB-00C04FB1625D}';
CLASS_SMTPConnector: TGUID = '{CD000008-8B95-11D1-82DB-00C04FB1625D}';
IID_INNTPEarlyScriptConnector: TGUID = '{CD000034-8B95-11D1-82DB-00C04FB1625D}';
IID_INNTPOnPostEarly: TGUID = '{CD000033-8B95-11D1-82DB-00C04FB1625D}';
CLASS_NNTPEarlyConnector: TGUID = '{CD000011-8B95-11D1-82DB-00C04FB1625D}';
IID_INNTPPostScriptConnector: TGUID = '{CD000031-8B95-11D1-82DB-00C04FB1625D}';
IID_INNTPOnPost: TGUID = '{CD000027-8B95-11D1-82DB-00C04FB1625D}';
CLASS_NNTPPostConnector: TGUID = '{CD000009-8B95-11D1-82DB-00C04FB1625D}';
IID_INNTPFinalScriptConnector: TGUID = '{CD000032-8B95-11D1-82DB-00C04FB1625D}';
IID_INNTPOnPostFinal: TGUID = '{CD000028-8B95-11D1-82DB-00C04FB1625D}';
CLASS_NNTPFinalConnector: TGUID = '{CD000010-8B95-11D1-82DB-00C04FB1625D}';

// *********************************************************************//
// Declaration of Enumerations defined in Type Library
// *********************************************************************//
// Constants for enum CdoConfigSource
type
CdoConfigSource = TOleEnum;
const
cdoDefaults = $FFFFFFFF;
cdoIIS = $00000001;
cdoOutlookExpress = $00000002;

// Constants for enum CdoDSNOptions
type
CdoDSNOptions = TOleEnum;
const
cdoDSNDefault = $00000000;
cdoDSNNever = $00000001;
cdoDSNFailure = $00000002;
cdoDSNSuccess = $00000004;
cdoDSNDelay = $00000008;
cdoDSNSuccessFailOrDelay = $0000000E;

// Constants for enum CdoEventStatus
type
CdoEventStatus = TOleEnum;
const
cdoRunNextSink = $00000000;
cdoSkipRemainingSinks = $00000001;

// Constants for enum cdoImportanceValues
type
cdoImportanceValues = TOleEnum;
const
cdoLow = $00000000;
cdoNormal = $00000001;
cdoHigh = $00000002;

// Constants for enum CdoMessageStat
type
CdoMessageStat = TOleEnum;
const
cdoStatSuccess = $00000000;
cdoStatAbortDelivery = $00000002;
cdoStatBadMail = $00000003;

// Constants for enum CdoMHTMLFlags
type
CdoMHTMLFlags = TOleEnum;
const
cdoSuppressNone = $00000000;
cdoSuppressImages = $00000001;
cdoSuppressBGSounds = $00000002;
cdoSuppressFrames = $00000004;
cdoSuppressObjects = $00000008;
cdoSuppressStyleSheets = $00000010;
cdoSuppressAll = $0000001F;

// Constants for enum CdoNNTPProcessingField
type
CdoNNTPProcessingField = TOleEnum;
const
cdoPostMessage = $00000001;
cdoProcessControl = $00000002;
cdoProcessModerator = $00000004;

// Constants for enum CdoPostUsing
type
CdoPostUsing = TOleEnum;
const
cdoPostUsingPickup = $00000001;
cdoPostUsingPort = $00000002;

// Constants for enum cdoPriorityValues
type
cdoPriorityValues = TOleEnum;
const
cdoPriorityNonUrgent = $FFFFFFFF;
cdoPriorityNormal = $00000000;
cdoPriorityUrgent = $00000001;

// Constants for enum CdoProtocolsAuthentication
type
CdoProtocolsAuthentication = TOleEnum;
const
cdoAnonymous = $00000000;
cdoBasic = $00000001;
cdoNTLM = $00000002;

// Constants for enum CdoReferenceType
type
CdoReferenceType = TOleEnum;
const
cdoRefTypeId = $00000000;
cdoRefTypeLocation = $00000001;

// Constants for enum CdoSendUsing
type
CdoSendUsing = TOleEnum;
const
cdoSendUsingPickup = $00000001;
cdoSendUsingPort = $00000002;

// Constants for enum cdoSensitivityValues
type
cdoSensitivityValues = TOleEnum;
const
cdoSensitivityNone = $00000000;
cdoPersonal = $00000001;
cdoPrivate = $00000002;
cdoCompanyConfidential = $00000003;

// Constants for enum CdoTimeZoneId
type
CdoTimeZoneId = TOleEnum;
const
cdoUTC = $00000000;
cdoGMT = $00000001;
cdoSarajevo = $00000002;
cdoParis = $00000003;
cdoBerlin = $00000004;
cdoEasternEurope = $00000005;
cdoPrague = $00000006;
cdoAthens = $00000007;
cdoBrasilia = $00000008;
cdoAtlanticCanada = $00000009;
cdoEastern = $0000000A;
cdoCentral = $0000000B;
cdoMountain = $0000000C;
cdoPacific = $0000000D;
cdoAlaska = $0000000E;
cdoHawaii = $0000000F;
cdoMidwayIsland = $00000010;
cdoWellington = $00000011;
cdoBrisbane = $00000012;
cdoAdelaide = $00000013;
cdoTokyo = $00000014;
cdoSingapore = $00000015;
cdoBangkok = $00000016;
cdoBombay = $00000017;
cdoAbuDhabi = $00000018;
cdoTehran = $00000019;
cdoBaghdad = $0000001A;
cdoIsrael = $0000001B;
cdoNewfoundland = $0000001C;
cdoAzores = $0000001D;
cdoMidAtlantic = $0000001E;
cdoMonrovia = $0000001F;
cdoBuenosAires = $00000020;
cdoCaracas = $00000021;
cdoIndiana = $00000022;
cdoBogota = $00000023;
cdoSaskatchewan = $00000024;
cdoMexicoCity = $00000025;
cdoArizona = $00000026;
cdoEniwetok = $00000027;
cdoFiji = $00000028;
cdoMagadan = $00000029;
cdoHobart = $0000002A;
cdoGuam = $0000002B;
cdoDarwin = $0000002C;
cdoBeijing = $0000002D;
cdoAlmaty = $0000002E;
cdoIslamabad = $0000002F;
cdoKabul = $00000030;
cdoCairo = $00000031;
cdoHarare = $00000032;
cdoMoscow = $00000033;
cdoFloating = $00000034;
cdoCapeVerde = $00000035;
cdoCaucasus = $00000036;
cdoCentralAmerica = $00000037;
cdoEastAfrica = $00000038;
cdoMelbourne = $00000039;
cdoEkaterinburg = $0000003A;
cdoHelsinki = $0000003B;
cdoGreenland = $0000003C;
cdoRangoon = $0000003D;
cdoNepal = $0000003E;
cdoIrkutsk = $0000003F;
cdoKrasnoyarsk = $00000040;
cdoSantiago = $00000041;
cdoSriLanka = $00000042;
cdoTonga = $00000043;
cdoVladivostok = $00000044;
cdoWestCentralAfrica = $00000045;
cdoYakutsk = $00000046;
cdoDhaka = $00000047;
cdoSeoul = $00000048;
cdoPerth = $00000049;
cdoArab = $0000004A;
cdoTaipei = $0000004B;
cdoSydney2000 = $0000004C;
cdoInvalidTimeZone = $0000004E;

type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
IBodyParts = interface;
IBodyPartsDisp = dispinterface;
IBodyPart = interface;
IBodyPartDisp = dispinterface;
IDataSource = interface;
IDataSourceDisp = dispinterface;
IMessages = interface;
IMessagesDisp = dispinterface;
IMessage = interface;
IMessageDisp = dispinterface;
IConfiguration = interface;
IConfigurationDisp = dispinterface;
IDropDirectory = interface;
IDropDirectoryDisp = dispinterface;
ISMTPScriptConnector = interface;
ISMTPScriptConnectorDisp = dispinterface;
ISMTPOnArrival = interface;
ISMTPOnArrivalDisp = dispinterface;
INNTPEarlyScriptConnector = interface;
INNTPEarlyScriptConnectorDisp = dispinterface;
INNTPOnPostEarly = interface;
INNTPOnPostEarlyDisp = dispinterface;
INNTPPostScriptConnector = interface;
INNTPPostScriptConnectorDisp = dispinterface;
INNTPOnPost = interface;
INNTPOnPostDisp = dispinterface;
INNTPFinalScriptConnector = interface;
INNTPFinalScriptConnectorDisp = dispinterface;
INNTPOnPostFinal = interface;
INNTPOnPostFinalDisp = dispinterface;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
Message = IMessage;
Configuration = IConfiguration;
DropDirectory = IDropDirectory;
SMTPConnector = ISMTPScriptConnector;
NNTPEarlyConnector = INNTPEarlyScriptConnector;
NNTPPostConnector = INNTPPostScriptConnector;
NNTPFinalConnector = INNTPFinalScriptConnector;

// *********************************************************************//
// Interface: IBodyParts
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000023-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IBodyParts = interface(IDispatch)
['{CD000023-8B95-11D1-82DB-00C04FB1625D}']
function Get_Count: Integer; safecall;
function Get_Item(Index: Integer): IBodyPart; safecall;
function Get__NewEnum: IUnknown; safecall;
procedure Delete(varBP: OleVariant); safecall;
procedure DeleteAll; safecall;
function Add(Index: Integer): IBodyPart; safecall;
property Count: Integer read Get_Count;
property Item[Index: Integer]: IBodyPart read Get_Item; default;
property _NewEnum: IUnknown read Get__NewEnum;
end;

// *********************************************************************//
// DispIntf: IBodyPartsDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000023-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IBodyPartsDisp = dispinterface
['{CD000023-8B95-11D1-82DB-00C04FB1625D}']
property Count: Integer readonly dispid 1;
property Item[Index: Integer]: IBodyPart readonly dispid 0; default;
property _NewEnum: IUnknown readonly dispid -4;
procedure Delete(varBP: OleVariant); dispid 2;
procedure DeleteAll; dispid 3;
function Add(Index: Integer): IBodyPart; dispid 4;
end;

// *********************************************************************//
// Interface: IBodyPart
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000021-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IBodyPart = interface(IDispatch)
['{CD000021-8B95-11D1-82DB-00C04FB1625D}']
function Get_BodyParts: IBodyParts; safecall;
function Get_ContentTransferEncoding: WideString; safecall;
procedure Set_ContentTransferEncoding(const pContentTransferEncoding: WideString); safecall;
function Get_ContentMediaType: WideString; safecall;
procedure Set_ContentMediaType(const pContentMediaType: WideString); safecall;
function Get_Fields: Fields; safecall;
function Get_Charset: WideString; safecall;
procedure Set_Charset(const pCharset: WideString); safecall;
function Get_FileName: WideString; safecall;
function Get_DataSource: IDataSource; safecall;
function Get_ContentClass: WideString; safecall;
procedure Set_ContentClass(const pContentClass: WideString); safecall;
function Get_ContentClassName: WideString; safecall;
procedure Set_ContentClassName(const pContentClassName: WideString); safecall;
function Get_Parent: IBodyPart; safecall;
function AddBodyPart(Index: Integer): IBodyPart; safecall;
procedure SaveToFile(const FileName: WideString); safecall;
function GetEncodedContentStream: _Stream; safecall;
function GetDecodedContentStream: _Stream; safecall;
function GetStream: _Stream; safecall;
function GetFieldParameter(const FieldName: WideString; const Parameter: WideString): WideString; safecall;
function GetInterface(const Interface_: WideString): IDispatch; safecall;
property BodyParts: IBodyParts read Get_BodyParts;
property ContentTransferEncoding: WideString read Get_ContentTransferEncoding write Set_ContentTransferEncoding;
property ContentMediaType: WideString read Get_ContentMediaType write Set_ContentMediaType;
property Fields: Fields read Get_Fields;
property Charset: WideString read Get_Charset write Set_Charset;
property FileName: WideString read Get_FileName;
property DataSource: IDataSource read Get_DataSource;
property ContentClass: WideString read Get_ContentClass write Set_ContentClass;
property ContentClassName: WideString read Get_ContentClassName write Set_ContentClassName;
property Parent: IBodyPart read Get_Parent;
end;

// *********************************************************************//
// DispIntf: IBodyPartDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000021-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IBodyPartDisp = dispinterface
['{CD000021-8B95-11D1-82DB-00C04FB1625D}']
property BodyParts: IBodyParts readonly dispid 200;
property ContentTransferEncoding: WideString dispid 201;
property ContentMediaType: WideString dispid 202;
property Fields: Fields readonly dispid 203;
property Charset: WideString dispid 204;
property FileName: WideString readonly dispid 205;
property DataSource: IDataSource readonly dispid 207;
property ContentClass: WideString dispid 208;
property ContentClassName: WideString dispid 209;
property Parent: IBodyPart readonly dispid 210;
function AddBodyPart(Index: Integer): IBodyPart; dispid 250;
procedure SaveToFile(const FileName: WideString); dispid 251;
function GetEncodedContentStream: _Stream; dispid 252;
function GetDecodedContentStream: _Stream; dispid 253;
function GetStream: _Stream; dispid 254;
function GetFieldParameter(const FieldName: WideString; const Parameter: WideString): WideString; dispid 255;
function GetInterface(const Interface_: WideString): IDispatch; dispid 160;
end;

// *********************************************************************//
// Interface: IDataSource
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000029-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IDataSource = interface(IDispatch)
['{CD000029-8B95-11D1-82DB-00C04FB1625D}']
function Get_SourceClass: WideString; safecall;
function Get_Source: IUnknown; safecall;
function Get_IsDirty: WordBool; safecall;
procedure Set_IsDirty(pIsDirty: WordBool); safecall;
function Get_SourceURL: WideString; safecall;
function Get_ActiveConnection: _Connection; safecall;
procedure SaveToObject(const Source: IUnknown; const InterfaceName: WideString); safecall;
procedure OpenObject(const Source: IUnknown; const InterfaceName: WideString); safecall;
procedure SaveTo(const SourceURL: WideString; const ActiveConnection: IDispatch;
Mode: ConnectModeEnum; CreateOptions: RecordCreateOptionsEnum;
Options: RecordOpenOptionsEnum; const UserName: WideString;
const Password: WideString); safecall;
procedure Open(const SourceURL: WideString; const ActiveConnection: IDispatch;
Mode: ConnectModeEnum; CreateOptions: RecordCreateOptionsEnum;
Options: RecordOpenOptionsEnum; const UserName: WideString;
const Password: WideString); safecall;
procedure Save; safecall;
procedure SaveToContainer(const ContainerURL: WideString; const ActiveConnection: IDispatch;
Mode: ConnectModeEnum; CreateOptions: RecordCreateOptionsEnum;
Options: RecordOpenOptionsEnum; const UserName: WideString;
const Password: WideString); safecall;
property SourceClass: WideString read Get_SourceClass;
property Source: IUnknown read Get_Source;
property IsDirty: WordBool read Get_IsDirty write Set_IsDirty;
property SourceURL: WideString read Get_SourceURL;
property ActiveConnection: _Connection read Get_ActiveConnection;
end;

// *********************************************************************//
// DispIntf: IDataSourceDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000029-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IDataSourceDisp = dispinterface
['{CD000029-8B95-11D1-82DB-00C04FB1625D}']
property SourceClass: WideString readonly dispid 207;
property Source: IUnknown readonly dispid 208;
property IsDirty: WordBool dispid 209;
property SourceURL: WideString readonly dispid 210;
property ActiveConnection: _Connection readonly dispid 211;
procedure SaveToObject(const Source: IUnknown; const InterfaceName: WideString); dispid 251;
procedure OpenObject(const Source: IUnknown; const InterfaceName: WideString); dispid 252;
procedure SaveTo(const SourceURL: WideString; const ActiveConnection: IDispatch;
Mode: ConnectModeEnum; CreateOptions: RecordCreateOptionsEnum;
Options: RecordOpenOptionsEnum; const UserName: WideString;
const Password: WideString); dispid 253;
procedure Open(const SourceURL: WideString; const ActiveConnection: IDispatch;
Mode: ConnectModeEnum; CreateOptions: RecordCreateOptionsEnum;
Options: RecordOpenOptionsEnum; const UserName: WideString;
const Password: WideString); dispid 254;
procedure Save; dispid 255;
procedure SaveToContainer(const ContainerURL: WideString; const ActiveConnection: IDispatch;
Mode: ConnectModeEnum; CreateOptions: RecordCreateOptionsEnum;
Options: RecordOpenOptionsEnum; const UserName: WideString;
const Password: WideString); dispid 256;
end;

// *********************************************************************//
// Interface: IMessages
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000025-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IMessages = interface(IDispatch)
['{CD000025-8B95-11D1-82DB-00C04FB1625D}']
function Get_Item(Index: Integer): IMessage; safecall;
function Get_Count: Integer; safecall;
procedure Delete(Index: Integer); safecall;
procedure DeleteAll; safecall;
function Get__NewEnum: IUnknown; safecall;
function Get_FileName(var_: OleVariant): WideString; safecall;
property Item[Index: Integer]: IMessage read Get_Item; default;
property Count: Integer read Get_Count;
property _NewEnum: IUnknown read Get__NewEnum;
property FileName[var_: OleVariant]: WideString read Get_FileName;
end;

// *********************************************************************//
// DispIntf: IMessagesDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000025-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IMessagesDisp = dispinterface
['{CD000025-8B95-11D1-82DB-00C04FB1625D}']
property Item[Index: Integer]: IMessage readonly dispid 0; default;
property Count: Integer readonly dispid 1;
procedure Delete(Index: Integer); dispid 2;
procedure DeleteAll; dispid 3;
property _NewEnum: IUnknown readonly dispid -4;
property FileName[var_: OleVariant]: WideString readonly dispid 5;
end;

// *********************************************************************//
// Interface: IMessage
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000020-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IMessage = interface(IDispatch)
['{CD000020-8B95-11D1-82DB-00C04FB1625D}']
function Get_BCC: WideString; safecall;
procedure Set_BCC(const pBCC: WideString); safecall;
function Get_CC: WideString; safecall;
procedure Set_CC(const pCC: WideString); safecall;
function Get_FollowUpTo: WideString; safecall;
procedure Set_FollowUpTo(const pFollowUpTo: WideString); safecall;
function Get_From: WideString; safecall;
procedure Set_From(const pFrom: WideString); safecall;
function Get_Keywords: WideString; safecall;
procedure Set_Keywords(const pKeywords: WideString); safecall;
function Get_MimeFormatted: WordBool; safecall;
procedure Set_MimeFormatted(pMimeFormatted: WordBool); safecall;
function Get_Newsgroups: WideString; safecall;
procedure Set_Newsgroups(const pNewsgroups: WideString); safecall;
function Get_Organization: WideString; safecall;
procedure Set_Organization(const pOrganization: WideString); safecall;
function Get_ReceivedTime: TDateTime; safecall;
function Get_ReplyTo: WideString; safecall;
procedure Set_ReplyTo(const pReplyTo: WideString); safecall;
function Get_DSNOptions: CdoDSNOptions; safecall;
procedure Set_DSNOptions(pDSNOptions: CdoDSNOptions); safecall;
function Get_SentOn: TDateTime; safecall;
function Get_Subject: WideString; safecall;
procedure Set_Subject(const pSubject: WideString); safecall;
function Get_To_: WideString; safecall;
procedure Set_To_(const pTo: WideString); safecall;
function Get_TextBody: WideString; safecall;
procedure Set_TextBody(const pTextBody: WideString); safecall;
function Get_HTMLBody: WideString; safecall;
procedure Set_HTMLBody(const pHTMLBody: WideString); safecall;
function Get_Attachments: IBodyParts; safecall;
function Get_Sender: WideString; safecall;
procedure Set_Sender(const pSender: WideString); safecall;
function Get_Configuration: IConfiguration; safecall;
procedure Set_Configuration(const pConfiguration: IConfiguration); safecall;
procedure _Set_Configuration(const pConfiguration: IConfiguration); safecall;
function Get_AutoGenerateTextBody: WordBool; safecall;
procedure Set_AutoGenerateTextBody(pAutoGenerateTextBody: WordBool); safecall;
function Get_EnvelopeFields: Fields; safecall;
function Get_TextBodyPart: IBodyPart; safecall;
function Get_HTMLBodyPart: IBodyPart; safecall;
function Get_BodyPart: IBodyPart; safecall;
function Get_DataSource: IDataSource; safecall;
function Get_Fields: Fields; safecall;
function Get_MDNRequested: WordBool; safecall;
procedure Set_MDNRequested(pMDNRequested: WordBool); safecall;
function AddRelatedBodyPart(const URL: WideString; const Reference: WideString;
ReferenceType: CdoReferenceType; const UserName: WideString;
const Password: WideString): IBodyPart; safecall;
function AddAttachment(const URL: WideString; const UserName: WideString;
const Password: WideString): IBodyPart; safecall;
procedure CreateMHTMLBody(const URL: WideString; Flags: CdoMHTMLFlags;
const UserName: WideString; const Password: WideString); safecall;
function Forward: IMessage; safecall;
procedure Post; safecall;
function PostReply: IMessage; safecall;
function Reply: IMessage; safecall;
function ReplyAll: IMessage; safecall;
procedure Send; safecall;
function GetStream: _Stream; safecall;
function GetInterface(const Interface_: WideString): IDispatch; safecall;
property BCC: WideString read Get_BCC write Set_BCC;
property CC: WideString read Get_CC write Set_CC;
property FollowUpTo: WideString read Get_FollowUpTo write Set_FollowUpTo;
property From: WideString read Get_From write Set_From;
property Keywords: WideString read Get_Keywords write Set_Keywords;
property MimeFormatted: WordBool read Get_MimeFormatted write Set_MimeFormatted;
property Newsgroups: WideString read Get_Newsgroups write Set_Newsgroups;
property Organization: WideString read Get_Organization write Set_Organization;
property ReceivedTime: TDateTime read Get_ReceivedTime;
property ReplyTo: WideString read Get_ReplyTo write Set_ReplyTo;
property DSNOptions: CdoDSNOptions read Get_DSNOptions write Set_DSNOptions;
property SentOn: TDateTime read Get_SentOn;
property Subject: WideString read Get_Subject write Set_Subject;
property To_: WideString read Get_To_ write Set_To_;
property TextBody: WideString read Get_TextBody write Set_TextBody;
property HTMLBody: WideString read Get_HTMLBody write Set_HTMLBody;
property Attachments: IBodyParts read Get_Attachments;
property Sender: WideString read Get_Sender write Set_Sender;
property Configuration: IConfiguration read Get_Configuration write Set_Configuration;
property AutoGenerateTextBody: WordBool read Get_AutoGenerateTextBody write Set_AutoGenerateTextBody;
property EnvelopeFields: Fields read Get_EnvelopeFields;
property TextBodyPart: IBodyPart read Get_TextBodyPart;
property HTMLBodyPart: IBodyPart read Get_HTMLBodyPart;
property BodyPart: IBodyPart read Get_BodyPart;
property DataSource: IDataSource read Get_DataSource;
property Fields: Fields read Get_Fields;
property MDNRequested: WordBool read Get_MDNRequested write Set_MDNRequested;
end;

// *********************************************************************//
// DispIntf: IMessageDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000020-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IMessageDisp = dispinterface
['{CD000020-8B95-11D1-82DB-00C04FB1625D}']
property BCC: WideString dispid 101;
property CC: WideString dispid 103;
property FollowUpTo: WideString dispid 105;
property From: WideString dispid 106;
property Keywords: WideString dispid 107;
property MimeFormatted: WordBool dispid 110;
property Newsgroups: WideString dispid 111;
property Organization: WideString dispid 112;
property ReceivedTime: TDateTime readonly dispid 114;
property ReplyTo: WideString dispid 115;
property DSNOptions: CdoDSNOptions dispid 116;
property SentOn: TDateTime readonly dispid 119;
property Subject: WideString dispid 120;
property To_: WideString dispid 121;
property TextBody: WideString dispid 123;
property HTMLBody: WideString dispid 124;
property Attachments: IBodyParts readonly dispid 125;
property Sender: WideString dispid 126;
property Configuration: IConfiguration dispid 127;
property AutoGenerateTextBody: WordBool dispid 128;
property EnvelopeFields: Fields readonly dispid 129;
property TextBodyPart: IBodyPart readonly dispid 130;
property HTMLBodyPart: IBodyPart readonly dispid 131;
property BodyPart: IBodyPart readonly dispid 132;
property DataSource: IDataSource readonly dispid 133;
property Fields: Fields readonly dispid 134;
property MDNRequested: WordBool dispid 135;
function AddRelatedBodyPart(const URL: WideString; const Reference: WideString;
ReferenceType: CdoReferenceType; const UserName: WideString;
const Password: WideString): IBodyPart; dispid 150;
function AddAttachment(const URL: WideString; const UserName: WideString;
const Password: WideString): IBodyPart; dispid 151;
procedure CreateMHTMLBody(const URL: WideString; Flags: CdoMHTMLFlags;
const UserName: WideString; const Password: WideString); dispid 152;
function Forward: IMessage; dispid 153;
procedure Post; dispid 154;
function PostReply: IMessage; dispid 155;
function Reply: IMessage; dispid 156;
function ReplyAll: IMessage; dispid 157;
procedure Send; dispid 158;
function GetStream: _Stream; dispid 159;
function GetInterface(const Interface_: WideString): IDispatch; dispid 160;
end;

// *********************************************************************//
// Interface: IConfiguration
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000022-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IConfiguration = interface(IDispatch)
['{CD000022-8B95-11D1-82DB-00C04FB1625D}']
function Get_Fields: Fields; safecall;
procedure Load(LoadFrom: CdoConfigSource; const URL: WideString); safecall;
function GetInterface(const Interface_: WideString): IDispatch; safecall;
property Fields: Fields read Get_Fields;
end;

// *********************************************************************//
// DispIntf: IConfigurationDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000022-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IConfigurationDisp = dispinterface
['{CD000022-8B95-11D1-82DB-00C04FB1625D}']
property Fields: Fields readonly dispid 0;
procedure Load(LoadFrom: CdoConfigSource; const URL: WideString); dispid 50;
function GetInterface(const Interface_: WideString): IDispatch; dispid 160;
end;

// *********************************************************************//
// Interface: IDropDirectory
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000024-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IDropDirectory = interface(IDispatch)
['{CD000024-8B95-11D1-82DB-00C04FB1625D}']
function GetMessages(const DirName: WideString): IMessages; safecall;
end;

// *********************************************************************//
// DispIntf: IDropDirectoryDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000024-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
IDropDirectoryDisp = dispinterface
['{CD000024-8B95-11D1-82DB-00C04FB1625D}']
function GetMessages(const DirName: WideString): IMessages; dispid 200;
end;

// *********************************************************************//
// Interface: ISMTPScriptConnector
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000030-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
ISMTPScriptConnector = interface(IDispatch)
['{CD000030-8B95-11D1-82DB-00C04FB1625D}']
end;

// *********************************************************************//
// DispIntf: ISMTPScriptConnectorDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000030-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
ISMTPScriptConnectorDisp = dispinterface
['{CD000030-8B95-11D1-82DB-00C04FB1625D}']
end;

// *********************************************************************//
// Interface: ISMTPOnArrival
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000026-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
ISMTPOnArrival = interface(IDispatch)
['{CD000026-8B95-11D1-82DB-00C04FB1625D}']
procedure OnArrival(const Msg: IMessage; var EventStatus: CdoEventStatus); safecall;
end;

// *********************************************************************//
// DispIntf: ISMTPOnArrivalDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000026-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
ISMTPOnArrivalDisp = dispinterface
['{CD000026-8B95-11D1-82DB-00C04FB1625D}']
procedure OnArrival(const Msg: IMessage; var EventStatus: CdoEventStatus); dispid 256;
end;

// *********************************************************************//
// Interface: INNTPEarlyScriptConnector
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000034-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPEarlyScriptConnector = interface(IDispatch)
['{CD000034-8B95-11D1-82DB-00C04FB1625D}']
end;

// *********************************************************************//
// DispIntf: INNTPEarlyScriptConnectorDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000034-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPEarlyScriptConnectorDisp = dispinterface
['{CD000034-8B95-11D1-82DB-00C04FB1625D}']
end;

// *********************************************************************//
// Interface: INNTPOnPostEarly
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000033-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPOnPostEarly = interface(IDispatch)
['{CD000033-8B95-11D1-82DB-00C04FB1625D}']
procedure OnPostEarly(const Msg: IMessage; var EventStatus: CdoEventStatus); safecall;
end;

// *********************************************************************//
// DispIntf: INNTPOnPostEarlyDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000033-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPOnPostEarlyDisp = dispinterface
['{CD000033-8B95-11D1-82DB-00C04FB1625D}']
procedure OnPostEarly(const Msg: IMessage; var EventStatus: CdoEventStatus); dispid 256;
end;

// *********************************************************************//
// Interface: INNTPPostScriptConnector
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000031-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPPostScriptConnector = interface(IDispatch)
['{CD000031-8B95-11D1-82DB-00C04FB1625D}']
end;

// *********************************************************************//
// DispIntf: INNTPPostScriptConnectorDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000031-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPPostScriptConnectorDisp = dispinterface
['{CD000031-8B95-11D1-82DB-00C04FB1625D}']
end;

// *********************************************************************//
// Interface: INNTPOnPost
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000027-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPOnPost = interface(IDispatch)
['{CD000027-8B95-11D1-82DB-00C04FB1625D}']
procedure OnPost(const Msg: IMessage; var EventStatus: CdoEventStatus); safecall;
end;

// *********************************************************************//
// DispIntf: INNTPOnPostDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000027-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPOnPostDisp = dispinterface
['{CD000027-8B95-11D1-82DB-00C04FB1625D}']
procedure OnPost(const Msg: IMessage; var EventStatus: CdoEventStatus); dispid 256;
end;

// *********************************************************************//
// Interface: INNTPFinalScriptConnector
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000032-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPFinalScriptConnector = interface(IDispatch)
['{CD000032-8B95-11D1-82DB-00C04FB1625D}']
end;

// *********************************************************************//
// DispIntf: INNTPFinalScriptConnectorDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000032-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPFinalScriptConnectorDisp = dispinterface
['{CD000032-8B95-11D1-82DB-00C04FB1625D}']
end;

// *********************************************************************//
// Interface: INNTPOnPostFinal
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000028-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPOnPostFinal = interface(IDispatch)
['{CD000028-8B95-11D1-82DB-00C04FB1625D}']
procedure OnPostFinal(const Msg: IMessage; var EventStatus: CdoEventStatus); safecall;
end;

// *********************************************************************//
// DispIntf: INNTPOnPostFinalDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {CD000028-8B95-11D1-82DB-00C04FB1625D}
// *********************************************************************//
INNTPOnPostFinalDisp = dispinterface
['{CD000028-8B95-11D1-82DB-00C04FB1625D}']
procedure OnPostFinal(const Msg: IMessage; var EventStatus: CdoEventStatus); dispid 256;
end;

// *********************************************************************//
// The Class CoMessage provides a Create and CreateRemote method to
// create instances of the default interface IMessage exposed by
// the CoClass Message. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoMessage = class
class function Create: IMessage;
class function CreateRemote(const MachineName: string): IMessage;
end;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TMessage
// Help String : Defines an object used to manage a message.
// Default Interface: IMessage
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TMessageProperties= class;
{$ENDIF}
TMessage = class(TOleServer)
private
FIntf: IMessage;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TMessageProperties;
function GetServerProperties: TMessageProperties;
{$ENDIF}
function GetDefaultInterface: IMessage;
protected
procedure InitServerData; override;
function Get_BCC: WideString;
procedure Set_BCC(const pBCC: WideString);
function Get_CC: WideString;
procedure Set_CC(const pCC: WideString);
function Get_FollowUpTo: WideString;
procedure Set_FollowUpTo(const pFollowUpTo: WideString);
function Get_From: WideString;
procedure Set_From(const pFrom: WideString);
function Get_Keywords: WideString;
procedure Set_Keywords(const pKeywords: WideString);
function Get_MimeFormatted: WordBool;
procedure Set_MimeFormatted(pMimeFormatted: WordBool);
function Get_Newsgroups: WideString;
procedure Set_Newsgroups(const pNewsgroups: WideString);
function Get_Organization: WideString;
procedure Set_Organization(const pOrganization: WideString);
function Get_ReceivedTime: TDateTime;
function Get_ReplyTo: WideString;
procedure Set_ReplyTo(const pReplyTo: WideString);
function Get_DSNOptions: CdoDSNOptions;
procedure Set_DSNOptions(pDSNOptions: CdoDSNOptions);
function Get_SentOn: TDateTime;
function Get_Subject: WideString;
procedure Set_Subject(const pSubject: WideString);
function Get_To_: WideString;
procedure Set_To_(const pTo: WideString);
function Get_TextBody: WideString;
procedure Set_TextBody(const pTextBody: WideString);
function Get_HTMLBody: WideString;
procedure Set_HTMLBody(const pHTMLBody: WideString);
function Get_Attachments: IBodyParts;
function Get_Sender: WideString;
procedure Set_Sender(const pSender: WideString);
function Get_Configuration: IConfiguration;
procedure Set_Configuration(const pConfiguration: IConfiguration);
procedure _Set_Configuration(const pConfiguration: IConfiguration);
function Get_AutoGenerateTextBody: WordBool;
procedure Set_AutoGenerateTextBody(pAutoGenerateTextBody: WordBool);
function Get_EnvelopeFields: Fields;
function Get_TextBodyPart: IBodyPart;
function Get_HTMLBodyPart: IBodyPart;
function Get_BodyPart: IBodyPart;
function Get_DataSource: IDataSource;
function Get_Fields: Fields;
function Get_MDNRequested: WordBool;
procedure Set_MDNRequested(pMDNRequested: WordBool);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IMessage);
procedure Disconnect; override;
function AddRelatedBodyPart(const URL: WideString; const Reference: WideString;
ReferenceType: CdoReferenceType; const UserName: WideString;
const Password: WideString): IBodyPart;
function AddAttachment(const URL: WideString; const UserName: WideString;
const Password: WideString): IBodyPart;
procedure CreateMHTMLBody(const URL: WideString; Flags: CdoMHTMLFlags;
const UserName: WideString; const Password: WideString);
function Forward: IMessage;
procedure Post;
function PostReply: IMessage;
function Reply: IMessage;
function ReplyAll: IMessage;
procedure Send;
function GetStream: _Stream;
function GetInterface(const Interface_: WideString): IDispatch;
property DefaultInterface: IMessage read GetDefaultInterface;
property ReceivedTime: TDateTime read Get_ReceivedTime;
property SentOn: TDateTime read Get_SentOn;
property Attachments: IBodyParts read Get_Attachments;
property EnvelopeFields: Fields read Get_EnvelopeFields;
property TextBodyPart: IBodyPart read Get_TextBodyPart;
property HTMLBodyPart: IBodyPart read Get_HTMLBodyPart;
property BodyPart: IBodyPart read Get_BodyPart;
property DataSource: IDataSource read Get_DataSource;
property Fields: Fields read Get_Fields;
property BCC: WideString read Get_BCC write Set_BCC;
property CC: WideString read Get_CC write Set_CC;
property FollowUpTo: WideString read Get_FollowUpTo write Set_FollowUpTo;
property From: WideString read Get_From write Set_From;
property Keywords: WideString read Get_Keywords write Set_Keywords;
property MimeFormatted: WordBool read Get_MimeFormatted write Set_MimeFormatted;
property Newsgroups: WideString read Get_Newsgroups write Set_Newsgroups;
property Organization: WideString read Get_Organization write Set_Organization;
property ReplyTo: WideString read Get_ReplyTo write Set_ReplyTo;
property DSNOptions: CdoDSNOptions read Get_DSNOptions write Set_DSNOptions;
property Subject: WideString read Get_Subject write Set_Subject;
property To_: WideString read Get_To_ write Set_To_;
property TextBody: WideString read Get_TextBody write Set_TextBody;
property HTMLBody: WideString read Get_HTMLBody write Set_HTMLBody;
property Sender: WideString read Get_Sender write Set_Sender;
property Configuration: IConfiguration read Get_Configuration write Set_Configuration;
property AutoGenerateTextBody: WordBool read Get_AutoGenerateTextBody write Set_AutoGenerateTextBody;
property MDNRequested: WordBool read Get_MDNRequested write Set_MDNRequested;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TMessageProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TMessage
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TMessageProperties = class(TPersistent)
private
FServer: TMessage;
function GetDefaultInterface: IMessage;
constructor Create(AServer: TMessage);
protected
function Get_BCC: WideString;
procedure Set_BCC(const pBCC: WideString);
function Get_CC: WideString;
procedure Set_CC(const pCC: WideString);
function Get_FollowUpTo: WideString;
procedure Set_FollowUpTo(const pFollowUpTo: WideString);
function Get_From: WideString;
procedure Set_From(const pFrom: WideString);
function Get_Keywords: WideString;
procedure Set_Keywords(const pKeywords: WideString);
function Get_MimeFormatted: WordBool;
procedure Set_MimeFormatted(pMimeFormatted: WordBool);
function Get_Newsgroups: WideString;
procedure Set_Newsgroups(const pNewsgroups: WideString);
function Get_Organization: WideString;
procedure Set_Organization(const pOrganization: WideString);
function Get_ReceivedTime: TDateTime;
function Get_ReplyTo: WideString;
procedure Set_ReplyTo(const pReplyTo: WideString);
function Get_DSNOptions: CdoDSNOptions;
procedure Set_DSNOptions(pDSNOptions: CdoDSNOptions);
function Get_SentOn: TDateTime;
function Get_Subject: WideString;
procedure Set_Subject(const pSubject: WideString);
function Get_To_: WideString;
procedure Set_To_(const pTo: WideString);
function Get_TextBody: WideString;
procedure Set_TextBody(const pTextBody: WideString);
function Get_HTMLBody: WideString;
procedure Set_HTMLBody(const pHTMLBody: WideString);
function Get_Attachments: IBodyParts;
function Get_Sender: WideString;
procedure Set_Sender(const pSender: WideString);
function Get_Configuration: IConfiguration;
procedure Set_Configuration(const pConfiguration: IConfiguration);
procedure _Set_Configuration(const pConfiguration: IConfiguration);
function Get_AutoGenerateTextBody: WordBool;
procedure Set_AutoGenerateTextBody(pAutoGenerateTextBody: WordBool);
function Get_EnvelopeFields: Fields;
function Get_TextBodyPart: IBodyPart;
function Get_HTMLBodyPart: IBodyPart;
function Get_BodyPart: IBodyPart;
function Get_DataSource: IDataSource;
function Get_Fields: Fields;
function Get_MDNRequested: WordBool;
procedure Set_MDNRequested(pMDNRequested: WordBool);
public
property DefaultInterface: IMessage read GetDefaultInterface;
published
property BCC: WideString read Get_BCC write Set_BCC;
property CC: WideString read Get_CC write Set_CC;
property FollowUpTo: WideString read Get_FollowUpTo write Set_FollowUpTo;
property From: WideString read Get_From write Set_From;
property Keywords: WideString read Get_Keywords write Set_Keywords;
property MimeFormatted: WordBool read Get_MimeFormatted write Set_MimeFormatted;
property Newsgroups: WideString read Get_Newsgroups write Set_Newsgroups;
property Organization: WideString read Get_Organization write Set_Organization;
property ReplyTo: WideString read Get_ReplyTo write Set_ReplyTo;
property DSNOptions: CdoDSNOptions read Get_DSNOptions write Set_DSNOptions;
property Subject: WideString read Get_Subject write Set_Subject;
property To_: WideString read Get_To_ write Set_To_;
property TextBody: WideString read Get_TextBody write Set_TextBody;
property HTMLBody: WideString read Get_HTMLBody write Set_HTMLBody;
property Sender: WideString read Get_Sender write Set_Sender;
property Configuration: IConfiguration read Get_Configuration write Set_Configuration;
property AutoGenerateTextBody: WordBool read Get_AutoGenerateTextBody write Set_AutoGenerateTextBody;
property MDNRequested: WordBool read Get_MDNRequested write Set_MDNRequested;
end;
{$ENDIF}

// *********************************************************************//
// The Class CoConfiguration provides a Create and CreateRemote method to
// create instances of the default interface IConfiguration exposed by
// the CoClass Configuration. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoConfiguration = class
class function Create: IConfiguration;
class function CreateRemote(const MachineName: string): IConfiguration;
end;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TConfiguration
// Help String : Defines an object used to store configuration information for CDO objects.
// Default Interface: IConfiguration
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TConfigurationProperties= class;
{$ENDIF}
TConfiguration = class(TOleServer)
private
FIntf: IConfiguration;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TConfigurationProperties;
function GetServerProperties: TConfigurationProperties;
{$ENDIF}
function GetDefaultInterface: IConfiguration;
protected
procedure InitServerData; override;
function Get_Fields: Fields;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IConfiguration);
procedure Disconnect; override;
procedure Load(LoadFrom: CdoConfigSource; const URL: WideString);
function GetInterface(const Interface_: WideString): IDispatch;
property DefaultInterface: IConfiguration read GetDefaultInterface;
property Fields: Fields read Get_Fields;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TConfigurationProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TConfiguration
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TConfigurationProperties = class(TPersistent)
private
FServer: TConfiguration;
function GetDefaultInterface: IConfiguration;
constructor Create(AServer: TConfiguration);
protected
function Get_Fields: Fields;
public
property DefaultInterface: IConfiguration read GetDefaultInterface;
published
end;
{$ENDIF}

// *********************************************************************//
// The Class CoDropDirectory provides a Create and CreateRemote method to
// create instances of the default interface IDropDirectory exposed by
// the CoClass DropDirectory. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoDropDirectory = class
class function Create: IDropDirectory;
class function CreateRemote(const MachineName: string): IDropDirectory;
end;

// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TDropDirectory
// Help String : Defines an object used to access messages located on the file system.
// Default Interface: IDropDirectory
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TDropDirectoryProperties= class;
{$ENDIF}
TDropDirectory = class(TOleServer)
private
FIntf: IDropDirectory;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TDropDirectoryProperties;
function GetServerProperties: TDropDirectoryProperties;
{$ENDIF}
function GetDefaultInterface: IDropDirectory;
protected
procedure InitServerData; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IDropDirectory);
procedure Disconnect; override;
function GetMessages(const DirName: WideString): IMessages;
property DefaultInterface: IDropDirectory read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TDropDirectoryProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TDropDirectory
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TDropDirectoryProperties = class(TPersistent)
private
FServer: TDropDirectory;
function GetDefaultInterface: IDropDirectory;
constructor Create(AServer: TDropDirectory);
protected
public
property DefaultInterface: IDropDirectory read GetDefaultInterface;
published
end;
{$ENDIF}

// *********************************************************************//
// The Class CoSMTPConnector provides a Create and CreateRemote method to
// create instances of the default interface ISMTPScriptConnector exposed by
// the CoClass SMTPConnector. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSMTPConnector = class
class function Create: ISMTPScriptConnector;
class function CreateRemote(const MachineName: string): ISMTPScriptConnector;
end;

// *********************************************************************//
// The Class CoNNTPEarlyConnector provides a Create and CreateRemote method to
// create instances of the default interface INNTPEarlyScriptConnector exposed by
// the CoClass NNTPEarlyConnector. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoNNTPEarlyConnector = class
class function Create: INNTPEarlyScriptConnector;
class function CreateRemote(const MachineName: string): INNTPEarlyScriptConnector;
end;

// *********************************************************************//
// The Class CoNNTPPostConnector provides a Create and CreateRemote method to
// create instances of the default interface INNTPPostScriptConnector exposed by
// the CoClass NNTPPostConnector. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoNNTPPostConnector = class
class function Create: INNTPPostScriptConnector;
class function CreateRemote(const MachineName: string): INNTPPostScriptConnector;
end;

// *********************************************************************//
// The Class CoNNTPFinalConnector provides a Create and CreateRemote method to
// create instances of the default interface INNTPFinalScriptConnector exposed by
// the CoClass NNTPFinalConnector. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoNNTPFinalConnector = class
class function Create: INNTPFinalScriptConnector;
class function CreateRemote(const MachineName: string): INNTPFinalScriptConnector;
end;

procedure Register;

resourcestring
dtlServerPage = 'ActiveX';

dtlOcxPage = 'ActiveX';

implementation

uses ComObj;

class function CoMessage.Create: IMessage;
begin
Result := CreateComObject(CLASS_Message) as IMessage;
end;

class function CoMessage.CreateRemote(const MachineName: string): IMessage;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Message) as IMessage;
end;

procedure TMessage.InitServerData;
const
CServerData: TServerData = (
ClassID: '{CD000001-8B95-11D1-82DB-00C04FB1625D}';
IntfIID: '{CD000020-8B95-11D1-82DB-00C04FB1625D}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TMessage.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IMessage;
end;
end;

procedure TMessage.ConnectTo(svrIntf: IMessage);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TMessage.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TMessage.GetDefaultInterface: IMessage;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TMessage.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TMessageProperties.Create(Self);
{$ENDIF}
end;

destructor TMessage.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TMessage.GetServerProperties: TMessageProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TMessage.Get_BCC: WideString;
begin
Result := DefaultInterface.BCC;
end;

procedure TMessage.Set_BCC(const pBCC: WideString);
{ Warning: The property BCC has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.BCC := pBCC;
end;

function TMessage.Get_CC: WideString;
begin
Result := DefaultInterface.CC;
end;

procedure TMessage.Set_CC(const pCC: WideString);
{ Warning: The property CC has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.CC := pCC;
end;

function TMessage.Get_FollowUpTo: WideString;
begin
Result := DefaultInterface.FollowUpTo;
end;

procedure TMessage.Set_FollowUpTo(const pFollowUpTo: WideString);
{ Warning: The property FollowUpTo has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.FollowUpTo := pFollowUpTo;
end;

function TMessage.Get_From: WideString;
begin
Result := DefaultInterface.From;
end;

procedure TMessage.Set_From(const pFrom: WideString);
{ Warning: The property From has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.From := pFrom;
end;

function TMessage.Get_Keywords: WideString;
begin
Result := DefaultInterface.Keywords;
end;

procedure TMessage.Set_Keywords(const pKeywords: WideString);
{ Warning: The property Keywords has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Keywords := pKeywords;
end;

function TMessage.Get_MimeFormatted: WordBool;
begin
Result := DefaultInterface.MimeFormatted;
end;

procedure TMessage.Set_MimeFormatted(pMimeFormatted: WordBool);
begin
DefaultInterface.Set_MimeFormatted(pMimeFormatted);
end;

function TMessage.Get_Newsgroups: WideString;
begin
Result := DefaultInterface.Newsgroups;
end;

procedure TMessage.Set_Newsgroups(const pNewsgroups: WideString);
{ Warning: The property Newsgroups has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Newsgroups := pNewsgroups;
end;

function TMessage.Get_Organization: WideString;
begin
Result := DefaultInterface.Organization;
end;

procedure TMessage.Set_Organization(const pOrganization: WideString);
{ Warning: The property Organization has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Organization := pOrganization;
end;

function TMessage.Get_ReceivedTime: TDateTime;
begin
Result := DefaultInterface.ReceivedTime;
end;

function TMessage.Get_ReplyTo: WideString;
begin
Result := DefaultInterface.ReplyTo;
end;

procedure TMessage.Set_ReplyTo(const pReplyTo: WideString);
{ Warning: The property ReplyTo has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ReplyTo := pReplyTo;
end;

function TMessage.Get_DSNOptions: CdoDSNOptions;
begin
Result := DefaultInterface.DSNOptions;
end;

procedure TMessage.Set_DSNOptions(pDSNOptions: CdoDSNOptions);
begin
DefaultInterface.Set_DSNOptions(pDSNOptions);
end;

function TMessage.Get_SentOn: TDateTime;
begin
Result := DefaultInterface.SentOn;
end;

function TMessage.Get_Subject: WideString;
begin
Result := DefaultInterface.Subject;
end;

procedure TMessage.Set_Subject(const pSubject: WideString);
{ Warning: The property Subject has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Subject := pSubject;
end;

function TMessage.Get_To_: WideString;
begin
Result := DefaultInterface.To_;
end;

procedure TMessage.Set_To_(const pTo: WideString);
{ Warning: The property To_ has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.To_ := pTo;
end;

function TMessage.Get_TextBody: WideString;
begin
Result := DefaultInterface.TextBody;
end;

procedure TMessage.Set_TextBody(const pTextBody: WideString);
{ Warning: The property TextBody has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.TextBody := pTextBody;
end;

function TMessage.Get_HTMLBody: WideString;
begin
Result := DefaultInterface.HTMLBody;
end;

procedure TMessage.Set_HTMLBody(const pHTMLBody: WideString);
{ Warning: The property HTMLBody has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.HTMLBody := pHTMLBody;
end;

function TMessage.Get_Attachments: IBodyParts;
begin
Result := DefaultInterface.Attachments;
end;

function TMessage.Get_Sender: WideString;
begin
Result := DefaultInterface.Sender;
end;

procedure TMessage.Set_Sender(const pSender: WideString);
{ Warning: The property Sender has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Sender := pSender;
end;

function TMessage.Get_Configuration: IConfiguration;
begin
Result := DefaultInterface.Configuration;
end;

procedure TMessage.Set_Configuration(const pConfiguration: IConfiguration);
begin
DefaultInterface.Set_Configuration(pConfiguration);
end;

procedure TMessage._Set_Configuration(const pConfiguration: IConfiguration);
{ Warning: The property Configuration has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Configuration := pConfiguration;
end;

function TMessage.Get_AutoGenerateTextBody: WordBool;
begin
Result := DefaultInterface.AutoGenerateTextBody;
end;

procedure TMessage.Set_AutoGenerateTextBody(pAutoGenerateTextBody: WordBool);
begin
DefaultInterface.Set_AutoGenerateTextBody(pAutoGenerateTextBody);
end;

function TMessage.Get_EnvelopeFields: Fields;
begin
Result := DefaultInterface.EnvelopeFields;
end;

function TMessage.Get_TextBodyPart: IBodyPart;
begin
Result := DefaultInterface.TextBodyPart;
end;

function TMessage.Get_HTMLBodyPart: IBodyPart;
begin
Result := DefaultInterface.HTMLBodyPart;
end;

function TMessage.Get_BodyPart: IBodyPart;
begin
Result := DefaultInterface.BodyPart;
end;

function TMessage.Get_DataSource: IDataSource;
begin
Result := DefaultInterface.DataSource;
end;

function TMessage.Get_Fields: Fields;
begin
Result := DefaultInterface.Fields;
end;

function TMessage.Get_MDNRequested: WordBool;
begin
Result := DefaultInterface.MDNRequested;
end;

procedure TMessage.Set_MDNRequested(pMDNRequested: WordBool);
begin
DefaultInterface.Set_MDNRequested(pMDNRequested);
end;

function TMessage.AddRelatedBodyPart(const URL: WideString; const Reference: WideString;
ReferenceType: CdoReferenceType; const UserName: WideString;
const Password: WideString): IBodyPart;
begin
Result := DefaultInterface.AddRelatedBodyPart(URL, Reference, ReferenceType, UserName, Password);
end;

function TMessage.AddAttachment(const URL: WideString; const UserName: WideString;
const Password: WideString): IBodyPart;
begin
Result := DefaultInterface.AddAttachment(URL, UserName, Password);
end;

procedure TMessage.CreateMHTMLBody(const URL: WideString; Flags: CdoMHTMLFlags;
const UserName: WideString; const Password: WideString);
begin
DefaultInterface.CreateMHTMLBody(URL, Flags, UserName, Password);
end;

function TMessage.Forward: IMessage;
begin
Result := DefaultInterface.Forward;
end;

procedure TMessage.Post;
begin
DefaultInterface.Post;
end;

function TMessage.PostReply: IMessage;
begin
Result := DefaultInterface.PostReply;
end;

function TMessage.Reply: IMessage;
begin
Result := DefaultInterface.Reply;
end;

function TMessage.ReplyAll: IMessage;
begin
Result := DefaultInterface.ReplyAll;
end;

procedure TMessage.Send;
begin
DefaultInterface.Send;
end;

function TMessage.GetStream: _Stream;
begin
Result := DefaultInterface.GetStream;
end;

function TMessage.GetInterface(const Interface_: WideString): IDispatch;
begin
Result := DefaultInterface.GetInterface(Interface_);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TMessageProperties.Create(AServer: TMessage);
begin
inherited Create;
FServer := AServer;
end;

function TMessageProperties.GetDefaultInterface: IMessage;
begin
Result := FServer.DefaultInterface;
end;

function TMessageProperties.Get_BCC: WideString;
begin
Result := DefaultInterface.BCC;
end;

procedure TMessageProperties.Set_BCC(const pBCC: WideString);
{ Warning: The property BCC has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.BCC := pBCC;
end;

function TMessageProperties.Get_CC: WideString;
begin
Result := DefaultInterface.CC;
end;

procedure TMessageProperties.Set_CC(const pCC: WideString);
{ Warning: The property CC has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.CC := pCC;
end;

function TMessageProperties.Get_FollowUpTo: WideString;
begin
Result := DefaultInterface.FollowUpTo;
end;

procedure TMessageProperties.Set_FollowUpTo(const pFollowUpTo: WideString);
{ Warning: The property FollowUpTo has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.FollowUpTo := pFollowUpTo;
end;

function TMessageProperties.Get_From: WideString;
begin
Result := DefaultInterface.From;
end;

procedure TMessageProperties.Set_From(const pFrom: WideString);
{ Warning: The property From has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.From := pFrom;
end;

function TMessageProperties.Get_Keywords: WideString;
begin
Result := DefaultInterface.Keywords;
end;

procedure TMessageProperties.Set_Keywords(const pKeywords: WideString);
{ Warning: The property Keywords has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Keywords := pKeywords;
end;

function TMessageProperties.Get_MimeFormatted: WordBool;
begin
Result := DefaultInterface.MimeFormatted;
end;

procedure TMessageProperties.Set_MimeFormatted(pMimeFormatted: WordBool);
begin
DefaultInterface.Set_MimeFormatted(pMimeFormatted);
end;

function TMessageProperties.Get_Newsgroups: WideString;
begin
Result := DefaultInterface.Newsgroups;
end;

procedure TMessageProperties.Set_Newsgroups(const pNewsgroups: WideString);
{ Warning: The property Newsgroups has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Newsgroups := pNewsgroups;
end;

function TMessageProperties.Get_Organization: WideString;
begin
Result := DefaultInterface.Organization;
end;

procedure TMessageProperties.Set_Organization(const pOrganization: WideString);
{ Warning: The property Organization has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Organization := pOrganization;
end;

function TMessageProperties.Get_ReceivedTime: TDateTime;
begin
Result := DefaultInterface.ReceivedTime;
end;

function TMessageProperties.Get_ReplyTo: WideString;
begin
Result := DefaultInterface.ReplyTo;
end;

procedure TMessageProperties.Set_ReplyTo(const pReplyTo: WideString);
{ Warning: The property ReplyTo has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ReplyTo := pReplyTo;
end;

function TMessageProperties.Get_DSNOptions: CdoDSNOptions;
begin
Result := DefaultInterface.DSNOptions;
end;

procedure TMessageProperties.Set_DSNOptions(pDSNOptions: CdoDSNOptions);
begin
DefaultInterface.Set_DSNOptions(pDSNOptions);
end;

function TMessageProperties.Get_SentOn: TDateTime;
begin
Result := DefaultInterface.SentOn;
end;

function TMessageProperties.Get_Subject: WideString;
begin
Result := DefaultInterface.Subject;
end;

procedure TMessageProperties.Set_Subject(const pSubject: WideString);
{ Warning: The property Subject has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Subject := pSubject;
end;

function TMessageProperties.Get_To_: WideString;
begin
Result := DefaultInterface.To_;
end;

procedure TMessageProperties.Set_To_(const pTo: WideString);
{ Warning: The property To_ has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.To_ := pTo;
end;

function TMessageProperties.Get_TextBody: WideString;
begin
Result := DefaultInterface.TextBody;
end;

procedure TMessageProperties.Set_TextBody(const pTextBody: WideString);
{ Warning: The property TextBody has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.TextBody := pTextBody;
end;

function TMessageProperties.Get_HTMLBody: WideString;
begin
Result := DefaultInterface.HTMLBody;
end;

procedure TMessageProperties.Set_HTMLBody(const pHTMLBody: WideString);
{ Warning: The property HTMLBody has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.HTMLBody := pHTMLBody;
end;

function TMessageProperties.Get_Attachments: IBodyParts;
begin
Result := DefaultInterface.Attachments;
end;

function TMessageProperties.Get_Sender: WideString;
begin
Result := DefaultInterface.Sender;
end;

procedure TMessageProperties.Set_Sender(const pSender: WideString);
{ Warning: The property Sender has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Sender := pSender;
end;

function TMessageProperties.Get_Configuration: IConfiguration;
begin
Result := DefaultInterface.Configuration;
end;

procedure TMessageProperties.Set_Configuration(const pConfiguration: IConfiguration);
begin
DefaultInterface.Set_Configuration(pConfiguration);
end;

procedure TMessageProperties._Set_Configuration(const pConfiguration: IConfiguration);
{ Warning: The property Configuration has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Configuration := pConfiguration;
end;

function TMessageProperties.Get_AutoGenerateTextBody: WordBool;
begin
Result := DefaultInterface.AutoGenerateTextBody;
end;

procedure TMessageProperties.Set_AutoGenerateTextBody(pAutoGenerateTextBody: WordBool);
begin
DefaultInterface.Set_AutoGenerateTextBody(pAutoGenerateTextBody);
end;

function TMessageProperties.Get_EnvelopeFields: Fields;
begin
Result := DefaultInterface.EnvelopeFields;
end;

function TMessageProperties.Get_TextBodyPart: IBodyPart;
begin
Result := DefaultInterface.TextBodyPart;
end;

function TMessageProperties.Get_HTMLBodyPart: IBodyPart;
begin
Result := DefaultInterface.HTMLBodyPart;
end;

function TMessageProperties.Get_BodyPart: IBodyPart;
begin
Result := DefaultInterface.BodyPart;
end;

function TMessageProperties.Get_DataSource: IDataSource;
begin
Result := DefaultInterface.DataSource;
end;

function TMessageProperties.Get_Fields: Fields;
begin
Result := DefaultInterface.Fields;
end;

function TMessageProperties.Get_MDNRequested: WordBool;
begin
Result := DefaultInterface.MDNRequested;
end;

procedure TMessageProperties.Set_MDNRequested(pMDNRequested: WordBool);
begin
DefaultInterface.Set_MDNRequested(pMDNRequested);
end;

{$ENDIF}

class function CoConfiguration.Create: IConfiguration;
begin
Result := CreateComObject(CLASS_Configuration) as IConfiguration;
end;

class function CoConfiguration.CreateRemote(const MachineName: string): IConfiguration;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Configuration) as IConfiguration;
end;

procedure TConfiguration.InitServerData;
const
CServerData: TServerData = (
ClassID: '{CD000002-8B95-11D1-82DB-00C04FB1625D}';
IntfIID: '{CD000022-8B95-11D1-82DB-00C04FB1625D}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TConfiguration.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IConfiguration;
end;
end;

procedure TConfiguration.ConnectTo(svrIntf: IConfiguration);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TConfiguration.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TConfiguration.GetDefaultInterface: IConfiguration;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TConfiguration.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TConfigurationProperties.Create(Self);
{$ENDIF}
end;

destructor TConfiguration.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TConfiguration.GetServerProperties: TConfigurationProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TConfiguration.Get_Fields: Fields;
begin
Result := DefaultInterface.Fields;
end;

procedure TConfiguration.Load(LoadFrom: CdoConfigSource; const URL: WideString);
begin
DefaultInterface.Load(LoadFrom, URL);
end;

function TConfiguration.GetInterface(const Interface_: WideString): IDispatch;
begin
Result := DefaultInterface.GetInterface(Interface_);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TConfigurationProperties.Create(AServer: TConfiguration);
begin
inherited Create;
FServer := AServer;
end;

function TConfigurationProperties.GetDefaultInterface: IConfiguration;
begin
Result := FServer.DefaultInterface;
end;

function TConfigurationProperties.Get_Fields: Fields;
begin
Result := DefaultInterface.Fields;
end;

{$ENDIF}

class function CoDropDirectory.Create: IDropDirectory;
begin
Result := CreateComObject(CLASS_DropDirectory) as IDropDirectory;
end;

class function CoDropDirectory.CreateRemote(const MachineName: string): IDropDirectory;
begin
Result := CreateRemoteComObject(MachineName, CLASS_DropDirectory) as IDropDirectory;
end;

procedure TDropDirectory.InitServerData;
const
CServerData: TServerData = (
ClassID: '{CD000004-8B95-11D1-82DB-00C04FB1625D}';
IntfIID: '{CD000024-8B95-11D1-82DB-00C04FB1625D}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TDropDirectory.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IDropDirectory;
end;
end;

procedure TDropDirectory.ConnectTo(svrIntf: IDropDirectory);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TDropDirectory.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TDropDirectory.GetDefaultInterface: IDropDirectory;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TDropDirectory.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TDropDirectoryProperties.Create(Self);
{$ENDIF}
end;

destructor TDropDirectory.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TDropDirectory.GetServerProperties: TDropDirectoryProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TDropDirectory.GetMessages(const DirName: WideString): IMessages;
begin
Result := DefaultInterface.GetMessages(DirName);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TDropDirectoryProperties.Create(AServer: TDropDirectory);
begin
inherited Create;
FServer := AServer;
end;

function TDropDirectoryProperties.GetDefaultInterface: IDropDirectory;
begin
Result := FServer.DefaultInterface;
end;

{$ENDIF}

class function CoSMTPConnector.Create: ISMTPScriptConnector;
begin
Result := CreateComObject(CLASS_SMTPConnector) as ISMTPScriptConnector;
end;

class function CoSMTPConnector.CreateRemote(const MachineName: string): ISMTPScriptConnector;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SMTPConnector) as ISMTPScriptConnector;
end;

class function CoNNTPEarlyConnector.Create: INNTPEarlyScriptConnector;
begin
Result := CreateComObject(CLASS_NNTPEarlyConnector) as INNTPEarlyScriptConnector;
end;

class function CoNNTPEarlyConnector.CreateRemote(const MachineName: string): INNTPEarlyScriptConnector;
begin
Result := CreateRemoteComObject(MachineName, CLASS_NNTPEarlyConnector) as INNTPEarlyScriptConnector;
end;

class function CoNNTPPostConnector.Create: INNTPPostScriptConnector;
begin
Result := CreateComObject(CLASS_NNTPPostConnector) as INNTPPostScriptConnector;
end;

class function CoNNTPPostConnector.CreateRemote(const MachineName: string): INNTPPostScriptConnector;
begin
Result := CreateRemoteComObject(MachineName, CLASS_NNTPPostConnector) as INNTPPostScriptConnector;
end;

class function CoNNTPFinalConnector.Create: INNTPFinalScriptConnector;
begin
Result := CreateComObject(CLASS_NNTPFinalConnector) as INNTPFinalScriptConnector;
end;

class function CoNNTPFinalConnector.CreateRemote(const MachineName: string): INNTPFinalScriptConnector;
begin
Result := CreateRemoteComObject(MachineName, CLASS_NNTPFinalConnector) as INNTPFinalScriptConnector;
end;

procedure Register;
begin
RegisterComponents(dtlServerPage, [TMessage, TConfiguration, TDropDirectory]);
end;

end.