Terrasoft CRM 3.0 SDK > Libraries > TSObjectLibrary > Files > TSObjectLibrary.idl
ContentsIndex
TSObjectLibrary.idl
Body Source
// ---------------------------------------------------------------------------
// Terrasoft Objects Library
// Library Number - 1
// ---------------------------------------------------------------------------
[
	uuid(AAA1B3FF-32C3-4B8A-9149-6F665B1F17A8),
	version(3.0),
	helpstring("Terrasoft Objects Library")
]
library TSObjectLibrary
{
	importlib("STDOLE2.TLB");

	typedef [uuid(98506EDB-E1CC-42A4-B3AB-C496C82466D7), version(1.0)]
	enum _SystemServiceTypeEnum {
		sstAdminUnitsTable = 0,
		sstContactsTable = 1,
		sstDatabaseInfoTable = 2,
		sstDeleteServiceQuery = 3,
		sstInsertDatabaseLogQuery = 4,
		sstInsertServiceProfileDataQuery = 5,
		sstInsertServiceQuery = 6,
		sstLicensesTable = 7,
		sstSelectContactQuery = 8,
		sstSelectDatabaseInfoQuery = 9,
		sstSelectGroupPasswordChangePeriodTypeQuery = 10,
		sstSelectInfoByCodeQuery = 11,
		sstSelectInfoByIDQuery = 12,
		sstSelectInfoQuery = 13,
		sstSelectLicensesQuery = 14,
		sstSelectServerDateTimeQuery = 15,
		sstSelectServiceProfileDataQuery = 16,
		sstSelectServiceVersionQuery = 17,
		sstSelectServiceXMLDataQuery = 18,
		sstSelectSystemSettingsQuery = 19,
		sstSelectUserInfoQuery = 20,
		sstSelectUserInGroupQuery = 21,
		sstServicesTable = 22,
		sstSystemSettinsTable = 23,
		sstUpdateServiceProfileDataQuery = 24,
		sstUpdateServiceQuery = 25,
		sstUpdateServiceUSIQuery = 26,
		sstUpdateUserPasswordQuery = 27,
		sstUserInGroupTable = 28,
		sstSelectServiceLockInformationQuery = 29,
		sstUpdateServiceLockInformationQuery = 30,
		sstAccountsTable = 31
	} SystemServiceTypeEnum;

	typedef [uuid(4AA14168-4894-44de-88CE-5936D5EBFB3E), version(1.0)]
	enum _ObjectStateEnum {
		osSerialize = 1,
		osAssignObject = 2,
		osDeserialize = 4,
		osDestroying = 8
	} ObjectStateEnum;

	typedef [uuid(A7DDE4A5-0EA5-487D-AB87-AB6C673EDCCC), version(1.0)]
	enum _TableGroupAccessLevelEnum {
		tgalRead = 1,
		tgalInsert = 2,
		tgalUpdate = 4,
		tgalDelete = 8
	} TableGroupAccessLevelEnum;

	typedef [uuid(2020921C-8D25-4AB1-BF5E-5F6C7AD79291), version(1.0)]
	enum _RecordAccessLevelEnum {
		ralRead = 1,
		ralWrite = 2,
		ralDelete = 4,
		ralGrantAccess = 8
	} RecordAccessLevelEnum;

	typedef [uuid(889C853E-DD40-45B5-BB20-47A73E1EA260), version(1.0)]
	enum _TableFieldAccessLevelEnum {
		tfalDenyAccess = 0,
		tfalReadAccess = 1,
		tfalFullAccess = 2
	} TableFieldAccessLevelEnum;

	typedef [uuid(74E6DA7E-A4F5-46DC-BCF4-6EBD383614A0), version(1.0)]
	enum _FileAccessTypeEnum {
		fatNone = 0,
		fatRead = 1,
		fatReadWrite = 2
	} FileAccessTypeEnum;

	typedef [uuid(D5ED9AE3-9947-46E1-82C0-79539B02A61A), version(1.0)]
	enum _JoinTypeEnum {
		jtInner = 0,
		jtLeftOuter = 1,
		jtRightOuter = 2,
		jtFullOuter = 3
	} JoinTypeEnum;

	typedef [uuid(D10CC1DC-ED76-419A-8656-8CF556858F1F), version(1.0)]
	enum _SummaryTypeEnum {
		stNone = 0,
		stAvg = 1,
		stCount = 2,
		stMax = 3,
		stMin = 4,
		stSum = 5
	} SummaryTypeEnum;

	typedef [uuid(06EC1219-F726-4FAA-B363-D7BF2310FFF3), version(1.0)]
	enum _OrderTypeEnum {
		otNone = 0,
		otAsc = 1,
		otDesc = 2
	} OrderTypeEnum;

	typedef [uuid(203B0024-E905-4E98-A965-F8CBDF376346), version(1.0)]
	enum _SQLDataTypeEnum {
		sdtIdentity = 0,
		sdtInteger = 1,
		sdtFloat = 2,
		sdtString = 3,
		sdtDateTime = 4,
		sdtBoolean = 5,
		sdtBlob = 6,
		sdtGUID = 7,
		sdtUnicodeString = 8
	} SQLDataTypeEnum;

	typedef [uuid(D6EE3283-D467-47D0-A9A3-9F40EB102309), version(1.0)]
	enum _SQLFunctionTypeEnum {
		sftNone = 0,
		sftSysdate = 1,
		sftCurrentUserID = 2
	} SQLFunctionTypeEnum;

	typedef [uuid(33B9B860-7DE3-46AE-A918-B7F6EAF1EF1F), version(1.0)]
	enum _ParamDataTypeEnum {
		pdtIdentity = 0,
		pdtInteger = 1,
		pdtFloat = 2,
		pdtString = 3,
		pdtDateTime = 4,
		pdtBoolean = 5,
		pdtBlob = 6,
		pdtGUID = 7,
		pdtUnicodeString = 8,
		pdtFunction = 9
	} ParamDataTypeEnum;

	typedef [uuid(C7EE3A66-95CC-482d-A178-1DC036F11389), version(1.0)]
	enum _ColumnTypeEnum {
		ctGeneral = 0,
		ctConst = 1,
		ctSubSelect = 2,
		ctSQLText = 3
	} ColumnTypeEnum;

	typedef [uuid(152BF950-055C-4AC6-9B67-6E69FDAC477E), version(1.0)]
	enum _DatasetStateEnum {
		dstInactive = 0,
		dstBrowse = 1,
		dstEdit = 2,
		dstInsert = 3,
		dstCalcFields = 4
	} DatasetStateEnum;

	typedef [uuid(B37F7AB0-79CA-4DA6-9222-279B20DC1926), version(1.0)]
	enum _LogMessageTypeEnum {
		lmtInformation = 0,
		lmtWarning = 1,
		lmtError = 2
	} LogMessageTypeEnum;

	typedef [uuid(32F2E20E-1B75-4CC9-8F7F-3F2FA6ADDCDD), version(1.0)]
	enum _DataFieldTypeEnum {
		dftString = 0,
		dftInteger = 1,
		dftFloat = 2,
		dftBool = 3,
		dftDateTime = 4,
		dftBlob = 5,
		dftLookup = 6,
		dftEnum = 7,
		dftCalc = 8
	} DataFieldTypeEnum;

	typedef [uuid(4D3507D4-1D8D-4C82-BEEF-0B50BFBD4D55), version(1.0)]
	enum _ScriptStateEnum {
		ssNotPrepared = 0,
		ssPreparing = 1,
		ssPrepared = 2
	} ScriptStateEnum;

	typedef [uuid(8A6E372C-1CCC-457C-BC28-C8DB5883669F), version(1.0)]
	enum _LogicalOperatorTypeEnum {
		lotAnd = 0,
		lotOr = 1
	} LogicalOperatorTypeEnum;

	typedef [uuid(D8861A69-7F2A-484A-A32B-FC28FECB223D), version(1.0)]
	enum _CompareOperatorTypeEnum {
		cotEqual = 0,
		cotNotEqual = 1,
		cotLarger = 2,
		cotSmaller = 3,
		cotLargerOrEqual = 4,
		cotSmallerOrEqual = 5
	} CompareOperatorTypeEnum;

	typedef [uuid(BC99E7F0-5C45-4EB4-B47F-0ACF8CF3330E), version(1.0)]
	enum _LikeTypeEnum {
		ltEqual = 0,
		ltContain = 1,
		ltStartsWith = 2,
		ltEndsWith = 3
	} LikeTypeEnum;

	typedef [uuid(6D95A0F9-7C38-4AC7-A7B2-44BD8B0AEC47), version(1.0)]
	enum _DateTimeOperatorTypeEnum {
		dotEqual = 0,
		dotNotEqual = 1,
		dotSmaller = 2,
		dotSmallerOrEqual = 3,
		dotMore = 4,
		dotMoreOrEqual = 5,
		dotYesterday = 6,
		dotToday = 7,
		dotTomorrow = 8,
		dotPriorWeek = 9,
		dotPriorMonth = 10,
		dotPriorQuarter = 11,
		dotPriorHalfYear = 12,
		dotPriorYear = 13,
		dotLastMonth = 14,
		dotLastQuarter = 15,
		dotLastHalfYear = 16,
		dotLastYear = 17,
		dotCurrentWeek = 18,
		dotCurrentMonth = 19,
		dotCurrentQuarter = 20,
		dotCurrentHalfYear = 21,
		dotCurrentYear = 22,
		dotNextWeek = 23,
		dotNextMonth = 24,
		dotNextQuarter = 25,
		dotNextHalfYear = 26,
		dotNextYear = 27
	} DateTimeOperatorTypeEnum;

	typedef [uuid(E9041173-7384-4F95-B127-7C5363BF54BD), version(1.0)]
	enum _SaveDatabaseObjectActionEnum {
		sdoaNone = 0,
		sdoaSave = 1,
		sdoaPrompt = 2
	} SaveDatabaseObjectActionEnum;

	typedef [uuid(E1E5E65B-1421-4296-88BF-47827D74930B), version(1.0)]
	enum _FilterTypeEnum {
		ftIsNull = 0,
		ftCompare = 1,
		ftLike = 2,
		ftExists = 3,
		ftBetween = 4,
		ftInclude = 5,
		ftFilters = 6,
		ftUser = 7
	} FilterTypeEnum;

	typedef [uuid(28947F47-A64D-43FD-9445-652980E8B00A), version(1.0)]
	enum _FilterExpressionTypeEnum {
		fetParam = 0,
		fetField = 1,
		fetSelect = 2
	} FilterExpressionTypeEnum;

	typedef [uuid(05AF38C0-34E9-48CC-8D46-4C7BFAA0411B), version(1.0)]
	enum _TextOperatorTypeEnum {
		totEqual = 0,
		totNotEqual = 1,
		totContain = 2,
		totNotContain = 3,
		totStartsWith = 4,
		totEndsWith = 5
	} TextOperatorTypeEnum;

	typedef [uuid(C4DFBDB2-73DF-4C64-9991-0955944CEE51), version(1.0)]
	enum _FiltersBuilderLogicalOperatorTypeEnum {
		flotAnd = 0,
		flotOr = 1,
		flotAndNot = 2,
		flotOrNot = 3,
	} FiltersBuilderLogicalOperatorTypeEnum;


	typedef [uuid(85B6D362-FC1F-4CCE-9308-E2AA9B49FC78), version(1.0)]
	enum _EqualOperatorTypeEnum {
		eotEqual = 0,
		eotNotEqual = 1
	} EqualOperatorTypeEnum;

	typedef [uuid(D4685A44-A017-410F-BDB1-6ABDEF58AF1C), version(1.0)]
	enum _ExtractTypeEnum {
		etCurrentDirectory = 0,
		etArchiveNameDirectory = 1,
		etCustomDirectory = 2
	} ExtractTypeEnum;

	typedef [uuid(D8E33211-BF02-4FC7-83B0-F3DD2565A70A), version(1.0)]
	enum _ExtractResultTypeEnum {
		ertSuccessful = 0,
		ertNotZipFileException = 1,
		ertNotFoundMultiPartException = 2,
		ertMainPartCorruptException = 3,
		ertMultiPartCorruptException = 4,
		ertUnknownException = 5
	} ExtractResultTypeEnum;

	typedef [uuid(63881954-D3B8-4493-AC37-516BF55CFD9C), version(1.0)]
	enum _FileTypeEnum {
		ftNone = 0,
		ftRepChangedData = 1,
		ftRepDeletedData = 2
	} FileTypeEnum;

	typedef [uuid(A0C90C48-0823-4128-9CD2-31493D88E800), version(1.0)]
	enum _UserFilterTypeEnum {
		uftString = 0,
		uftInteger = 1,
		uftFloat = 2,
		uftBool = 3,
		uftDateTime = 4,
		uftLookup = 6,
		uftEnum = 7
	} UserFilterTypeEnum;

	typedef [uuid(BEAF6E56-2BC4-4510-8AEC-3BDA0E9B288E), version(1.0)]
	enum _GroupPasswordChangePeriodType {
		gpcptInherited = 0,
		gpcpDay = 1,
		gpcpWeek = 2,
		gpcpMonth = 3,
		gpcpYear = 4,
		gpcpNeverExpires = 5
	} GroupPasswordChangePeriodType;

	interface ICoreObject;
	interface ICoreCollection;
	dispinterface ICoreCollectionEvents;
	interface IService;
	interface IDBEngine;
	interface IDBExecutor;
	interface ICoreCollectionItem;
	interface IParameters;
	interface IRelation;
	interface IParameter;
	interface ITableFields;
	interface ITableField;
	interface ITable;
	interface ISelect;
	interface IColumn;
	interface IColumns;
	interface IJoin;
	interface IJoins;
	interface IGeneralColumn;
	interface IConstColumn;
	interface ISubSelectColumn;
	interface ISQLTextColumn;
	interface IConnector;
	dispinterface IConnectorEvents;
	interface IStringsList;
	interface IStringsCollection;
	interface IConfiguration;
	interface IConfigurations;
	interface IParametriticQuery;
	interface IModifyQuery;
	interface IInsertQuery;
	interface IUpdateQuery;
	interface IDeleteQuery;
	interface IDatabaseObject;
	interface IServiceType;
	interface IServiceTypes;
	interface IScriptableService;
	dispinterface IScriptableServiceEvents;
	interface ISelectQuery;
	interface ISystemServices;
	interface IServices;
	dispinterface IServicesEvents;
	interface IDBEngineType;
	interface IDBEngineTypes;
	interface IIndex;
	interface IIndexes;
	interface IIndexItem;
	dispinterface IDatasetEvents;
	interface ILog;
	dispinterface ILogEvents;
	interface IDataFields;
	interface IDataField;
	interface IStringDataField;
	interface IIntegerDataField;
	interface IFloatDataField;
	interface IBoolDataField;
	interface IDateTimeDataField;
	interface IBlobDataField;
	interface ILookupDataField;
	interface IEnumDataField;
	interface ICalcDataField;
	interface IScript;
	interface IProfiling;
	interface IServiceInfo;
	interface IScriptErrorInfo;
	interface IDataset;
	interface IMemoryDataset;
	interface IRelations;
	interface IScriptInclude;
	interface IScriptIncludes;
	interface IBaseFilter;
	interface IFilters;
	interface IFilter;
	interface IFilterExpressions;
	interface IFilterExpression;
	interface IParamFilterExpression;
	interface IFieldFilterExpression;
	interface ISelectFilterExpression;
	interface IIsNullFilter;
	interface IExistsFilter;
	interface ICompareFilter;
	interface IBetweenFilter;
	interface IIncludeFilter;
	interface ILikeFilter;
	interface IUserFilter;
	interface IStringUserFilter;
	interface IIntegerUserFilter;
	interface IFloatUserFilter;
	interface IBoolUserFilter;
	interface IDateTimeUserFilter;
	interface ILookupUserFilter;
	interface IEnumUserFilter;
	interface IDBDataset;
	interface IEventsDispatcher;
	interface IObjectEventsDispatcher;
	interface IObjectEventMethod;
	interface IXMLStorage;
	interface IXMLStorageNode;
	interface IEnum;
	interface IEnumItem;
	interface IScriptEnums;
	interface IScriptEnum;
	interface INamedValues;
	interface IUserInfo;
	interface IInsertSelectQuery;
	interface IColumnValue;
	interface IColumnsValues;
	interface ITableGroup;
	interface IValue;
	interface IObjectMetaDataList;
	interface IObjectMetaData;
	interface IObjectPropertyInfoList;
	interface IObjectPropertyInfo;
	interface IScriptUtils;
	interface IFiltersBuilder;
	interface IFiltersBuilderItems;
	interface IBaseFiltersBuilderItem;
	interface IFiltersBuilderItem;
	interface ITextFiltersBuilderItem;
	interface INumericFiltersBuilderItem;
	interface IBoolFiltersBuilderItem;
	interface IDateTimeFiltersBuilderItem;
	interface IUserFilterFiltersBuilderItem;
	interface ILicenses;
	interface ILicense;
	interface IArchiver;
	interface INotifyObject;
	interface IMacrosEngine;

	[
		odl,
		uuid(3F7CED4D-9CE3-4DBF-9D00-A2686E58A942),
		version(1.0),
		dual,
		oleautomation
	]
	interface ICoreObject : IDispatch {
		[id(100001), propget]
		HRESULT Connector([out, retval] IConnector** Value);
		[id(100001), propput]
		HRESULT Connector([in] IConnector* Value);

		[id(100002), propget]
		HRESULT ObjectState([out, retval] long* Value);
		[id(100002), propput]
		HRESULT ObjectState([in] long Value);

		[id(100003)]
		HRESULT Equal(
			[in] ICoreObject* CompareObject,
			[out, retval] VARIANT_BOOL* Value);

		[id(100004)]
		HRESULT AssignObject([in] ICoreObject* Src);

		[id(100005)]
		HRESULT CreateCopy([out, retval] ICoreObject** Value);

		[id(100006), propget]
		HRESULT CoClassGUID([out, retval] BSTR* Value);

		[id(100007)]
		HRESULT Serialize([in] IXMLStorageNode* Node);

		[id(100008)]
		HRESULT Deserialize([in] IXMLStorageNode* Node);
	};

	// -----------------------------------------------------------------------
	// ICoreCollection (1010XX)
	// -----------------------------------------------------------------------
	[
		odl,
		uuid(504D722D-89D2-44E5-8583-EFBD2953C360),
		version(1.0),
		dual,
		oleautomation
	]
	interface ICoreCollection : ICoreObject {
		[id(101013), propget]
		HRESULT CoreItemsByUID(
			[in] BSTR UID,
			[out, retval] ICoreCollectionItem** Value);

		[id(101014)]
		HRESULT CheckItemUID([in] BSTR UID);

		[id(101001)]
		HRESULT InsertItem(
			[in] long Index,
			[in] ICoreCollectionItem* Item);

		[id(101002)]
		HRESULT AddItem(
			[in] ICoreCollectionItem* Item,
			[out, retval] long* Value);

		[id(101003)]
		HRESULT Delete([in] long Index);

		[id(101004)]
		HRESULT RemoveItem(
			[in] ICoreCollectionItem* Item,
			[out, retval] long* Value);

		[id(101005)]
		HRESULT Move(
			[in] long CurrentIndex,
			[in] long NewIndex);

		[id(101006)]
		HRESULT Exchange(
			[in] long Index1,
			[in] long Index2);

		[id(101007)]
		HRESULT Clear();
		[id(101008), propget]

		HRESULT CoreItems(
			[in] long Index,
			[out, retval] ICoreCollectionItem** Value);

		[id(101009)]
		HRESULT GetIndexOfItem(
			[in] ICoreCollectionItem* Item,
			[out, retval] long* Value);

		[id(101010), propget]
		HRESULT Count([out, retval] long* Value);

		[id(101011), propget]
		HRESULT CoreItemsByKey(
			[in] BSTR KeyValue,
			[out, retval] ICoreCollectionItem** Value);

		[id(101012)]
		HRESULT CheckItemKey([in] BSTR KeyValue);
	};

	// -----------------------------------------------------------------------
	// ICoreCollectionEvents (1072XX)
	// -----------------------------------------------------------------------
	[
		uuid(734C4D9A-BBD1-4670-BDAA-6BB895144711)
	]
	dispinterface ICoreCollectionEvents {
		properties:
		methods:
			[id(107201)]
			HRESULT OnBeforeInsertItem(
				[in] ICoreCollection* Collection,
				[in] long Index,
				[in] ICoreCollectionItem* Item,
				[in] IValue* DoInsertItem);

			[id(107202)]
			HRESULT OnAfterInsertItem(
				[in] ICoreCollection* Collection,
				[in] long Index,
				[in] ICoreCollectionItem* Item);

			[id(107203)]
			HRESULT OnBeforeRemoveItem(
				[in] ICoreCollection* Collection,
				[in] ICoreCollectionItem* Item,
				[in] IValue* DoRemoveItem);

			[id(107204)]
			HRESULT OnAfterRemoveItem(
				[in] ICoreCollection* Collection,
				[in] ICoreCollectionItem* Item);

			[id(107205)]
			HRESULT OnBeforeMoveItem(
				[in] ICoreCollection* Collection,
				[in] ICoreCollectionItem* Item,
				[in] IValue* DoMoveItem);

			[id(107206)]
			HRESULT OnAfterMoveItem(
				[in] ICoreCollection* Collection,
				[in] ICoreCollectionItem* Item);

			[id(107207)]
			HRESULT OnBeforeClear(
				[in] ICoreCollection* Collection);

			[id(107208)]
			HRESULT OnAfterClear(
				[in] ICoreCollection* Collection);
	};

	[
		uuid(29CC38DF-B68A-490B-B220-A0EC9EFE0141),
		odl, dual, oleautomation
	]
	interface IService : ICoreObject {
		[id(100301), propget]
		HRESULT ID([out, retval] BSTR* Value);
		[id(100301), propput]
		HRESULT ID([in] BSTR Value);

		[id(100307), propget]
		HRESULT UID([out, retval] BSTR* Value);
		[id(100307), propput]
		HRESULT UID([in] BSTR Value);                

		[id(100302), propget]
		HRESULT USI([out, retval] BSTR* Value);
		[id(100302), propput]
		HRESULT USI([in] BSTR Value);

		[id(100303), propget]
		HRESULT ServiceTypeCode([out, retval] BSTR* Value);
		[id(100303), propput]
		HRESULT ServiceTypeCode([in] BSTR Value);

		[id(100304), propget]
		HRESULT Caption([out, retval] BSTR* Value);
		[id(100304), propput]
		HRESULT Caption([in] BSTR Value);

		[id(100305), propget]
		HRESULT Description([out, retval] BSTR* Value);
		[id(100305), propput]
		HRESULT Description([in] BSTR Value);

		[id(100306), propget]
		HRESULT IsDesigning([out, retval] VARIANT_BOOL* Value);
		[id(100306), propput]
		HRESULT IsDesigning([in] VARIANT_BOOL Value);
	};

	[
		odl,
		uuid(288E7723-A269-4287-B771-563CDF84D197),
		version(1.0),
		dual,
		oleautomation
	]
	interface IDBEngine : ICoreObject {
		[id(100401)]
		HRESULT SaveTable(
			[in] ITable* Table,
			[in] VARIANT_BOOL IsSaveRelation);

		[id(100402)]
		HRESULT RenameTable(
			[in] BSTR OldName,
			[in] ITable* Table);

		[id(100403)]
		HRESULT DeleteTable([in] ITable* Table);

		[id(100404)]
		HRESULT SaveField([in] ITableField* Field);

		[id(100405)]
		HRESULT RenameField(
			[in] BSTR OldName,
			[in] ITableField* Field);

		[id(100406)]
		HRESULT DeleteField([in] ITableField* Field);

		[id(100407)]
		HRESULT SaveRelation([in] IRelation* Relation);

		[id(100408)]
		HRESULT RenameRelation(
			[in] BSTR OldName,
			[in] IRelation* Relation);

		[id(100409)]
		HRESULT DeleteRelation([in] IRelation* Relation);

		[id(100410), propget]
		HRESULT DBEngineTypeCode([out, retval] BSTR* Value);

		[id(100411)]
		HRESULT GetSelectQuerySQLText(
			[in] ISelectQuery* Query,
			[out, retval] BSTR* Value);

		[id(100412)]
		HRESULT GetInsertQuerySQLText(
			[in] IInsertQuery* Query,
			[out, retval] BSTR* Value);

		[id(100413)]
		HRESULT GetUpdateQuerySQLText(
			[in] IUpdateQuery* Query,
			[out, retval] BSTR* Value);

		[id(100414)]
		HRESULT GetDeleteQuerySQLText(
			[in] IDeleteQuery* Query,
			[out, retval] BSTR* Value);

		[id(100416)]
		HRESULT GetConnectionStringDisplayText(
			[in] BSTR ConnectionString,
			[out, retval] BSTR* Value);

		[id(100417)]
		HRESULT ExecuteInsert(
			[in] IInsertQuery* Query,
			[out, retval] long* Value);

		[id(100418)]
		HRESULT ExecuteUpdate(
			[in] IUpdateQuery* Query,
			[out, retval] long* Value);

		[id(100419)]
		HRESULT ExecuteDelete(
			[in] IDeleteQuery* Query,
			[out, retval] long* Value);

		[id(100420)]
		HRESULT SaveIndex([in] IIndex* Index);

		[id(100421)]
		HRESULT DeleteIndex([in] IIndex* Index);

		[id(100422)]
		HRESULT RenameIndex(
			[in] BSTR OldName,
			[in] IIndex* Index);

		[id(100423)]
		HRESULT GetCreateTableSQLText(
			[in] ITable* Table,
			[out, retval] BSTR* Value);

		[id(100424)]
		HRESULT GetCreateIndexSQLText(
			[in] IIndex* Index,
			[out, retval] BSTR* Value);

		[id(100425)]
		HRESULT GetCreateRelationSQLText(
			[in] IRelation* Relation,
			[out, retval] BSTR* Value);

		[id(100426)]
		HRESULT ExecuteInsertSelect(
			[in] IInsertSelectQuery* Query,
			[out, retval] long* Value);

		[id(100429)]
		HRESULT GetInsertSelectQuerySQLText(
			[in] IInsertSelectQuery* Query,
			[out, retval] BSTR* Value);

		[id(100430)]
		HRESULT StartTransaction();

		[id(100431)]
		HRESULT CommitTransaction();

		[id(100432)]
		HRESULT RollbackTransaction();

		[id(100433)]
		HRESULT Connect([in] IConfiguration* Configuration);

		[id(100434)]
		HRESULT Disconnect();

		[id(100435)]
		HRESULT ShowConnectionStringEditForm(
			[in] BSTR ConnectionString,
			[out, retval] BSTR* Value);

		[id(100436)]
		HRESULT GetIsTableExists(
			[in] BSTR TableName,
			[out, retval] VARIANT_BOOL* Value);

		[id(100437)]
		HRESULT GetIsFieldExists(
			[in] BSTR TableName,
			[in] BSTR FieldName,
			[out, retval] VARIANT_BOOL* Value);

		[id(100438)]
		HRESULT RemoveUnusedDBFields(
			[in] ITable* Table);

		[id(100439), propget]
		HRESULT IsCaseSensitive([out, retval] VARIANT_BOOL* Value);

		[id(100440)]
		HRESULT ExecuteCustomSQL(
			[in] BSTR* SQLText,
			[in] IParameters Parameters);

		[id(100441)]
		HRESULT GetDependedTables(
			[in] BSTR TableName,
			[in] VARIANT_BOOL OnlyNonCascadeDepends,
			[out, retval] IStringsList** Value);

		[id(100442)]
		HRESULT GetForeignKeysInfo(
			[in] BSTR TableName,
			[in] VARIANT_BOOL OnlyNonCascadeForeignKeys,
			[out, retval] IStringsList** Value);

		[id(100443)]
		HRESULT CheckRowData(
			[in] IDataset* Dataset);

		[id(100444)]
		HRESULT GetIsDateTimeValueCorrect(
			[in] DATE DateTimeValue,
			[out, retval] VARIANT_BOOL* Value);

		[id(100445), propget]
		HRESULT MinAllowedDateTime([out, retval] DATE* Value);

		[id(100446), propget]
		HRESULT MaxAllowedDateTime([out, retval] DATE* Value);
	};

	[
		odl,
		uuid(748E4F15-C0C5-4D2C-9011-834E9F160FDC),
		version(1.0),
		dual,
		oleautomation
	]
	interface IDBExecutor : ICoreObject {
	};

	[
		odl,
		uuid(9578F1C7-B58F-41BF-9983-995042F1696E),
		version(1.0),
		dual,
		oleautomation
	]
	interface ICoreCollectionItem : ICoreObject {
		[id(100503), propget]
		HRESULT UID([out, retval] BSTR* Value);

		[id(100501), propget]
		HRESULT ParentCollection([out, retval] ICoreCollection** Value);
		[id(100501), propput]
		HRESULT ParentCollection([in] ICoreCollection* Value);

		[id(100502), propget]
		HRESULT KeyValue([out, retval] BSTR* Value);
		[id(100502), propput]
		HRESULT KeyValue([in] BSTR Value);
	};

	[
		odl,
		uuid(794E0E01-ED7B-4002-9067-C6A43BF9583A),
		version(1.0),
		dual,
		oleautomation
	]
	interface IParameters : ICoreCollection {
		[id(100606), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IParameter** Value);
		[id(100601)]
		HRESULT Add(
			[in] IParameter* Item,
			[out, retval] long* Value);
		[id(100602)]
		HRESULT CreateItem([out, retval] IParameter** Value);
		[id(00000000), propget]
		HRESULT ItemsByName(
			[in] BSTR Name,
			[out, retval] IParameter** Value);
		[id(100604)]
		HRESULT GetIndexOf(
			[in] IParameter* Item,
			[out, retval] long* Value);
		[id(100605)]
		HRESULT Remove(
			[in] IParameter* Item,
			[out, retval] long* Value);
	};

	[
		odl,
		uuid(23F668F6-BD4F-4899-8A39-DF36EE56B450),
		version(1.0),
		dual,
		oleautomation
	]
	interface IParameter : ICoreCollectionItem {
		[id(100801), propget]
		HRESULT Name([out, retval] BSTR* Value);
		[id(100801), propput]
		HRESULT Name([in] BSTR Value);

		[id(100802), propget]
		HRESULT DataType([out, retval] ParamDataTypeEnum* Value);
		[id(100802), propput]
		HRESULT DataType([in] ParamDataTypeEnum Value);

		[id(100803), propget]
		HRESULT Value([out, retval] VARIANT* Value);
		[id(100803), propput]
		HRESULT Value([in] VARIANT Value);

		[id(100804), propget]
		HRESULT ValAsInt([out, retval] long* Value);
		[id(100804), propput]
		HRESULT ValAsInt([in] long Value);

		[id(100805), propget]
		HRESULT ValAsFloat([out, retval] double* Value);
		[id(100805), propput]
		HRESULT ValAsFloat([in] double Value);

		[id(100806), propget]
		HRESULT ValAsStr([out, retval] BSTR* Value);
		[id(100806), propput]
		HRESULT ValAsStr([in] BSTR Value);

		[id(100807), propget]
		HRESULT ValAsBool([out, retval] VARIANT_BOOL* Value);
		[id(100807), propput]
		HRESULT ValAsBool([in] VARIANT_BOOL Value);

		[id(100808), propget]
		HRESULT ValAsDateTime([out, retval] DATE* Value);
		[id(100808), propput]
		HRESULT ValAsDateTime([in] DATE Value);

		[id(100809), propget]
		HRESULT ValAsGUID([out, retval] BSTR* Value);
		[id(100809), propput]
		HRESULT ValAsGUID([in] BSTR Value);

		[id(100810), propget]
		HRESULT ValAsFunction([out, retval] SQLFunctionTypeEnum* Value);
		[id(100810), propput]
		HRESULT ValAsFunction([in] SQLFunctionTypeEnum Value);

		[id(100811), propget]
		HRESULT ParentParameters([out, retval] IParameters** Value);
		[id(100811), propput]
		HRESULT ParentParameters([in] IParameters* Value);

		[id(100812)]
		HRESULT GetValAsBlob(
			[in] IUnknown* Stream);

		[id(100813)]
		HRESULT SetValAsBlob([in] IUnknown* Stream);

		[id(100814)]
		HRESULT SaveValAsBlobToFile([in] BSTR FileName);

		[id(100815)]
		HRESULT LoadValAsBlobFromFile([in] BSTR FileName);
	};

	// -----------------------------------------------------------------------
	// ITableFields (1001XX)
	// -----------------------------------------------------------------------
	[
		uuid(F79CE307-0B56-4C08-A4C7-B2169126627A),
		odl, dual, oleautomation
	]
	interface ITableFields : ICoreCollection {
		[id(100101), propget]
		HRESULT ParentTable([out, retval] ITable** Value);
		[id(100101), propput]
		HRESULT ParentTable([in] ITable* Value);

		[id(100102), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] ITableField** Value);

		[id(0), propget]
		HRESULT ItemsByName(
			[in] BSTR SQLName,
			[out, retval] ITableField** Value);

		[id(100103)]
		HRESULT Add(
			[in] ITableField* Item,
			[out, retval] long* Value);

		[id(100104)]
		HRESULT Remove(
			[in] ITableField* Item,
			[out, retval] long* Value);

		[id(100105)]
		HRESULT GetIndexOf(
			[in] ITableField* Item,
			[out, retval] long* Value);

		[id(100106)]
		HRESULT CreateItem([out, retval] ITableField** Value);

	};

	// -----------------------------------------------------------------------
	// TableFields CoClass
	// -----------------------------------------------------------------------
	[
		uuid(EEBF8C05-6CD7-42FE-AFB7-82FA32C32130)
	]
	coclass TableFields {
		[default] interface ITableFields;
		interface ICoreCollection;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// ITableField (1009XX)
	// -----------------------------------------------------------------------
	[
		uuid(1739FC60-1812-42F6-A9B5-1F29478460C9),
		odl, dual, oleautomation
	]
	interface ITableField : ICoreCollectionItem {
		[id(100901), propget]
		HRESULT ParentFields([out, retval] ITableFields** Value);
		[id(100901), propput]
		HRESULT ParentFields([in] ITableFields* Value);

		[id(100902), propget]
		HRESULT SQLName([out, retval] BSTR* Value);
		[id(100902), propput]
		HRESULT SQLName([in] BSTR Value);

		[id(100903), propget]
		HRESULT Caption([out, retval] BSTR* Value);
		[id(100903), propput]
		HRESULT Caption([in] BSTR Value);

		[id(100904), propget]
		HRESULT Description([out, retval] BSTR* Value);
		[id(100904), propput]
		HRESULT Description([in] BSTR Value);

		[id(100905), propget]
		HRESULT SQLDataType([out, retval] SQLDataTypeEnum* Value);
		[id(100905), propput]
		HRESULT SQLDataType([in] SQLDataTypeEnum Value);

		[id(100906), propget]
		HRESULT SQLSize([out, retval] long* Value);
		[id(100906), propput]
		HRESULT SQLSize([in] long Value);

		[id(100907), propget]
		HRESULT SQLPrecision([out, retval] long* Value);
		[id(100907), propput]
		HRESULT SQLPrecision([in] long Value);

		[id(100908), propget]
		HRESULT IsReplicatable([out, retval] VARIANT_BOOL* Value);
		[id(100908), propput]
		HRESULT IsReplicatable([in] VARIANT_BOOL Value);
	};

	// -----------------------------------------------------------------------
	// TableField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(CD6E7290-A65D-4464-8DA3-53713A4F1D25)
	]
	coclass TableField {
		[default] interface ITableField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// ITable (1011XX)
	// -----------------------------------------------------------------------
	[
		uuid(F1D815DB-AD59-40F1-AFF3-3FB24F675A44),
		odl, dual, oleautomation
	]
	interface ITable : IService {
		[id(101101), propget]
		HRESULT Fields([out, retval] ITableFields** Value);

		[id(101102), propget]
		HRESULT Indexes([out, retval] IIndexes** Value);

		[id(101103), propget]
		HRESULT Relations([out, retval] IRelations** Value);

		[id(101104), propget]
		HRESULT SQLName([out, retval] BSTR* Value);
		[id(101104), propput]
		HRESULT SQLName([in] BSTR Value);

		[id(101105), propget]
		HRESULT IsAdministratedByRecords([out, retval] VARIANT_BOOL* Value);
		[id(101105), propput]
		HRESULT IsAdministratedByRecords([in] VARIANT_BOOL Value);

		[id(101106), propget]
		HRESULT IsAdministratedByFields([out, retval] VARIANT_BOOL* Value);
		[id(101106), propput]
		HRESULT IsAdministratedByFields([in] VARIANT_BOOL Value);

		[id(101107), propget]
		HRESULT IsReplicatable([out, retval] VARIANT_BOOL* Value);
		[id(101107), propput]
		HRESULT IsReplicatable([in] VARIANT_BOOL Value);

		[id(101108), propget]
		HRESULT ParentTableGroup([out, retval] ITableGroup** Value);
		[id(101108), propput]
		HRESULT ParentTableGroup([in] ITableGroup* Value);

		[id(101109), propget]
		HRESULT TrackChanges([out, retval] VARIANT_BOOL* Value);
		[id(101109), propput]
		HRESULT TrackChanges([in] VARIANT_BOOL Value);

		[id(101110), propget]
		HRESULT RightsTable([out, retval] ITable** Value);

		[id(101111), propget]
		HRESULT IsRightsTable([out, retval] VARIANT_BOOL* Value);
	};

	// -----------------------------------------------------------------------
	// Table CoClass
	// -----------------------------------------------------------------------
	[
		uuid(5D3ADF21-253A-4D00-8AE4-20B8F85C3CDF)
	]
	coclass Table {
		[default] interface ITable;
		interface IDatabaseObject;
		interface IService;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// Parameters CoClass
	// -----------------------------------------------------------------------
	[
		uuid(8E9DE539-781C-4E06-9CC8-04C920EEDD2C)
	]
	coclass Parameters {
		[default] interface IParameters;
		interface ICoreCollection;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// Parameter CoClass
	// -----------------------------------------------------------------------
	[
		uuid(D3B6633E-73FF-4401-909E-91EDCA4E4EEE)
	]
	coclass Parameter {
		[default] interface IParameter;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// ISelect (1013XX)
	// -----------------------------------------------------------------------
	[
		uuid(5FC5A19D-98DD-4EB2-AC35-519B6C3C5875),
		odl, dual, oleautomation
	]
	interface ISelect : ICoreCollectionItem {
		[id(101301), propget]
		HRESULT Columns([out, retval] IColumns** Value);

		[id(101302), propget]
		HRESULT Joins([out, retval] IJoins** Value);

		[id(101303), propget]
		HRESULT Filters([out, retval] IFilters** Value);

		[id(101304), propget]
		HRESULT Code([out, retval] BSTR* Value);
		[id(101304), propput]
		HRESULT Code([in] BSTR Value);

		[id(101305), propget]
		HRESULT Top([out, retval] long* Value);
		[id(101305), propput]
		HRESULT Top([in] long Value);

		[id(101306), propget]
		HRESULT IsDistinct([out, retval] VARIANT_BOOL* Value);
		[id(101306), propput]
		HRESULT IsDistinct([in] VARIANT_BOOL Value);

		[id(101307), propget]
		HRESULT IsEnabled([out, retval] VARIANT_BOOL* Value);
		[id(101307), propput]
		HRESULT IsEnabled([in] VARIANT_BOOL Value);

		[id(101308), propget]
		HRESULT FromTable([out, retval] ITable** Value);
		[id(101308), propput]
		HRESULT FromTable([in] ITable* Value);

		[id(101309), propget]
		HRESULT FromTableAlias([out, retval] BSTR* Value);
		[id(101309), propput]
		HRESULT FromTableAlias([in] BSTR Value);

		[id(101310), propget]
		HRESULT ParentSelectQuery([out, retval] ISelectQuery** Value);
		[id(101310), propput]
		HRESULT ParentSelectQuery([in] ISelectQuery* Value);

		[id(101311), propget]
		HRESULT IsAdministrated([out, retval] VARIANT_BOOL* Value);
		[id(101311), propput]
		HRESULT IsAdministrated([in] VARIANT_BOOL Value);
	};

	// -----------------------------------------------------------------------
	// IColumns (1015XX)
	// -----------------------------------------------------------------------
	[
		uuid(01430B2C-7CAA-4A86-BA5E-E903AA1D2D8F),
		odl, dual, oleautomation
	]
	interface IColumns : ICoreCollection {
		[id(101501), propget]
		HRESULT ParentSelect([out, retval] ISelect** Value);
		[id(101501), propput]
		HRESULT ParentSelect([in] ISelect* Value);

		[id(101502), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IColumn** Value);

		[id(0), propget]
		HRESULT ItemsByAlias(
			[in] BSTR Alias,
			[out, retval] IColumn** Value);

		[id(101503)]
		HRESULT Add(
			[in] IColumn* Item,
			[out, retval] long* Value);

		[id(101504)]
		HRESULT Remove(
			[in] IColumn* Item,
			[out, retval] long* Value);

		[id(101505)]
		HRESULT GetIndexOf(
			[in] IColumn* Item,
			[out, retval] long* Value);

		[id(101506)]
		HRESULT CreateGeneralColumn([out, retval] IGeneralColumn** Value);

		[id(101507)]
		HRESULT CreateConstColumn([out, retval] IConstColumn** Value);

		[id(101508)]
		HRESULT CreateSubSelectColumn([out, retval] ISubSelectColumn** Value);

		[id(101509)]
		HRESULT CreateSQLTextColumn([out, retval] ISQLTextColumn** Value);

		[id(101510)]
		HRESULT GetIsDependsOn(
			[in] IJoin* Join,
			[out, retval] VARIANT_BOOL* Value);
	};

	// -----------------------------------------------------------------------
	// Columns CoClass
	// -----------------------------------------------------------------------
	[
		uuid(572A19BF-92E1-49CC-803F-8071A98ABE72)
	]
	coclass Columns {
		[default] interface IColumns;
		interface ICoreCollection;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IColumn (1014XX)
	// -----------------------------------------------------------------------
	[
		uuid(94A24A0E-12F8-411B-8D14-BCBDE3B0AA9E),
		odl, dual, oleautomation
	]
	interface IColumn : ICoreCollectionItem {
		[id(101401), propget]
		HRESULT ParentColumns([out, retval] IColumns** Value);
		[id(101401), propput]
		HRESULT ParentColumns([in] IColumns* Value);

		[id(101402), propget]
		HRESULT ParentJoin([out, retval] IJoin** Value);
		[id(101402), propput]
		HRESULT ParentJoin([in] IJoin* Value);

		[id(101403), propget]
		HRESULT ColumnType([out, retval] ColumnTypeEnum* Value);

		[id(101404), propget]
		HRESULT ColumnAlias([out, retval] BSTR* Value);
		[id(101404), propput]
		HRESULT ColumnAlias([in] BSTR Value);

		[id(101405), propget]
		HRESULT IsEnabled([out, retval] VARIANT_BOOL* Value);
		[id(101405), propput]
		HRESULT IsEnabled([in] VARIANT_BOOL Value);

		[id(101406), propget]
		HRESULT CanDisable([out, retval] VARIANT_BOOL* Value);
		[id(101406), propput]
		HRESULT CanDisable([in] VARIANT_BOOL Value);

		[id(101407), propget]
		HRESULT IsNameColumn([out, retval] VARIANT_BOOL* Value);
		[id(101407), propput]
		HRESULT IsNameColumn([in] VARIANT_BOOL Value);

		[id(101408), propget]
		HRESULT OrderType([out, retval] OrderTypeEnum* Value);
		[id(101408), propput]
		HRESULT OrderType([in] OrderTypeEnum Value);

		[id(101409), propget]
		HRESULT OrderPosition([out, retval] long* Value);
		[id(101409), propput]
		HRESULT OrderPosition([in] long Value);

		[id(101410), propget]
		HRESULT SummaryType([out, retval] SummaryTypeEnum* Value);
		[id(101410), propput]
		HRESULT SummaryType([in] SummaryTypeEnum Value);

		[id(101411), propget]
		HRESULT DependsOn([out, retval] IStringsCollection** Value);

		[id(101412)]
		HRESULT GetIsDependsOn(
			[in] IJoin* Join,
			[out, retval] VARIANT_BOOL* Value);
	};

	[
		uuid(3EEBB222-BDF4-4FF1-9404-37457545ADD1),
		odl, dual, oleautomation
	]
	interface IJoin : ICoreCollectionItem {
		[id(101601), propget]
		HRESULT JoinType([out, retval] JoinTypeEnum* Value);
		[id(101601), propput]
		HRESULT JoinType([in] JoinTypeEnum Value);

		[id(101602), propget]
		HRESULT IsEnabled([out, retval] VARIANT_BOOL* Value);

		[id(101603), propget]
		HRESULT LeftField([out, retval] ITableField** Value);
		[id(101603), propput]
		HRESULT LeftField([in] ITableField* Value);

		[id(101604), propget]
		HRESULT LeftTableAlias([out, retval] BSTR* Value);
		[id(101604), propput]
		HRESULT LeftTableAlias([in] BSTR Value);

		[id(101605), propget]
		HRESULT RightField([out, retval] ITableField** Value);
		[id(101605), propput]
		HRESULT RightField([in] ITableField* Value);

		[id(101606), propget]
		HRESULT ParentJoin([out, retval] IJoin** Value);
		[id(101606), propput]
		HRESULT ParentJoin([in] IJoin* Value);

		[id(101608), propget]
		HRESULT ParentJoins([out, retval] IJoins** Value);
		[id(101608), propput]
		HRESULT ParentJoins([in] IJoins* Value);

		[id(101609), propget]
		HRESULT IsAdministrated([out, retval] VARIANT_BOOL* Value);
		[id(101609), propput]
		HRESULT IsAdministrated([in] VARIANT_BOOL Value);

		[id(101610), propget]
		HRESULT CanDisable([out, retval] VARIANT_BOOL* Value);
		[id(101610), propput]
		HRESULT CanDisable([in] VARIANT_BOOL Value);
	};

	[
		uuid(22F40360-555A-45A7-AE2E-690BAC2CFBDE),
		version(1.0),
		helpstring("Join Object")
	]
	coclass Join {
		[default] interface IJoin;
		interface ICoreObject;
		interface ICoreCollectionItem;
	};

	[
		odl,
		uuid(A4557A65-A944-48E8-B8ED-4565926F0EDC),
		version(1.0),
		helpstring("Dispatch interface for Joins Object"),
		dual,
		oleautomation
	]
	interface IJoins : ICoreCollection {
		[id(101708), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IJoin** Value);
		[id(101701)]
		HRESULT Add(
			[in] IJoin* Item,
			[out, retval] long* Value);
		[id(101702)]
		HRESULT CreateItem([out, retval] IJoin** Value);
		[id(00000000), propget]
		HRESULT ItemsByLeftTableAlias(
			[in] BSTR TableAlias,
			[out, retval] IJoin** Value);
		[id(101704)]
		HRESULT GetIndexOf(
			[in] IJoin* Item,
			[out, retval] long* Value);
		[id(101706), propget]
		HRESULT ParentSelect([out, retval] ISelect** Value);
		[id(101706), propput]
		HRESULT ParentSelect([in] ISelect* Value);
		[id(101707)]
		HRESULT Remove(
			[in] IJoin* Item,
			[out, retval] long* Value);
	};

	[
		uuid(B4110288-F6AB-4D9B-B1D6-1B0ED6B643A7),
		version(1.0),
		helpstring("Joins Object")
	]
	coclass Joins {
		[default] interface IJoins;
		interface ICoreObject;
		interface ICoreCollection;
	};

	// -----------------------------------------------------------------------
	// GeneralColumn (1018XX)
	// -----------------------------------------------------------------------
	[
		uuid(C14F4922-C7D0-4B66-95CB-3C1501B7A18D),
		odl, dual, oleautomation
	]
	interface IGeneralColumn : IColumn {
		[id(101801), propget]
		HRESULT Field([out, retval] ITableField** Value);
		[id(101801), propput]
		HRESULT Field([in] ITableField* Value);
	};

	// -----------------------------------------------------------------------
	// GeneralColumn CoClass
	// -----------------------------------------------------------------------
	[
		uuid(DEBFC600-E64C-4F63-A055-797598470FC0)
	]
	coclass GeneralColumn {
		[default] interface IGeneralColumn;
		interface IColumn;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IConstColumn (1019XX)
	// -----------------------------------------------------------------------
	[
		uuid(BCFB34FB-120F-465F-9CFA-98B01FAEF5D0),
		odl, dual, oleautomation
	]
	interface IConstColumn : IColumn {
		[id(101901), propget]
		HRESULT ColumnValue([out, retval] VARIANT* Value);
		[id(101901), propput]
		HRESULT ColumnValue([in] VARIANT Value);

		[id(101902), propget]
		HRESULT DataType([out, retval] ParamDataTypeEnum* Value);
		[id(101902), propput]
		HRESULT DataType([in] ParamDataTypeEnum Value);
	};

	// -----------------------------------------------------------------------
	// ConstColumn CoClass
	// -----------------------------------------------------------------------
	[
		uuid(2DF7AC03-10D7-4444-90E6-491D739149A7)
	]
	coclass ConstColumn {
		[default] interface IConstColumn;
		interface IColumn;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// SubSelectColumn (1020XX)
	// -----------------------------------------------------------------------
	[
		uuid(C0E85702-F6CC-4C39-BF1C-70B01132292C),
		odl, dual, oleautomation
	]
	interface ISubSelectColumn : IColumn {
		[id(102001), propget]
		HRESULT ColumnSelectQuery([out, retval] ISelectQuery** Value);
	};

	// -----------------------------------------------------------------------
	// SubSelectColumn CoClass
	// -----------------------------------------------------------------------
	[
		uuid(3A09698B-3614-40C3-99D6-3271CA91BD55)
	]
	coclass SubSelectColumn {
		[default] interface ISubSelectColumn;
		interface IColumn;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// SQLTextColumn (1021XX)
	// -----------------------------------------------------------------------
	[
		uuid(BD16BF3A-14C5-46BB-BDFD-B8CBDC0D1562),
		odl, dual, oleautomation
	]
	interface ISQLTextColumn : IColumn {
		[id(102101), propget]
		HRESULT SQLText([out, retval] BSTR* Value);
		[id(102101), propput]
		HRESULT SQLText([in] BSTR Value);
	};

	// -----------------------------------------------------------------------
	// SQLTextColumn CoClass
	// -----------------------------------------------------------------------
	[
		uuid(39E31570-A568-492A-83E1-0D843438440C)
	]
	coclass SQLTextColumn {
		[default] interface ISQLTextColumn;
		interface IColumn;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	[
		uuid(1F05DAF0-7C12-433A-950F-445679F1320E),
		odl, dual, oleautomation
	]
	interface IConnector : ICoreObject {
		[id(102201), propget]
		HRESULT Attributes([out, retval] INamedValues** Value);

		[id(102202), propget]
		HRESULT IsDesigning([out, retval] VARIANT_BOOL* Value);

		[id(102203), propget]
		HRESULT WorkingDirectory([out, retval] BSTR* Value);

		[id(102204), propget]
		HRESULT Configurations([out, retval] IConfigurations** Value);

		[id(102205), propget]
		HRESULT CurrentConfiguration([out, retval] IConfiguration** Value);

		[id(102206), propget]
		HRESULT CurrentUser([out, retval] IUserInfo** Value);

		[id(102207), propget]
		HRESULT DBEngine([out, retval] IDBEngine** Value);

		[id(102208), propget]
		HRESULT Log([out, retval] ILog** Value);

		[id(102209), propget]
		HRESULT ServiceTypes([out, retval] IServiceTypes** Value);

		[id(102210), propget]
		HRESULT DBEngineTypes([out, retval] IDBEngineTypes** Value);

		[id(102211), propget]
		HRESULT Services([out, retval] IServices** Value);

		[id(102212), propget]
		HRESULT CustomerID([out, retval] BSTR* Value);

		[id(102213)]
		HRESULT GenGUID([out, retval] BSTR* Value);

		[id(102214)]
		HRESULT OpenConfiguration(
			[in] IConfiguration* Configuration,
			[in] BSTR UserName,
			[in] BSTR UserPassword,
			[out, retval] VARIANT_BOOL* Value);

		[id(102215)]
		HRESULT CloseConfiguration([out, retval] VARIANT_BOOL* Value);

		[id(102216)]
		HRESULT LoadConfigurations();

		[id(102217)]
		HRESULT SaveConfigurations();

		[id(102220)]
		HRESULT GetServerDateTime([out, retval] DATE* Value);

		[id(102221)]
		HRESULT GetLocalDateTime([out, retval] DATE* Value);

		[id(102222), propget]
		HRESULT SystemServices([out, retval] ISystemServices** Value);

		[id(102223), propget]
		HRESULT Version([out, retval] BSTR* Value);
	};

	[
		uuid(AE73EE67-7E8E-4AA5-BF1F-4E12D55D2055)
	]
	dispinterface IConnectorEvents {
		properties:
		methods:
			[id(105201)]
			HRESULT OnUserPasswordExpired(
				[in, out] VARIANT_BOOL* DoPasswordUpdate,
				[out] BSTR* CurrentUserPassword,
				[out] BSTR* NewUserPassword);

			[id(105202)]
			HRESULT OnBeforeOpenConfiguration(
				[in] IConfiguration* Configuration,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(105203)]
			HRESULT OnAfterOpenConfiguration();

			[id(105204)]
			HRESULT OnBeforeCloseConfiguration([in, out] VARIANT_BOOL* ExecuteAction);

			[id(105205)]
			HRESULT OnAfterCloseConfiguration();

			[id(105206)]
			HRESULT OnUserPasswordChanged();
	};

	[
		odl,
		uuid(646782EF-C878-4E3A-9348-F1674C4D11DF),
		version(1.0),
		helpstring("Dispatch interface for Strings Object"),
		dual,
		oleautomation
	]
	interface IStringsList : ICoreObject {
		[id(00000000), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] BSTR* Value);
		[id(00000000), propput]
		HRESULT Items(
			[in] long Index,
			[in] BSTR Value);
		[id(102501), propget]
		HRESULT Count([out, retval] long* Value);
		[id(102502)]
		HRESULT Add(
			[in] BSTR Item,
			[out, retval] long* Value);
		[id(102503)]
		HRESULT Delete([in] long Index);
		[id(102504)]
		HRESULT Clear();
		[id(102505)]
		HRESULT GetIndexOf(
			[in] BSTR Item,
			[out, retval] long* Value);
		[id(102506), propget]
		HRESULT Text([out, retval] BSTR* Value);
		[id(102506), propput]
		HRESULT Text([in] BSTR Value);
		[id(102507), propget]
		HRESULT CommaText([out, retval] BSTR* Value);
		[id(102507), propput]
		HRESULT CommaText([in] BSTR Value);
		[id(102508), propget]
		HRESULT IsSorted([out, retval] VARIANT_BOOL* Value);
		[id(102508), propput]
		HRESULT IsSorted([in] VARIANT_BOOL Value);
		[id(102511), propget]
		HRESULT IsUnique([out, retval] VARIANT_BOOL* Value);
		[id(102511), propput]
		HRESULT IsUnique([in] VARIANT_BOOL Value);
		[id(102512), propget]
		HRESULT IsCaseSensitive([out, retval] VARIANT_BOOL* Value);
		[id(102512), propput]
		HRESULT IsCaseSensitive([in] VARIANT_BOOL Value);		
		[id(102509)]
		HRESULT Insert(
			[in] long Index,
			[in] BSTR Value);
		[id(102510)]
		HRESULT Exchange(
			[in] long Index1,
			[in] long Index2);
	};

	// -----------------------------------------------------------------------
	// IStringsListEvents (1120XX)
	// -----------------------------------------------------------------------
	[
		uuid(867391CB-2498-442B-BD99-C0FC8403AE4C)
	]
	dispinterface IStringsListEvents {
		properties:
		methods:
			[id(112001)]
			HRESULT OnBeforeInsert(
				[in] IStringsList* StringsList,
				[in] long Index,
				[in] BSTR Value,
				[in, out] VARIANT_BOOL* DoInsertItem);

			[id(112002)]
			HRESULT OnAfterInsert(
				[in] IStringsList* StringsList,
				[in] long Index,
				[in] BSTR Value);

			[id(112003)]
			HRESULT OnBeforeDelete(
				[in] IStringsList* StringsList,
				[in] long Index,
				[in, out] VARIANT_BOOL* DoRemoveItem);

			[id(112004)]
			HRESULT OnAfterDelete(
				[in] IStringsList* StringsList,
				[in] long Index);

			[id(112005)]
			HRESULT OnBeforeExchange(
				[in] IStringsList* StringsList,
				[in] long Index1,
				[in] long Index2,
				[in, out] VARIANT_BOOL* DoMoveItem);

			[id(112006)]
			HRESULT OnAfterExchange(
				[in] IStringsList* StringsList,
				[in] long Index1,
				[in] long Index2);

			[id(112007)]
			HRESULT OnBeforeClear(
				[in] IStringsList* StringsList);

			[id(112008)]
			HRESULT OnAfterClear(
				[in] IStringsList* StringsList);

			[id(112009)]
			HRESULT OnBeforeChange(
				[in] IStringsList* StringsList,
				[in] long Index,
				[in] BSTR Value,
				[in, out] VARIANT_BOOL* DoMoveItem);

			[id(112010)]
			HRESULT OnAfterChange(
				[in] IStringsList* StringsList,
				[in] long Index,
				[in] BSTR Value);
	};

	[
		uuid(D143A918-4CBE-48F9-AEB5-E373F6D6679D),
		version(1.0),
		helpstring("Strings Object")
	]
	coclass StringsList {
		[default] interface IStringsList;
		interface ICoreObject;
		[default, source] dispinterface IStringsListEvents;
	};

	// -----------------------------------------------------------------------
	// IStringsCollection (1123XX)
	// -----------------------------------------------------------------------
	[
		odl,
		uuid(98C36BAF-E29B-4EB5-8392-C1DDDB4B571D),
		version(1.0),
		helpstring("Dispatch interface for IStringsCollection Object"),
		dual,
		oleautomation
	]
	interface IStringsCollection : IStringsList {
		[id(112301), propget]
		HRESULT UIDs(
			[in] long Index,
			[out, retval] BSTR* Value);
		[id(112301), propput]
		HRESULT UIDs(
			[in] long Index,
			[in] BSTR Value);
	}

	// -----------------------------------------------------------------------
	// StringsCollection CoClass
	// -----------------------------------------------------------------------
	[
		uuid(46061628-F2BD-4AAB-AB7B-B19816ABEBAB),
		version(1.0),
		helpstring("StringsCollection Object")
	]
	coclass StringsCollection {
		[default] interface IStringsCollection;
		interface IStringsList;
		interface ICoreObject;
		[default, source] dispinterface IStringsListEvents;
	};

	[
		odl,
		uuid(6E36143F-EA38-411B-B532-12C7CFCB5674),
		version(1.0),
		helpstring("Dispatch interface for Configuration Object"),
		dual,
		oleautomation
	]
	interface IConfiguration : ICoreCollectionItem {
		[id(102601), propget]
		HRESULT Name([out, retval] BSTR* Value);
		[id(102601), propput]
		HRESULT Name([in] BSTR Value);

		[id(102602), propget]
		HRESULT DatabaseID([out, retval] BSTR* Value);

		[id(102603), propget]
		HRESULT ParentDatabaseID([out, retval] BSTR* Value);

		[id(102604), propget]
		HRESULT DatabaseMajorVersion([out, retval] long* Value);

		[id(102605), propget]
		HRESULT DatabaseMinorVersion([out, retval] long* Value);

		[id(102606), propget]
		HRESULT DatabaseReleaseVersion([out, retval] long* Value);

		[id(102607), propget]
		HRESULT Description([out, retval] BSTR* Value);
		[id(102607), propput]
		HRESULT Description([in] BSTR Value);

		[id(102608), propget]
		HRESULT DBEngineTypeCode([out, retval] BSTR* Value);
		[id(102608), propput]
		HRESULT DBEngineTypeCode([in] BSTR Value);

		[id(102610), propget]
		HRESULT ParentConfigurations([out, retval] IConfigurations** Value);
		[id(102610), propput]
		HRESULT ParentConfigurations([in] IConfigurations* Value);

		[id(102611), propget]
		HRESULT UseCache([out, retval] VARIANT_BOOL* Value);
		
		[id(102612)]
		HRESULT SetConnectionString([in] BSTR Value);		
	};

	[
		uuid(80BEDC38-19CA-4D60-BAA9-028036594D20),
		version(1.0),
		helpstring("Configuration Object")
	]
	coclass Configuration {
		[default] interface IConfiguration;
		interface ICoreObject;
		interface ICoreCollectionItem;
	};

	[
		odl,
		uuid(3872E7BE-19FA-4127-8F18-E420D83E5305),
		version(1.0),
		helpstring("Dispatch interface for Configurations Object"),
		dual,
		oleautomation
	]
	interface IConfigurations : ICoreCollection {
		[id(102706), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IConfiguration** Value);
		[id(102701)]
		HRESULT Add(
			[in] IConfiguration* Item,
			[out, retval] long* Value);
		[id(102702)]
		HRESULT CreateItem([out, retval] IConfiguration** Value);
		[id(102703)]
		HRESULT GetIndexOf(
			[in] IConfiguration* Item,
			[out, retval] long* Value);
		[id(00000000), propget]
		HRESULT ItemsByName(
			[in] BSTR Name,
			[out, retval] IConfiguration** Value);
		[id(102705)]
		HRESULT Remove(
			[in] IConfiguration* Item,
			[out, retval] long* Value);
	};

	[
		uuid(AF44D5EC-3695-4656-A16E-09A521CC8243),
		version(1.0),
		helpstring("Configurations Object")
	]
	coclass Configurations {
		[default] interface IConfigurations;
		interface ICoreObject;
		interface ICoreCollection;
	};

	// -----------------------------------------------------------------------
	// IInsertQuery (1029XX)
	// -----------------------------------------------------------------------
	[
		uuid(6710FBF4-832F-4895-890B-00462090CF27),
		odl, dual, oleautomation
	]
	interface IInsertQuery : IModifyQuery {
		[id(102901), propget]
		HRESULT Table([out, retval] ITable** Value);
		[id(102901), propput]
		HRESULT Table([in] ITable* Value);

		[id(102902)]
		HRESULT Execute([out, retval] long* Value);
	};

	// -----------------------------------------------------------------------
	// InsertQuery CoClass
	// -----------------------------------------------------------------------
	[
		uuid(28ADB8CB-2ACE-41DB-8FB0-BA05A7443C9B)
	]
	coclass InsertQuery {
		[default] interface IInsertQuery;
		interface IModifyQuery;
		interface IService;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IParametriticQuery (1084XX)
	// -----------------------------------------------------------------------
	[
		uuid(8E0477BB-9637-45D8-8646-99AABFFD662D),
		odl, dual, oleautomation
	]
	interface IParametriticQuery : IService {
		[id(108401), propget]
		HRESULT Parameters([out, retval] IParameters** Value);
	};

	// -----------------------------------------------------------------------
	// IParametriticQuery (1085XX)
	// -----------------------------------------------------------------------
	[
		uuid(570153AB-1933-4387-8486-41DD48F6086A),
		odl, dual, oleautomation
	]
	interface IModifyQuery : IService {
		[id(108501), propget]
		HRESULT ColumnsValues([out, retval] IColumnsValues** Value);
	};

	// -----------------------------------------------------------------------
	// IUpdateQuery (1030XX)
	// -----------------------------------------------------------------------
	[
		uuid(B35B6201-FBE4-407B-A513-B2BCA57F67E7),
		odl, dual, oleautomation
	]
	interface IUpdateQuery : IParametriticQuery {
		[id(103001), propget]
		HRESULT ColumnsValues([out, retval] IColumnsValues** Value);

		[id(103002), propget]
		HRESULT Filters([out, retval] IFilters** Value);

		[id(103003), propget]
		HRESULT Table([out, retval] ITable** Value);
		[id(103003), propput]
		HRESULT Table([in] ITable* Value);

		[id(103004), propget]
		HRESULT IsAdministrated([out, retval] VARIANT_BOOL* Value);
		[id(103004), propput]
		HRESULT IsAdministrated([in] VARIANT_BOOL Value);

		[id(103005)]
		HRESULT Execute([out, retval] long* Value);

		[id(103006)]
		HRESULT LoadUserFilters();
	};

	[
		uuid(12D806B6-9AD2-464D-88DE-31F69857C99C),
		odl, dual, oleautomation
	]
	interface IDeleteQuery : IParametriticQuery {
		[id(103101), propget]
		HRESULT Table([out, retval] ITable** Value);
		[id(103101), propput]
		HRESULT Table([in] ITable* Value);

		[id(103102), propget]
		HRESULT IsAdministrated([out, retval] VARIANT_BOOL* Value);
		[id(103102), propput]
		HRESULT IsAdministrated([in] VARIANT_BOOL Value);

		[id(103103), propget]
		HRESULT Filters([out, retval] IFilters** Value);

		[id(103104)]
		HRESULT Execute([out, retval] long* Value);

		[id(103105)]
		HRESULT LoadUserFilters();
	};

	[
		uuid(374CD7E2-0C93-4BC5-8F50-0EC1EA3322A8)
	]
	coclass DeleteQuery {
		[default] interface IDeleteQuery;
		interface IParametriticQuery;
		interface IService;
		interface ICoreObject;
	};

	[
		odl,
		uuid(420D8DE8-DD52-4954-8B8D-6FE62B421C90),
		version(1.0),
		dual,
		oleautomation
	]
	interface IDatabaseObject : IDispatch {
		[id(106201)]
		HRESULT SaveToDatabase();
		[id(16202)]
		HRESULT DeleteFromDatabase();
	};

	[
		odl,
		uuid(4EFA027C-A95B-49C8-9596-39ADDAFB650E),
		version(1.0),
		helpstring("Dispatch interface for ServiceType Object"),
		dual,
		oleautomation
	]
	interface IServiceType : ICoreCollectionItem {
		[id(103201), propget]
		HRESULT Code([out, retval] BSTR* Value);
		[id(103201), propput]
		HRESULT Code([in] BSTR Value);
		[id(103202), propget]
		HRESULT Name([out, retval] BSTR* Value);
		[id(103202), propput]
		HRESULT Name([in] BSTR Value);
		[id(103204), propget]
		HRESULT ObjectClassName([out, retval] BSTR* Value);
		[id(103204), propput]
		HRESULT ObjectClassName([in] BSTR Value);
		[id(103205), propget]
		HRESULT ObjectFileName([out, retval] BSTR* Value);
		[id(103205), propput]
		HRESULT ObjectFileName([in] BSTR Value);
		[id(103206), propget]
		HRESULT ImageFileName([out, retval] BSTR* Value);
		[id(103206), propput]
		HRESULT ImageFileName([in] BSTR Value);
		[id(103207), propget]
		HRESULT ObjectCoClassGUID([out, retval] BSTR* Value);
		[id(103208), propget]
		HRESULT ParentServiceTypes([out, retval] IServiceTypes** Value);
		[id(103208), propput]
		HRESULT ParentServiceTypes([in] IServiceTypes* Value);
	};

	[
		uuid(126EE5F2-40AC-40C0-BDE0-87EA59F71BA0),
		version(1.0),
		helpstring("ServiceType Object")
	]
	coclass ServiceType {
		[default] interface IServiceType;
		interface ICoreObject;
		interface ICoreCollectionItem;
	};

	[
		odl,
		uuid(5B896B12-02D0-4AAF-AF00-429FC7D14C8F),
		version(1.0),
		helpstring("Dispatch interface for ServiceTypes Object"),
		dual,
		oleautomation
	]
	interface IServiceTypes : ICoreCollection {
		[id(103306), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IServiceType** Value);
		[id(103301)]
		HRESULT Add(
			[in] IServiceType* Item,
			[out, retval] long* Value);
		[id(103302)]
		HRESULT CreateItem([out, retval] IServiceType** Value);
		[id(103303)]
		HRESULT GetIndexOf(
			[in] IServiceType* Item,
			[out, retval] long* Value);
		[id(00000000), propget]
		HRESULT ItemsByCode(
			[in] BSTR Code,
			[out, retval] IServiceType** Value);
		[id(103305)]
		HRESULT Remove(
			[in] IServiceType* Item,
			[out, retval] long* Value);
	};

	[
		uuid(502E93CD-3A1E-48DC-8493-6261809F8129),
		version(1.0),
		helpstring("ServiceTypes Object")
	]
	coclass ServiceTypes {
		[default] interface IServiceTypes;
		interface ICoreObject;
		interface ICoreCollection;
	};

	// -----------------------------------------------------------------------
	// IScriptableService (1078XX)
	// -----------------------------------------------------------------------
	[
		odl,
		uuid(283C9F22-5759-4977-B501-57F1BEE8AF90),
		version(1.0),
		dual,
		oleautomation
	]
	interface IScriptableService : IService {
		[id(107801), propget]
		HRESULT Script([out, retval] IScript** Value);
		[id(107801), propput]
		HRESULT Script([in] IScript* Value);

		[id(107802), propget]
		HRESULT ScriptControl([out, retval] IDispatch** Value);

		[id(107803), propget]
		HRESULT Attributes([out, retval] INamedValues** Value);

		[id(107804), propget]
		HRESULT AreEventsEnabled([out, retval] VARIANT_BOOL* Value);

		[id(107805), propget]
		HRESULT EventsDispatcher([out, retval] IEventsDispatcher** Value);

		[id(107806)]
		HRESULT EnableEvents();

		[id(107807)]
		HRESULT DisableEvents();

		[id(107808)]
		HRESULT ExecuteScriptMethod(
			[in] BSTR MethodName,
			[in] SAFEARRAY(long) Parameters,
			[out, retval] VARIANT* Value);
	};

	// -----------------------------------------------------------------------
	// IScriptableServiceEvents (1082XX)
	// -----------------------------------------------------------------------
	[
		uuid(DC3AA68E-8E74-4345-B7FC-3F6F6800F5D1)
	]
	dispinterface IScriptableServiceEvents {
		properties:
		methods:
			[id(108201)]
			HRESULT OnNotify(
				[in] IScriptableService* ScriptableService,
				[in] ICoreObject* Sender,
				[in] BSTR Message,
				[in] VARIANT Data);

			[id(108202)]
			HRESULT OnEventsEnabled(
				[in] IScriptableService* ScriptableService);

			[id(108203)]
			HRESULT OnEventsDisabled(
				[in] IScriptableService* ScriptableService);
	};

	[
		odl,
		uuid(6A4094DF-BE10-4928-AD6C-27F00041F5E2),
		version(1.0),
		helpstring("Dispatch interface for Union Object"),
		dual,
		oleautomation
	]
	interface ISelectQuery : IParametriticQuery {
		[id(101215), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] ISelect** Value);

		[id(101201)]
		HRESULT Add(
			[in] ISelect* Item,
			[out, retval] long* Value);

		[id(101202)]
		HRESULT CreateItem([out, retval] ISelect** Value);

		[id(0), propget]
		HRESULT ItemsByCode(
			[in] BSTR Code,
			[out, retval] ISelect** Value);

		[id(101204)]
		HRESULT GetIndexOf(
			[in] ISelect* Item,
			[out, retval] long* Value);

		[id(101206), propget]
		HRESULT IsEnabled([out, retval] VARIANT_BOOL* Value);
		[id(101206), propput]
		HRESULT IsEnabled([in] VARIANT_BOOL Value);

		[id(101207), propget]
		HRESULT Columns([out, retval] IColumns** Value);

		[id(101209)]
		HRESULT Open([out, retval] IDBDataset** Value);

		[id(101213), propget]
		HRESULT ParentParametriticQuery([out, retval] IParametriticQuery** Value);
		[id(101213), propput]
		HRESULT ParentParametriticQuery([in] IParametriticQuery* Value);

		[id(101214)]
		HRESULT Remove(
			[in] ISelect* Item,
			[out, retval] long* Value);

		[id(101216)]
		HRESULT LoadUserFilters();
	};

	[
		odl,
		uuid(C7E9C72C-E9D7-46E5-BC33-FFEE71BD0701),
		version(1.0),
		helpstring("Dispatch interface for SystemServices Object"),
		dual,
		oleautomation
	]
	interface ISystemServices : IDispatch {
		[id(112201), propget]
		HRESULT ParentServices([out, retval] IServices** Value);
		[id(112201), propput]
		HRESULT ParentServices([in] IServices* Value);

		[id(0), propget]
		HRESULT Items(
			[in] SystemServiceTypeEnum ServiceType,
			[out, retval] IService** Value);
	}

	[
		uuid(670A379B-ABBC-4A53-B36B-4861C516362C),
		version(1.0),
		helpstring("System Services Object")
	]
	coclass SystemServices {
		[default] interface ISystemServices;
	};

	[
		odl,
		uuid(1F45B5B5-19A5-42FB-B60D-915CF87367E2),
		version(1.0),
		helpstring("Dispatch interface for Services Object"),
		dual,
		oleautomation
	]
	interface IServices : ICoreObject {
		[id(103501), propget]
		HRESULT InformationsCount([out, retval] long* Value);

		[id(0), propget]
		HRESULT Informations(
			[in] long Index,
			[out, retval] IServiceInfo** Value);

		[id(103502), propget]
		HRESULT InformationsByID(
			[in] BSTR ServiceID,
			[out, retval] IServiceInfo** Value);

		[id(103503), propget]
		HRESULT InformationsByUSI(
			[in] BSTR ServiceUSI,
			[out, retval] IServiceInfo** Value);

		[id(103504)]
		HRESULT CreateItem(
			[in] BSTR ServiceTypeCode,
			[out, retval] IService** Value);

		[id(103505)]
		HRESULT GetNewItemByID(
			[in] BSTR ServiceID,
			[out, retval] IService** Value);

		[id(103506)]
		HRESULT GetNewItemByUSI(
			[in] BSTR ServiceUSI,
			[out, retval] IService** Value);

		[id(103507)]
		HRESULT GetSingleItemByID(
			[in] BSTR ServiceID,
			[out, retval] IService** Value);

		[id(103508)]
		HRESULT GetSingleItemByUSI(
			[in] BSTR ServiceUSI,
			[out, retval] IService** Value);

		[id(103509)]
		HRESULT SaveItem(
			[in] IService* Service,
			[in] SaveDatabaseObjectActionEnum SaveDatabaseObjectAction,
			[out, retval] VARIANT_BOOL* Value);

		[id(103510)]
		HRESULT SaveItemInfo(
			[in] IServiceInfo* ServiceInfo,
			[out, retval] VARIANT_BOOL* Value);

		[id(103511)]
		HRESULT DeleteItem(
			[in] BSTR ServiceUSI,
			[in] SaveDatabaseObjectActionEnum SaveDatabaseObjectAction,
			[out, retval] VARIANT_BOOL* Value);

		[id(103512)]
		HRESULT CheckServiceUSI([in] BSTR ServiceUSI);

		[id(103513)]
		HRESULT RenameGroup(
			[in] BSTR OldGroupUSI,
			[in] BSTR NewGroupUSI,
			[out, retval] VARIANT_BOOL* Value);

		[id(103514)]
		HRESULT DeleteGroup(
			[in] BSTR GroupUSI,
			[out, retval] VARIANT_BOOL* Value);

		[id(103515)]
		HRESULT CheckGroupUSI([in] BSTR GroupUSI);

		[id(103516)]
		HRESULT GetItemStorageNodeByUSI(
			[in] BSTR ServiceUSI,
			[out] IXMLStorage** Storage,
			[out] IXMLStorageNode** Node);

		[id(103523)]
		HRESULT GetItemStorageNodeByUID(
			[in] BSTR ServiceUID,
			[out] IXMLStorage** Storage,
			[out] IXMLStorageNode** Node);

		[id(103517)]
		HRESULT GetItemProfileStorageNode(
			[in] BSTR ServiceUSI,
			[in] BSTR Key,
			[out] IXMLStorage** Storage,
			[out] IXMLStorageNode** Node);

		[id(103518)]
		HRESULT SerializeItemToProfile(
			[in] IService* Service,
			[in] BSTR Key);

		[id(103519)]
		HRESULT DeserializeItemFromProfile(
			[in] IService* Service,
			[in] BSTR Key);

		[id(103520)]
		HRESULT LoadItemsInfo();

		[id(103521)]
		HRESULT LockService(
			[in] BSTR ServiceUSI,
			[in] VARIANT_BOOL ForceLock,
			[out, retval] VARIANT_BOOL* Value);

		[id(103522)]
		HRESULT UnlockService(
			[in] BSTR ServiceUSI,
			[out, retval] VARIANT_BOOL* Value);
	};

	[
		uuid(37100295-A777-4A1F-9849-26A0496C15C1)
	]
	dispinterface IServicesEvents {
		properties:
		methods:
			[id(106501)]
			HRESULT OnBeforeSaveItem(
				[in] IService* Service,
				[in] SaveDatabaseObjectActionEnum SaveDatabaseObjectAction,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(106502)]
			HRESULT OnAfterSaveItem(
				[in] IService* Service,
				[in] SaveDatabaseObjectActionEnum SaveDatabaseObjectAction,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(106503)]
			HRESULT OnBeforeSaveItemInfo(
				[in] IServiceInfo* ServiceInfo,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(106504)]
			HRESULT OnAfterSaveItemInfo(
				[in] IServiceInfo* ServiceInfo,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(106505)]
			HRESULT OnBeforeDeleteItem(
				[in] BSTR ServiceUSI,
				[in] SaveDatabaseObjectActionEnum SaveDatabaseObjectAction,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(106506)]
			HRESULT OnAfterDeleteItem(
				[in] BSTR ServiceUSI,
				[in] SaveDatabaseObjectActionEnum SaveDatabaseObjectAction,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(106507)]
			HRESULT OnBeforeRenameGroup(
				[in] BSTR OldGroupUSI,
				[in] BSTR NewGroupUSI,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(106508)]
			HRESULT OnAfterRenameGroup(
				[in] BSTR OldGroupUSI,
				[in] BSTR NewGroupUSI);

			[id(106509)]
			HRESULT OnBeforeDeleteGroup(
				[in] BSTR GroupUSI,
				[in, out] VARIANT_BOOL* ExecuteAction);

			[id(106510)]
			HRESULT OnAfterDeleteGroup([in] BSTR GroupUSI);
	};

	[
		odl,
		uuid(C816910C-A46C-4599-A43C-00FDE6AFC313),
		version(1.0),
		helpstring("Dispatch interface for DBEngineType Object"),
		dual,
		oleautomation
	]
	interface IDBEngineType : ICoreCollectionItem {
		[id(103601), propget]
		HRESULT Code([out, retval] BSTR* Value);
		[id(103601), propput]
		HRESULT Code([in] BSTR Value);
		[id(103602), propget]
		HRESULT Name([out, retval] BSTR* Value);
		[id(103602), propput]
		HRESULT Name([in] BSTR Value);
		[id(103603), propget]
		HRESULT ObjectClassName([out, retval] BSTR* Value);
		[id(103603), propput]
		HRESULT ObjectClassName([in] BSTR Value);
		[id(103604), propget]
		HRESULT ObjectFileName([out, retval] BSTR* Value);
		[id(103604), propput]
		HRESULT ObjectFileName([in] BSTR Value);
		[id(103605), propget]
		HRESULT ParentDBEngineTypes([out, retval] IDBEngineTypes** Value);
		[id(103605), propput]
		HRESULT ParentDBEngineTypes([in] IDBEngineTypes* Value);
		[id(103606), propget]
		HRESULT ObjectCoClassGUID([out, retval] BSTR* Value);
	};

	[
		uuid(8177A880-5586-455E-83F6-97B50A7F3880),
		version(1.0),
		helpstring("DBEngineType Object")
	]
	coclass DBEngineType {
		[default] interface IDBEngineType;
		interface ICoreObject;
		interface ICoreCollectionItem;
	};

	[
		odl,
		uuid(763C00F1-6CD1-45DE-AC95-16179FCD1826),
		version(1.0),
		helpstring("Dispatch interface for DBEngineTypes Object"),
		dual,
		oleautomation
	]
	interface IDBEngineTypes : ICoreCollection {
		[id(103706), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IDBEngineType** Value);
		[id(103701)]
		HRESULT Add(
			[in] IDBEngineType* Item,
			[out, retval] long* Value);
		[id(103702)]
		HRESULT CreateItem([out, retval] IDBEngineType** Value);
		[id(103703)]
		HRESULT GetIndexOf(
			[in] IDBEngineType* Item,
			[out, retval] long* Value);
		[id(00000000), propget]
		HRESULT ItemsByCode(
			[in] BSTR Code,
			[out, retval] IDBEngineType** Value);
		[id(103705)]
		HRESULT Remove(
			[in] IDBEngineType* Item,
			[out, retval] long* Value);
	};

	[
		uuid(B83F46F6-CCC0-4484-B257-874E9DA9FB8B),
		version(1.0),
		helpstring("DBEngineTypes Object")
	]
	coclass DBEngineTypes {
		[default] interface IDBEngineTypes;
		interface ICoreObject;
		interface ICoreCollection;
	};

	// -----------------------------------------------------------------------
	// Indexes (1039XX)
	// -----------------------------------------------------------------------
	[
		uuid(F07C6683-7462-49E3-8F59-51613AF8AA02),
		odl, dual, oleautomation
	]
	interface IIndexes : ICoreCollection {
		[id(103901), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IIndex** Value);

		[id(0), propget]
		HRESULT ItemsByName(
			[in] BSTR SQLName,
			[out, retval] IIndex** Value);

		[id(103902), propget]
		HRESULT ParentTable([out, retval] ITable** Value);
		[id(103902), propput]
		HRESULT ParentTable([in] ITable* Value);

		[id(103903)]
		HRESULT CreateItem([out, retval] IIndex** Value);

		[id(103904)]
		HRESULT Add(
			[in] IIndex* Item,
			[out, retval] long* Value);

		[id(103905)]
		HRESULT Remove(
			[in] IIndex* Item,
			[out, retval] long* Value);

		[id(103906)]
		HRESULT GetIndexOf(
			[in] IIndex* Item,
			[out, retval] long* Value);
	};

	// -----------------------------------------------------------------------
	// Indexes CoClass
	// -----------------------------------------------------------------------
	[
		uuid(F71AD961-ACC1-4C03-9654-EC2558709307)
	]
	coclass Indexes {
		[default] interface IIndexes;
		interface ICoreCollection;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IIndex (1038XX)
	// -----------------------------------------------------------------------
	[
		uuid(7651CD70-0956-40EF-B8DE-E8CC6A234FBE),
		odl, dual, oleautomation
	]
	interface IIndex : ICoreCollection {
		[id(103801), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IIndexItem** Value);

		[id(0), propget]
		HRESULT ItemsByFieldName(
			[in] BSTR Name,
			[out, retval] IIndexItem** Value);

		[id(103802), propget]
		HRESULT SQLName([out, retval] BSTR* Value);
		[id(103802), propput]
		HRESULT SQLName([in] BSTR Value);

		[id(103803), propget]
		HRESULT IsUnique([out, retval] VARIANT_BOOL* Value);
		[id(103803), propput]
		HRESULT IsUnique([in] VARIANT_BOOL Value);

		[id(103804), propget]
		HRESULT ParentIndexes([out, retval] IIndexes** Value);
		[id(103804), propput]
		HRESULT ParentIndexes([in] IIndexes* Value);

		[id(103807)]
		HRESULT CreateItem([out, retval] IIndexItem** Value);

		[id(103808)]
		HRESULT Add(
			[in] IIndexItem* Item,
			[out, retval] long* Value);

		[id(103809)]
		HRESULT Remove(
			[in] IIndexItem* Item,
			[out, retval] long* Value);

		[id(103810)]
		HRESULT GetIndexOf(
			[in] IIndexItem* Item,
			[out, retval] long* Value);
	};

	// -----------------------------------------------------------------------
	// Index CoClass
	// -----------------------------------------------------------------------
	[
		uuid(E3A19495-4DF0-424C-B562-6E18289DAFC7)
	]
	coclass Index {
		[default] interface IIndex;
		interface ICoreCollection;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IIndexItem (1040XX)
	// -----------------------------------------------------------------------
	[

		uuid(4343A3FA-06E0-4471-9B98-261E3D74AEC0),
		odl, dual, oleautomation
	]
	interface IIndexItem : ICoreCollectionItem {
		[id(104001), propget]
		HRESULT Field([out, retval] ITableField** Value);
		[id(104001), propput]
		HRESULT Field([in] ITableField* Value);

		[id(104002), propget]
		HRESULT OrderType([out, retval] OrderTypeEnum* Value);
		[id(104002), propput]
		HRESULT OrderType([in] OrderTypeEnum Value);

		[id(104003), propget]
		HRESULT ParentIndex([out, retval] IIndex** Value);
		[id(104003), propput]
		HRESULT ParentIndex([in] IIndex* Value);
	};

	// -----------------------------------------------------------------------
	// IndexItem CoClass
	// -----------------------------------------------------------------------
	[
		uuid(0849A058-DDDF-4873-A1F0-1989F7384756)
	]
	coclass IndexItem {
		[default] interface IIndexItem;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	[
		uuid(91F4F7B9-206E-40E4-887B-5F5EE7593681),
		version(1.0)
	]
	dispinterface IDatasetEvents {
		properties:
		methods:
			[id(104101)]
			HRESULT OnDatasetStateChange([in] IDataset* Dataset);
			[id(104102)]
			HRESULT OnDatasetDataChange([in] IDataField* DataField);
			[id(104103)]
			HRESULT OnDatasetBeforePositionChange([in] IDataset* Dataset);
			[id(104119)]
			HRESULT OnDatasetAfterPositionChange([in] IDataset* Dataset);
			[id(104104)]
			HRESULT OnDatasetBeforeOpen([in] IDataset* Dataset);
			[id(104105)]
			HRESULT OnDatasetAfterOpen([in] IDataset* Dataset);
			[id(104106)]
			HRESULT OnDatasetBeforeClose([in] IDataset* Dataset);
			[id(104107)]
			HRESULT OnDatasetAfterClose([in] IDataset* Dataset);
			[id(104108)]
			HRESULT OnDatasetBeforeEdit(
				[in] IDataset* Dataset,
				[in] IValue* DoEdit);
			[id(104109)]
			HRESULT OnDatasetAfterEdit([in] IDataset* Dataset);
			[id(104110)]
			HRESULT OnDatasetBeforeAppend(
				[in] IDataset* Dataset,
				[in] IValue* DoAppend);
			[id(104111)]
			HRESULT OnDatasetAfterAppend([in] IDataset* Dataset);
			[id(104112)]
			HRESULT OnDatasetBeforePost(
				[in] IDataset* Dataset,
				[in] IValue* DoPost);
			[id(104113)]
			HRESULT OnDatasetAfterPost([in] IDataset* Dataset);
			[id(104114)]
			HRESULT OnDatasetBeforeCancel([in] IDataset* Dataset);
			[id(104115)]
			HRESULT OnDatasetAfterCancel([in] IDataset* Dataset);
			[id(104116)]
			HRESULT OnDatasetBeforeDelete(
				[in] IDataset* Dataset,
				[in] IValue* DoDelete);
			[id(104117)]
			HRESULT OnDatasetAfterDelete(
				[in] IDataset* Dataset,
				[in] VARIANT KeyValue);
			[id(104118)]
			HRESULT OnDatasetCalcFields([in] IDataset* Dataset);
			[id(104120)]
			HRESULT OnDatasetRefreshRecord(
				[in] IDataset* Dataset,
				[in] VARIANT KeyValue,
				[in] VARIANT_BOOL AddNewRecordOnPage);

			[id(104121)]
			HRESULT OnDatasetInsertDataField(
				[in] IDataset* Dataset,
				[in] IDataField* DataField);
			[id(104122)]
			HRESULT OnDatasetRemoveDataField(
				[in] IDataset* Dataset,
				[in] IDataField* DataField);
			[id(104123)]
			HRESULT OnDatasetChangeDataField(
				[in] IDataset* Dataset,
				[in] IDataField* DataField);
			[id(104124)]
			HRESULT OnDatasetDeleteError(
				[in] IDataset* Dataset,
				[in] IValue* IsHandled,
				[in] BSTR MessageText);
			[id(104125)]
			HRESULT OnDatasetPostError(
				[in] IDataset* Dataset,
				[in] IValue* IsHandled,
				[in] BSTR MessageText);
			[id(104126)]
			HRESULT OnDatasetBeforeLookupDatasetOpen(
				[in] IDataset* Dataset,
				[in] ILookupDataField* LookupDataField,
				[in] IDataset* LookupDataset);
			[id(104127)]
			HRESULT OnDatasetOpenError(
				[in] IDataset* Dataset,
				[in] IValue* IsHandled,
				[in] BSTR MessageText);
	};

	[
		odl,
		uuid(8F5542E6-01D3-428D-B682-C641301AB90D),
		version(1.0),
		helpstring("Dispatch interface for Log Object"),
		dual,
		oleautomation
	]
	interface ILog : ICoreObject {
		[id(104501)]
		HRESULT Write(
			[in] LogMessageTypeEnum MessageType,
			[in] BSTR MessageText);
		[id(104502)]
		HRESULT Clear();
		[id(104504), propget]
		HRESULT LogInformations([out, retval] VARIANT_BOOL* Value);
		[id(104504), propput]
		HRESULT LogInformations([in] VARIANT_BOOL Value);
		[id(104505), propget]
		HRESULT LogWarnings([out, retval] VARIANT_BOOL* Value);
		[id(104505), propput]
		HRESULT LogWarnings([in] VARIANT_BOOL Value);
		[id(104506), propget]
		HRESULT LogErrors([out, retval] VARIANT_BOOL* Value);
		[id(104506), propput]
		HRESULT LogErrors([in] VARIANT_BOOL Value);
		[id(104508), propget]
		HRESULT FileName([out, retval] BSTR* Value);
		[id(104509)]
		HRESULT WriteAction(
			[in] BSTR Name,
			[in] BSTR Description,
			[in] BSTR ScriptText);
		[id(104510)]
		HRESULT WriteToSystemLog(
			[in] LogMessageTypeEnum MessageType,
			[in] BSTR MessageCode,
			[in] BSTR MessageText,
			[in] BSTR MessageData,
			[in] VARIANT_BOOL IsNewLevel);
		[id(104511)]
		HRESULT CompleteSystemLogLevel();                        
	};

	[
		uuid(46698D28-96AD-47E0-BE0B-92EF356E01CC)
	]
	dispinterface ILogEvents {
		properties:
		methods:
			[id(104601)]
			HRESULT OnMessage(
				[in] LogMessageTypeEnum MessageType,
				[in] BSTR MessageText);

			[id(104602)]
			HRESULT OnAction(
				[in] BSTR Name,
				[in] BSTR Description,
				[in] BSTR ScriptText);
	};

	// -----------------------------------------------------------------------
	// IDataFields (1024XX)
	// -----------------------------------------------------------------------
	[
		uuid(4FA6EA61-71EA-4C66-A52A-C71F6438770C),
		odl, dual, oleautomation
	]
	interface IDataFields : ICoreCollection {
		[id(102401), propget]
		HRESULT ParentDataset([out, retval] IDataset** Value);
		[id(102401), propput]
		HRESULT ParentDataset([in] IDataset* Value);

		[id(102402), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IDataField** Value);

		[id(00000000), propget]
		HRESULT ItemsByName(
			[in] BSTR Name,
			[out, retval] IDataField** Value);

		[id(102403)]
		HRESULT Add(
			[in] IDataField* Item,
			[out, retval] long* Value);

		[id(102404)]
		HRESULT Remove(
			[in] IDataField* Item,
			[out, retval] long* Value);

		[id(102405)]
		HRESULT GetIndexOf(
			[in] IDataField* Item,
			[out, retval] long* Value);

		[id(102406)]
		HRESULT CreateStringDataField([out, retval] IStringDataField** Value);

		[id(102407)]
		HRESULT CreateIntegerDataField([out, retval] IIntegerDataField** Value);

		[id(102408)]
		HRESULT CreateFloatDataField([out, retval] IFloatDataField** Value);

		[id(102409)]
		HRESULT CreateBoolDataField([out, retval] IBoolDataField** Value);

		[id(102410)]
		HRESULT CreateDateTimeDataField([out, retval] IDateTimeDataField** Value);

		[id(102411)]
		HRESULT CreateBlobDataField([out, retval] IBlobDataField** Value);

		[id(102412)]
		HRESULT CreateLookupDataField([out, retval] ILookupDataField** Value);

		[id(102413)]
		HRESULT CreateEnumDataField([out, retval] IEnumDataField** Value);

		[id(102414)]
		HRESULT CreateCalcDataField([out, retval] ICalcDataField** Value);
	};

	// -----------------------------------------------------------------------
	// DataFields CoClass
	// -----------------------------------------------------------------------
	[
		uuid(108D9F64-04D1-4510-A921-8D5970A7CAD5)
	]
	coclass DataFields {
		[default] interface IDataFields;
		interface ICoreCollection;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IDataField (1047XX)
	// -----------------------------------------------------------------------
	[
		uuid(289E89B6-BB27-4C2B-996C-A51778FA34AD),
		odl, dual, oleautomation
	]
	interface IDataField : ICoreCollectionItem {
		[id(104701), propget]
		HRESULT FieldType([out, retval] DataFieldTypeEnum* Value);

		[id(104702), propget]
		HRESULT ParentDataFields([out, retval] IDataFields** Value);
		[id(104702), propput]
		HRESULT ParentDataFields([in] IDataFields* Value);

		[id(104703), propget]
		HRESULT Name([out, retval] BSTR* Value);
		[id(104703), propput]
		HRESULT Name([in] BSTR Value);

		[id(104704), propget]
		HRESULT Caption([out, retval] BSTR* Value);
		[id(104704), propput]
		HRESULT Caption([in] BSTR Value);

		[id(104705), propget]
		HRESULT MultilineCaption([out, retval] BSTR* Value);
		[id(104705), propput]
		HRESULT MultilineCaption([in] BSTR Value);

		[id(104706), propget]
		HRESULT Value([out, retval] VARIANT* Value);
		[id(104706), propput]
		HRESULT Value([in] VARIANT Value);

		[id(104707), propget]
		HRESULT DisplayValue([out, retval] BSTR* Value);

		[id(104708), propget]
		HRESULT IsRequired([out, retval] VARIANT_BOOL* Value);
		[id(104708), propput]
		HRESULT IsRequired([in] VARIANT_BOOL Value);

		[id(104709), propget]
		HRESULT IsReadOnly([out, retval] VARIANT_BOOL* Value);
		[id(104709), propput]
		HRESULT IsReadOnly([in] VARIANT_BOOL Value);

		[id(104710), propget]
		HRESULT IsSearchField([out, retval] VARIANT_BOOL* Value);
		[id(104710), propput]
		HRESULT IsSearchField([in] VARIANT_BOOL Value);

		[id(104711), propget]
		HRESULT IsDisplayField([out, retval] VARIANT_BOOL* Value);
		[id(104711), propput]
		HRESULT IsDisplayField([in] VARIANT_BOOL Value);

		[id(104719), propget]
		HRESULT IsFilteringField([out, retval] VARIANT_BOOL* Value);
		[id(104719), propput]
		HRESULT IsFilteringField([in] VARIANT_BOOL Value);

		[id(104712), propget]
		HRESULT GroupName([out, retval] BSTR* Value);
		[id(104712), propput]
		HRESULT GroupName([in] BSTR Value);

		[id(104713), propget]
		HRESULT ValueIsChanged([out, retval] VARIANT_BOOL* Value);
		[id(104713), propput]
		HRESULT ValueIsChanged([in] VARIANT_BOOL Value);

		[id(104714), propget]
		HRESULT OrderType([out, retval] OrderTypeEnum* Value);
		[id(104714), propput]
		HRESULT OrderType([in] OrderTypeEnum Value);

		[id(104715), propget]
		HRESULT OrderPosition([out, retval] long* Value);
		[id(104715), propput]
		HRESULT OrderPosition([in] long Value);

		[id(104716), propget]
		HRESULT IsEnabled([out, retval] VARIANT_BOOL* Value);
		[id(104716), propput]
		HRESULT IsEnabled([in] VARIANT_BOOL Value);

		[id(104717), propget]
		HRESULT ValIsNull([out, retval] VARIANT_BOOL* Value);

		[id(104718), propget]
		HRESULT OldValue([out, retval] VARIANT* Value);
	};

	// -----------------------------------------------------------------------
	// IStringDataField (1048XX)
	// -----------------------------------------------------------------------
	[
		uuid(AB8A7997-513D-4942-8A3D-F34B2BAA9331),
		odl, dual, oleautomation
	]
	interface IStringDataField : IDataField {
		[id(104801), propget]
		HRESULT TextLength([out, retval] long* Value);
		[id(104801), propput]
		HRESULT TextLength([in] long Value);

		[id(104802), propget]
		HRESULT Charset([out, retval] long* Value);
		[id(104802), propput]
		HRESULT Charset([in] long Value);

		[id(104803), propget]
		HRESULT ValAsStr([out, retval] BSTR* Value);
		[id(104803), propput]
		HRESULT ValAsStr([in] BSTR Value);
	};

	// -----------------------------------------------------------------------
	// StringDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(7DCBF00D-5C74-472D-8FBE-7880E62BACF6)
	]
	coclass StringDataField {
		[default] interface IStringDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IIntegerDataField (1049XX)
	// -----------------------------------------------------------------------
	[
		uuid(B616B7E2-AA45-47C9-8CAC-66851E1D629E),
		odl, dual, oleautomation
	]
	interface IIntegerDataField : IDataField {
		[id(104901), propget]
		HRESULT MinValue([out, retval] long* Value);
		[id(104901), propput]
		HRESULT MinValue([in] long Value);

		[id(104902), propget]
		HRESULT MaxValue([out, retval] long* Value);
		[id(104902), propput]
		HRESULT MaxValue([in] long Value);

		[id(104903), propget]
		HRESULT ValAsInt([out, retval] long* Value);
		[id(104903), propput]
		HRESULT ValAsInt([in] long Value);

		[id(104904), propget]
		HRESULT UseThousandSeparator([out, retval] VARIANT_BOOL* Value);
		[id(104904), propput]
		HRESULT UseThousandSeparator([in] VARIANT_BOOL Value);
	};

	// -----------------------------------------------------------------------
	// IntegerDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(D263AE64-00DF-46B7-A71A-EA6685631B1B)
	]
	coclass IntegerDataField {
		[default] interface IIntegerDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IFloatDataField (1028XX)
	// -----------------------------------------------------------------------
	[
		uuid(D9F826A6-4A36-4321-A508-CA8C2293C788),
		odl, dual, oleautomation
	]
	interface IFloatDataField : IDataField {
		[id(102801), propget]
		HRESULT Precision([out, retval] long* Value);
		[id(102801), propput]
		HRESULT Precision([in] long Value);

		[id(102802), propget]
		HRESULT MinValue([out, retval] double* Value);
		[id(102802), propput]
		HRESULT MinValue([in] double Value);

		[id(102803), propget]
		HRESULT MaxValue([out, retval] double* Value);
		[id(102803), propput]
		HRESULT MaxValue([in] double Value);

		[id(102804), propget]
		HRESULT ValAsFloat([out, retval] double* Value);
		[id(102804), propput]
		HRESULT ValAsFloat([in] double Value);

		[id(102805), propget]
		HRESULT Size([out, retval] long* Value);
		[id(102805), propput]
		HRESULT Size([in] long Value);

		[id(102806), propget]
		HRESULT UseThousandSeparator([out, retval] VARIANT_BOOL* Value);
		[id(102806), propput]
		HRESULT UseThousandSeparator([in] VARIANT_BOOL Value);
	};

	// -----------------------------------------------------------------------
	// FloatDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(D37E112A-AD86-4FB5-B1AC-29BF4B9F192B)
	]
	coclass FloatDataField {
		[default] interface IFloatDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IBoolDataField (1050XX)
	// -----------------------------------------------------------------------
	[
		uuid(D14498F7-5E77-432E-B1F8-86B61AAA9A6F),
		odl, dual, oleautomation
	]
	interface IBoolDataField : IDataField {
		[id(105001), propget]
		HRESULT ValAsBool([out, retval] VARIANT_BOOL* Value);
		[id(105001), propput]
		HRESULT ValAsBool([in] VARIANT_BOOL Value);
	};

	// -----------------------------------------------------------------------
	// BoolDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(7AD996C1-7E89-471A-B026-9CB84C7C563E)
	]
	coclass BoolDataField {
		[default] interface IBoolDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IDateTimeDataField (1088XX)
	// -----------------------------------------------------------------------
	[
		uuid(1A6978DB-6B7A-4B21-86AB-1F0A32B57E45),
		odl, dual, oleautomation
	]
	interface IDateTimeDataField : IDataField {
		[id(108801), propget]
		HRESULT ValAsDateTime([out, retval] DATE* Value);
		[id(108801), propput]
		HRESULT ValAsDateTime([in] DATE Value);
	};

	// -----------------------------------------------------------------------
	// DateTimeDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(AA7646F2-C064-470D-AFA4-99405F7C7196)
	]
	coclass DateTimeDataField {
		[default] interface IDateTimeDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IDateTimeDataField (1098XX)
	// -----------------------------------------------------------------------
	[
		uuid(FA2E3B84-C3E6-40EE-A5AA-1719344C17A4),
		odl, dual, oleautomation
	]
	interface IBlobDataField : IDataField {
		[id(109801)]
		HRESULT GetValAsBlob(
			[in] IUnknown* Stream);

		[id(109802)]
		HRESULT SetValAsBlob([in] IUnknown* Stream);

		[id(109803)]
		HRESULT SaveToFile([in] BSTR FileName);

		[id(109804)]
		HRESULT LoadFromFile([in] BSTR FileName);
	};

	// -----------------------------------------------------------------------
	// BlobDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(82D40F8F-1719-4C14-B861-DC5180D2F21D)
	]
	coclass BlobDataField {
		[default] interface IBlobDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// ILookupDataField (1091XX)
	// -----------------------------------------------------------------------
	[
		uuid(C1309A3A-5568-4CCC-B4AA-FD582F95C823),
		odl, dual, oleautomation
	]
	interface ILookupDataField : IDataField {
		[id(109101), propget]
		HRESULT LookupDataset([out, retval] IDBDataset** Value);
		[id(109101), propput]
		HRESULT LookupDataset([in] IDBDataset* Value);

		[id(109102), propget]
		HRESULT DisplayColumn([out, retval] IColumn** Value);
		[id(109102), propput]
		HRESULT DisplayColumn([in] IColumn* Value);

		[id(109103), propget]
		HRESULT IsSimpleSelect([out, retval] VARIANT_BOOL* Value);
		[id(109103), propput]
		HRESULT IsSimpleSelect([in] VARIANT_BOOL Value);

		[id(109104), propget]
		HRESULT LookupDatasetUSI([out, retval] BSTR* Value);
	};

	// -----------------------------------------------------------------------
	// LookupDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(87CF484F-322D-4A5F-95E6-A0CCBB050E73)
	]
	coclass LookupDataField {
		[default] interface ILookupDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IEnumDataField (1104XX)
	// -----------------------------------------------------------------------
	[
		uuid(B130A7CC-C248-4748-B40D-0C4F0A12C7AF),
		odl, dual, oleautomation
	]
	interface IEnumDataField : IDataField {
		[id(110401), propget]
		HRESULT Enum([out, retval] IEnum** Value);
		[id(110401), propput]
		HRESULT Enum([in] IEnum* Value);

		[id(110402), propget]
		HRESULT ValAsEnumItem([out, retval] IEnumItem** Value);
		[id(110402), propput]
		HRESULT ValAsEnumItem([in] IEnumItem* Value);
	};

	// -----------------------------------------------------------------------
	// EnumDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(CAA5F544-443B-484C-9B2E-F713B1BD1021)
	]
	coclass EnumDataField {
		[default] interface IEnumDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// ICalcDataField (1106XX)
	// -----------------------------------------------------------------------
	[
		uuid(CC61C502-D8BD-4A6F-8510-05316268A0B8),
		odl, dual, oleautomation
	]
	interface ICalcDataField : IDataField {
		[id(110501), propget]
		HRESULT SQLDataType([out, retval] SQLDataTypeEnum* Value);
		[id(110501), propput]
		HRESULT SQLDataType([in] SQLDataTypeEnum Value);

		[id(110502), propget]
		HRESULT SQLSize([out, retval] long* Value);
		[id(110502), propput]
		HRESULT SQLSize([in] long Value);

		[id(110503), propget]
		HRESULT SQLPrecision([out, retval] long* Value);
		[id(110503), propput]
		HRESULT SQLPrecision([in] long Value);
	};

	// -----------------------------------------------------------------------
	// CalcDataField CoClass
	// -----------------------------------------------------------------------
	[
		uuid(4E6704E3-34F5-4175-B352-1D53EAFF4389)
	]
	coclass CalcDataField {
		[default] interface ICalcDataField;
		interface IDataField;
		interface ICoreCollectionItem;
		interface ICoreObject;
	};

	[
		uuid(21E3C758-B814-49CF-8E36-8E1FFC5F474C),
		version(1.0),
		helpstring("Log Object")
	]
	coclass Log {
		[default] interface ILog;
		[default, source] dispinterface ILogEvents;
		interface ICoreObject;
	};

	[
		odl,
		uuid(050390CE-7B2A-4F69-82CF-202B09E62150),
		version(1.0),
		helpstring("Dispatch interface for Script Object"),
		dual,
		oleautomation
	]
	interface IScript : IService {
		[id(105101), propget]
		HRESULT Text([out, retval] BSTR* Value);
		[id(105101), propput]
		HRESULT Text([in] BSTR Value);

		[id(105102), propget]
		HRESULT Timeout([out, retval] long* Value);
		[id(105102), propput]
		HRESULT Timeout([in] long Value);

		[id(105103), propget]
		HRESULT Includes([out, retval] IScriptIncludes** Value);

		[id(105104), propget]
		HRESULT Enums([out, retval] IScriptEnums** Value);

		[id(105105), propget]
		HRESULT State([out, retval] ScriptStateEnum* Value);

		[id(105106), propget]
		HRESULT IsExecuting([out, retval] VARIANT_BOOL* Value);

		[id(105107)]
		HRESULT Prepare();

		[id(105108)]
		HRESULT Unprepare();

		[id(105109)]
		HRESULT Reset();

		[id(105110)]
		HRESULT AddObject(
			[in] IDispatch* Obj,
			[in] BSTR ObjectName,
			[in] VARIANT_BOOL IncRefCount);

		[id(105111)]
		HRESULT ExecuteMethod(
			[in] BSTR MethodName,
			[in] SAFEARRAY(long) Parameters,

			[out, retval] VARIANT* Value);
		[id(105112)]
		HRESULT GetMethodNames([out, retval] BSTR* Value);

		[id(105113)]
		HRESULT GetIsMethodExists(
			[in] BSTR MethodName,
			[out, retval] VARIANT_BOOL* Value);

		[id(105114)]
		HRESULT GetIsObjectExists(
			[in] BSTR ObjectName,
			[out, retval] VARIANT_BOOL* Value);

		[id(105115)]
		HRESULT GetLastError([out, retval] IScriptErrorInfo** Value);
	};

	[
		uuid(2F8554F1-EC4B-46D5-9B23-AB3087CCF9F6),
		version(1.0),
		helpstring("Script Object")
	]
	coclass Script {
		[default] interface IScript;
		interface IService;
		interface ICoreObject;
	};

	[
		odl,
		uuid(A13078DD-78C7-43E2-BDE2-7EF2606F7B22),
		version(1.0),
		dual,
		oleautomation
	]
	interface IProfiling : IDispatch {
		[id(105603)]
		HRESULT ProfileSerialize([in] IXMLStorageNode* Node);
		[id(105604)]
		HRESULT ProfileDeserialize([in] IXMLStorageNode* Node);
	};

	[
		odl,
		uuid(ABD1BD63-83C8-4E35-B1C5-6069E59889A4),
		version(1.0),
		helpstring("Dispatch interface for ServiceInfo Object"),
		dual,
		oleautomation
	]
	interface IServiceInfo : IDispatch {
		[id(105701), propget]
		HRESULT ID([out, retval] BSTR* Value);

		[id(105702), propget]
		HRESULT USI([out, retval] BSTR* Value);

		[id(105703), propget]
		HRESULT ServiceTypeCode([out, retval] BSTR* Value);

		[id(105704), propget]
		HRESULT Caption([out, retval] BSTR* Value);

		[id(105705), propget]
		HRESULT Description([out, retval] BSTR* Value);

		[id(105706), propget]
		HRESULT Version([out, retval] long* Value);

		[id(105707), propget]
		HRESULT LockedByUserID([out, retval] BSTR* Value);

		[id(105713), propget]
		HRESULT LockedByUserName([out, retval] BSTR* Value);

		[id(105708), propget]
		HRESULT DatabaseID([out, retval] BSTR* Value);

		[id(105709), propget]
		HRESULT CreatedOn([out, retval] DATE* Value);

		[id(105710), propget]
		HRESULT CreatedByID([out, retval] BSTR* Value);

		[id(105711), propget]
		HRESULT ModifiedOn([out, retval] DATE* Value);

		[id(105712), propget]
		HRESULT ModifiedByID([out, retval] BSTR* Value);
	};

	[
		uuid(AF748504-86FD-4948-813E-81B7F08E33B1),
		version(1.0),
		helpstring("ServiceInfo Object")
	]
	coclass ServiceInfo {
		[default] interface IServiceInfo;
	};

	[
		odl,
		uuid(7219858C-F1F9-4CFC-A1F7-1BB5D29FC106),
		version(1.0),
		helpstring("Dispatch interface for ScriptErrorInfo Object"),
		dual,
		oleautomation
	]
	interface IScriptErrorInfo : IDispatch {
		[id(105901), propget]
		HRESULT Number([out, retval] long* Value);
		[id(105901), propput]
		HRESULT Number([in] long Value);
		[id(105902), propget]
		HRESULT Source([out, retval] BSTR* Value);
		[id(105902), propput]
		HRESULT Source([in] BSTR Value);
		[id(105903), propget]
		HRESULT Description([out, retval] BSTR* Value);
		[id(105903), propput]
		HRESULT Description([in] BSTR Value);
		[id(105904), propget]
		HRESULT Text([out, retval] BSTR* Value);
		[id(105904), propput]
		HRESULT Text([in] BSTR Value);
		[id(105905), propget]
		HRESULT Line([out, retval] long* Value);
		[id(105905), propput]
		HRESULT Line([in] long Value);
		[id(105906), propget]
		HRESULT Column([out, retval] long* Value);
		[id(105906), propput]
		HRESULT Column([in] long Value);
		[id(105907), propget]
		HRESULT SourceScriptUSI([out, retval] BSTR* Value);
		[id(105907), propput]
		HRESULT SourceScriptUSI([in] BSTR Value);
	};

	[
		uuid(37DC0E3B-F697-4199-A6D4-3FC5B8D09866),
		version(1.0),
		helpstring("ScriptErrorInfo Object")
	]
	coclass ScriptErrorInfo {
		[default] interface IScriptErrorInfo;
	};

	[
		odl,
		uuid(715E9E18-CF89-49E2-A07B-EC2C9C61A4FE),
		version(1.0),
		dual,
		oleautomation
	]
	interface IDataset : IScriptableService {
		[id(103401), propget]
		HRESULT DataFields([out, retval] IDataFields** Value);

		[id(103402), propget]
		HRESULT KeyDataField([out, retval] IDataField** Value);
		[id(103402), propput]
		HRESULT KeyDataField([in] IDataField* Value);

		[id(00000000), propget]
		HRESULT Values(
			[in] BSTR Name,
			[out, retval] VARIANT* Value);
		[id(00000000), propput]
		HRESULT Values(
			[in] BSTR Name,
			[in] VARIANT Value);

		[id(103403), propget]
		HRESULT ValAsStr(
			[in] BSTR Name,
			[out, retval] BSTR* Value);
		[id(103403), propput]
		HRESULT ValAsStr(
			[in] BSTR Name,
			[in] BSTR Value);

		[id(103404), propget]
		HRESULT ValAsInt(
			[in] BSTR Name,
			[out, retval] long* Value);
		[id(103404), propput]
		HRESULT ValAsInt(
			[in] BSTR Name,
			[in] long Value);

		[id(103405), propget]
		HRESULT ValAsFloat(
			[in] BSTR Name,
			[out, retval] double* Value);
		[id(103405), propput]
		HRESULT ValAsFloat(
			[in] BSTR Name,
			[in] double Value);

		[id(103406), propget]
		HRESULT ValAsBool(
			[in] BSTR Name,
			[out, retval] VARIANT_BOOL* Value);
		[id(103406), propput]
		HRESULT ValAsBool(
			[in] BSTR Name,
			[in] VARIANT_BOOL Value);

		[id(103407), propget]
		HRESULT ValAsDateTime(
			[in] BSTR Name,
			[out, retval] DATE* Value);
		[id(103407), propput]
		HRESULT ValAsDateTime(
			[in] BSTR Name,
			[in] DATE Value);

		[id(103408), propget]
		HRESULT ValAsGUID(
			[in] BSTR Name,
			[out, retval] BSTR* Value);
		[id(103408), propput]
		HRESULT ValAsGUID(
			[in] BSTR Name,
			[in] BSTR Value);

		[id(103409)]
		HRESULT GetValAsBlob(
			[in] BSTR Name,
			[in] IUnknown* Stream);

		[id(103410)]
		HRESULT SetValAsBlob(
			[in] BSTR Name,
			[in] IUnknown* Stream);

		[id(103413), propget]
		HRESULT RecordsCount([out, retval] long* Value);

		[id(103414), propget]
		HRESULT RecordNumber([out, retval] long* Value);
		[id(103414), propput]
		HRESULT RecordNumber([in] long Value);

		[id(103415), propget]
		HRESULT FetchRecordsCount([out, retval] long* Value);
		[id(103415), propput]
		HRESULT FetchRecordsCount([in] long Value);

		[id(103416), propget]
		HRESULT PageRecordsCount([out, retval] long* Value);

		[id(103417), propget]
		HRESULT PageRecordNumber([out, retval] long* Value);
		[id(103417), propput]
		HRESULT PageRecordNumber([in] long Value);

		[id(103418), propget]
		HRESULT PageNumber([out, retval] long* Value);
		[id(103418), propput]
		HRESULT PageNumber([in] long Value);

		[id(103419), propget]
		HRESULT PagesCount([out, retval] long* Value);

		[id(103420), propget]
		HRESULT IsFirstPageRecord(
			[in] long Page,
			[out, retval] VARIANT_BOOL* Value);

		[id(103421), propget]
		HRESULT IsLastPageRecord(
			[in] long Page,
			[out, retval] VARIANT_BOOL* Value);

		[id(103422), propget]
		HRESULT IsBOF([out, retval] VARIANT_BOOL* Value);

		[id(103423), propget]
		HRESULT IsEOF([out, retval] VARIANT_BOOL* Value);

		[id(103424), propget]
		HRESULT IsEmptyPage([out, retval] VARIANT_BOOL* Value);

		[id(103425), propget]
		HRESULT AutoRefresh([out, retval] VARIANT_BOOL* Value);
		[id(103425), propput]
		HRESULT AutoRefresh([in] VARIANT_BOOL Value);

		[id(103426), propget]
		HRESULT State([out, retval] DatasetStateEnum* Value);

		[id(103427), propget]
		HRESULT IsActive([out, retval] VARIANT_BOOL* Value);

		[id(103429)]
		HRESULT Open();

		[id(103430)]
		HRESULT Close();

		[id(103431)]
		HRESULT Append([out, retval] VARIANT_BOOL* Value);

		[id(103432)]
		HRESULT Edit([out, retval] VARIANT_BOOL* Value);

		[id(103433)]
		HRESULT Delete([out, retval] long* Value);

		[id(103434)]
		HRESULT Post([out, retval] long* Value);

		[id(103435)]
		HRESULT Cancel();

		[id(103436)]
		HRESULT RefreshRecord(
			[in] VARIANT KeyValue,
			[in] VARIANT_BOOL AddNewRecordOnPage);

		[id(103437)]
		HRESULT GotoPrior();

		[id(103438)]
		HRESULT GotoNext();

		[id(103439)]
		HRESULT GotoFirst();

		[id(103440)]
		HRESULT GotoLast();

		[id(103441)]
		HRESULT Locate(
			[in] BSTR KeyFields,
			[in] VARIANT KeyValues,
			[out, retval] VARIANT_BOOL* Value);

		[id(103442)]
		HRESULT GotoPageFirst();

		[id(103443)]
		HRESULT GotoPageLast();

		[id(103444)]
		HRESULT Copy();

		[id(103445)]
		HRESULT CalcDataFields();

		[id(103446)]
		HRESULT LoadFromFile([in] BSTR FileName);

		[id(103447)]
		HRESULT LoadFromXML([in] IUnknown* Stream);

		[id(103448)]
		HRESULT SaveToXML([in] IUnknown* Stream);

		[id(103449)]
		HRESULT SetSummaryType(
			[in] BSTR FieldName,
			[in] VARIANT SummaryType);

		[id(103450)]
		HRESULT GetSummary(
			[in] BSTR FieldName,
			[in] SummaryTypeEnum SummaryType,
			[out, retval] VARIANT* Value);

		[id(103451), propget]
		HRESULT DisplayValues(
			[in] BSTR Name,
			[out, retval] BSTR* Value);

		[id(103452), propget]
		HRESULT ValIsNull(
			[in] BSTR Name,
			[out, retval] VARIANT_BOOL* Value);

		[id(103453), propget]
		HRESULT CanEdit([out, retval] VARIANT_BOOL* Value);
		[id(103453), propput]
		HRESULT CanEdit([in] VARIANT_BOOL Value);

		[id(103454), propget]
		HRESULT CanInsert([out, retval] VARIANT_BOOL* Value);
		[id(103454), propput]
		HRESULT CanInsert([in] VARIANT_BOOL Value);

		[id(103455), propget]
		HRESULT CanDelete([out, retval] VARIANT_BOOL* Value);
		[id(103455), propput]
		HRESULT CanDelete([in] VARIANT_BOOL Value);
	};

	// -----------------------------------------------------------------------
	// IMemoryDataset (1092XX)
	// -----------------------------------------------------------------------
	[
		uuid(872ACAF3-4A07-48A0-B05C-3EA75193BDC9),
		odl, dual, oleautomation
	]
	interface IMemoryDataset : IDataset {
		[id(109201)]
		HRESULT SaveToFile(
			[in] BSTR FileName,
			[in] FileTypeEnum FileType);
	};

	[
		uuid(64250DFB-C6AA-4BC8-B4C6-515C52D98244),
		version(1.0),
		helpstring("MemoryDataset Object")
	]
	coclass MemoryDataset {
		[default] interface IMemoryDataset;
		interface IScriptableService;
		interface IDataset;
		interface IService;
		interface ICoreObject;
		[default, source] dispinterface IDatasetEvents;
	};

	[
		uuid(1A9FE4B0-1B2D-43C7-8F1D-B693ED8B0551),
		version(1.0)
	]
	coclass CoreCollection {
		[default] interface ICoreCollection;
		interface ICoreObject;
	};

	[
		uuid(95F722A4-DDD9-4B1D-91BC-9183779400F7),
		version(1.0)
	]
	coclass CoreCollectionItem {
		[default] interface ICoreCollectionItem;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IRelations (1061XX)
	// -----------------------------------------------------------------------
	[
		uuid(9520E26D-3875-4769-A617-000F410115EB),
		odl, dual, oleautomation
	]
	interface IRelations : ICoreCollection {
		[id(106101), propget]
		HRESULT Items(
			[in] long Index,
			[out, retval] IRelation** Value);

		[id(0), propget]
		HRESULT ItemsByName(
			[in] BSTR SQLName,
			[out, retval] IRelation** Value);

		[id(106102), propget]
		HRESULT ParentTable([out, retval] ITable** Value);
		[id(106102), propput]
		HRESULT ParentTable([in] ITable* Value);

		[id(106103)]
		HRESULT CreateItem([out, retval] IRelation** Value);

		[id(106104)]
		HRESULT Add(
			[in] IRelation* Item,
			[out, retval] long* Value);

		[id(106105)]
		HRESULT Remove(
			[in] IRelation* Item,
			[out, retval] long* Value);

		[id(106106)]
		HRESULT GetIndexOf(
			[in] IRelation* Item,
			[out, retval] long* Value);
	};

	// -----------------------------------------------------------------------
	// Relations CoClass
	// -----------------------------------------------------------------------
	[
		uuid(78A81EEC-6812-4EE1-9586-9C61949AF453)
	]
	coclass Relations {
		[default] interface IRelations;
		interface ICoreCollection;
		interface ICoreObject;
	};

	// -----------------------------------------------------------------------
	// IRelation (1007XX)
	// -----------------------------------------------------------------------
	[
		uuid(F2A09BF9-8F70-4371-B282-CF42C2C27414),
		odl, dual, oleautomation
	]
	interface IRelation : ICoreCollectionItem {
		[id(100701), propget]
		HRESULT SQLName([out, retval] BSTR* Value);
		[id(100701), propput]
		HRESULT SQLName([in] BSTR Value);

		[id(100702), propget]
		HRESULT IsCascade([out, retval] VARIANT_BOOL* Value);
		[id(100702), propput]
		HRESULT IsCascade([in] VARIANT_BOOL Value);

		[id(100703), propget]
		HRESULT ParentField([out, retval] ITableField** Value);
		[id(100703), propput]
		HRESULT ParentField([in] ITableField* Value);

		[id(100704), propget]
		HRESULT ChildField([out, retval] ITableField** Value);
		[id(100704), propput]
		HRESULT ChildField([in] ITableField* Value);

		[id(100705), propget]
		HRESULT ParentRelations([out, retval] IRelations** Value);
		[id(100705), propput]
		HRESULT ParentRelations([in] IRelations* Value);
	};

	// -----------------------------------------------------------------------
	// Relation CoClass
	// -----------------------------------------------------------------------
	[
		uuid(BAF3FCA3-9D38-46AF-9C50-3EE1B90114C9)
	]
	coclass Relation {
		[default] interface IRelation;
		interface ICoreCollectionItem;
		i