master
   1/**
   2 * This file has no copyright assigned and is placed in the Public Domain.
   3 * This file is part of the mingw-w64 runtime package.
   4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
   5 */
   6#ifndef _DBDAOINT_H_
   7#define _DBDAOINT_H_
   8
   9#include <tchar.h>
  10
  11struct _DAODBEngine;
  12#define DAODBEngine _DAODBEngine
  13struct DAOError;
  14struct _DAOCollection;
  15#define DAOCollection _DAOCollection
  16struct DAOErrors;
  17struct DAOProperty;
  18struct _DAODynaCollection;
  19#define DAODynaCollection _DAODynaCollection
  20struct DAOProperties;
  21struct DAOWorkspace;
  22struct DAOWorkspaces;
  23struct DAOConnection;
  24struct DAOConnections;
  25struct DAODatabase;
  26struct DAODatabases;
  27struct _DAOTableDef;
  28#define DAOTableDef _DAOTableDef
  29struct DAOTableDefs;
  30struct _DAOQueryDef;
  31#define DAOQueryDef _DAOQueryDef
  32struct DAOQueryDefs;
  33struct DAORecordset;
  34struct DAORecordsets;
  35struct _DAOField;
  36#define DAOField _DAOField
  37struct DAOFields;
  38struct _DAOIndex;
  39#define DAOIndex _DAOIndex
  40struct DAOIndexes;
  41struct DAOParameter;
  42struct DAOParameters;
  43struct _DAOUser;
  44#define DAOUser _DAOUser
  45struct DAOUsers;
  46struct _DAOGroup;
  47#define DAOGroup _DAOGroup
  48struct DAOGroups;
  49struct _DAORelation;
  50#define DAORelation _DAORelation
  51struct DAORelations;
  52struct DAOContainer;
  53struct DAOContainers;
  54struct DAODocument;
  55struct DAODocuments;
  56struct DAOIndexFields;
  57
  58typedef enum RecordsetTypeEnum {
  59  dbOpenTable = 1,dbOpenDynaset = 2,dbOpenSnapshot = 4,dbOpenForwardOnly = 8,dbOpenDynamic = 16
  60} RecordsetTypeEnum;
  61
  62typedef enum EditModeEnum {
  63  dbEditNone = 0,dbEditInProgress = 1,dbEditAdd = 2,dbEditChanged = 4,dbEditDeleted = 8,dbEditNew = 16
  64} EditModeEnum;
  65
  66typedef enum RecordsetOptionEnum {
  67  dbDenyWrite = 0x1,dbDenyRead = 0x2,dbReadOnly = 0x4,dbAppendOnly = 0x8,dbInconsistent = 0x10,dbConsistent = 0x20,dbSQLPassThrough = 0x40,
  68  dbFailOnError = 0x80,dbForwardOnly = 0x100,dbSeeChanges = 0x200,dbRunAsync = 0x400,dbExecDirect = 0x800
  69} RecordsetOptionEnum;
  70
  71typedef enum LockTypeEnum {
  72  dbPessimistic = 0x2,dbOptimistic = 0x3,dbOptimisticValue = 0x1,dbOptimisticBatch = 0x5
  73} LockTypeEnum;
  74
  75typedef enum UpdateCriteriaEnum {
  76  dbCriteriaKey = 0x1,dbCriteriaModValues = 0x2,dbCriteriaAllCols = 0x4,dbCriteriaTimestamp = 0x8,dbCriteriaDeleteInsert = 0x10,
  77  dbCriteriaUpdate = 0x20
  78} UpdateCriteriaEnum;
  79
  80typedef enum FieldAttributeEnum {
  81  dbFixedField = 0x1,dbVariableField = 0x2,dbAutoIncrField = 0x10,dbUpdatableField = 0x20,dbSystemField = 0x2000,dbHyperlinkField = 0x8000,
  82  dbDescending = 0x1
  83} FieldAttributeEnum;
  84
  85typedef enum DataTypeEnum {
  86  dbBoolean = 1,dbByte = 2,dbInteger = 3,dbLong = 4,dbCurrency = 5,dbSingle = 6,dbDouble = 7,dbDate = 8,dbBinary = 9,dbText = 10,
  87  dbLongBinary = 11,dbMemo = 12,dbGUID = 15,dbBigInt = 16,dbVarBinary = 17,dbChar = 18,dbNumeric = 19,dbDecimal = 20,dbFloat = 21,
  88  dbTime = 22,dbTimeStamp = 23
  89} DataTypeEnum;
  90
  91typedef enum RelationAttributeEnum {
  92  dbRelationUnique = 0x1,dbRelationDontEnforce = 0x2,dbRelationInherited = 0x4,dbRelationUpdateCascade = 0x100,dbRelationDeleteCascade = 0x1000,
  93  dbRelationLeft = 0x1000000,dbRelationRight = 0x2000000
  94} RelationAttributeEnum;
  95
  96typedef enum TableDefAttributeEnum {
  97  dbAttachExclusive = 0x10000,dbAttachSavePWD = 0x20000,dbSystemObject = 0x80000002,dbAttachedTable = 0x40000000,dbAttachedODBC = 0x20000000,
  98  dbHiddenObject = 0x1
  99} TableDefAttributeEnum;
 100
 101typedef enum QueryDefTypeEnum {
 102  dbQSelect = 0,dbQProcedure = 0xe0,dbQAction = 0xf0,dbQCrosstab = 0x10,dbQDelete = 0x20,dbQUpdate = 0x30,dbQAppend = 0x40,
 103  dbQMakeTable = 0x50,dbQDDL = 0x60,dbQSQLPassThrough = 0x70,dbQSetOperation = 0x80,dbQSPTBulk = 0x90,dbQCompound = 0xa0
 104} QueryDefTypeEnum;
 105
 106typedef enum QueryDefStateEnum {
 107  dbQPrepare = 1,dbQUnprepare = 2
 108} QueryDefStateEnum;
 109
 110typedef enum DatabaseTypeEnum {
 111  dbVersion10 = 1,dbEncrypt = 2,dbDecrypt = 4,dbVersion11 = 8,dbVersion20 = 16,dbVersion30 = 32,dbVersion40 = 64
 112} DatabaseTypeEnum;
 113
 114typedef enum CollatingOrderEnum {
 115  dbSortNeutral = 0x400,dbSortArabic = 0x401,dbSortCyrillic = 0x419,dbSortCzech = 0x405,dbSortDutch = 0x413,dbSortGeneral = 0x409,
 116  dbSortGreek = 0x408,dbSortHebrew = 0x40d,dbSortHungarian = 0x40e,dbSortIcelandic = 0x40f,dbSortNorwdan = 0x406,dbSortPDXIntl = 0x409,
 117  dbSortPDXNor = 0x406,dbSortPDXSwe = 0x41d,dbSortPolish = 0x415,dbSortSpanish = 0x40a,dbSortSwedFin = 0x41d,dbSortTurkish = 0x41f,
 118  dbSortJapanese = 0x411,dbSortChineseSimplified = 0x804,dbSortChineseTraditional = 0x404,dbSortKorean = 0x412,dbSortThai = 0x41e,
 119  dbSortSlovenian = 0x424,dbSortUndefined = -1
 120} CollatingOrderEnum;
 121
 122typedef enum IdleEnum {
 123  dbFreeLocks = 1,dbRefreshCache = 8
 124} IdleEnum;
 125
 126typedef enum PermissionEnum {
 127  dbSecNoAccess = 0,dbSecFullAccess = 0xfffff,dbSecDelete = 0x10000,dbSecReadSec = 0x20000,dbSecWriteSec = 0x40000,dbSecWriteOwner = 0x80000,
 128  dbSecDBCreate = 0x1,dbSecDBOpen = 0x2,dbSecDBExclusive = 0x4,dbSecDBAdmin = 0x8,dbSecCreate = 0x1,dbSecReadDef = 0x4,dbSecWriteDef = 0x1000c,
 129  dbSecRetrieveData = 0x14,dbSecInsertData = 0x20,dbSecReplaceData = 0x40,dbSecDeleteData = 0x80
 130} PermissionEnum;
 131
 132typedef enum SynchronizeTypeEnum {
 133  dbRepExportChanges = 0x1,dbRepImportChanges = 0x2,dbRepImpExpChanges = 0x4,dbRepSyncInternet = 0x10
 134} SynchronizeTypeEnum;
 135
 136typedef enum ReplicaTypeEnum {
 137  dbRepMakeReadOnly = 0x2,dbRepMakePartial = 0x1
 138} ReplicaTypeEnum;
 139
 140typedef enum WorkspaceTypeEnum {
 141  dbUseODBC = 1,dbUseJet = 2
 142} WorkspaceTypeEnum;
 143
 144typedef enum CursorDriverEnum {
 145  dbUseDefaultCursor = -1,dbUseODBCCursor = 1,dbUseServerCursor = 2,dbUseClientBatchCursor = 3,dbUseNoCursor = 4
 146} CursorDriverEnum;
 147
 148typedef enum DriverPromptEnum {
 149  dbDriverPrompt = 2,dbDriverNoPrompt = 1,dbDriverComplete = 0,dbDriverCompleteRequired = 3
 150} DriverPromptEnum;
 151
 152typedef enum SetOptionEnum {
 153  dbPageTimeout = 6,dbLockRetry = 57,dbMaxBufferSize = 8,dbUserCommitSync = 58,dbImplicitCommitSync = 59,dbExclusiveAsyncDelay = 60,
 154  dbSharedAsyncDelay = 61,dbMaxLocksPerFile = 62,dbLockDelay = 63,dbRecycleLVs = 65,dbFlushTransactionTimeout = 66
 155} SetOptionEnum;
 156
 157typedef enum ParameterDirectionEnum {
 158  dbParamInput = 1,dbParamOutput = 2,dbParamInputOutput = 3,dbParamReturnValue = 4
 159} ParameterDirectionEnum;
 160
 161typedef enum UpdateTypeEnum {
 162  dbUpdateBatch = 4,dbUpdateRegular = 1,dbUpdateCurrentRecord = 2
 163} UpdateTypeEnum;
 164
 165typedef enum RecordStatusEnum {
 166  dbRecordUnmodified = 0,dbRecordModified = 1,dbRecordNew = 2,dbRecordDeleted = 3,dbRecordDBDeleted = 4
 167} RecordStatusEnum;
 168
 169typedef enum CommitTransOptionsEnum {
 170  dbForceOSFlush = 1
 171} CommitTransOptionsEnum;
 172
 173typedef enum _DAOSuppHelp {
 174  LogMessages = 0,KeepLocal = 0,Replicable = 0,ReplicableBool = 0,V1xNullBehavior = 0
 175} _DAOSuppHelp;
 176
 177#define dbLangArabic _T(";LANGID=0x0401;CP=1256;COUNTRY=0")
 178#define dbLangCzech _T(";LANGID=0x0405;CP=1250;COUNTRY=0")
 179#define dbLangDutch _T(";LANGID=0x0413;CP=1252;COUNTRY=0")
 180#define dbLangGeneral _T(";LANGID=0x0409;CP=1252;COUNTRY=0")
 181#define dbLangGreek _T(";LANGID=0x0408;CP=1253;COUNTRY=0")
 182#define dbLangHebrew _T(";LANGID=0x040D;CP=1255;COUNTRY=0")
 183#define dbLangHungarian _T(";LANGID=0x040E;CP=1250;COUNTRY=0")
 184#define dbLangIcelandic _T(";LANGID=0x040F;CP=1252;COUNTRY=0")
 185#define dbLangNordic _T(";LANGID=0x041D;CP=1252;COUNTRY=0")
 186#define dbLangNorwDan _T(";LANGID=0x0414;CP=1252;COUNTRY=0")
 187#define dbLangPolish _T(";LANGID=0x0415;CP=1250;COUNTRY=0")
 188#define dbLangCyrillic _T(";LANGID=0x0419;CP=1251;COUNTRY=0")
 189#define dbLangSpanish _T(";LANGID=0x040A;CP=1252;COUNTRY=0")
 190#define dbLangSwedFin _T(";LANGID=0x040B;CP=1252;COUNTRY=0")
 191#define dbLangTurkish _T(";LANGID=0x041F;CP=1254;COUNTRY=0")
 192#define dbLangJapanese _T(";LANGID=0x0411;CP=932;COUNTRY=0")
 193#define dbLangChineseSimplified _T(";LANGID=0x0804;CP=936;COUNTRY=0")
 194#define dbLangChineseTraditional _T(";LANGID=0x0404;CP=950;COUNTRY=0")
 195#define dbLangKorean _T(";LANGID=0x0412;CP=949;COUNTRY=0")
 196#define dbLangThai _T(";LANGID=0x041E;CP=874;COUNTRY=0")
 197#define dbLangSlovenian _T(";LANGID=0x0424;CP=1250;COUNTRY=0")
 198
 199#undef INTERFACE
 200#define INTERFACE _DAOCollection
 201DECLARE_INTERFACE_(_DAOCollection,IDispatch) {
 202#ifndef __cplusplus
 203  /* IUnknown methods */
 204  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 205  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 206  STDMETHOD_(ULONG, Release)(THIS) PURE;
 207  /*** IDispatch methods ***/
 208  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 209  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 210  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 211  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 212#endif
 213  /*** _DAOCollection ***/
 214  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 215  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 216  STDMETHOD(Refresh) (THIS) PURE;
 217};
 218
 219#undef INTERFACE
 220#define INTERFACE _DAODynaCollection
 221DECLARE_INTERFACE_(_DAODynaCollection,_DAOCollection) {
 222#ifndef __cplusplus
 223  /* IUnknown methods */
 224  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 225  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 226  STDMETHOD_(ULONG, Release)(THIS) PURE;
 227  /*** IDispatch methods ***/
 228  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 229  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 230  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 231  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 232  /*** _DAOCollection ***/
 233  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 234  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 235  STDMETHOD(Refresh) (THIS) PURE;
 236#endif
 237  /*** _DAODynaCollection ***/
 238  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
 239  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
 240};
 241
 242#undef INTERFACE
 243#define INTERFACE _DAO
 244DECLARE_INTERFACE_(_DAO,IDispatch) {
 245#ifndef __cplusplus
 246  /* IUnknown methods */
 247  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 248  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 249  STDMETHOD_(ULONG, Release)(THIS) PURE;
 250  /*** IDispatch methods ***/
 251  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 252  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 253  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 254  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 255#endif
 256  /*** _DAO ***/
 257  STDMETHOD(get_Properties) (THIS_ interface DAOProperties **ppprops) PURE;
 258};
 259
 260#undef INTERFACE
 261#define INTERFACE _DAODBEngine
 262DECLARE_INTERFACE_(_DAODBEngine,_DAO) {
 263#ifndef __cplusplus
 264  /* IUnknown methods */
 265  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 266  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 267  STDMETHOD_(ULONG, Release)(THIS) PURE;
 268  /*** IDispatch methods ***/
 269  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 270  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 271  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 272  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 273  /*** _DAO ***/
 274  STDMETHOD(get_Properties) (THIS_ interface DAOProperties **ppprops) PURE;
 275#endif
 276  STDMETHOD(get_Version) (THIS_ BSTR *pbstr) PURE;
 277  STDMETHOD(get_IniPath) (THIS_ BSTR *pbstr) PURE;
 278  STDMETHOD(put_IniPath) (THIS_ BSTR path) PURE;
 279  STDMETHOD(put_DefaultUser) (THIS_ BSTR user) PURE;
 280  STDMETHOD(put_DefaultPassword) (THIS_ BSTR pw) PURE;
 281  STDMETHOD(get_LoginTimeout) (THIS_ short *ps) PURE;
 282  STDMETHOD(put_LoginTimeout) (THIS_ short Timeout) PURE;
 283  STDMETHOD(get_Workspaces) (THIS_ interface DAOWorkspaces **ppworks) PURE;
 284  STDMETHOD(get_Errors) (THIS_ interface DAOErrors **pperrs) PURE;
 285  STDMETHOD(Idle) (THIS_ VARIANT Action) PURE;
 286  STDMETHOD(CompactDatabase) (THIS_ BSTR SrcName,BSTR DstName,VARIANT DstLocale,VARIANT Options,VARIANT SrcLocale) PURE;
 287  STDMETHOD(RepairDatabase) (THIS_ BSTR Name) PURE;
 288  STDMETHOD(RegisterDatabase) (THIS_ BSTR Dsn,BSTR Driver,VARIANT_BOOL Silent,BSTR Attributes) PURE;
 289  STDMETHOD(_30_CreateWorkspace) (THIS_ BSTR Name,BSTR UserName,BSTR Password, interface DAOWorkspace **ppwrk) PURE;
 290  STDMETHOD(OpenDatabase) (THIS_ BSTR Name,VARIANT Options,VARIANT ReadOnly,VARIANT Connect, interface DAODatabase **ppdb) PURE;
 291  STDMETHOD(CreateDatabase) (THIS_ BSTR Name,BSTR Locale,VARIANT Option, interface DAODatabase **ppdb) PURE;
 292  STDMETHOD(FreeLocks) (THIS) PURE;
 293  STDMETHOD(BeginTrans) (THIS) PURE;
 294  STDMETHOD(CommitTrans) (THIS_ __LONG32 Option) PURE;
 295  STDMETHOD(Rollback) (THIS) PURE;
 296  STDMETHOD(SetDefaultWorkspace) (THIS_ BSTR Name,BSTR Password) PURE;
 297  STDMETHOD(SetDataAccessOption) (THIS_ short Option,VARIANT Value) PURE;
 298  STDMETHOD(ISAMStats) (THIS_ __LONG32 StatNum,VARIANT Reset,__LONG32 *pl) PURE;
 299  STDMETHOD(get_SystemDB) (THIS_ BSTR *pbstr) PURE;
 300  STDMETHOD(put_SystemDB) (THIS_ BSTR SystemDBPath) PURE;
 301  STDMETHOD(CreateWorkspace) (THIS_ BSTR Name,BSTR UserName,BSTR Password,VARIANT UseType, interface DAOWorkspace **ppwrk) PURE;
 302  STDMETHOD(OpenConnection) (THIS_ BSTR Name,VARIANT Options,VARIANT ReadOnly,VARIANT Connect, interface DAOConnection **ppconn) PURE;
 303  STDMETHOD(get_DefaultType) (THIS_ __LONG32 *Option) PURE;
 304  STDMETHOD(put_DefaultType) (THIS_ __LONG32 Option) PURE;
 305  STDMETHOD(SetOption) (THIS_ LONG Option,VARIANT Value) PURE;
 306  STDMETHOD(DumpObjects) (THIS_ BSTR *pbstr) PURE;
 307  STDMETHOD(DebugPrint) (THIS_ BSTR bstr) PURE;
 308};
 309
 310#undef INTERFACE
 311#define INTERFACE DAOError
 312DECLARE_INTERFACE_(DAOError,IDispatch) {
 313#ifndef __cplusplus
 314  /* IUnknown methods */
 315  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 316  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 317  STDMETHOD_(ULONG, Release)(THIS) PURE;
 318  /*** IDispatch methods ***/
 319  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 320  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 321  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 322  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 323#endif
 324  /*** DAOError ***/
 325  STDMETHOD(get_Number) (THIS_ __LONG32 *pl) PURE;
 326  STDMETHOD(get_Source) (THIS_ BSTR *pbstr) PURE;
 327  STDMETHOD(get_Description) (THIS_ BSTR *pbstr) PURE;
 328  STDMETHOD(get_HelpFile) (THIS_ BSTR *pbstr) PURE;
 329  STDMETHOD(get_HelpContext) (THIS_ __LONG32 *pl) PURE;
 330};
 331
 332#undef INTERFACE
 333#define INTERFACE DAOErrors
 334DECLARE_INTERFACE_(DAOErrors,_DAOCollection) {
 335#ifndef __cplusplus
 336  /* IUnknown methods */
 337  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 338  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 339  STDMETHOD_(ULONG, Release)(THIS) PURE;
 340  /*** IDispatch methods ***/
 341  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 342  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 343  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 344  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 345  /*** _DAOCollection ***/
 346  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 347  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 348  STDMETHOD(Refresh) (THIS) PURE;
 349#endif
 350  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOError **pperr) PURE;
 351};
 352
 353#undef INTERFACE
 354#define INTERFACE DAOProperty
 355DECLARE_INTERFACE_(DAOProperty,_DAO) {
 356#ifndef __cplusplus
 357  /* IUnknown methods */
 358  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 359  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 360  STDMETHOD_(ULONG, Release)(THIS) PURE;
 361  /*** IDispatch methods ***/
 362  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 363  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 364  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 365  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 366  /*** _DAO ***/
 367  STDMETHOD(get_Properties) (THIS_ interface DAOProperties **ppprops) PURE;
 368#endif
 369  STDMETHOD(get_Value) (THIS_ VARIANT *pval) PURE;
 370  STDMETHOD(put_Value) (THIS_ VARIANT val) PURE;
 371  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 372  STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE;
 373  STDMETHOD(get_Type) (THIS_ short *ptype) PURE;
 374  STDMETHOD(put_Type) (THIS_ short type) PURE;
 375  STDMETHOD(get_Inherited) (THIS_ VARIANT_BOOL *pb) PURE;
 376};
 377
 378#undef INTERFACE
 379#define INTERFACE DAOProperties
 380DECLARE_INTERFACE_(DAOProperties,_DAODynaCollection) {
 381#ifndef __cplusplus
 382  /* IUnknown methods */
 383  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 384  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 385  STDMETHOD_(ULONG, Release)(THIS) PURE;
 386  /*** IDispatch methods ***/
 387  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 388  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 389  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 390  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 391  /*** _DAOCollection ***/
 392  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 393  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 394  STDMETHOD(Refresh) (THIS) PURE;
 395  /*** _DAODynaCollection ***/
 396  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
 397  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
 398#endif
 399  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOProperty **ppprop) PURE;
 400};
 401
 402#undef INTERFACE
 403#define INTERFACE DAOWorkspace
 404DECLARE_INTERFACE_(DAOWorkspace,_DAO) {
 405#ifndef __cplusplus
 406  /* IUnknown methods */
 407  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 408  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 409  STDMETHOD_(ULONG, Release)(THIS) PURE;
 410  /*** IDispatch methods ***/
 411  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 412  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 413  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 414  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 415  /*** _DAO ***/
 416  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
 417#endif
 418  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 419  STDMETHOD(put_Name) (THIS_ BSTR Name) PURE;
 420  STDMETHOD(get_UserName) (THIS_ BSTR *pbstr) PURE;
 421  STDMETHOD(put__30_UserName) (THIS_ BSTR UserName) PURE;
 422  STDMETHOD(put__30_Password) (THIS_ BSTR Password) PURE;
 423  STDMETHOD(get_IsolateODBCTrans) (THIS_ short *ps) PURE;
 424  STDMETHOD(put_IsolateODBCTrans) (THIS_ short s) PURE;
 425  STDMETHOD(get_Databases) (THIS_ interface DAODatabases **ppdbs) PURE;
 426  STDMETHOD(get_Users) (THIS_ interface DAOUsers **ppusrs) PURE;
 427  STDMETHOD(get_Groups) (THIS_ interface DAOGroups **ppgrps) PURE;
 428  STDMETHOD(BeginTrans) (THIS) PURE;
 429  STDMETHOD(CommitTrans) (THIS_ __LONG32 Options) PURE;
 430  STDMETHOD(Close) (THIS) PURE;
 431  STDMETHOD(Rollback) (THIS) PURE;
 432  STDMETHOD(OpenDatabase) (THIS_ BSTR Name,VARIANT Options,VARIANT ReadOnly,VARIANT Connect, interface DAODatabase **ppdb) PURE;
 433  STDMETHOD(CreateDatabase) (THIS_ BSTR Name,BSTR Connect,VARIANT Option, interface DAODatabase **ppdb) PURE;
 434  STDMETHOD(CreateUser) (THIS_ VARIANT Name,VARIANT PID,VARIANT Password, interface DAOUser **ppusr) PURE;
 435  STDMETHOD(CreateGroup) (THIS_ VARIANT Name,VARIANT PID, interface DAOGroup **ppgrp) PURE;
 436  STDMETHOD(OpenConnection) (THIS_ BSTR Name,VARIANT Options,VARIANT ReadOnly,VARIANT Connect, interface DAOConnection **ppconn) PURE;
 437  STDMETHOD(get_LoginTimeout) (THIS_ __LONG32 *pTimeout) PURE;
 438  STDMETHOD(put_LoginTimeout) (THIS_ __LONG32 Timeout) PURE;
 439  STDMETHOD(get_DefaultCursorDriver) (THIS_ __LONG32 *pCursorType) PURE;
 440  STDMETHOD(put_DefaultCursorDriver) (THIS_ __LONG32 CursorType) PURE;
 441  STDMETHOD(get_hEnv) (THIS_ LONG *phEnv) PURE;
 442  STDMETHOD(get_Type) (THIS_ LONG *ptype) PURE;
 443  STDMETHOD(get_Connections) (THIS_ interface DAOConnections **ppcns) PURE;
 444};
 445
 446#undef INTERFACE
 447#define INTERFACE DAOWorkspaces
 448DECLARE_INTERFACE_(DAOWorkspaces,_DAODynaCollection) {
 449#ifndef __cplusplus
 450  /* IUnknown methods */
 451  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 452  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 453  STDMETHOD_(ULONG, Release)(THIS) PURE;
 454  /*** IDispatch methods ***/
 455  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 456  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 457  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 458  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 459  /*** _DAOCollection ***/
 460  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 461  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 462  STDMETHOD(Refresh) (THIS) PURE;
 463  /*** _DAODynaCollection ***/
 464  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
 465  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
 466#endif
 467  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOWorkspace **ppwrk) PURE;
 468};
 469
 470#undef INTERFACE
 471#define INTERFACE DAOConnection
 472DECLARE_INTERFACE_(DAOConnection,IDispatch) {
 473#ifndef __cplusplus
 474  /* IUnknown methods */
 475  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 476  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 477  STDMETHOD_(ULONG, Release)(THIS) PURE;
 478  /*** IDispatch methods ***/
 479  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 480  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 481  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 482  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 483#endif
 484  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 485  STDMETHOD(get_Connect) (THIS_ BSTR *pbstr) PURE;
 486  STDMETHOD(get_Database) (THIS_ interface DAODatabase **ppDb) PURE;
 487  STDMETHOD(get_hDbc) (THIS_ LONG *phDbc) PURE;
 488  STDMETHOD(get_QueryTimeout) (THIS_ SHORT *pSeconds) PURE;
 489  STDMETHOD(put_QueryTimeout) (THIS_ SHORT Seconds) PURE;
 490  STDMETHOD(get_Transactions) (THIS_ VARIANT_BOOL *pb) PURE;
 491  STDMETHOD(get_RecordsAffected) (THIS_ LONG *pRecords) PURE;
 492  STDMETHOD(get_StillExecuting) (THIS_ VARIANT_BOOL *pStillExec) PURE;
 493  STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL *pStillExec) PURE;
 494  STDMETHOD(get_QueryDefs) (THIS_ interface DAOQueryDefs **ppqdfs) PURE;
 495  STDMETHOD(get_Recordsets) (THIS_ interface DAORecordsets **pprsts) PURE;
 496  STDMETHOD(Cancel) (THIS) PURE;
 497  STDMETHOD(Close) (THIS) PURE;
 498  STDMETHOD(CreateQueryDef) (THIS_ VARIANT Name,VARIANT SQLText, interface DAOQueryDef **ppqdf) PURE;
 499  STDMETHOD(Execute) (THIS_ BSTR Query,VARIANT Options) PURE;
 500  STDMETHOD(OpenRecordset) (THIS_ BSTR Name,VARIANT Type,VARIANT Options,VARIANT LockEdit, interface DAORecordset **pprst) PURE;
 501};
 502
 503#undef INTERFACE
 504#define INTERFACE DAOConnections
 505DECLARE_INTERFACE_(DAOConnections,_DAOCollection) {
 506#ifndef __cplusplus
 507  /* IUnknown methods */
 508  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 509  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 510  STDMETHOD_(ULONG, Release)(THIS) PURE;
 511  /*** IDispatch methods ***/
 512  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 513  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 514  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 515  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 516  /*** _DAOCollection ***/
 517  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 518  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 519  STDMETHOD(Refresh) (THIS) PURE;
 520#endif
 521  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOConnection **ppconn) PURE;
 522};
 523
 524#undef INTERFACE
 525#define INTERFACE DAODatabase
 526DECLARE_INTERFACE_(DAODatabase,_DAO) {
 527#ifndef __cplusplus
 528  /* IUnknown methods */
 529  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 530  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 531  STDMETHOD_(ULONG, Release)(THIS) PURE;
 532  /*** IDispatch methods ***/
 533  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 534  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 535  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 536  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 537  /*** _DAO ***/
 538  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
 539#endif
 540  STDMETHOD(get_CollatingOrder) (THIS_ LONG *pl) PURE;
 541  STDMETHOD(get_Connect) (THIS_ BSTR *pbstr) PURE;
 542  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 543  STDMETHOD(get_QueryTimeout) (THIS_ short *ps) PURE;
 544  STDMETHOD(put_QueryTimeout) (THIS_ short Timeout) PURE;
 545  STDMETHOD(get_Transactions) (THIS_ VARIANT_BOOL *pb) PURE;
 546  STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL *pb) PURE;
 547  STDMETHOD(get_Version) (THIS_ BSTR *pbstr) PURE;
 548  STDMETHOD(get_RecordsAffected) (THIS_ __LONG32 *pl) PURE;
 549  STDMETHOD(get_TableDefs) (THIS_ interface DAOTableDefs **pptdfs) PURE;
 550  STDMETHOD(get_QueryDefs) (THIS_ interface DAOQueryDefs **ppqdfs) PURE;
 551  STDMETHOD(get_Relations) (THIS_ interface DAORelations **pprls) PURE;
 552  STDMETHOD(get_Containers) (THIS_ interface DAOContainers **ppctns) PURE;
 553  STDMETHOD(get_Recordsets) (THIS_ interface DAORecordsets **pprsts) PURE;
 554  STDMETHOD(Close) (THIS) PURE;
 555  STDMETHOD(Execute) (THIS_ BSTR Query,VARIANT Options) PURE;
 556  STDMETHOD(_30_OpenRecordset) (THIS_ BSTR Name,VARIANT Type,VARIANT Options, interface DAORecordset **pprst) PURE;
 557  STDMETHOD(CreateProperty) (THIS_ VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
 558  STDMETHOD(CreateRelation) (THIS_ VARIANT Name,VARIANT Table,VARIANT ForeignTable,VARIANT Attributes, interface DAORelation **pprel) PURE;
 559  STDMETHOD(CreateTableDef) (THIS_ VARIANT Name,VARIANT Attributes,VARIANT SourceTablename,VARIANT Connect, interface DAOTableDef **pptdf) PURE;
 560  STDMETHOD(BeginTrans) (THIS) PURE;
 561  STDMETHOD(CommitTrans) (THIS_ __LONG32 Options) PURE;
 562  STDMETHOD(Rollback) (THIS) PURE;
 563  STDMETHOD(CreateDynaset) (THIS_ BSTR Name,VARIANT Options,VARIANT Inconsistent, interface DAORecordset **pprst) PURE;
 564  STDMETHOD(CreateQueryDef) (THIS_ VARIANT Name,VARIANT SQLText, interface DAOQueryDef **ppqdf) PURE;
 565  STDMETHOD(CreateSnapshot) (THIS_ BSTR Source,VARIANT Options, interface DAORecordset **pprst) PURE;
 566  STDMETHOD(DeleteQueryDef) (THIS_ BSTR Name) PURE;
 567  STDMETHOD(ExecuteSQL) (THIS_ BSTR SQL,__LONG32 *pl) PURE;
 568  STDMETHOD(ListFields) (THIS_ BSTR Name, interface DAORecordset **pprst) PURE;
 569  STDMETHOD(ListTables) (THIS_ interface DAORecordset **pprst) PURE;
 570  STDMETHOD(OpenQueryDef) (THIS_ BSTR Name, interface DAOQueryDef **ppqdf) PURE;
 571  STDMETHOD(OpenTable) (THIS_ BSTR Name,VARIANT Options, interface DAORecordset **pprst) PURE;
 572  STDMETHOD(get_ReplicaID) (THIS_ BSTR *pbstr) PURE;
 573  STDMETHOD(get_DesignMasterID) (THIS_ BSTR *pbstr) PURE;
 574  STDMETHOD(put_DesignMasterID) (THIS_ BSTR MasterID) PURE;
 575  STDMETHOD(Synchronize) (THIS_ BSTR DbPathName,VARIANT ExchangeType) PURE;
 576  STDMETHOD(MakeReplica) (THIS_ BSTR PathName,BSTR Description,VARIANT Options) PURE;
 577  STDMETHOD(put_Connect) (THIS_ BSTR ODBCConnnect) PURE;
 578  STDMETHOD(NewPassword) (THIS_ BSTR bstrOld,BSTR bstrNew) PURE;
 579  STDMETHOD(OpenRecordset) (THIS_ BSTR Name,VARIANT Type,VARIANT Options,VARIANT LockEdit, interface DAORecordset **pprst) PURE;
 580  STDMETHOD(get_Connection) (THIS_ DAOConnection **ppCn) PURE;
 581  STDMETHOD(PopulatePartial) (THIS_ BSTR DbPathName) PURE;
 582};
 583
 584#undef INTERFACE
 585#define INTERFACE DAODatabases
 586DECLARE_INTERFACE_(DAODatabases,_DAOCollection) {
 587#ifndef __cplusplus
 588  /* IUnknown methods */
 589  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 590  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 591  STDMETHOD_(ULONG, Release)(THIS) PURE;
 592  /*** IDispatch methods ***/
 593  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 594  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 595  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 596  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 597  /*** _DAOCollection ***/
 598  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 599  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 600  STDMETHOD(Refresh) (THIS) PURE;
 601#endif
 602  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAODatabase **ppdb) PURE;
 603};
 604
 605#undef INTERFACE
 606#define INTERFACE _DAOTableDef
 607DECLARE_INTERFACE_(_DAOTableDef,_DAO) {
 608#ifndef __cplusplus
 609  /* IUnknown methods */
 610  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 611  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 612  STDMETHOD_(ULONG, Release)(THIS) PURE;
 613  /*** IDispatch methods ***/
 614  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 615  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 616  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 617  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 618  /*** _DAO ***/
 619  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
 620#endif
 621  STDMETHOD(get_Attributes) (THIS_ __LONG32 *pl) PURE;
 622  STDMETHOD(put_Attributes) (THIS_ __LONG32 Attributes) PURE;
 623  STDMETHOD(get_Connect) (THIS_ BSTR *pbstr) PURE;
 624  STDMETHOD(put_Connect) (THIS_ BSTR Connection) PURE;
 625  STDMETHOD(get_DateCreated) (THIS_ VARIANT *pvar) PURE;
 626  STDMETHOD(get_LastUpdated) (THIS_ VARIANT *pvar) PURE;
 627  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 628  STDMETHOD(put_Name) (THIS_ BSTR Name) PURE;
 629  STDMETHOD(get_SourceTableName) (THIS_ BSTR *pbstr) PURE;
 630  STDMETHOD(put_SourceTableName) (THIS_ BSTR bstr) PURE;
 631  STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL *pb) PURE;
 632  STDMETHOD(get_ValidationText) (THIS_ BSTR *pbstr) PURE;
 633  STDMETHOD(put_ValidationText) (THIS_ BSTR bstr) PURE;
 634  STDMETHOD(get_ValidationRule) (THIS_ BSTR *pbstr) PURE;
 635  STDMETHOD(put_ValidationRule) (THIS_ BSTR bstr) PURE;
 636  STDMETHOD(get_RecordCount) (THIS_ __LONG32 *pl) PURE;
 637  STDMETHOD(get_Fields) (THIS_ interface DAOFields **ppflds) PURE;
 638  STDMETHOD(get_Indexes) (THIS_ interface DAOIndexes **ppidxs) PURE;
 639  STDMETHOD(OpenRecordset) (THIS_ VARIANT Type,VARIANT Options, interface DAORecordset **pprst) PURE;
 640  STDMETHOD(RefreshLink) (THIS) PURE;
 641  STDMETHOD(CreateField) (THIS_ VARIANT Name,VARIANT Type,VARIANT Size, interface DAOField **ppfld) PURE;
 642  STDMETHOD(CreateIndex) (THIS_ VARIANT Name, interface DAOIndex **ppidx) PURE;
 643  STDMETHOD(CreateProperty) (THIS_ VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
 644  STDMETHOD(get_ConflictTable) (THIS_ BSTR *pbstr) PURE;
 645  STDMETHOD(get_ReplicaFilter) (THIS_ VARIANT *pFilter) PURE;
 646  STDMETHOD(put_ReplicaFilter) (THIS_ VARIANT Filter) PURE;
 647};
 648
 649#undef INTERFACE
 650#define INTERFACE DAOTableDefs
 651DECLARE_INTERFACE_(DAOTableDefs,_DAODynaCollection) {
 652#ifndef __cplusplus
 653  /* IUnknown methods */
 654  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 655  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 656  STDMETHOD_(ULONG, Release)(THIS) PURE;
 657  /*** IDispatch methods ***/
 658  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 659  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 660  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 661  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 662  /*** _DAOCollection ***/
 663  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 664  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 665  STDMETHOD(Refresh) (THIS) PURE;
 666  /*** _DAODynaCollection ***/
 667  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
 668  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
 669#endif
 670  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOTableDef **pptdf) PURE;
 671};
 672
 673#undef INTERFACE
 674#define INTERFACE _DAOQueryDef
 675DECLARE_INTERFACE_(_DAOQueryDef,_DAO) {
 676#ifndef __cplusplus
 677  /* IUnknown methods */
 678  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 679  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 680  STDMETHOD_(ULONG, Release)(THIS) PURE;
 681  /*** IDispatch methods ***/
 682  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 683  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 684  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 685  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 686  /*** _DAO ***/
 687  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
 688#endif
 689  STDMETHOD(get_DateCreated) (THIS_ VARIANT *pvar) PURE;
 690  STDMETHOD(get_LastUpdated) (THIS_ VARIANT *pvar) PURE;
 691  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 692  STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE;
 693  STDMETHOD(get_ODBCTimeout) (THIS_ short *ps) PURE;
 694  STDMETHOD(put_ODBCTimeout) (THIS_ short timeout) PURE;
 695  STDMETHOD(get_Type) (THIS_ short *pi) PURE;
 696  STDMETHOD(get_SQL) (THIS_ BSTR *pbstr) PURE;
 697  STDMETHOD(put_SQL) (THIS_ BSTR bstr) PURE;
 698  STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL *pb) PURE;
 699  STDMETHOD(get_Connect) (THIS_ BSTR *pbstr) PURE;
 700  STDMETHOD(put_Connect) (THIS_ BSTR bstr) PURE;
 701  STDMETHOD(get_ReturnsRecords) (THIS_ VARIANT_BOOL *pb) PURE;
 702  STDMETHOD(put_ReturnsRecords) (THIS_ VARIANT_BOOL f) PURE;
 703  STDMETHOD(get_RecordsAffected) (THIS_ __LONG32 *pl) PURE;
 704  STDMETHOD(get_Fields) (THIS_ interface DAOFields **ppflds) PURE;
 705  STDMETHOD(get_Parameters) (THIS_ interface DAOParameters **ppprms) PURE;
 706  STDMETHOD(Close) (THIS) PURE;
 707  STDMETHOD(_30_OpenRecordset) (THIS_ VARIANT Type,VARIANT Options, interface DAORecordset **pprst) PURE;
 708  STDMETHOD(_30__OpenRecordset) (THIS_ VARIANT Type,VARIANT Options, interface DAORecordset **pprst) PURE;
 709  STDMETHOD(_Copy) (THIS_ DAOQueryDef **ppqdf) PURE;
 710  STDMETHOD(Execute) (THIS_ VARIANT Options) PURE;
 711  STDMETHOD(Compare) (THIS_ DAOQueryDef *pQdef,SHORT *lps) PURE;
 712  STDMETHOD(CreateDynaset) (THIS_ VARIANT Options,VARIANT Inconsistent, interface DAORecordset **pprst) PURE;
 713  STDMETHOD(CreateSnapshot) (THIS_ VARIANT Options, interface DAORecordset **pprst) PURE;
 714  STDMETHOD(ListParameters) (THIS_ interface DAORecordset **pprst) PURE;
 715  STDMETHOD(CreateProperty) (THIS_ VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
 716  STDMETHOD(OpenRecordset) (THIS_ VARIANT Type,VARIANT Options,VARIANT LockEdit, interface DAORecordset **pprst) PURE;
 717  STDMETHOD(_OpenRecordset) (THIS_ VARIANT Type,VARIANT Options,VARIANT LockEdit, interface DAORecordset **pprst) PURE;
 718  STDMETHOD(Cancel) (THIS) PURE;
 719  STDMETHOD(get_hStmt) (THIS_ LONG *phStmt) PURE;
 720  STDMETHOD(get_MaxRecords) (THIS_ LONG *pMxRecs) PURE;
 721  STDMETHOD(put_MaxRecords) (THIS_ LONG MxRecs) PURE;
 722  STDMETHOD(get_StillExecuting) (THIS_ VARIANT_BOOL *pStillExec) PURE;
 723  STDMETHOD(get_CacheSize) (THIS_ __LONG32 *lCacheSize) PURE;
 724  STDMETHOD(put_CacheSize) (THIS_ __LONG32 lCacheSize) PURE;
 725  STDMETHOD(get_Prepare) (THIS_ VARIANT *pb) PURE;
 726  STDMETHOD(put_Prepare) (THIS_ VARIANT f) PURE;
 727};
 728
 729#undef INTERFACE
 730#define INTERFACE DAOQueryDefs
 731DECLARE_INTERFACE_(DAOQueryDefs,_DAODynaCollection) {
 732#ifndef __cplusplus
 733  /* IUnknown methods */
 734  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 735  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 736  STDMETHOD_(ULONG, Release)(THIS) PURE;
 737  /*** IDispatch methods ***/
 738  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 739  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 740  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 741  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 742  /*** _DAOCollection ***/
 743  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 744  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 745  STDMETHOD(Refresh) (THIS) PURE;
 746  /*** _DAODynaCollection ***/
 747  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
 748  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
 749#endif
 750  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOQueryDef **ppqdef) PURE;
 751};
 752
 753#undef INTERFACE
 754#define INTERFACE DAORecordset
 755DECLARE_INTERFACE_(DAORecordset,_DAO) {
 756#ifndef __cplusplus
 757  /* IUnknown methods */
 758  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 759  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 760  STDMETHOD_(ULONG, Release)(THIS) PURE;
 761  /*** IDispatch methods ***/
 762  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 763  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 764  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 765  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 766  /*** _DAO ***/
 767  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
 768#endif
 769  STDMETHOD(get_BOF) (THIS_ VARIANT_BOOL *pb) PURE;
 770  STDMETHOD(get_Bookmark) (THIS_ SAFEARRAY **ppsach) PURE;
 771  STDMETHOD(put_Bookmark) (THIS_ SAFEARRAY **psach) PURE;
 772  STDMETHOD(get_Bookmarkable) (THIS_ VARIANT_BOOL *pb) PURE;
 773  STDMETHOD(get_DateCreated) (THIS_ VARIANT *pvar) PURE;
 774  STDMETHOD(get_EOF) (THIS_ VARIANT_BOOL *pb) PURE;
 775  STDMETHOD(get_Filter) (THIS_ BSTR *pbstr) PURE;
 776  STDMETHOD(put_Filter) (THIS_ BSTR Filter) PURE;
 777  STDMETHOD(get_Index) (THIS_ BSTR *pbstr) PURE;
 778  STDMETHOD(put_Index) (THIS_ BSTR bstr) PURE;
 779  STDMETHOD(get_LastModified) (THIS_ SAFEARRAY **ppsa) PURE;
 780  STDMETHOD(get_LastUpdated) (THIS_ VARIANT *pvar) PURE;
 781  STDMETHOD(get_LockEdits) (THIS_ VARIANT_BOOL *pb) PURE;
 782  STDMETHOD(put_LockEdits) (THIS_ VARIANT_BOOL Lock) PURE;
 783  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 784  STDMETHOD(get_NoMatch) (THIS_ VARIANT_BOOL *pb) PURE;
 785  STDMETHOD(get_Sort) (THIS_ BSTR *pbstr) PURE;
 786  STDMETHOD(put_Sort) (THIS_ BSTR Sort) PURE;
 787  STDMETHOD(get_Transactions) (THIS_ VARIANT_BOOL *pb) PURE;
 788  STDMETHOD(get_Type) (THIS_ short *ps) PURE;
 789  STDMETHOD(get_RecordCount) (THIS_ __LONG32 *pl) PURE;
 790  STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL *pb) PURE;
 791  STDMETHOD(get_Restartable) (THIS_ VARIANT_BOOL *pb) PURE;
 792  STDMETHOD(get_ValidationText) (THIS_ BSTR *pbstr) PURE;
 793  STDMETHOD(get_ValidationRule) (THIS_ BSTR *pbstr) PURE;
 794  STDMETHOD(get_CacheStart) (THIS_ SAFEARRAY **ppsa) PURE;
 795  STDMETHOD(put_CacheStart) (THIS_ SAFEARRAY **psa) PURE;
 796  STDMETHOD(get_CacheSize) (THIS_ __LONG32 *pl) PURE;
 797  STDMETHOD(put_CacheSize) (THIS_ __LONG32 CacheSize) PURE;
 798  STDMETHOD(get_PercentPosition) (THIS_ float *pd) PURE;
 799  STDMETHOD(put_PercentPosition) (THIS_ float Position) PURE;
 800  STDMETHOD(get_AbsolutePosition) (THIS_ __LONG32 *pl) PURE;
 801  STDMETHOD(put_AbsolutePosition) (THIS_ __LONG32 Position) PURE;
 802  STDMETHOD(get_EditMode) (THIS_ short *pi) PURE;
 803  STDMETHOD(get_ODBCFetchCount) (THIS_ __LONG32 *pl) PURE;
 804  STDMETHOD(get_ODBCFetchDelay) (THIS_ __LONG32 *pl) PURE;
 805  STDMETHOD(get_Parent) (THIS_ DAODatabase **pdb) PURE;
 806  STDMETHOD(get_Fields) (THIS_ interface DAOFields **ppflds) PURE;
 807  STDMETHOD(get_Indexes) (THIS_ interface DAOIndexes **ppidxs) PURE;
 808  STDMETHOD(_30_CancelUpdate) (THIS) PURE;
 809  STDMETHOD(AddNew) (THIS) PURE;
 810  STDMETHOD(Close) (THIS) PURE;
 811  STDMETHOD(OpenRecordset) (THIS_ VARIANT Type,VARIANT Options,DAORecordset **pprst) PURE;
 812  STDMETHOD(Delete) (THIS) PURE;
 813  STDMETHOD(Edit) (THIS) PURE;
 814  STDMETHOD(FindFirst) (THIS_ BSTR Criteria) PURE;
 815  STDMETHOD(FindLast) (THIS_ BSTR Criteria) PURE;
 816  STDMETHOD(FindNext) (THIS_ BSTR Criteria) PURE;
 817  STDMETHOD(FindPrevious) (THIS_ BSTR Criteria) PURE;
 818  STDMETHOD(MoveFirst) (THIS) PURE;
 819  STDMETHOD(_30_MoveLast) (THIS) PURE;
 820  STDMETHOD(MoveNext) (THIS) PURE;
 821  STDMETHOD(MovePrevious) (THIS) PURE;
 822  STDMETHOD(Seek) (THIS_ BSTR Comparison,VARIANT Key1,VARIANT Key2,VARIANT Key3,VARIANT Key4,VARIANT Key5,VARIANT Key6,VARIANT Key7,VARIANT Key8,VARIANT Key9,VARIANT Key10,VARIANT Key11,VARIANT Key12,VARIANT Key13) PURE;
 823  STDMETHOD(_30_Update) (THIS) PURE;
 824  STDMETHOD(Clone) (THIS_ DAORecordset **pprst) PURE;
 825  STDMETHOD(Requery) (THIS_ VARIANT NewQueryDef) PURE;
 826  STDMETHOD(Move) (THIS_ __LONG32 Rows,VARIANT StartBookmark) PURE;
 827  STDMETHOD(FillCache) (THIS_ VARIANT Rows,VARIANT StartBookmark) PURE;
 828  STDMETHOD(CreateDynaset) (THIS_ VARIANT Options,VARIANT Inconsistent,DAORecordset **pprst) PURE;
 829  STDMETHOD(CreateSnapshot) (THIS_ VARIANT Options,DAORecordset **pprst) PURE;
 830  STDMETHOD(CopyQueryDef) (THIS_ DAOQueryDef **ppqdf) PURE;
 831  STDMETHOD(ListFields) (THIS_ DAORecordset **pprst) PURE;
 832  STDMETHOD(ListIndexes) (THIS_ DAORecordset **pprst) PURE;
 833  STDMETHOD(GetRows) (THIS_ VARIANT NumRows,VARIANT *pvar) PURE;
 834  STDMETHOD(get_Collect) (THIS_ VARIANT Item,VARIANT *pvar) PURE;
 835  STDMETHOD(put_Collect) (THIS_ VARIANT Item,VARIANT value) PURE;
 836  STDMETHOD(Cancel) (THIS) PURE;
 837  STDMETHOD(NextRecordset) (THIS_ VARIANT_BOOL *pb) PURE;
 838  STDMETHOD(get_hStmt) (THIS_ LONG *phStmt) PURE;
 839  STDMETHOD(get_StillExecuting) (THIS_ VARIANT_BOOL *pStillExec) PURE;
 840  STDMETHOD(get_BatchSize) (THIS_ __LONG32 *pl) PURE;
 841  STDMETHOD(put_BatchSize) (THIS_ __LONG32 BatchSize) PURE;
 842  STDMETHOD(get_BatchCollisionCount) (THIS_ __LONG32 *pl) PURE;
 843  STDMETHOD(get_BatchCollisions) (THIS_ VARIANT *pvar) PURE;
 844  STDMETHOD(get_Connection) (THIS_ DAOConnection **ppCn) PURE;
 845  STDMETHOD(putref_Connection) (THIS_ DAOConnection *pNewCn) PURE;
 846  STDMETHOD(get_RecordStatus) (THIS_ short *pi) PURE;
 847  STDMETHOD(get_UpdateOptions) (THIS_ __LONG32 *pl) PURE;
 848  STDMETHOD(put_UpdateOptions) (THIS_ __LONG32 l) PURE;
 849  STDMETHOD(CancelUpdate) (THIS_ __LONG32 UpdateType) PURE;
 850  STDMETHOD(Update) (THIS_ __LONG32 UpdateType,VARIANT_BOOL Force) PURE;
 851  STDMETHOD(MoveLast) (THIS_ __LONG32 Options) PURE;
 852};
 853
 854#undef INTERFACE
 855#define INTERFACE DAORecordsets
 856DECLARE_INTERFACE_(DAORecordsets,_DAOCollection) {
 857#ifndef __cplusplus
 858  /* IUnknown methods */
 859  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 860  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 861  STDMETHOD_(ULONG, Release)(THIS) PURE;
 862  /*** IDispatch methods ***/
 863  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 864  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 865  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 866  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 867  /*** _DAOCollection ***/
 868  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 869  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 870  STDMETHOD(Refresh) (THIS) PURE;
 871#endif
 872  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAORecordset **pprst) PURE;
 873};
 874
 875#undef INTERFACE
 876#define INTERFACE _DAOField
 877DECLARE_INTERFACE_(_DAOField,_DAO) {
 878#ifndef __cplusplus
 879  /* IUnknown methods */
 880  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 881  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 882  STDMETHOD_(ULONG, Release)(THIS) PURE;
 883  /*** IDispatch methods ***/
 884  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 885  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 886  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 887  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 888  /*** _DAO ***/
 889  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
 890#endif
 891  STDMETHOD(get_CollatingOrder) (THIS_ __LONG32 *pl) PURE;
 892  STDMETHOD(get_Type) (THIS_ short *ps) PURE;
 893  STDMETHOD(put_Type) (THIS_ short Type) PURE;
 894  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 895  STDMETHOD(put_Name) (THIS_ BSTR Name) PURE;
 896  STDMETHOD(get_Size) (THIS_ __LONG32 *pl) PURE;
 897  STDMETHOD(put_Size) (THIS_ __LONG32 Size) PURE;
 898  STDMETHOD(get_SourceField) (THIS_ BSTR *pbstr) PURE;
 899  STDMETHOD(get_SourceTable) (THIS_ BSTR *pbstr) PURE;
 900  STDMETHOD(get_Value) (THIS_ VARIANT *pvar) PURE;
 901  STDMETHOD(put_Value) (THIS_ VARIANT Val) PURE;
 902  STDMETHOD(get_Attributes) (THIS_ __LONG32 *pl) PURE;
 903  STDMETHOD(put_Attributes) (THIS_ __LONG32 Attr) PURE;
 904  STDMETHOD(get_OrdinalPosition) (THIS_ short *ps) PURE;
 905  STDMETHOD(put_OrdinalPosition) (THIS_ short Pos) PURE;
 906  STDMETHOD(get_ValidationText) (THIS_ BSTR *pbstr) PURE;
 907  STDMETHOD(put_ValidationText) (THIS_ BSTR bstr) PURE;
 908  STDMETHOD(get_ValidateOnSet) (THIS_ VARIANT_BOOL *pb) PURE;
 909  STDMETHOD(put_ValidateOnSet) (THIS_ VARIANT_BOOL Validate) PURE;
 910  STDMETHOD(get_ValidationRule) (THIS_ BSTR *pbstr) PURE;
 911  STDMETHOD(put_ValidationRule) (THIS_ BSTR bstr) PURE;
 912  STDMETHOD(get_DefaultValue) (THIS_ VARIANT *pvar) PURE;
 913  STDMETHOD(put_DefaultValue) (THIS_ VARIANT var) PURE;
 914  STDMETHOD(get_Required) (THIS_ VARIANT_BOOL *pb) PURE;
 915  STDMETHOD(put_Required) (THIS_ VARIANT_BOOL fReq) PURE;
 916  STDMETHOD(get_AllowZeroLength) (THIS_ VARIANT_BOOL *pb) PURE;
 917  STDMETHOD(put_AllowZeroLength) (THIS_ VARIANT_BOOL fAllow) PURE;
 918  STDMETHOD(get_DataUpdatable) (THIS_ VARIANT_BOOL *pb) PURE;
 919  STDMETHOD(get_ForeignName) (THIS_ BSTR *pbstr) PURE;
 920  STDMETHOD(put_ForeignName) (THIS_ BSTR bstr) PURE;
 921  STDMETHOD(AppendChunk) (THIS_ VARIANT Val) PURE;
 922  STDMETHOD(GetChunk) (THIS_ __LONG32 Offset,__LONG32 Bytes,VARIANT *pvar) PURE;
 923  STDMETHOD(_30_FieldSize) (THIS_ __LONG32 *pl) PURE;
 924  STDMETHOD(CreateProperty) (THIS_ VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
 925  STDMETHOD(get_CollectionIndex) (THIS_ short *i) PURE;
 926  STDMETHOD(get_OriginalValue) (THIS_ VARIANT *pvar) PURE;
 927  STDMETHOD(get_VisibleValue) (THIS_ VARIANT *pvar) PURE;
 928  STDMETHOD(get_FieldSize) (THIS_ __LONG32 *pl) PURE;
 929};
 930
 931#undef INTERFACE
 932#define INTERFACE DAOFields
 933DECLARE_INTERFACE_(DAOFields,_DAODynaCollection) {
 934#ifndef __cplusplus
 935  /* IUnknown methods */
 936  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 937  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 938  STDMETHOD_(ULONG, Release)(THIS) PURE;
 939  /*** IDispatch methods ***/
 940  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 941  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 942  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 943  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 944  /*** _DAOCollection ***/
 945  STDMETHOD(get_Count) (THIS_ short *c) PURE;
 946  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
 947  STDMETHOD(Refresh) (THIS) PURE;
 948  /*** _DAODynaCollection ***/
 949  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
 950  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
 951#endif
 952  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOField **ppfld) PURE;
 953};
 954
 955#undef INTERFACE
 956#define INTERFACE _DAOIndex
 957DECLARE_INTERFACE_(_DAOIndex,_DAO) {
 958#ifndef __cplusplus
 959  /* IUnknown methods */
 960  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 961  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 962  STDMETHOD_(ULONG, Release)(THIS) PURE;
 963  /*** IDispatch methods ***/
 964  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
 965  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 966  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 967  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 968  /*** _DAO ***/
 969  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
 970#endif
 971  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
 972  STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE;
 973  STDMETHOD(get_Foreign) (THIS_ VARIANT_BOOL *pb) PURE;
 974  STDMETHOD(get_Unique) (THIS_ VARIANT_BOOL *pb) PURE;
 975  STDMETHOD(put_Unique) (THIS_ VARIANT_BOOL fUnique) PURE;
 976  STDMETHOD(get_Clustered) (THIS_ VARIANT_BOOL *pb) PURE;
 977  STDMETHOD(put_Clustered) (THIS_ VARIANT_BOOL fClustered) PURE;
 978  STDMETHOD(get_Required) (THIS_ VARIANT_BOOL *pb) PURE;
 979  STDMETHOD(put_Required) (THIS_ VARIANT_BOOL fRequired) PURE;
 980  STDMETHOD(get_IgnoreNulls) (THIS_ VARIANT_BOOL *pb) PURE;
 981  STDMETHOD(put_IgnoreNulls) (THIS_ VARIANT_BOOL fIgnoreNulls) PURE;
 982  STDMETHOD(get_Primary) (THIS_ VARIANT_BOOL *pb) PURE;
 983  STDMETHOD(put_Primary) (THIS_ VARIANT_BOOL fPrimary) PURE;
 984  STDMETHOD(get_DistinctCount) (THIS_ __LONG32 *pl) PURE;
 985  STDMETHOD(get_Fields) (THIS_ VARIANT *pv) PURE;
 986  STDMETHOD(put_Fields) (THIS_ VARIANT v) PURE;
 987  STDMETHOD(CreateField) (THIS_ VARIANT Name,VARIANT Type,VARIANT Size,DAOField **ppfld) PURE;
 988  STDMETHOD(CreateProperty) (THIS_ VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
 989};
 990
 991#undef INTERFACE
 992#define INTERFACE DAOIndexes
 993DECLARE_INTERFACE_(DAOIndexes,_DAODynaCollection) {
 994#ifndef __cplusplus
 995  /* IUnknown methods */
 996  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
 997  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
 998  STDMETHOD_(ULONG, Release)(THIS) PURE;
 999  /*** IDispatch methods ***/
1000  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1001  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1002  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1003  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1004  /*** _DAOCollection ***/
1005  STDMETHOD(get_Count) (THIS_ short *c) PURE;
1006  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
1007  STDMETHOD(Refresh) (THIS) PURE;
1008  /*** _DAODynaCollection ***/
1009  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
1010  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
1011#endif
1012  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOIndex **ppidx) PURE;
1013};
1014
1015#undef INTERFACE
1016#define INTERFACE DAOParameter
1017DECLARE_INTERFACE_(DAOParameter,_DAO) {
1018#ifndef __cplusplus
1019  /* IUnknown methods */
1020  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1021  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1022  STDMETHOD_(ULONG, Release)(THIS) PURE;
1023  /*** IDispatch methods ***/
1024  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1025  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1026  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1027  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1028  /*** _DAO ***/
1029  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
1030#endif
1031  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
1032  STDMETHOD(get_Value) (THIS_ VARIANT *pvar) PURE;
1033  STDMETHOD(put_Value) (THIS_ VARIANT val) PURE;
1034  STDMETHOD(get_Type) (THIS_ short *ps) PURE;
1035  STDMETHOD(put_Type) (THIS_ short s) PURE;
1036  STDMETHOD(get_Direction) (THIS_ short *pOption) PURE;
1037  STDMETHOD(put_Direction) (THIS_ short Option) PURE;
1038};
1039
1040#undef INTERFACE
1041#define INTERFACE DAOParameters
1042DECLARE_INTERFACE_(DAOParameters,_DAOCollection) {
1043#ifndef __cplusplus
1044  /* IUnknown methods */
1045  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1046  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1047  STDMETHOD_(ULONG, Release)(THIS) PURE;
1048  /*** IDispatch methods ***/
1049  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1050  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1051  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1052  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1053  /*** _DAOCollection ***/
1054  STDMETHOD(get_Count) (THIS_ short *c) PURE;
1055  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
1056  STDMETHOD(Refresh) (THIS) PURE;
1057#endif
1058  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOParameter **ppprm) PURE;
1059};
1060
1061#undef INTERFACE
1062#define INTERFACE _DAOUser
1063DECLARE_INTERFACE_(_DAOUser,_DAO) {
1064#ifndef __cplusplus
1065  /* IUnknown methods */
1066  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1067  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1068  STDMETHOD_(ULONG, Release)(THIS) PURE;
1069  /*** IDispatch methods ***/
1070  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1071  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1072  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1073  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1074  /*** _DAO ***/
1075  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
1076#endif
1077  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
1078  STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE;
1079  STDMETHOD(put_PID) (THIS_ BSTR bstr) PURE;
1080  STDMETHOD(put_Password) (THIS_ BSTR bstr) PURE;
1081  STDMETHOD(get_Groups) (THIS_ interface DAOGroups **ppgrps) PURE;
1082  STDMETHOD(NewPassword) (THIS_ BSTR bstrOld,BSTR bstrNew) PURE;
1083  STDMETHOD(CreateGroup) (THIS_ VARIANT Name,VARIANT PID, interface DAOGroup **ppgrp) PURE;
1084};
1085
1086#undef INTERFACE
1087#define INTERFACE DAOUsers
1088DECLARE_INTERFACE_(DAOUsers,_DAODynaCollection) {
1089#ifndef __cplusplus
1090  /* IUnknown methods */
1091  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1092  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1093  STDMETHOD_(ULONG, Release)(THIS) PURE;
1094  /*** IDispatch methods ***/
1095  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1096  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1097  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1098  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1099  /*** _DAOCollection ***/
1100  STDMETHOD(get_Count) (THIS_ short *c) PURE;
1101  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
1102  STDMETHOD(Refresh) (THIS) PURE;
1103  /*** _DAODynaCollection ***/
1104  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
1105  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
1106#endif
1107  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOUser **ppusr) PURE;
1108};
1109
1110#undef INTERFACE
1111#define INTERFACE _DAOGroup
1112DECLARE_INTERFACE_(_DAOGroup,_DAO) {
1113#ifndef __cplusplus
1114  /* IUnknown methods */
1115  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1116  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1117  STDMETHOD_(ULONG, Release)(THIS) PURE;
1118  /*** IDispatch methods ***/
1119  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1120  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1121  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1122  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1123  /*** _DAO ***/
1124  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
1125#endif
1126  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
1127  STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE;
1128  STDMETHOD(put_PID) (THIS_ BSTR bstr) PURE;
1129  STDMETHOD(get_Users) (THIS_ DAOUsers **ppusrs) PURE;
1130  STDMETHOD(CreateUser) (THIS_ VARIANT Name,VARIANT PID,VARIANT Password,DAOUser **ppusr) PURE;
1131};
1132
1133#undef INTERFACE
1134#define INTERFACE DAOGroups
1135DECLARE_INTERFACE_(DAOGroups,_DAODynaCollection) {
1136#ifndef __cplusplus
1137  /* IUnknown methods */
1138  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1139  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1140  STDMETHOD_(ULONG, Release)(THIS) PURE;
1141  /*** IDispatch methods ***/
1142  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1143  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1144  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1145  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1146  /*** _DAOCollection ***/
1147  STDMETHOD(get_Count) (THIS_ short *c) PURE;
1148  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
1149  STDMETHOD(Refresh) (THIS) PURE;
1150  /*** _DAODynaCollection ***/
1151  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
1152  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
1153#endif
1154  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOGroup **ppgrp) PURE;
1155};
1156
1157#undef INTERFACE
1158#define INTERFACE _DAORelation
1159DECLARE_INTERFACE_(_DAORelation,_DAO) {
1160#ifndef __cplusplus
1161  /* IUnknown methods */
1162  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1163  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1164  STDMETHOD_(ULONG, Release)(THIS) PURE;
1165  /*** IDispatch methods ***/
1166  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1167  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1168  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1169  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1170  /*** _DAO ***/
1171  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
1172#endif
1173  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
1174  STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE;
1175  STDMETHOD(get_Table) (THIS_ BSTR *pbstr) PURE;
1176  STDMETHOD(put_Table) (THIS_ BSTR bstr) PURE;
1177  STDMETHOD(get_ForeignTable) (THIS_ BSTR *pbstr) PURE;
1178  STDMETHOD(put_ForeignTable) (THIS_ BSTR bstr) PURE;
1179  STDMETHOD(get_Attributes) (THIS_ __LONG32 *pl) PURE;
1180  STDMETHOD(put_Attributes) (THIS_ __LONG32 attr) PURE;
1181  STDMETHOD(get_Fields) (THIS_ DAOFields **ppflds) PURE;
1182  STDMETHOD(CreateField) (THIS_ VARIANT Name,VARIANT Type,VARIANT Size,DAOField **ppfld) PURE;
1183  STDMETHOD(get_PartialReplica) (THIS_ VARIANT_BOOL *pfPartialReplica) PURE;
1184  STDMETHOD(put_PartialReplica) (THIS_ VARIANT_BOOL fPartialReplica) PURE;
1185};
1186
1187#undef INTERFACE
1188#define INTERFACE DAORelations
1189DECLARE_INTERFACE_(DAORelations,_DAODynaCollection) {
1190#ifndef __cplusplus
1191  /* IUnknown methods */
1192  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1193  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1194  STDMETHOD_(ULONG, Release)(THIS) PURE;
1195  /*** IDispatch methods ***/
1196  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1197  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1198  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1199  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1200  /*** _DAOCollection ***/
1201  STDMETHOD(get_Count) (THIS_ short *c) PURE;
1202  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
1203  STDMETHOD(Refresh) (THIS) PURE;
1204  /*** _DAODynaCollection ***/
1205  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
1206  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
1207#endif
1208  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAORelation **pprel) PURE;
1209};
1210
1211#undef INTERFACE
1212#define INTERFACE DAOContainer
1213DECLARE_INTERFACE_(DAOContainer,_DAO) {
1214#ifndef __cplusplus
1215  /* IUnknown methods */
1216  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1217  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1218  STDMETHOD_(ULONG, Release)(THIS) PURE;
1219  /*** IDispatch methods ***/
1220  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1221  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1222  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1223  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1224  /*** _DAO ***/
1225  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
1226#endif
1227  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
1228  STDMETHOD(get_Owner) (THIS_ BSTR *pbstr) PURE;
1229  STDMETHOD(put_Owner) (THIS_ BSTR bstr) PURE;
1230  STDMETHOD(get_UserName) (THIS_ BSTR *pbstr) PURE;
1231  STDMETHOD(put_UserName) (THIS_ BSTR bstr) PURE;
1232  STDMETHOD(get_Permissions) (THIS_ __LONG32 *pl) PURE;
1233  STDMETHOD(put_Permissions) (THIS_ __LONG32 permissions) PURE;
1234  STDMETHOD(get_Inherit) (THIS_ VARIANT_BOOL *pb) PURE;
1235  STDMETHOD(put_Inherit) (THIS_ VARIANT_BOOL fInherit) PURE;
1236  STDMETHOD(get_Documents) (THIS_ struct DAODocuments **ppdocs) PURE;
1237  STDMETHOD(get_AllPermissions) (THIS_ __LONG32 *pl) PURE;
1238};
1239
1240#undef INTERFACE
1241#define INTERFACE DAOContainers
1242DECLARE_INTERFACE_(DAOContainers,_DAOCollection) {
1243#ifndef __cplusplus
1244  /* IUnknown methods */
1245  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1246  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1247  STDMETHOD_(ULONG, Release)(THIS) PURE;
1248  /*** IDispatch methods ***/
1249  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1250  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1251  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1252  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1253  /*** _DAOCollection ***/
1254  STDMETHOD(get_Count) (THIS_ short *c) PURE;
1255  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
1256  STDMETHOD(Refresh) (THIS) PURE;
1257#endif
1258  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAOContainer **ppctn) PURE;
1259};
1260
1261#undef INTERFACE
1262#define INTERFACE DAODocument
1263DECLARE_INTERFACE_(DAODocument,_DAO) {
1264#ifndef __cplusplus
1265  /* IUnknown methods */
1266  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1267  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1268  STDMETHOD_(ULONG, Release)(THIS) PURE;
1269  /*** IDispatch methods ***/
1270  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1271  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1272  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1273  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1274  /*** _DAO ***/
1275  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
1276#endif
1277  STDMETHOD(get_Name) (THIS_ BSTR *pbstr) PURE;
1278  STDMETHOD(get_Owner) (THIS_ BSTR *pbstr) PURE;
1279  STDMETHOD(put_Owner) (THIS_ BSTR bstr) PURE;
1280  STDMETHOD(get_Container) (THIS_ BSTR *pbstr) PURE;
1281  STDMETHOD(get_UserName) (THIS_ BSTR *pbstr) PURE;
1282  STDMETHOD(put_UserName) (THIS_ BSTR bstr) PURE;
1283  STDMETHOD(get_Permissions) (THIS_ __LONG32 *pl) PURE;
1284  STDMETHOD(put_Permissions) (THIS_ __LONG32 permissions) PURE;
1285  STDMETHOD(get_DateCreated) (THIS_ VARIANT *pvar) PURE;
1286  STDMETHOD(get_LastUpdated) (THIS_ VARIANT *pvar) PURE;
1287  STDMETHOD(get_AllPermissions) (THIS_ __LONG32 *pl) PURE;
1288  STDMETHOD(CreateProperty) (THIS_ VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
1289};
1290
1291#undef INTERFACE
1292#define INTERFACE DAODocuments
1293DECLARE_INTERFACE_(DAODocuments,_DAOCollection) {
1294#ifndef __cplusplus
1295  /* IUnknown methods */
1296  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1297  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1298  STDMETHOD_(ULONG, Release)(THIS) PURE;
1299  /*** IDispatch methods ***/
1300  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1301  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1302  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1303  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1304  /*** _DAOCollection ***/
1305  STDMETHOD(get_Count) (THIS_ short *c) PURE;
1306  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
1307  STDMETHOD(Refresh) (THIS) PURE;
1308#endif
1309  STDMETHOD(get_Item) (THIS_ VARIANT Item,DAODocument **ppdoc) PURE;
1310};
1311
1312#undef INTERFACE
1313#define INTERFACE DAOIndexFields
1314DECLARE_INTERFACE_(DAOIndexFields,_DAODynaCollection) {
1315#ifndef __cplusplus
1316  /* IUnknown methods */
1317  STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1318  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1319  STDMETHOD_(ULONG, Release)(THIS) PURE;
1320  /*** IDispatch methods ***/
1321  STDMETHOD(GetTypeInfoCount)(THIS_ UINT *pctinfo);
1322  STDMETHOD(GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1323  STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1324  STDMETHOD(Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1325  /*** _DAOCollection ***/
1326  STDMETHOD(get_Count) (THIS_ short *c) PURE;
1327  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
1328  STDMETHOD(Refresh) (THIS) PURE;
1329  /*** _DAODynaCollection ***/
1330  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
1331  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
1332#endif
1333  STDMETHOD(get_Item) (THIS_ VARIANT Item,VARIANT *pvar) PURE;
1334};
1335#endif