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.

delphi 保存网页MHT,布布扣,bubuko.com

时间: 2024-10-20 00:07:04

delphi 保存网页MHT的相关文章

delphi 保存网页

保存网页. html uses ActiveX; procedure TForm1.Button1Click(Sender: TObject);var  persist :IPersistfile;begin  persist := (webbrowser1.document as ipersistfile);  persist.save('c:\a.html',false);end; procedure TForm1.FormCreate(Sender: TObject);begin  Web

save a web page as a single file (mht format) using Delphi code

Here's how to save a web page as a single file (mht format) using Delphi code: uses CDO_TLB, ADODB_TLB;...PRocedure WB_SaveAs_MHT(WB: TWebBrowser; FileName: TFileName);var Msg: IMessage; Conf: IConfiguration; Stream: _Stream; URL : widestring;begin i

使用TWebBrowser组件保存网页为html和mht文件 收藏

一.保存为HTML文件 uses ActiveX;...procedure WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ;var  PersistStream: IPersistStreamInit;  Stream: IStream;  FileStream: TFileStream;begin  if not Assigned(WB.Document) then  begin    ShowMessage('Docume

chrome保存网页为单个文件(mht格式)

网页归档(英语:MIME HTML或MIME Encapsulation of Aggregate HTML Documents,又称单一文件网页或网页封存盘案)为以多用途互联网邮件扩展格式,将一个多附件网页(如包含大量图片.Flash动画.Java小程序的网页)存储为单一文件[1],可用于发送HTML电子邮件,此单一文件即称为一网页封存盘案,其扩展名为.mht.这种格式有时被简称为MHT. chrome默认是没有该功能,一般情况下,我都是把要保存的网页,复制到ie打开,然后再保存.但是这样太麻

保存网页为图片——滚动截取IE(WebBrowse)

转自:http://www.cnblogs.com/IceAir/archive/2011/04/11/2012744.html 对IE进行编程一直觉得是相当可怕的事情,里面的接口.函数.事件之多,解释之乱,需要了解的方方面面知识之博,让我仿佛看到了微软就是造物主,因为它已成功制造了这样的混沌,弄就了宇宙的初始状态…… 近来做个项目,要截取网页,试了获取mht,开始倒是成功了,但不知装了什么软件后,就再也无法保存成mht了,查了一堆资料,修复了一轮,又可以部份保存成功,如此不稳定肯定不能应用,放

Delphi WebBrowser控件的使用(大全 good)

Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application      如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch).如果在宿主对象中自动化对象无效,程序将返回WebBrowser控件的自动化对象2.Parent       返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口3.Containe       返回WebBrowser控件容器的自动化对象.通常该值与Pare

Delphi常用系统函数总结

字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S := S1 + S2 + S3 ...; 相同. 将字符串相加. 函数原型 function Copy(S: string; Index, Count: Integer): string;说明 S : 字符串. Indexd : 从第几位开始拷贝. Count : 总共要拷贝几位. 从母字符串拷贝至另一个字符串. 函数原型 pro

最新的Delphi版本号对照

The CompilerVersion constant identifies the internal version number of the Delphi compiler. It is defined in the System unit and may be referenced either in code just as any other constant: if CompilerVersion = 20 then sCompilerName := 'Delphi 2009';

Delphi XE10 dxLayoutControl 控件应用指南

http://www.cnblogs.com/Bonny.Wong/p/7440288.html DevExpress VCL套件是一套非常强大的界面控件,可惜关于Delphi开发方面的说明太少,有些控件使用起来一头雾水,不知从何下手.本节详细介绍在Delphi Xe10 Seattle中如何利用dxLayoutControl 控件来做界面布局. 1.  首先从工具箱面板中将dxLayoutControl放在Form上,设置2个关键属性如下: 属性 属性值 说明 Align alClient 一