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  STDMETHOD(get_Count) (THIS_ short *c) PURE;
203  STDMETHOD(_NewEnum) (THIS_ IUnknown **ppunk) PURE;
204  STDMETHOD(Refresh) (THIS) PURE;
205};
206
207#undef INTERFACE
208#define INTERFACE _DAODynaCollection
209DECLARE_INTERFACE_(_DAODynaCollection,_DAOCollection) {
210  STDMETHOD(Append) (THIS_ IDispatch *Object) PURE;
211  STDMETHOD(Delete) (THIS_ BSTR Name) PURE;
212};
213
214#undef INTERFACE
215#define INTERFACE _DAO
216DECLARE_INTERFACE_(_DAO,IDispatch) {
217  STDMETHOD(get_Properties) (THIS_ DAOProperties **ppprops) PURE;
218};
219
220#undef INTERFACE
221#define INTERFACE _DAODBEngine
222DECLARE_INTERFACE_(_DAODBEngine,_DAO) {
223  STDMETHOD(get_Properties) (DAOProperties **ppprops);
224  STDMETHOD(get_Version) (BSTR *pbstr) PURE;
225  STDMETHOD(get_IniPath) (BSTR *pbstr) PURE;
226  STDMETHOD(put_IniPath) (BSTR path) PURE;
227  STDMETHOD(put_DefaultUser) (BSTR user) PURE;
228  STDMETHOD(put_DefaultPassword) (BSTR pw) PURE;
229  STDMETHOD(get_LoginTimeout) (short *ps) PURE;
230  STDMETHOD(put_LoginTimeout) (short Timeout) PURE;
231  STDMETHOD(get_Workspaces) (DAOWorkspaces **ppworks) PURE;
232  STDMETHOD(get_Errors) (DAOErrors **pperrs) PURE;
233  STDMETHOD(Idle) (VARIANT Action) PURE;
234  STDMETHOD(CompactDatabase) (BSTR SrcName,BSTR DstName,VARIANT DstLocale,VARIANT Options,VARIANT SrcLocale) PURE;
235  STDMETHOD(RepairDatabase) (BSTR Name) PURE;
236  STDMETHOD(RegisterDatabase) (BSTR Dsn,BSTR Driver,VARIANT_BOOL Silent,BSTR Attributes) PURE;
237  STDMETHOD(_30_CreateWorkspace) (BSTR Name,BSTR UserName,BSTR Password,DAOWorkspace **ppwrk) PURE;
238  STDMETHOD(OpenDatabase) (BSTR Name,VARIANT Options,VARIANT ReadOnly,VARIANT Connect,DAODatabase **ppdb) PURE;
239  STDMETHOD(CreateDatabase) (BSTR Name,BSTR Locale,VARIANT Option,DAODatabase **ppdb) PURE;
240  STDMETHOD(FreeLocks) (VOID) PURE;
241  STDMETHOD(BeginTrans) (VOID) PURE;
242  STDMETHOD(CommitTrans) (__LONG32 Option) PURE;
243  STDMETHOD(Rollback) (VOID) PURE;
244  STDMETHOD(SetDefaultWorkspace) (BSTR Name,BSTR Password) PURE;
245  STDMETHOD(SetDataAccessOption) (short Option,VARIANT Value) PURE;
246  STDMETHOD(ISAMStats) (__LONG32 StatNum,VARIANT Reset,__LONG32 *pl) PURE;
247  STDMETHOD(get_SystemDB) (BSTR *pbstr) PURE;
248  STDMETHOD(put_SystemDB) (BSTR SystemDBPath) PURE;
249  STDMETHOD(CreateWorkspace) (BSTR Name,BSTR UserName,BSTR Password,VARIANT UseType,DAOWorkspace **ppwrk) PURE;
250  STDMETHOD(OpenConnection) (BSTR Name,VARIANT Options,VARIANT ReadOnly,VARIANT Connect,DAOConnection **ppconn) PURE;
251  STDMETHOD(get_DefaultType) (__LONG32 *Option) PURE;
252  STDMETHOD(put_DefaultType) (__LONG32 Option) PURE;
253  STDMETHOD(SetOption) (LONG Option,VARIANT Value) PURE;
254  STDMETHOD(DumpObjects) (BSTR *pbstr) PURE;
255  STDMETHOD(DebugPrint) (BSTR bstr) PURE;
256};
257
258#undef INTERFACE
259#define INTERFACE DAOError
260DECLARE_INTERFACE_(DAOError,IDispatch) {
261  STDMETHOD(get_Number) (__LONG32 *pl) PURE;
262  STDMETHOD(get_Source) (BSTR *pbstr) PURE;
263  STDMETHOD(get_Description) (BSTR *pbstr) PURE;
264  STDMETHOD(get_HelpFile) (BSTR *pbstr) PURE;
265  STDMETHOD(get_HelpContext) (__LONG32 *pl) PURE;
266};
267
268#undef INTERFACE
269#define INTERFACE DAOErrors
270DECLARE_INTERFACE_(DAOErrors,_DAOCollection) {
271  STDMETHOD(get_Item) (VARIANT Item,DAOError **pperr) PURE;
272};
273
274#undef INTERFACE
275#define INTERFACE DAOProperty
276DECLARE_INTERFACE_(DAOProperty,_DAO) {
277  STDMETHOD(get_Value) (VARIANT *pval) PURE;
278  STDMETHOD(put_Value) (VARIANT val) PURE;
279  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
280  STDMETHOD(put_Name) (BSTR bstr) PURE;
281  STDMETHOD(get_Type) (short *ptype) PURE;
282  STDMETHOD(put_Type) (short type) PURE;
283  STDMETHOD(get_Inherited) (VARIANT_BOOL *pb) PURE;
284};
285
286#undef INTERFACE
287#define INTERFACE DAOProperties
288DECLARE_INTERFACE_(DAOProperties,_DAODynaCollection) {
289  STDMETHOD(get_Item) (VARIANT Item,DAOProperty **ppprop) PURE;
290};
291
292#undef INTERFACE
293#define INTERFACE DAOWorkspace
294DECLARE_INTERFACE_(DAOWorkspace,_DAO) {
295  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
296  STDMETHOD(put_Name) (BSTR Name) PURE;
297  STDMETHOD(get_UserName) (BSTR *pbstr) PURE;
298  STDMETHOD(put__30_UserName) (BSTR UserName) PURE;
299  STDMETHOD(put__30_Password) (BSTR Password) PURE;
300  STDMETHOD(get_IsolateODBCTrans) (short *ps) PURE;
301  STDMETHOD(put_IsolateODBCTrans) (short s) PURE;
302  STDMETHOD(get_Databases) (DAODatabases **ppdbs) PURE;
303  STDMETHOD(get_Users) (DAOUsers **ppusrs) PURE;
304  STDMETHOD(get_Groups) (DAOGroups **ppgrps) PURE;
305  STDMETHOD(BeginTrans) (VOID) PURE;
306  STDMETHOD(CommitTrans) (__LONG32 Options) PURE;
307  STDMETHOD(Close) (VOID) PURE;
308  STDMETHOD(Rollback) (VOID) PURE;
309  STDMETHOD(OpenDatabase) (BSTR Name,VARIANT Options,VARIANT ReadOnly,VARIANT Connect,DAODatabase **ppdb) PURE;
310  STDMETHOD(CreateDatabase) (BSTR Name,BSTR Connect,VARIANT Option,DAODatabase **ppdb) PURE;
311  STDMETHOD(CreateUser) (VARIANT Name,VARIANT PID,VARIANT Password,DAOUser **ppusr) PURE;
312  STDMETHOD(CreateGroup) (VARIANT Name,VARIANT PID,DAOGroup **ppgrp) PURE;
313  STDMETHOD(OpenConnection) (BSTR Name,VARIANT Options,VARIANT ReadOnly,VARIANT Connect,DAOConnection **ppconn) PURE;
314  STDMETHOD(get_LoginTimeout) (__LONG32 *pTimeout) PURE;
315  STDMETHOD(put_LoginTimeout) (__LONG32 Timeout) PURE;
316  STDMETHOD(get_DefaultCursorDriver) (__LONG32 *pCursorType) PURE;
317  STDMETHOD(put_DefaultCursorDriver) (__LONG32 CursorType) PURE;
318  STDMETHOD(get_hEnv) (LONG *phEnv) PURE;
319  STDMETHOD(get_Type) (LONG *ptype) PURE;
320  STDMETHOD(get_Connections) (DAOConnections **ppcns) PURE;
321};
322
323#undef INTERFACE
324#define INTERFACE DAOWorkspaces
325DECLARE_INTERFACE_(DAOWorkspaces,_DAODynaCollection) {
326  STDMETHOD(get_Item) (VARIANT Item,DAOWorkspace **ppwrk) PURE;
327};
328
329#undef INTERFACE
330#define INTERFACE DAOConnection
331DECLARE_INTERFACE_(DAOConnection,IDispatch) {
332  STDMETHOD(QueryInterface) (REFIID riid,LPVOID *ppvObj);
333  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
334  STDMETHOD(get_Connect) (BSTR *pbstr) PURE;
335  STDMETHOD(get_Database) (DAODatabase **ppDb) PURE;
336  STDMETHOD(get_hDbc) (LONG *phDbc) PURE;
337  STDMETHOD(get_QueryTimeout) (SHORT *pSeconds) PURE;
338  STDMETHOD(put_QueryTimeout) (SHORT Seconds) PURE;
339  STDMETHOD(get_Transactions) (VARIANT_BOOL *pb) PURE;
340  STDMETHOD(get_RecordsAffected) (LONG *pRecords) PURE;
341  STDMETHOD(get_StillExecuting) (VARIANT_BOOL *pStillExec) PURE;
342  STDMETHOD(get_Updatable) (VARIANT_BOOL *pStillExec) PURE;
343  STDMETHOD(get_QueryDefs) (DAOQueryDefs **ppqdfs) PURE;
344  STDMETHOD(get_Recordsets) (DAORecordsets **pprsts) PURE;
345  STDMETHOD(Cancel) (VOID) PURE;
346  STDMETHOD(Close) (VOID) PURE;
347  STDMETHOD(CreateQueryDef) (VARIANT Name,VARIANT SQLText,DAOQueryDef **ppqdf) PURE;
348  STDMETHOD(Execute) (BSTR Query,VARIANT Options) PURE;
349  STDMETHOD(OpenRecordset) (BSTR Name,VARIANT Type,VARIANT Options,VARIANT LockEdit,DAORecordset **pprst) PURE;
350};
351
352#undef INTERFACE
353#define INTERFACE DAOConnections
354DECLARE_INTERFACE_(DAOConnections,_DAOCollection) {
355  STDMETHOD(get_Item) (VARIANT Item,DAOConnection **ppconn) PURE;
356};
357
358#undef INTERFACE
359#define INTERFACE DAODatabase
360DECLARE_INTERFACE_(DAODatabase,_DAO) {
361  STDMETHOD(get_CollatingOrder) (LONG *pl) PURE;
362  STDMETHOD(get_Connect) (BSTR *pbstr) PURE;
363  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
364  STDMETHOD(get_QueryTimeout) (short *ps) PURE;
365  STDMETHOD(put_QueryTimeout) (short Timeout) PURE;
366  STDMETHOD(get_Transactions) (VARIANT_BOOL *pb) PURE;
367  STDMETHOD(get_Updatable) (VARIANT_BOOL *pb) PURE;
368  STDMETHOD(get_Version) (BSTR *pbstr) PURE;
369  STDMETHOD(get_RecordsAffected) (__LONG32 *pl) PURE;
370  STDMETHOD(get_TableDefs) (DAOTableDefs **pptdfs) PURE;
371  STDMETHOD(get_QueryDefs) (DAOQueryDefs **ppqdfs) PURE;
372  STDMETHOD(get_Relations) (DAORelations **pprls) PURE;
373  STDMETHOD(get_Containers) (DAOContainers **ppctns) PURE;
374  STDMETHOD(get_Recordsets) (DAORecordsets **pprsts) PURE;
375  STDMETHOD(Close) (VOID) PURE;
376  STDMETHOD(Execute) (BSTR Query,VARIANT Options) PURE;
377  STDMETHOD(_30_OpenRecordset) (BSTR Name,VARIANT Type,VARIANT Options,DAORecordset **pprst) PURE;
378  STDMETHOD(CreateProperty) (VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
379  STDMETHOD(CreateRelation) (VARIANT Name,VARIANT Table,VARIANT ForeignTable,VARIANT Attributes,DAORelation **pprel) PURE;
380  STDMETHOD(CreateTableDef) (VARIANT Name,VARIANT Attributes,VARIANT SourceTablename,VARIANT Connect,DAOTableDef **pptdf) PURE;
381  STDMETHOD(BeginTrans) (VOID) PURE;
382  STDMETHOD(CommitTrans) (__LONG32 Options) PURE;
383  STDMETHOD(Rollback) (VOID) PURE;
384  STDMETHOD(CreateDynaset) (BSTR Name,VARIANT Options,VARIANT Inconsistent,DAORecordset **pprst) PURE;
385  STDMETHOD(CreateQueryDef) (VARIANT Name,VARIANT SQLText,DAOQueryDef **ppqdf) PURE;
386  STDMETHOD(CreateSnapshot) (BSTR Source,VARIANT Options,DAORecordset **pprst) PURE;
387  STDMETHOD(DeleteQueryDef) (BSTR Name) PURE;
388  STDMETHOD(ExecuteSQL) (BSTR SQL,__LONG32 *pl) PURE;
389  STDMETHOD(ListFields) (BSTR Name,DAORecordset **pprst) PURE;
390  STDMETHOD(ListTables) (DAORecordset **pprst) PURE;
391  STDMETHOD(OpenQueryDef) (BSTR Name,DAOQueryDef **ppqdf) PURE;
392  STDMETHOD(OpenTable) (BSTR Name,VARIANT Options,DAORecordset **pprst) PURE;
393  STDMETHOD(get_ReplicaID) (BSTR *pbstr) PURE;
394  STDMETHOD(get_DesignMasterID) (BSTR *pbstr) PURE;
395  STDMETHOD(put_DesignMasterID) (BSTR MasterID) PURE;
396  STDMETHOD(Synchronize) (BSTR DbPathName,VARIANT ExchangeType) PURE;
397  STDMETHOD(MakeReplica) (BSTR PathName,BSTR Description,VARIANT Options) PURE;
398  STDMETHOD(put_Connect) (BSTR ODBCConnnect) PURE;
399  STDMETHOD(NewPassword) (BSTR bstrOld,BSTR bstrNew) PURE;
400  STDMETHOD(OpenRecordset) (BSTR Name,VARIANT Type,VARIANT Options,VARIANT LockEdit,DAORecordset **pprst) PURE;
401  STDMETHOD(get_Connection) (DAOConnection **ppCn) PURE;
402  STDMETHOD(PopulatePartial) (BSTR DbPathName) PURE;
403};
404
405#undef INTERFACE
406#define INTERFACE DAODatabases
407DECLARE_INTERFACE_(DAODatabases,_DAOCollection) {
408  STDMETHOD(get_Item) (VARIANT Item,DAODatabase **ppdb) PURE;
409};
410
411#undef INTERFACE
412#define INTERFACE _DAOTableDef
413DECLARE_INTERFACE_(_DAOTableDef,_DAO) {
414  STDMETHOD(get_Attributes) (__LONG32 *pl) PURE;
415  STDMETHOD(put_Attributes) (__LONG32 Attributes) PURE;
416  STDMETHOD(get_Connect) (BSTR *pbstr) PURE;
417  STDMETHOD(put_Connect) (BSTR Connection) PURE;
418  STDMETHOD(get_DateCreated) (VARIANT *pvar) PURE;
419  STDMETHOD(get_LastUpdated) (VARIANT *pvar) PURE;
420  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
421  STDMETHOD(put_Name) (BSTR Name) PURE;
422  STDMETHOD(get_SourceTableName) (BSTR *pbstr) PURE;
423  STDMETHOD(put_SourceTableName) (BSTR bstr) PURE;
424  STDMETHOD(get_Updatable) (VARIANT_BOOL *pb) PURE;
425  STDMETHOD(get_ValidationText) (BSTR *pbstr) PURE;
426  STDMETHOD(put_ValidationText) (BSTR bstr) PURE;
427  STDMETHOD(get_ValidationRule) (BSTR *pbstr) PURE;
428  STDMETHOD(put_ValidationRule) (BSTR bstr) PURE;
429  STDMETHOD(get_RecordCount) (__LONG32 *pl) PURE;
430  STDMETHOD(get_Fields) (DAOFields **ppflds) PURE;
431  STDMETHOD(get_Indexes) (DAOIndexes **ppidxs) PURE;
432  STDMETHOD(OpenRecordset) (VARIANT Type,VARIANT Options,DAORecordset **pprst) PURE;
433  STDMETHOD(RefreshLink) (VOID) PURE;
434  STDMETHOD(CreateField) (VARIANT Name,VARIANT Type,VARIANT Size,DAOField **ppfld) PURE;
435  STDMETHOD(CreateIndex) (VARIANT Name,DAOIndex **ppidx) PURE;
436  STDMETHOD(CreateProperty) (VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
437  STDMETHOD(get_ConflictTable) (BSTR *pbstr) PURE;
438  STDMETHOD(get_ReplicaFilter) (VARIANT *pFilter) PURE;
439  STDMETHOD(put_ReplicaFilter) (VARIANT Filter) PURE;
440};
441
442#undef INTERFACE
443#define INTERFACE DAOTableDefs
444DECLARE_INTERFACE_(DAOTableDefs,_DAODynaCollection) {
445  STDMETHOD(get_Item) (VARIANT Item,DAOTableDef **pptdf) PURE;
446};
447
448#undef INTERFACE
449#define INTERFACE _DAOQueryDef
450DECLARE_INTERFACE_(_DAOQueryDef,_DAO) {
451  STDMETHOD(get_DateCreated) (VARIANT *pvar) PURE;
452  STDMETHOD(get_LastUpdated) (VARIANT *pvar) PURE;
453  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
454  STDMETHOD(put_Name) (BSTR bstr) PURE;
455  STDMETHOD(get_ODBCTimeout) (short *ps) PURE;
456  STDMETHOD(put_ODBCTimeout) (short timeout) PURE;
457  STDMETHOD(get_Type) (short *pi) PURE;
458  STDMETHOD(get_SQL) (BSTR *pbstr) PURE;
459  STDMETHOD(put_SQL) (BSTR bstr) PURE;
460  STDMETHOD(get_Updatable) (VARIANT_BOOL *pb) PURE;
461  STDMETHOD(get_Connect) (BSTR *pbstr) PURE;
462  STDMETHOD(put_Connect) (BSTR bstr) PURE;
463  STDMETHOD(get_ReturnsRecords) (VARIANT_BOOL *pb) PURE;
464  STDMETHOD(put_ReturnsRecords) (VARIANT_BOOL f) PURE;
465  STDMETHOD(get_RecordsAffected) (__LONG32 *pl) PURE;
466  STDMETHOD(get_Fields) (DAOFields **ppflds) PURE;
467  STDMETHOD(get_Parameters) (DAOParameters **ppprms) PURE;
468  STDMETHOD(Close) (VOID) PURE;
469  STDMETHOD(_30_OpenRecordset) (VARIANT Type,VARIANT Options,DAORecordset **pprst) PURE;
470  STDMETHOD(_30__OpenRecordset) (VARIANT Type,VARIANT Options,DAORecordset **pprst) PURE;
471  STDMETHOD(_Copy) (DAOQueryDef **ppqdf) PURE;
472  STDMETHOD(Execute) (VARIANT Options) PURE;
473  STDMETHOD(Compare) (DAOQueryDef *pQdef,SHORT *lps) PURE;
474  STDMETHOD(CreateDynaset) (VARIANT Options,VARIANT Inconsistent,DAORecordset **pprst) PURE;
475  STDMETHOD(CreateSnapshot) (VARIANT Options,DAORecordset **pprst) PURE;
476  STDMETHOD(ListParameters) (DAORecordset **pprst) PURE;
477  STDMETHOD(CreateProperty) (VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
478  STDMETHOD(OpenRecordset) (VARIANT Type,VARIANT Options,VARIANT LockEdit,DAORecordset **pprst) PURE;
479  STDMETHOD(_OpenRecordset) (VARIANT Type,VARIANT Options,VARIANT LockEdit,DAORecordset **pprst) PURE;
480  STDMETHOD(Cancel) (VOID) PURE;
481  STDMETHOD(get_hStmt) (LONG *phStmt) PURE;
482  STDMETHOD(get_MaxRecords) (LONG *pMxRecs) PURE;
483  STDMETHOD(put_MaxRecords) (LONG MxRecs) PURE;
484  STDMETHOD(get_StillExecuting) (VARIANT_BOOL *pStillExec) PURE;
485  STDMETHOD(get_CacheSize) (__LONG32 *lCacheSize) PURE;
486  STDMETHOD(put_CacheSize) (__LONG32 lCacheSize) PURE;
487  STDMETHOD(get_Prepare) (VARIANT *pb) PURE;
488  STDMETHOD(put_Prepare) (VARIANT f) PURE;
489};
490
491#undef INTERFACE
492#define INTERFACE DAOQueryDefs
493DECLARE_INTERFACE_(DAOQueryDefs,_DAODynaCollection) {
494  STDMETHOD(get_Item) (VARIANT Item,DAOQueryDef **ppqdef) PURE;
495};
496
497#undef INTERFACE
498#define INTERFACE DAORecordset
499DECLARE_INTERFACE_(DAORecordset,_DAO) {
500  STDMETHOD(GetIDsOfNames) (REFIID riid,OLECHAR **rgszNames,UINT cNames,LCID lcid,DISPID *rgdispid);
501  STDMETHOD(Invoke) (DISPID dispidMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pdispparams,VARIANT *pvarResult,EXCEPINFO *pexcepinfo,UINT *puArgErr);
502  STDMETHOD(get_BOF) (VARIANT_BOOL *pb) PURE;
503  STDMETHOD(get_Bookmark) (SAFEARRAY **ppsach) PURE;
504  STDMETHOD(put_Bookmark) (SAFEARRAY **psach) PURE;
505  STDMETHOD(get_Bookmarkable) (VARIANT_BOOL *pb) PURE;
506  STDMETHOD(get_DateCreated) (VARIANT *pvar) PURE;
507  STDMETHOD(get_EOF) (VARIANT_BOOL *pb) PURE;
508  STDMETHOD(get_Filter) (BSTR *pbstr) PURE;
509  STDMETHOD(put_Filter) (BSTR Filter) PURE;
510  STDMETHOD(get_Index) (BSTR *pbstr) PURE;
511  STDMETHOD(put_Index) (BSTR bstr) PURE;
512  STDMETHOD(get_LastModified) (SAFEARRAY **ppsa) PURE;
513  STDMETHOD(get_LastUpdated) (VARIANT *pvar) PURE;
514  STDMETHOD(get_LockEdits) (VARIANT_BOOL *pb) PURE;
515  STDMETHOD(put_LockEdits) (VARIANT_BOOL Lock) PURE;
516  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
517  STDMETHOD(get_NoMatch) (VARIANT_BOOL *pb) PURE;
518  STDMETHOD(get_Sort) (BSTR *pbstr) PURE;
519  STDMETHOD(put_Sort) (BSTR Sort) PURE;
520  STDMETHOD(get_Transactions) (VARIANT_BOOL *pb) PURE;
521  STDMETHOD(get_Type) (short *ps) PURE;
522  STDMETHOD(get_RecordCount) (__LONG32 *pl) PURE;
523  STDMETHOD(get_Updatable) (VARIANT_BOOL *pb) PURE;
524  STDMETHOD(get_Restartable) (VARIANT_BOOL *pb) PURE;
525  STDMETHOD(get_ValidationText) (BSTR *pbstr) PURE;
526  STDMETHOD(get_ValidationRule) (BSTR *pbstr) PURE;
527  STDMETHOD(get_CacheStart) (SAFEARRAY **ppsa) PURE;
528  STDMETHOD(put_CacheStart) (SAFEARRAY **psa) PURE;
529  STDMETHOD(get_CacheSize) (__LONG32 *pl) PURE;
530  STDMETHOD(put_CacheSize) (__LONG32 CacheSize) PURE;
531  STDMETHOD(get_PercentPosition) (float *pd) PURE;
532  STDMETHOD(put_PercentPosition) (float Position) PURE;
533  STDMETHOD(get_AbsolutePosition) (__LONG32 *pl) PURE;
534  STDMETHOD(put_AbsolutePosition) (__LONG32 Position) PURE;
535  STDMETHOD(get_EditMode) (short *pi) PURE;
536  STDMETHOD(get_ODBCFetchCount) (__LONG32 *pl) PURE;
537  STDMETHOD(get_ODBCFetchDelay) (__LONG32 *pl) PURE;
538  STDMETHOD(get_Parent) (DAODatabase **pdb) PURE;
539  STDMETHOD(get_Fields) (DAOFields **ppflds) PURE;
540  STDMETHOD(get_Indexes) (DAOIndexes **ppidxs) PURE;
541  STDMETHOD(_30_CancelUpdate) (VOID) PURE;
542  STDMETHOD(AddNew) (VOID) PURE;
543  STDMETHOD(Close) (VOID) PURE;
544  STDMETHOD(OpenRecordset) (VARIANT Type,VARIANT Options,DAORecordset **pprst) PURE;
545  STDMETHOD(Delete) (VOID) PURE;
546  STDMETHOD(Edit) (VOID) PURE;
547  STDMETHOD(FindFirst) (BSTR Criteria) PURE;
548  STDMETHOD(FindLast) (BSTR Criteria) PURE;
549  STDMETHOD(FindNext) (BSTR Criteria) PURE;
550  STDMETHOD(FindPrevious) (BSTR Criteria) PURE;
551  STDMETHOD(MoveFirst) (VOID) PURE;
552  STDMETHOD(_30_MoveLast) (VOID) PURE;
553  STDMETHOD(MoveNext) (VOID) PURE;
554  STDMETHOD(MovePrevious) (VOID) PURE;
555  STDMETHOD(Seek) (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;
556  STDMETHOD(_30_Update) (VOID) PURE;
557  STDMETHOD(Clone) (DAORecordset **pprst) PURE;
558  STDMETHOD(Requery) (VARIANT NewQueryDef) PURE;
559  STDMETHOD(Move) (__LONG32 Rows,VARIANT StartBookmark) PURE;
560  STDMETHOD(FillCache) (VARIANT Rows,VARIANT StartBookmark) PURE;
561  STDMETHOD(CreateDynaset) (VARIANT Options,VARIANT Inconsistent,DAORecordset **pprst) PURE;
562  STDMETHOD(CreateSnapshot) (VARIANT Options,DAORecordset **pprst) PURE;
563  STDMETHOD(CopyQueryDef) (DAOQueryDef **ppqdf) PURE;
564  STDMETHOD(ListFields) (DAORecordset **pprst) PURE;
565  STDMETHOD(ListIndexes) (DAORecordset **pprst) PURE;
566  STDMETHOD(GetRows) (VARIANT NumRows,VARIANT *pvar) PURE;
567  STDMETHOD(get_Collect) (VARIANT Item,VARIANT *pvar) PURE;
568  STDMETHOD(put_Collect) (VARIANT Item,VARIANT value) PURE;
569  STDMETHOD(Cancel) (VOID) PURE;
570  STDMETHOD(NextRecordset) (VARIANT_BOOL *pb) PURE;
571  STDMETHOD(get_hStmt) (LONG *phStmt) PURE;
572  STDMETHOD(get_StillExecuting) (VARIANT_BOOL *pStillExec) PURE;
573  STDMETHOD(get_BatchSize) (__LONG32 *pl) PURE;
574  STDMETHOD(put_BatchSize) (__LONG32 BatchSize) PURE;
575  STDMETHOD(get_BatchCollisionCount) (__LONG32 *pl) PURE;
576  STDMETHOD(get_BatchCollisions) (VARIANT *pvar) PURE;
577  STDMETHOD(get_Connection) (DAOConnection **ppCn) PURE;
578  STDMETHOD(putref_Connection) (DAOConnection *pNewCn) PURE;
579  STDMETHOD(get_RecordStatus) (short *pi) PURE;
580  STDMETHOD(get_UpdateOptions) (__LONG32 *pl) PURE;
581  STDMETHOD(put_UpdateOptions) (__LONG32 l) PURE;
582  STDMETHOD(CancelUpdate) (__LONG32 UpdateType) PURE;
583  STDMETHOD(Update) (__LONG32 UpdateType,VARIANT_BOOL Force) PURE;
584  STDMETHOD(MoveLast) (__LONG32 Options) PURE;
585};
586
587#undef INTERFACE
588#define INTERFACE DAORecordsets
589DECLARE_INTERFACE_(DAORecordsets,_DAOCollection) {
590  STDMETHOD(get_Item) (VARIANT Item,DAORecordset **pprst) PURE;
591};
592
593#undef INTERFACE
594#define INTERFACE _DAOField
595DECLARE_INTERFACE_(_DAOField,_DAO) {
596  STDMETHOD(get_CollatingOrder) (__LONG32 *pl) PURE;
597  STDMETHOD(get_Type) (short *ps) PURE;
598  STDMETHOD(put_Type) (short Type) PURE;
599  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
600  STDMETHOD(put_Name) (BSTR Name) PURE;
601  STDMETHOD(get_Size) (__LONG32 *pl) PURE;
602  STDMETHOD(put_Size) (__LONG32 Size) PURE;
603  STDMETHOD(get_SourceField) (BSTR *pbstr) PURE;
604  STDMETHOD(get_SourceTable) (BSTR *pbstr) PURE;
605  STDMETHOD(get_Value) (VARIANT *pvar) PURE;
606  STDMETHOD(put_Value) (VARIANT Val) PURE;
607  STDMETHOD(get_Attributes) (__LONG32 *pl) PURE;
608  STDMETHOD(put_Attributes) (__LONG32 Attr) PURE;
609  STDMETHOD(get_OrdinalPosition) (short *ps) PURE;
610  STDMETHOD(put_OrdinalPosition) (short Pos) PURE;
611  STDMETHOD(get_ValidationText) (BSTR *pbstr) PURE;
612  STDMETHOD(put_ValidationText) (BSTR bstr) PURE;
613  STDMETHOD(get_ValidateOnSet) (VARIANT_BOOL *pb) PURE;
614  STDMETHOD(put_ValidateOnSet) (VARIANT_BOOL Validate) PURE;
615  STDMETHOD(get_ValidationRule) (BSTR *pbstr) PURE;
616  STDMETHOD(put_ValidationRule) (BSTR bstr) PURE;
617  STDMETHOD(get_DefaultValue) (VARIANT *pvar) PURE;
618  STDMETHOD(put_DefaultValue) (VARIANT var) PURE;
619  STDMETHOD(get_Required) (VARIANT_BOOL *pb) PURE;
620  STDMETHOD(put_Required) (VARIANT_BOOL fReq) PURE;
621  STDMETHOD(get_AllowZeroLength) (VARIANT_BOOL *pb) PURE;
622  STDMETHOD(put_AllowZeroLength) (VARIANT_BOOL fAllow) PURE;
623  STDMETHOD(get_DataUpdatable) (VARIANT_BOOL *pb) PURE;
624  STDMETHOD(get_ForeignName) (BSTR *pbstr) PURE;
625  STDMETHOD(put_ForeignName) (BSTR bstr) PURE;
626  STDMETHOD(AppendChunk) (VARIANT Val) PURE;
627  STDMETHOD(GetChunk) (__LONG32 Offset,__LONG32 Bytes,VARIANT *pvar) PURE;
628  STDMETHOD(_30_FieldSize) (__LONG32 *pl) PURE;
629  STDMETHOD(CreateProperty) (VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
630  STDMETHOD(get_CollectionIndex) (short *i) PURE;
631  STDMETHOD(get_OriginalValue) (VARIANT *pvar) PURE;
632  STDMETHOD(get_VisibleValue) (VARIANT *pvar) PURE;
633  STDMETHOD(get_FieldSize) (__LONG32 *pl) PURE;
634};
635
636#undef INTERFACE
637#define INTERFACE DAOFields
638DECLARE_INTERFACE_(DAOFields,_DAODynaCollection) {
639  STDMETHOD(get_Item) (VARIANT Item,DAOField **ppfld) PURE;
640};
641
642#undef INTERFACE
643#define INTERFACE _DAOIndex
644DECLARE_INTERFACE_(_DAOIndex,_DAO) {
645  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
646  STDMETHOD(put_Name) (BSTR bstr) PURE;
647  STDMETHOD(get_Foreign) (VARIANT_BOOL *pb) PURE;
648  STDMETHOD(get_Unique) (VARIANT_BOOL *pb) PURE;
649  STDMETHOD(put_Unique) (VARIANT_BOOL fUnique) PURE;
650  STDMETHOD(get_Clustered) (VARIANT_BOOL *pb) PURE;
651  STDMETHOD(put_Clustered) (VARIANT_BOOL fClustered) PURE;
652  STDMETHOD(get_Required) (VARIANT_BOOL *pb) PURE;
653  STDMETHOD(put_Required) (VARIANT_BOOL fRequired) PURE;
654  STDMETHOD(get_IgnoreNulls) (VARIANT_BOOL *pb) PURE;
655  STDMETHOD(put_IgnoreNulls) (VARIANT_BOOL fIgnoreNulls) PURE;
656  STDMETHOD(get_Primary) (VARIANT_BOOL *pb) PURE;
657  STDMETHOD(put_Primary) (VARIANT_BOOL fPrimary) PURE;
658  STDMETHOD(get_DistinctCount) (__LONG32 *pl) PURE;
659  STDMETHOD(get_Fields) (VARIANT *pv) PURE;
660  STDMETHOD(put_Fields) (VARIANT v) PURE;
661  STDMETHOD(CreateField) (VARIANT Name,VARIANT Type,VARIANT Size,DAOField **ppfld) PURE;
662  STDMETHOD(CreateProperty) (VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
663};
664
665#undef INTERFACE
666#define INTERFACE DAOIndexes
667DECLARE_INTERFACE_(DAOIndexes,_DAODynaCollection) {
668  STDMETHOD(get_Item) (VARIANT Item,DAOIndex **ppidx) PURE;
669};
670
671#undef INTERFACE
672#define INTERFACE DAOParameter
673DECLARE_INTERFACE_(DAOParameter,_DAO) {
674  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
675  STDMETHOD(get_Value) (VARIANT *pvar) PURE;
676  STDMETHOD(put_Value) (VARIANT val) PURE;
677  STDMETHOD(get_Type) (short *ps) PURE;
678  STDMETHOD(put_Type) (short s) PURE;
679  STDMETHOD(get_Direction) (short *pOption) PURE;
680  STDMETHOD(put_Direction) (short Option) PURE;
681};
682
683#undef INTERFACE
684#define INTERFACE DAOParameters
685DECLARE_INTERFACE_(DAOParameters,_DAOCollection) {
686  STDMETHOD(get_Item) (VARIANT Item,DAOParameter **ppprm) PURE;
687};
688
689#undef INTERFACE
690#define INTERFACE _DAOUser
691DECLARE_INTERFACE_(_DAOUser,_DAO) {
692  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
693  STDMETHOD(put_Name) (BSTR bstr) PURE;
694  STDMETHOD(put_PID) (BSTR bstr) PURE;
695  STDMETHOD(put_Password) (BSTR bstr) PURE;
696  STDMETHOD(get_Groups) (DAOGroups **ppgrps) PURE;
697  STDMETHOD(NewPassword) (BSTR bstrOld,BSTR bstrNew) PURE;
698  STDMETHOD(CreateGroup) (VARIANT Name,VARIANT PID,DAOGroup **ppgrp) PURE;
699};
700
701#undef INTERFACE
702#define INTERFACE DAOUsers
703DECLARE_INTERFACE_(DAOUsers,_DAODynaCollection) {
704  STDMETHOD(get_Item) (VARIANT Item,DAOUser **ppusr) PURE;
705};
706
707#undef INTERFACE
708#define INTERFACE _DAOGroup
709DECLARE_INTERFACE_(_DAOGroup,_DAO) {
710  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
711  STDMETHOD(put_Name) (BSTR bstr) PURE;
712  STDMETHOD(put_PID) (BSTR bstr) PURE;
713  STDMETHOD(get_Users) (DAOUsers **ppusrs) PURE;
714  STDMETHOD(CreateUser) (VARIANT Name,VARIANT PID,VARIANT Password,DAOUser **ppusr) PURE;
715};
716
717#undef INTERFACE
718#define INTERFACE DAOGroups
719DECLARE_INTERFACE_(DAOGroups,_DAODynaCollection) {
720  STDMETHOD(get_Item) (VARIANT Item,DAOGroup **ppgrp) PURE;
721};
722
723#undef INTERFACE
724#define INTERFACE _DAORelation
725DECLARE_INTERFACE_(_DAORelation,_DAO) {
726  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
727  STDMETHOD(put_Name) (BSTR bstr) PURE;
728  STDMETHOD(get_Table) (BSTR *pbstr) PURE;
729  STDMETHOD(put_Table) (BSTR bstr) PURE;
730  STDMETHOD(get_ForeignTable) (BSTR *pbstr) PURE;
731  STDMETHOD(put_ForeignTable) (BSTR bstr) PURE;
732  STDMETHOD(get_Attributes) (__LONG32 *pl) PURE;
733  STDMETHOD(put_Attributes) (__LONG32 attr) PURE;
734  STDMETHOD(get_Fields) (DAOFields **ppflds) PURE;
735  STDMETHOD(CreateField) (VARIANT Name,VARIANT Type,VARIANT Size,DAOField **ppfld) PURE;
736  STDMETHOD(get_PartialReplica) (VARIANT_BOOL *pfPartialReplica) PURE;
737  STDMETHOD(put_PartialReplica) (VARIANT_BOOL fPartialReplica) PURE;
738};
739
740#undef INTERFACE
741#define INTERFACE DAORelations
742DECLARE_INTERFACE_(DAORelations,_DAODynaCollection) {
743  STDMETHOD(get_Item) (VARIANT Item,DAORelation **pprel) PURE;
744};
745
746#undef INTERFACE
747#define INTERFACE DAOContainer
748DECLARE_INTERFACE_(DAOContainer,_DAO) {
749  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
750  STDMETHOD(get_Owner) (BSTR *pbstr) PURE;
751  STDMETHOD(put_Owner) (BSTR bstr) PURE;
752  STDMETHOD(get_UserName) (BSTR *pbstr) PURE;
753  STDMETHOD(put_UserName) (BSTR bstr) PURE;
754  STDMETHOD(get_Permissions) (__LONG32 *pl) PURE;
755  STDMETHOD(put_Permissions) (__LONG32 permissions) PURE;
756  STDMETHOD(get_Inherit) (VARIANT_BOOL *pb) PURE;
757  STDMETHOD(put_Inherit) (VARIANT_BOOL fInherit) PURE;
758  STDMETHOD(get_Documents) (DAODocuments **ppdocs) PURE;
759  STDMETHOD(get_AllPermissions) (__LONG32 *pl) PURE;
760};
761
762#undef INTERFACE
763#define INTERFACE DAOContainers
764DECLARE_INTERFACE_(DAOContainers,_DAOCollection) {
765  STDMETHOD(get_Item) (VARIANT Item,DAOContainer **ppctn) PURE;
766};
767
768#undef INTERFACE
769#define INTERFACE DAODocument
770DECLARE_INTERFACE_(DAODocument,_DAO) {
771  STDMETHOD(get_Name) (BSTR *pbstr) PURE;
772  STDMETHOD(get_Owner) (BSTR *pbstr) PURE;
773  STDMETHOD(put_Owner) (BSTR bstr) PURE;
774  STDMETHOD(get_Container) (BSTR *pbstr) PURE;
775  STDMETHOD(get_UserName) (BSTR *pbstr) PURE;
776  STDMETHOD(put_UserName) (BSTR bstr) PURE;
777  STDMETHOD(get_Permissions) (__LONG32 *pl) PURE;
778  STDMETHOD(put_Permissions) (__LONG32 permissions) PURE;
779  STDMETHOD(get_DateCreated) (VARIANT *pvar) PURE;
780  STDMETHOD(get_LastUpdated) (VARIANT *pvar) PURE;
781  STDMETHOD(get_AllPermissions) (__LONG32 *pl) PURE;
782  STDMETHOD(CreateProperty) (VARIANT Name,VARIANT Type,VARIANT Value,VARIANT DDL,DAOProperty **pprp) PURE;
783};
784
785#undef INTERFACE
786#define INTERFACE DAODocuments
787DECLARE_INTERFACE_(DAODocuments,_DAOCollection) {
788  STDMETHOD(get_Item) (VARIANT Item,DAODocument **ppdoc) PURE;
789};
790
791#undef INTERFACE
792#define INTERFACE DAOIndexFields
793DECLARE_INTERFACE_(DAOIndexFields,_DAODynaCollection) {
794  STDMETHOD(get_Item) (VARIANT Item,VARIANT *pvar) PURE;
795};
796#endif
797