master
   1/**
   2 * This file is part of the mingw-w64 runtime package.
   3 * No warranty is given; refer to the file DISCLAIMER within this package.
   4 */
   5
   6#ifndef _ADOCTINT_H_
   7#define _ADOCTINT_H_
   8
   9#ifndef _INC_TCHAR
  10#include <tchar.h>
  11#endif
  12
  13#ifndef __REQUIRED_RPCNDR_H_VERSION__
  14#define __REQUIRED_RPCNDR_H_VERSION__ 500
  15#endif
  16
  17#ifndef __REQUIRED_RPCSAL_H_VERSION__
  18#define __REQUIRED_RPCSAL_H_VERSION__ 100
  19#endif
  20
  21#include "rpc.h"
  22#include "rpcndr.h"
  23
  24#ifndef __RPCNDR_H_VERSION__
  25#error this stub requires an updated version of rpcndr.h header.
  26#endif
  27
  28#ifndef __adocat_h__
  29#define __adocat_h__
  30
  31#ifndef ___ADOCollection_FWD_DEFINED__
  32#define ___ADOCollection_FWD_DEFINED__
  33typedef interface _ADOADOCollection _ADOCollection;
  34#endif
  35
  36#ifndef ___ADODynaCollection_FWD_DEFINED__
  37#define ___ADODynaCollection_FWD_DEFINED__
  38typedef interface _ADODynaADOCollection _ADODynaCollection;
  39#endif
  40
  41#ifndef ___Catalog_FWD_DEFINED__
  42#define ___Catalog_FWD_DEFINED__
  43typedef interface _ADOCatalog _Catalog;
  44#endif
  45
  46#ifndef ___Table_FWD_DEFINED__
  47#define ___Table_FWD_DEFINED__
  48typedef interface _ADOTable _Table;
  49#endif
  50
  51#ifndef ___Group25_FWD_DEFINED__
  52#define ___Group25_FWD_DEFINED__
  53typedef interface _Group25 _Group25;
  54#endif
  55
  56#ifndef ___Group_FWD_DEFINED__
  57#define ___Group_FWD_DEFINED__
  58typedef interface _ADOGroup _Group;
  59#endif
  60
  61#ifndef ___User25_FWD_DEFINED__
  62#define ___User25_FWD_DEFINED__
  63typedef interface _User25 _User25;
  64#endif
  65
  66#ifndef ___User_FWD_DEFINED__
  67#define ___User_FWD_DEFINED__
  68typedef interface _ADOUser _User;
  69#endif
  70
  71#ifndef ___Column_FWD_DEFINED__
  72#define ___Column_FWD_DEFINED__
  73typedef interface _ADOColumn _Column;
  74#endif
  75
  76#ifndef ___Index_FWD_DEFINED__
  77#define ___Index_FWD_DEFINED__
  78typedef interface _ADOIndex _Index;
  79#endif
  80
  81#ifndef ___Key_FWD_DEFINED__
  82#define ___Key_FWD_DEFINED__
  83typedef interface _ADOKey _Key;
  84#endif
  85
  86#ifndef __View_FWD_DEFINED__
  87#define __View_FWD_DEFINED__
  88typedef interface ADOView View;
  89#endif
  90
  91#ifndef __Procedure_FWD_DEFINED__
  92#define __Procedure_FWD_DEFINED__
  93typedef interface ADOProcedure Procedure;
  94#endif
  95
  96#ifndef __Catalog_FWD_DEFINED__
  97#define __Catalog_FWD_DEFINED__
  98#ifdef __cplusplus
  99typedef class ADOCatalog Catalog;
 100#else
 101typedef struct ADOCatalog Catalog;
 102#endif
 103#endif
 104
 105#ifndef __Table_FWD_DEFINED__
 106#define __Table_FWD_DEFINED__
 107#ifdef __cplusplus
 108typedef class ADOTable Table;
 109#else
 110typedef struct ADOTable Table;
 111#endif
 112#endif
 113
 114#ifndef __Property_FWD_DEFINED__
 115#define __Property_FWD_DEFINED__
 116typedef interface ADOProperty Property;
 117#endif
 118
 119#ifndef __Group_FWD_DEFINED__
 120#define __Group_FWD_DEFINED__
 121#ifdef __cplusplus
 122typedef class ADOGroup Group;
 123#else
 124typedef struct ADOGroup Group;
 125#endif
 126#endif
 127
 128#ifndef __User_FWD_DEFINED__
 129#define __User_FWD_DEFINED__
 130#ifdef __cplusplus
 131typedef class ADOUser User;
 132#else
 133typedef struct ADOUser User;
 134#endif
 135#endif
 136#ifndef __Column_FWD_DEFINED__
 137#define __Column_FWD_DEFINED__
 138#ifdef __cplusplus
 139typedef class ADOColumn Column;
 140#else
 141typedef struct ADOColumn Column;
 142#endif
 143#endif
 144#ifndef __Index_FWD_DEFINED__
 145#define __Index_FWD_DEFINED__
 146#ifdef __cplusplus
 147typedef class ADOIndex Index;
 148#else
 149typedef struct ADOIndex Index;
 150#endif
 151#endif
 152#ifndef __Key_FWD_DEFINED__
 153#define __Key_FWD_DEFINED__
 154#ifdef __cplusplus
 155typedef class ADOKey Key;
 156#else
 157typedef struct ADOKey Key;
 158#endif
 159#endif
 160#ifndef __Tables_FWD_DEFINED__
 161#define __Tables_FWD_DEFINED__
 162typedef interface ADOTables Tables;
 163#endif
 164
 165#ifndef __Columns_FWD_DEFINED__
 166#define __Columns_FWD_DEFINED__
 167typedef interface ADOColumns Columns;
 168#endif
 169
 170#ifndef __Procedures_FWD_DEFINED__
 171#define __Procedures_FWD_DEFINED__
 172typedef interface ADOProcedures Procedures;
 173#endif
 174
 175#ifndef __Views_FWD_DEFINED__
 176#define __Views_FWD_DEFINED__
 177typedef interface ADOViews Views;
 178#endif
 179
 180#ifndef __Indexes_FWD_DEFINED__
 181#define __Indexes_FWD_DEFINED__
 182typedef interface ADOIndexes Indexes;
 183#endif
 184
 185#ifndef __Keys_FWD_DEFINED__
 186#define __Keys_FWD_DEFINED__
 187typedef interface ADOKeys Keys;
 188#endif
 189
 190#ifndef __Users_FWD_DEFINED__
 191#define __Users_FWD_DEFINED__
 192typedef interface ADOUsers Users;
 193#endif
 194
 195#ifndef __Groups_FWD_DEFINED__
 196#define __Groups_FWD_DEFINED__
 197typedef interface ADOGroups Groups;
 198#endif
 199#ifndef __Properties_FWD_DEFINED__
 200#define __Properties_FWD_DEFINED__
 201typedef interface ADOProperties Properties;
 202#endif
 203
 204#include "oaidl.h"
 205#include "ocidl.h"
 206
 207#ifdef __cplusplus
 208extern "C" {
 209#endif
 210
 211  typedef enum RuleEnum {
 212    adRINone = 0,
 213    adRICascade = 1,
 214    adRISetNull = 2,
 215    adRISetDefault = 3
 216  } RuleEnum;
 217
 218  typedef enum KeyTypeEnum {
 219    adKeyPrimary = 1,
 220    adKeyForeign = 2,
 221    adKeyUnique = 3
 222  } KeyTypeEnum;
 223
 224  typedef enum ActionEnum {
 225    adAccessGrant = 1,
 226    adAccessSet = 2,
 227    adAccessDeny = 3,
 228    adAccessRevoke = 4
 229  } ActionEnum;
 230
 231  typedef enum ColumnAttributesEnum {
 232    adColFixed = 1,
 233    adColNullable = 2
 234  } ColumnAttributesEnum;
 235
 236  typedef enum SortOrderEnum {
 237    adSortAscending = 1,
 238    adSortDescending = 2
 239  } SortOrderEnum;
 240
 241  typedef enum RightsEnum {
 242    adRightNone = __MSABI_LONG(0),
 243    adRightDrop = __MSABI_LONG(0x100),
 244    adRightExclusive = __MSABI_LONG(0x200),
 245    adRightReadDesign = __MSABI_LONG(0x400),
 246    adRightWriteDesign = __MSABI_LONG(0x800),
 247    adRightWithGrant = __MSABI_LONG(0x1000),
 248    adRightReference = __MSABI_LONG(0x2000),
 249    adRightCreate = __MSABI_LONG(0x4000),
 250    adRightInsert = __MSABI_LONG(0x8000),
 251    adRightDelete = __MSABI_LONG(0x10000),
 252    adRightReadPermissions = __MSABI_LONG(0x20000),
 253    adRightWritePermissions = __MSABI_LONG(0x40000),
 254    adRightWriteOwner = __MSABI_LONG(0x80000),
 255    adRightMaximumAllowed = __MSABI_LONG(0x2000000),
 256    adRightFull = __MSABI_LONG(0x10000000),
 257    adRightExecute = __MSABI_LONG(0x20000000),
 258    adRightUpdate = __MSABI_LONG(0x40000000),
 259    adRightRead = __MSABI_LONG(0x80000000)
 260  } RightsEnum;
 261
 262  typedef
 263#ifdef _ADOINT_H_
 264  class dummy dummy;
 265#else
 266  enum DataTypeEnum {
 267    adEmpty = 0,
 268    adTinyInt = 16,
 269    adSmallInt = 2,
 270    adInteger = 3,
 271    adBigInt = 20,
 272    adUnsignedTinyInt = 17,
 273    adUnsignedSmallInt = 18,
 274    adUnsignedInt = 19,
 275    adUnsignedBigInt = 21,
 276    adSingle = 4,
 277    adDouble = 5,
 278    adCurrency = 6,
 279    adDecimal = 14,
 280    adNumeric = 131,
 281    adBoolean = 11,
 282    adError = 10,
 283    adUserDefined = 132,
 284    adVariant = 12,
 285    adIDispatch = 9,
 286    adIUnknown = 13,
 287    adGUID = 72,
 288    adDate = 7,
 289    adDBDate = 133,
 290    adDBTime = 134,
 291    adDBTimeStamp = 135,
 292    adBSTR = 8,
 293    adChar = 129,
 294    adVarChar = 200,
 295    adLongVarChar = 201,
 296    adWChar = 130,
 297    adVarWChar = 202,
 298    adLongVarWChar = 203,
 299    adBinary = 128,
 300    adVarBinary = 204,
 301    adLongVarBinary = 205,
 302    adChapter = 136,
 303    adFileTime = 64,
 304    adPropVariant = 138,
 305    adVarNumeric = 139
 306  } DataTypeEnum;
 307#endif
 308
 309  typedef enum AllowNullsEnum {
 310    adIndexNullsAllow = 0,
 311    adIndexNullsDisallow = 1,
 312    adIndexNullsIgnore = 2,
 313    adIndexNullsIgnoreAny = 4
 314  } AllowNullsEnum;
 315
 316  typedef enum ObjectTypeEnum {
 317    adPermObjProviderSpecific = -1,
 318    adPermObjTable = 1,
 319    adPermObjColumn = 2,
 320    adPermObjDatabase = 3,
 321    adPermObjProcedure = 4,
 322    adPermObjView = 5
 323  } ObjectTypeEnum;
 324
 325  typedef enum InheritTypeEnum {
 326    adInheritNone = 0,
 327    adInheritObjects = 1,
 328    adInheritContainers = 2,
 329    adInheritBoth = 3,
 330    adInheritNoPropogate = 4
 331  } InheritTypeEnum;
 332
 333  extern RPC_IF_HANDLE __MIDL_itf_adocat_0000_0000_v0_0_c_ifspec;
 334  extern RPC_IF_HANDLE __MIDL_itf_adocat_0000_0000_v0_0_s_ifspec;
 335
 336#ifndef __ADOX_LIBRARY_DEFINED__
 337#define __ADOX_LIBRARY_DEFINED__
 338
 339  EXTERN_C const IID LIBID_ADOX;
 340
 341#ifndef ___ADOCollection_INTERFACE_DEFINED__
 342#define ___ADOCollection_INTERFACE_DEFINED__
 343
 344  EXTERN_C const IID IID__ADOCollection;
 345
 346#if defined (__cplusplus) && !defined (CINTERFACE)
 347  MIDL_INTERFACE ("00000512-0000-0010-8000-00AA006D2EA4")
 348  _ADOADOCollection : public IDispatch {
 349    public:
 350    virtual HRESULT STDMETHODCALLTYPE get_Count (long *c) = 0;
 351    virtual HRESULT STDMETHODCALLTYPE _NewEnum (IUnknown **ppvObject) = 0;
 352    virtual HRESULT STDMETHODCALLTYPE Refresh (void) = 0;
 353  };
 354#else
 355  typedef struct _ADOCollectionVtbl {
 356    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOADOCollection *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 357    ULONG (STDMETHODCALLTYPE *AddRef) (_ADOADOCollection *This);
 358    ULONG (STDMETHODCALLTYPE *Release) (_ADOADOCollection *This);
 359    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOADOCollection *This, UINT *pctinfo);
 360    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOADOCollection *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 361    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOADOCollection *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 362    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOADOCollection *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 363    HRESULT (STDMETHODCALLTYPE *get_Count) (_ADOADOCollection *This, long *c);
 364    HRESULT (STDMETHODCALLTYPE *_NewEnum) (_ADOADOCollection *This, IUnknown **ppvObject);
 365    HRESULT (STDMETHODCALLTYPE *Refresh) (_ADOADOCollection *This);
 366    END_INTERFACE
 367  } _ADOCollectionVtbl;
 368  interface _ADOCollection {
 369    CONST_VTBL struct _ADOCollectionVtbl *lpVtbl;
 370  };
 371
 372#ifdef COBJMACROS
 373#define _ADOCollection_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 374#define _ADOCollection_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 375#define _ADOCollection_Release(This) ((This)->lpVtbl ->Release (This))
 376#define _ADOCollection_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 377#define _ADOCollection_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 378#define _ADOCollection_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 379#define _ADOCollection_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 380#define _Collection_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
 381#define _ADOCollection__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
 382#define _ADOCollection_Refresh(This) ((This)->lpVtbl ->Refresh (This))
 383#endif
 384
 385#endif
 386#endif
 387
 388#ifndef ___ADODynaCollection_INTERFACE_DEFINED__
 389#define ___ADODynaCollection_INTERFACE_DEFINED__
 390
 391  EXTERN_C const IID IID__ADODynaCollection;
 392
 393#if defined (__cplusplus) && !defined (CINTERFACE)
 394  MIDL_INTERFACE ("00000513-0000-0010-8000-00AA006D2EA4")
 395  _ADODynaADOCollection : public _ADOCollection {
 396    public:
 397    virtual HRESULT STDMETHODCALLTYPE Append (IDispatch *Object) = 0;
 398    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
 399  };
 400#else
 401  typedef struct _ADODynaCollectionVtbl {
 402    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADODynaADOCollection *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 403    ULONG (STDMETHODCALLTYPE *AddRef) (_ADODynaADOCollection *This);
 404    ULONG (STDMETHODCALLTYPE *Release) (_ADODynaADOCollection *This);
 405    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADODynaADOCollection *This, UINT *pctinfo);
 406    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADODynaADOCollection *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 407    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADODynaADOCollection *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 408    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADODynaADOCollection *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 409    HRESULT (STDMETHODCALLTYPE *get_Count) (_ADODynaADOCollection *This, long *c);
 410    HRESULT (STDMETHODCALLTYPE *_NewEnum) (_ADODynaADOCollection *This, IUnknown **ppvObject);
 411    HRESULT (STDMETHODCALLTYPE *Refresh) (_ADODynaADOCollection *This);
 412    HRESULT (STDMETHODCALLTYPE *Append) (_ADODynaADOCollection *This, IDispatch *Object);
 413    HRESULT (STDMETHODCALLTYPE *Delete) (_ADODynaADOCollection *This, VARIANT Item);
 414    END_INTERFACE
 415  } _ADODynaCollectionVtbl;
 416
 417  interface _ADODynaCollection {
 418    CONST_VTBL struct _ADODynaCollectionVtbl *lpVtbl;
 419  };
 420
 421#ifdef COBJMACROS
 422#define _ADODynaCollection_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 423#define _ADODynaCollection_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 424#define _ADODynaCollection_Release(This) ((This)->lpVtbl ->Release (This))
 425#define _ADODynaCollection_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 426#define _ADODynaCollection_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 427#define _ADODynaCollection_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 428#define _ADODynaCollection_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 429#define _DynaCollection_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
 430#define _ADODynaCollection__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
 431#define _ADODynaCollection_Refresh(This) ((This)->lpVtbl ->Refresh (This))
 432#define _ADODynaCollection_Append(This, Object) ((This)->lpVtbl ->Append (This, Object))
 433#define _ADODynaCollection_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
 434#endif
 435
 436#endif
 437#endif
 438
 439#ifndef ___Catalog_INTERFACE_DEFINED__
 440#define ___Catalog_INTERFACE_DEFINED__
 441
 442  EXTERN_C const IID IID__Catalog;
 443
 444#if defined (__cplusplus) && !defined (CINTERFACE)
 445  MIDL_INTERFACE ("00000603-0000-0010-8000-00AA006D2EA4")
 446  _ADOCatalog : public IDispatch {
 447    public:
 448    virtual HRESULT STDMETHODCALLTYPE get_Tables (ADOTables **ppvObject) = 0;
 449    virtual HRESULT STDMETHODCALLTYPE get_ActiveConnection (VARIANT *pVal) = 0;
 450    virtual HRESULT STDMETHODCALLTYPE put_ActiveConnection (VARIANT newVal) = 0;
 451    virtual HRESULT STDMETHODCALLTYPE putref_ActiveConnection (IDispatch *pCon) = 0;
 452    virtual HRESULT STDMETHODCALLTYPE get_Procedures (ADOProcedures **ppvObject) = 0;
 453    virtual HRESULT STDMETHODCALLTYPE get_Views (ADOViews **ppvObject) = 0;
 454    virtual HRESULT STDMETHODCALLTYPE get_Groups (ADOGroups **ppvObject) = 0;
 455    virtual HRESULT STDMETHODCALLTYPE get_Users (ADOUsers **ppvObject) = 0;
 456    virtual HRESULT STDMETHODCALLTYPE Create (BSTR ConnectString, VARIANT *Connection) = 0;
 457    virtual HRESULT STDMETHODCALLTYPE GetObjectOwner (BSTR ObjectName, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, BSTR *OwnerName) = 0;
 458    virtual HRESULT STDMETHODCALLTYPE SetObjectOwner (BSTR ObjectName, ObjectTypeEnum ObjectType, BSTR UserName, VARIANT ObjectTypeId) = 0;
 459  };
 460#else
 461  typedef struct _CatalogVtbl {
 462    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOCatalog *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 463    ULONG (STDMETHODCALLTYPE *AddRef) (_ADOCatalog *This);
 464    ULONG (STDMETHODCALLTYPE *Release) (_ADOCatalog *This);
 465    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOCatalog *This, UINT *pctinfo);
 466    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOCatalog *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 467    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOCatalog *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 468    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOCatalog *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 469    HRESULT (STDMETHODCALLTYPE *get_Tables) (_ADOCatalog *This, ADOTables **ppvObject);
 470    HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (_ADOCatalog *This, VARIANT *pVal);
 471    HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (_ADOCatalog *This, VARIANT newVal);
 472    HRESULT (STDMETHODCALLTYPE *putref_ActiveConnection) (_ADOCatalog *This, IDispatch *pCon);
 473    HRESULT (STDMETHODCALLTYPE *get_Procedures) (_ADOCatalog *This, ADOProcedures **ppvObject);
 474    HRESULT (STDMETHODCALLTYPE *get_Views) (_ADOCatalog *This, ADOViews **ppvObject);
 475    HRESULT (STDMETHODCALLTYPE *get_Groups) (_ADOCatalog *This, ADOGroups **ppvObject);
 476    HRESULT (STDMETHODCALLTYPE *get_Users) (_ADOCatalog *This, ADOUsers **ppvObject);
 477    HRESULT (STDMETHODCALLTYPE *Create) (_ADOCatalog *This, BSTR ConnectString, VARIANT *Connection);
 478    HRESULT (STDMETHODCALLTYPE *GetObjectOwner) (_ADOCatalog *This, BSTR ObjectName, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, BSTR *OwnerName);
 479    HRESULT (STDMETHODCALLTYPE *SetObjectOwner) (_ADOCatalog *This, BSTR ObjectName, ObjectTypeEnum ObjectType, BSTR UserName, VARIANT ObjectTypeId);
 480    END_INTERFACE
 481  } _CatalogVtbl;
 482
 483  interface _Catalog {
 484    CONST_VTBL struct _CatalogVtbl *lpVtbl;
 485  };
 486
 487#ifdef COBJMACROS
 488#define _Catalog_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 489#define _Catalog_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 490#define _Catalog_Release(This) ((This)->lpVtbl ->Release (This))
 491#define _Catalog_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 492#define _Catalog_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 493#define _Catalog_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 494#define _Catalog_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 495#define _Catalog_get_Tables(This, ppvObject) ((This)->lpVtbl ->get_Tables (This, ppvObject))
 496#define _Catalog_get_ActiveConnection(This, pVal) ((This)->lpVtbl ->get_ActiveConnection (This, pVal))
 497#define _Catalog_put_ActiveConnection(This, newVal) ((This)->lpVtbl ->put_ActiveConnection (This, newVal))
 498#define _Catalog_putref_ActiveConnection(This, pCon) ((This)->lpVtbl ->putref_ActiveConnection (This, pCon))
 499#define _Catalog_get_Procedures(This, ppvObject) ((This)->lpVtbl ->get_Procedures (This, ppvObject))
 500#define _Catalog_get_Views(This, ppvObject) ((This)->lpVtbl ->get_Views (This, ppvObject))
 501#define _Catalog_get_Groups(This, ppvObject) ((This)->lpVtbl ->get_Groups (This, ppvObject))
 502#define _Catalog_get_Users(This, ppvObject) ((This)->lpVtbl ->get_Users (This, ppvObject))
 503#define _Catalog_Create(This, ConnectString, Connection) ((This)->lpVtbl ->Create (This, ConnectString, Connection))
 504#define _Catalog_GetObjectOwner(This, ObjectName, ObjectType, ObjectTypeId, OwnerName) ((This)->lpVtbl ->GetObjectOwner (This, ObjectName, ObjectType, ObjectTypeId, OwnerName))
 505#define _Catalog_SetObjectOwner(This, ObjectName, ObjectType, UserName, ObjectTypeId) ((This)->lpVtbl ->SetObjectOwner (This, ObjectName, ObjectType, UserName, ObjectTypeId))
 506#endif
 507
 508#endif
 509#endif
 510
 511#ifndef ___Table_INTERFACE_DEFINED__
 512#define ___Table_INTERFACE_DEFINED__
 513
 514  EXTERN_C const IID IID__Table;
 515
 516#if defined (__cplusplus) && !defined (CINTERFACE)
 517  MIDL_INTERFACE ("00000610-0000-0010-8000-00AA006D2EA4")
 518  _ADOTable : public IDispatch {
 519    public:
 520    virtual HRESULT STDMETHODCALLTYPE get_Columns (ADOColumns **ppvObject) = 0;
 521    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
 522    virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
 523    virtual HRESULT STDMETHODCALLTYPE get_Type (BSTR *pVal) = 0;
 524    virtual HRESULT STDMETHODCALLTYPE get_Indexes (ADOIndexes **ppvObject) = 0;
 525    virtual HRESULT STDMETHODCALLTYPE get_Keys (ADOKeys **ppvObject) = 0;
 526    virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
 527    virtual HRESULT STDMETHODCALLTYPE get_DateCreated (VARIANT *pVal) = 0;
 528    virtual HRESULT STDMETHODCALLTYPE get_DateModified (VARIANT *pVal) = 0;
 529    virtual HRESULT STDMETHODCALLTYPE get_ParentCatalog (_ADOCatalog **ppvObject) = 0;
 530    virtual HRESULT STDMETHODCALLTYPE put_ParentCatalog (_ADOCatalog *ppvObject) = 0;
 531    virtual HRESULT STDMETHODCALLTYPE putref_ParentCatalog (_ADOCatalog *ppvObject) = 0;
 532  };
 533#else
 534  typedef struct _TableVtbl {
 535    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOTable *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 536    ULONG (STDMETHODCALLTYPE *AddRef) (_ADOTable *This);
 537    ULONG (STDMETHODCALLTYPE *Release) (_ADOTable *This);
 538    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOTable *This, UINT *pctinfo);
 539    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOTable *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 540    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOTable *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 541    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOTable *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 542    HRESULT (STDMETHODCALLTYPE *get_Columns) (_ADOTable *This, ADOColumns **ppvObject);
 543    HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOTable *This, BSTR *pVal);
 544    HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOTable *This, BSTR newVal);
 545    HRESULT (STDMETHODCALLTYPE *get_Type) (_ADOTable *This, BSTR *pVal);
 546    HRESULT (STDMETHODCALLTYPE *get_Indexes) (_ADOTable *This, ADOIndexes **ppvObject);
 547    HRESULT (STDMETHODCALLTYPE *get_Keys) (_ADOTable *This, ADOKeys **ppvObject);
 548    HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOTable *This, ADOProperties **ppvObject);
 549    HRESULT (STDMETHODCALLTYPE *get_DateCreated) (_ADOTable *This, VARIANT *pVal);
 550    HRESULT (STDMETHODCALLTYPE *get_DateModified) (_ADOTable *This, VARIANT *pVal);
 551    HRESULT (STDMETHODCALLTYPE *get_ParentCatalog) (_ADOTable *This, _ADOCatalog **ppvObject);
 552    HRESULT (STDMETHODCALLTYPE *put_ParentCatalog) (_ADOTable *This, _ADOCatalog *ppvObject);
 553    HRESULT (STDMETHODCALLTYPE *putref_ParentADOCatalog) (_ADOTable *This, _ADOCatalog *ppvObject);
 554    END_INTERFACE
 555  } _TableVtbl;
 556
 557  interface _Table {
 558    CONST_VTBL struct _TableVtbl *lpVtbl;
 559  };
 560
 561#ifdef COBJMACROS
 562#define _Table_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 563#define _Table_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 564#define _Table_Release(This) ((This)->lpVtbl ->Release (This))
 565#define _Table_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 566#define _Table_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 567#define _Table_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 568#define _Table_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 569#define _Table_get_Columns(This, ppvObject) ((This)->lpVtbl ->get_Columns (This, ppvObject))
 570#define _Table_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
 571#define _Table_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
 572#define _Table_get_Type(This, pVal) ((This)->lpVtbl ->get_Type (This, pVal))
 573#define _Table_get_Indexes(This, ppvObject) ((This)->lpVtbl ->get_Indexes (This, ppvObject))
 574#define _Table_get_Keys(This, ppvObject) ((This)->lpVtbl ->get_Keys (This, ppvObject))
 575#define _Table_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
 576#define _Table_get_DateCreated(This, pVal) ((This)->lpVtbl ->get_DateCreated (This, pVal))
 577#define _Table_get_DateModified(This, pVal) ((This)->lpVtbl ->get_DateModified (This, pVal))
 578#define _Table_get_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->get_ParentCatalog (This, ppvObject))
 579#define _Table_put_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->put_ParentCatalog (This, ppvObject))
 580#define _Table_putref_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->putref_ParentCatalog (This, ppvObject))
 581#endif
 582
 583#endif
 584#endif
 585
 586#ifndef ___Group25_INTERFACE_DEFINED__
 587#define ___Group25_INTERFACE_DEFINED__
 588
 589  EXTERN_C const IID IID__Group25;
 590
 591#if defined (__cplusplus) && !defined (CINTERFACE)
 592  MIDL_INTERFACE ("00000616-0000-0010-8000-00AA006D2EA4")
 593  _Group25 : public IDispatch {
 594    public:
 595    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
 596    virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
 597    virtual HRESULT STDMETHODCALLTYPE GetPermissions (VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights) = 0;
 598    virtual HRESULT STDMETHODCALLTYPE SetPermissions (VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId) = 0;
 599    virtual HRESULT STDMETHODCALLTYPE get_Users (ADOUsers **ppvObject) = 0;
 600  };
 601#else
 602  typedef struct _Group25Vtbl {
 603    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_Group25 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 604    ULONG (STDMETHODCALLTYPE *AddRef) (_Group25 *This);
 605    ULONG (STDMETHODCALLTYPE *Release) (_Group25 *This);
 606    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_Group25 *This, UINT *pctinfo);
 607    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_Group25 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 608    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_Group25 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 609    HRESULT (STDMETHODCALLTYPE *Invoke) (_Group25 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 610    HRESULT (STDMETHODCALLTYPE *get_Name) (_Group25 *This, BSTR *pVal);
 611    HRESULT (STDMETHODCALLTYPE *put_Name) (_Group25 *This, BSTR newVal);
 612    HRESULT (STDMETHODCALLTYPE *GetPermissions) (_Group25 *This, VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights);
 613    HRESULT (STDMETHODCALLTYPE *SetPermissions) (_Group25 *This, VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId);
 614    HRESULT (STDMETHODCALLTYPE *get_Users) (_Group25 *This, ADOUsers **ppvObject);
 615    END_INTERFACE
 616  } _Group25Vtbl;
 617
 618  interface _Group25 {
 619    CONST_VTBL struct _Group25Vtbl *lpVtbl;
 620  };
 621
 622#ifdef COBJMACROS
 623#define _Group25_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 624#define _Group25_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 625#define _Group25_Release(This) ((This)->lpVtbl ->Release (This))
 626#define _Group25_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 627#define _Group25_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 628#define _Group25_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 629#define _Group25_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 630#define _Group25_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
 631#define _Group25_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
 632#define _Group25_GetPermissions(This, Name, ObjectType, ObjectTypeId, Rights) ((This)->lpVtbl ->GetPermissions (This, Name, ObjectType, ObjectTypeId, Rights))
 633#define _Group25_SetPermissions(This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId) ((This)->lpVtbl ->SetPermissions (This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId))
 634#define _Group25_get_Users(This, ppvObject) ((This)->lpVtbl ->get_Users (This, ppvObject))
 635#endif
 636
 637#endif
 638#endif
 639#ifndef ___Group_INTERFACE_DEFINED__
 640#define ___Group_INTERFACE_DEFINED__
 641
 642  EXTERN_C const IID IID__Group;
 643
 644#if defined (__cplusplus) && !defined (CINTERFACE)
 645  MIDL_INTERFACE ("00000628-0000-0010-8000-00AA006D2EA4")
 646  _ADOGroup : public _Group25 {
 647    public:
 648    virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
 649    virtual HRESULT STDMETHODCALLTYPE get_ParentCatalog (_ADOCatalog **ppvObject) = 0;
 650    virtual HRESULT STDMETHODCALLTYPE put_ParentCatalog (_ADOCatalog *ppvObject) = 0;
 651    virtual HRESULT STDMETHODCALLTYPE putref_ParentCatalog (_ADOCatalog *ppvObject) = 0;
 652  };
 653#else
 654  typedef struct _GroupVtbl {
 655    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOGroup *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 656    ULONG (STDMETHODCALLTYPE *AddRef) (_ADOGroup *This);
 657    ULONG (STDMETHODCALLTYPE *Release) (_ADOGroup *This);
 658    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOGroup *This, UINT *pctinfo);
 659    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOGroup *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 660    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOGroup *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 661    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOGroup *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 662    HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOGroup *This, BSTR *pVal);
 663    HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOGroup *This, BSTR newVal);
 664    HRESULT (STDMETHODCALLTYPE *GetPermissions) (_ADOGroup *This, VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights);
 665    HRESULT (STDMETHODCALLTYPE *SetPermissions) (_ADOGroup *This, VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId);
 666    HRESULT (STDMETHODCALLTYPE *get_Users) (_ADOGroup *This, ADOUsers **ppvObject);
 667    HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOGroup *This, ADOProperties **ppvObject);
 668    HRESULT (STDMETHODCALLTYPE *get_ParentCatalog) (_ADOGroup *This, _ADOCatalog **ppvObject);
 669    HRESULT (STDMETHODCALLTYPE *put_ParentCatalog) (_ADOGroup *This, _ADOCatalog *ppvObject);
 670    HRESULT (STDMETHODCALLTYPE *putref_ParentADOCatalog) (_ADOGroup *This, _ADOCatalog *ppvObject);
 671    END_INTERFACE
 672  } _GroupVtbl;
 673
 674  interface _Group {
 675    CONST_VTBL struct _GroupVtbl *lpVtbl;
 676  };
 677
 678#ifdef COBJMACROS
 679#define _Group_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 680#define _Group_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 681#define _Group_Release(This) ((This)->lpVtbl ->Release (This))
 682#define _Group_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 683#define _Group_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 684#define _Group_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 685#define _Group_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 686#define _Group_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
 687#define _Group_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
 688#define _Group_GetPermissions(This, Name, ObjectType, ObjectTypeId, Rights) ((This)->lpVtbl ->GetPermissions (This, Name, ObjectType, ObjectTypeId, Rights))
 689#define _Group_SetPermissions(This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId) ((This)->lpVtbl ->SetPermissions (This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId))
 690#define _Group_get_Users(This, ppvObject) ((This)->lpVtbl ->get_Users (This, ppvObject))
 691#define _Group_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
 692#define _Group_get_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->get_ParentCatalog (This, ppvObject))
 693#define _Group_put_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->put_ParentCatalog (This, ppvObject))
 694#define _Group_putref_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->putref_ParentCatalog (This, ppvObject))
 695#endif
 696#endif
 697
 698#endif
 699
 700#ifndef ___User25_INTERFACE_DEFINED__
 701#define ___User25_INTERFACE_DEFINED__
 702
 703  EXTERN_C const IID IID__User25;
 704
 705#if defined (__cplusplus) && !defined (CINTERFACE)
 706  MIDL_INTERFACE ("00000619-0000-0010-8000-00AA006D2EA4")
 707  _User25 : public IDispatch {
 708    public:
 709    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
 710    virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
 711    virtual HRESULT STDMETHODCALLTYPE GetPermissions (VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights) = 0;
 712    virtual HRESULT STDMETHODCALLTYPE SetPermissions (VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId) = 0;
 713    virtual HRESULT STDMETHODCALLTYPE ChangePassword (BSTR OldPassword, BSTR NewPassword) = 0;
 714    virtual HRESULT STDMETHODCALLTYPE get_Groups (ADOGroups **ppvObject) = 0;
 715  };
 716#else
 717  typedef struct _User25Vtbl {
 718    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_User25 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 719    ULONG (STDMETHODCALLTYPE *AddRef) (_User25 *This);
 720    ULONG (STDMETHODCALLTYPE *Release) (_User25 *This);
 721    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_User25 *This, UINT *pctinfo);
 722    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_User25 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 723    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_User25 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 724    HRESULT (STDMETHODCALLTYPE *Invoke) (_User25 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 725    HRESULT (STDMETHODCALLTYPE *get_Name) (_User25 *This, BSTR *pVal);
 726    HRESULT (STDMETHODCALLTYPE *put_Name) (_User25 *This, BSTR newVal);
 727    HRESULT (STDMETHODCALLTYPE *GetPermissions) (_User25 *This, VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights);
 728    HRESULT (STDMETHODCALLTYPE *SetPermissions) (_User25 *This, VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId);
 729    HRESULT (STDMETHODCALLTYPE *ChangePassword) (_User25 *This, BSTR OldPassword, BSTR NewPassword);
 730    HRESULT (STDMETHODCALLTYPE *get_Groups) (_User25 *This, ADOGroups **ppvObject);
 731    END_INTERFACE
 732  } _User25Vtbl;
 733
 734  interface _User25 {
 735    CONST_VTBL struct _User25Vtbl *lpVtbl;
 736  };
 737
 738#ifdef COBJMACROS
 739#define _User25_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 740#define _User25_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 741#define _User25_Release(This) ((This)->lpVtbl ->Release (This))
 742#define _User25_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 743#define _User25_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 744#define _User25_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 745#define _User25_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 746#define _User25_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
 747#define _User25_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
 748#define _User25_GetPermissions(This, Name, ObjectType, ObjectTypeId, Rights) ((This)->lpVtbl ->GetPermissions (This, Name, ObjectType, ObjectTypeId, Rights))
 749#define _User25_SetPermissions(This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId) ((This)->lpVtbl ->SetPermissions (This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId))
 750#define _User25_ChangePassword(This, OldPassword, NewPassword) ((This)->lpVtbl ->ChangePassword (This, OldPassword, NewPassword))
 751#define _User25_get_Groups(This, ppvObject) ((This)->lpVtbl ->get_Groups (This, ppvObject))
 752#endif
 753
 754#endif
 755#endif
 756
 757#ifndef ___User_INTERFACE_DEFINED__
 758#define ___User_INTERFACE_DEFINED__
 759
 760  EXTERN_C const IID IID__User;
 761
 762#if defined (__cplusplus) && !defined (CINTERFACE)
 763  MIDL_INTERFACE ("00000627-0000-0010-8000-00AA006D2EA4")
 764  _ADOUser : public _User25 {
 765    public:
 766    virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
 767    virtual HRESULT STDMETHODCALLTYPE get_ParentCatalog (_ADOCatalog **ppvObject) = 0;
 768    virtual HRESULT STDMETHODCALLTYPE put_ParentCatalog (_ADOCatalog *ppvObject) = 0;
 769    virtual HRESULT STDMETHODCALLTYPE putref_ParentCatalog (_ADOCatalog *ppvObject) = 0;
 770  };
 771#else
 772  typedef struct _UserVtbl {
 773    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOUser *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 774    ULONG (STDMETHODCALLTYPE *AddRef) (_ADOUser *This);
 775    ULONG (STDMETHODCALLTYPE *Release) (_ADOUser *This);
 776    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOUser *This, UINT *pctinfo);
 777    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOUser *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 778    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOUser *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 779    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOUser *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 780    HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOUser *This, BSTR *pVal);
 781    HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOUser *This, BSTR newVal);
 782    HRESULT (STDMETHODCALLTYPE *GetPermissions) (_ADOUser *This, VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights);
 783    HRESULT (STDMETHODCALLTYPE *SetPermissions) (_ADOUser *This, VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId);
 784    HRESULT (STDMETHODCALLTYPE *ChangePassword) (_ADOUser *This, BSTR OldPassword, BSTR NewPassword);
 785    HRESULT (STDMETHODCALLTYPE *get_Groups) (_ADOUser *This, ADOGroups **ppvObject);
 786    HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOUser *This, ADOProperties **ppvObject);
 787    HRESULT (STDMETHODCALLTYPE *get_ParentCatalog) (_ADOUser *This, _ADOCatalog **ppvObject);
 788    HRESULT (STDMETHODCALLTYPE *put_ParentCatalog) (_ADOUser *This, _ADOCatalog *ppvObject);
 789    HRESULT (STDMETHODCALLTYPE *putref_ParentADOCatalog) (_ADOUser *This, _ADOCatalog *ppvObject);
 790    END_INTERFACE
 791  } _UserVtbl;
 792
 793  interface _User {
 794    CONST_VTBL struct _UserVtbl *lpVtbl;
 795  };
 796
 797#ifdef COBJMACROS
 798#define _User_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 799#define _User_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 800#define _User_Release(This) ((This)->lpVtbl ->Release (This))
 801#define _User_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 802#define _User_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 803#define _User_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 804#define _User_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 805#define _User_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
 806#define _User_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
 807#define _User_GetPermissions(This, Name, ObjectType, ObjectTypeId, Rights) ((This)->lpVtbl ->GetPermissions (This, Name, ObjectType, ObjectTypeId, Rights))
 808#define _User_SetPermissions(This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId) ((This)->lpVtbl ->SetPermissions (This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId))
 809#define _User_ChangePassword(This, OldPassword, NewPassword) ((This)->lpVtbl ->ChangePassword (This, OldPassword, NewPassword))
 810#define _User_get_Groups(This, ppvObject) ((This)->lpVtbl ->get_Groups (This, ppvObject))
 811#define _User_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
 812#define _User_get_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->get_ParentCatalog (This, ppvObject))
 813#define _User_put_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->put_ParentCatalog (This, ppvObject))
 814#define _User_putref_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->putref_ParentCatalog (This, ppvObject))
 815#endif
 816
 817#endif
 818#endif
 819
 820#ifndef ___Column_INTERFACE_DEFINED__
 821#define ___Column_INTERFACE_DEFINED__
 822
 823  EXTERN_C const IID IID__Column;
 824
 825#if defined (__cplusplus) && !defined (CINTERFACE)
 826  MIDL_INTERFACE ("0000061C-0000-0010-8000-00AA006D2EA4")
 827  _ADOColumn : public IDispatch {
 828    public:
 829    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
 830    virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
 831    virtual HRESULT STDMETHODCALLTYPE get_Attributes (ColumnAttributesEnum *pVal) = 0;
 832    virtual HRESULT STDMETHODCALLTYPE put_Attributes (ColumnAttributesEnum newVal) = 0;
 833    virtual HRESULT STDMETHODCALLTYPE get_DefinedSize (long *pVal) = 0;
 834    virtual HRESULT STDMETHODCALLTYPE put_DefinedSize (long DefinedSize) = 0;
 835    virtual HRESULT STDMETHODCALLTYPE get_NumericScale (BYTE *pVal) = 0;
 836    virtual HRESULT STDMETHODCALLTYPE put_NumericScale (BYTE newVal) = 0;
 837    virtual HRESULT STDMETHODCALLTYPE get_Precision (long *pVal) = 0;
 838    virtual HRESULT STDMETHODCALLTYPE put_Precision (long newVal) = 0;
 839    virtual HRESULT STDMETHODCALLTYPE get_RelatedColumn (BSTR *pVal) = 0;
 840    virtual HRESULT STDMETHODCALLTYPE put_RelatedColumn (BSTR newVal) = 0;
 841    virtual HRESULT STDMETHODCALLTYPE get_SortOrder (SortOrderEnum *pVal) = 0;
 842    virtual HRESULT STDMETHODCALLTYPE put_SortOrder (SortOrderEnum newVal) = 0;
 843    virtual HRESULT STDMETHODCALLTYPE get_Type (DataTypeEnum *pVal) = 0;
 844    virtual HRESULT STDMETHODCALLTYPE put_Type (DataTypeEnum newVal) = 0;
 845    virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
 846    virtual HRESULT STDMETHODCALLTYPE get_ParentCatalog (_ADOCatalog **ppvObject) = 0;
 847    virtual HRESULT STDMETHODCALLTYPE put_ParentCatalog (_ADOCatalog *ppvObject) = 0;
 848    virtual HRESULT STDMETHODCALLTYPE putref_ParentCatalog (_ADOCatalog *ppvObject) = 0;
 849  };
 850#else
 851  typedef struct _ColumnVtbl {
 852    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOColumn *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 853    ULONG (STDMETHODCALLTYPE *AddRef) (_ADOColumn *This);
 854    ULONG (STDMETHODCALLTYPE *Release) (_ADOColumn *This);
 855    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOColumn *This, UINT *pctinfo);
 856    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOColumn *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 857    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOColumn *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 858    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOColumn *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 859    HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOColumn *This, BSTR *pVal);
 860    HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOColumn *This, BSTR newVal);
 861    HRESULT (STDMETHODCALLTYPE *get_Attributes) (_ADOColumn *This, ColumnAttributesEnum *pVal);
 862    HRESULT (STDMETHODCALLTYPE *put_Attributes) (_ADOColumn *This, ColumnAttributesEnum newVal);
 863    HRESULT (STDMETHODCALLTYPE *get_DefinedSize) (_ADOColumn *This, long *pVal);
 864    HRESULT (STDMETHODCALLTYPE *put_DefinedSize) (_ADOColumn *This, long DefinedSize);
 865    HRESULT (STDMETHODCALLTYPE *get_NumericScale) (_ADOColumn *This, BYTE *pVal);
 866    HRESULT (STDMETHODCALLTYPE *put_NumericScale) (_ADOColumn *This, BYTE newVal);
 867    HRESULT (STDMETHODCALLTYPE *get_Precision) (_ADOColumn *This, long *pVal);
 868    HRESULT (STDMETHODCALLTYPE *put_Precision) (_ADOColumn *This, long newVal);
 869    HRESULT (STDMETHODCALLTYPE *get_RelatedColumn) (_ADOColumn *This, BSTR *pVal);
 870    HRESULT (STDMETHODCALLTYPE *put_RelatedColumn) (_ADOColumn *This, BSTR newVal);
 871    HRESULT (STDMETHODCALLTYPE *get_SortOrder) (_ADOColumn *This, SortOrderEnum *pVal);
 872    HRESULT (STDMETHODCALLTYPE *put_SortOrder) (_ADOColumn *This, SortOrderEnum newVal);
 873    HRESULT (STDMETHODCALLTYPE *get_Type) (_ADOColumn *This, DataTypeEnum *pVal);
 874    HRESULT (STDMETHODCALLTYPE *put_Type) (_ADOColumn *This, DataTypeEnum newVal);
 875    HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOColumn *This, ADOProperties **ppvObject);
 876    HRESULT (STDMETHODCALLTYPE *get_ParentCatalog) (_ADOColumn *This, _ADOCatalog **ppvObject);
 877    HRESULT (STDMETHODCALLTYPE *put_ParentCatalog) (_ADOColumn *This, _ADOCatalog *ppvObject);
 878    HRESULT (STDMETHODCALLTYPE *putref_ParentADOCatalog) (_ADOColumn *This, _ADOCatalog *ppvObject);
 879    END_INTERFACE
 880  } _ColumnVtbl;
 881
 882  interface _Column {
 883    CONST_VTBL struct _ColumnVtbl *lpVtbl;
 884  };
 885
 886#ifdef COBJMACROS
 887#define _Column_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 888#define _Column_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 889#define _Column_Release(This) ((This)->lpVtbl ->Release (This))
 890#define _Column_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 891#define _Column_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 892#define _Column_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 893#define _Column_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 894#define _Column_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
 895#define _Column_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
 896#define _Column_get_Attributes(This, pVal) ((This)->lpVtbl ->get_Attributes (This, pVal))
 897#define _Column_put_Attributes(This, newVal) ((This)->lpVtbl ->put_Attributes (This, newVal))
 898#define _Column_get_DefinedSize(This, pVal) ((This)->lpVtbl ->get_DefinedSize (This, pVal))
 899#define _Column_put_DefinedSize(This, DefinedSize) ((This)->lpVtbl ->put_DefinedSize (This, DefinedSize))
 900#define _Column_get_NumericScale(This, pVal) ((This)->lpVtbl ->get_NumericScale (This, pVal))
 901#define _Column_put_NumericScale(This, newVal) ((This)->lpVtbl ->put_NumericScale (This, newVal))
 902#define _Column_get_Precision(This, pVal) ((This)->lpVtbl ->get_Precision (This, pVal))
 903#define _Column_put_Precision(This, newVal) ((This)->lpVtbl ->put_Precision (This, newVal))
 904#define _Column_get_RelatedColumn(This, pVal) ((This)->lpVtbl ->get_RelatedColumn (This, pVal))
 905#define _Column_put_RelatedColumn(This, newVal) ((This)->lpVtbl ->put_RelatedColumn (This, newVal))
 906#define _Column_get_SortOrder(This, pVal) ((This)->lpVtbl ->get_SortOrder (This, pVal))
 907#define _Column_put_SortOrder(This, newVal) ((This)->lpVtbl ->put_SortOrder (This, newVal))
 908#define _Column_get_Type(This, pVal) ((This)->lpVtbl ->get_Type (This, pVal))
 909#define _Column_put_Type(This, newVal) ((This)->lpVtbl ->put_Type (This, newVal))
 910#define _Column_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
 911#define _Column_get_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->get_ParentCatalog (This, ppvObject))
 912#define _Column_put_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->put_ParentCatalog (This, ppvObject))
 913#define _Column_putref_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->putref_ParentCatalog (This, ppvObject))
 914#endif
 915
 916#endif
 917#endif
 918
 919#ifndef ___Index_INTERFACE_DEFINED__
 920#define ___Index_INTERFACE_DEFINED__
 921
 922  EXTERN_C const IID IID__Index;
 923
 924#if defined (__cplusplus) && !defined (CINTERFACE)
 925  MIDL_INTERFACE ("0000061F-0000-0010-8000-00AA006D2EA4")
 926  _ADOIndex : public IDispatch {
 927    public:
 928    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
 929    virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
 930    virtual HRESULT STDMETHODCALLTYPE get_Clustered (VARIANT_BOOL *pVal) = 0;
 931    virtual HRESULT STDMETHODCALLTYPE put_Clustered (VARIANT_BOOL newVal) = 0;
 932    virtual HRESULT STDMETHODCALLTYPE get_IndexNulls (AllowNullsEnum *pVal) = 0;
 933    virtual HRESULT STDMETHODCALLTYPE put_IndexNulls (AllowNullsEnum newVal) = 0;
 934    virtual HRESULT STDMETHODCALLTYPE get_PrimaryKey (VARIANT_BOOL *pVal) = 0;
 935    virtual HRESULT STDMETHODCALLTYPE put_PrimaryKey (VARIANT_BOOL newVal) = 0;
 936    virtual HRESULT STDMETHODCALLTYPE get_Unique (VARIANT_BOOL *pVal) = 0;
 937    virtual HRESULT STDMETHODCALLTYPE put_Unique (VARIANT_BOOL newVal) = 0;
 938    virtual HRESULT STDMETHODCALLTYPE get_Columns (ADOColumns **ppvObject) = 0;
 939    virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
 940  };
 941#else
 942  typedef struct _IndexVtbl {
 943    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOIndex *This, REFIID riid, _COM_Outptr_ void **ppvObject);
 944    ULONG (STDMETHODCALLTYPE *AddRef) (_ADOIndex *This);
 945    ULONG (STDMETHODCALLTYPE *Release) (_ADOIndex *This);
 946    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOIndex *This, UINT *pctinfo);
 947    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOIndex *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
 948    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOIndex *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
 949    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOIndex *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
 950    HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOIndex *This, BSTR *pVal);
 951    HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOIndex *This, BSTR newVal);
 952    HRESULT (STDMETHODCALLTYPE *get_Clustered) (_ADOIndex *This, VARIANT_BOOL *pVal);
 953    HRESULT (STDMETHODCALLTYPE *put_Clustered) (_ADOIndex *This, VARIANT_BOOL newVal);
 954    HRESULT (STDMETHODCALLTYPE *get_IndexNulls) (_ADOIndex *This, AllowNullsEnum *pVal);
 955    HRESULT (STDMETHODCALLTYPE *put_IndexNulls) (_ADOIndex *This, AllowNullsEnum newVal);
 956    HRESULT (STDMETHODCALLTYPE *get_PrimaryKey) (_ADOIndex *This, VARIANT_BOOL *pVal);
 957    HRESULT (STDMETHODCALLTYPE *put_PrimaryKey) (_ADOIndex *This, VARIANT_BOOL newVal);
 958    HRESULT (STDMETHODCALLTYPE *get_Unique) (_ADOIndex *This, VARIANT_BOOL *pVal);
 959    HRESULT (STDMETHODCALLTYPE *put_Unique) (_ADOIndex *This, VARIANT_BOOL newVal);
 960    HRESULT (STDMETHODCALLTYPE *get_Columns) (_ADOIndex *This, ADOColumns **ppvObject);
 961    HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOIndex *This, ADOProperties **ppvObject);
 962    END_INTERFACE
 963  } _IndexVtbl;
 964
 965  interface _Index {
 966    CONST_VTBL struct _IndexVtbl *lpVtbl;
 967  };
 968
 969#ifdef COBJMACROS
 970#define _Index_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
 971#define _Index_AddRef(This) ((This)->lpVtbl ->AddRef (This))
 972#define _Index_Release(This) ((This)->lpVtbl ->Release (This))
 973#define _Index_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
 974#define _Index_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
 975#define _Index_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
 976#define _Index_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
 977#define _Index_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
 978#define _Index_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
 979#define _Index_get_Clustered(This, pVal) ((This)->lpVtbl ->get_Clustered (This, pVal))
 980#define _Index_put_Clustered(This, newVal) ((This)->lpVtbl ->put_Clustered (This, newVal))
 981#define _Index_get_IndexNulls(This, pVal) ((This)->lpVtbl ->get_IndexNulls (This, pVal))
 982#define _Index_put_IndexNulls(This, newVal) ((This)->lpVtbl ->put_IndexNulls (This, newVal))
 983#define _Index_get_PrimaryKey(This, pVal) ((This)->lpVtbl ->get_PrimaryKey (This, pVal))
 984#define _Index_put_PrimaryKey(This, newVal) ((This)->lpVtbl ->put_PrimaryKey (This, newVal))
 985#define _Index_get_Unique(This, pVal) ((This)->lpVtbl ->get_Unique (This, pVal))
 986#define _Index_put_Unique(This, newVal) ((This)->lpVtbl ->put_Unique (This, newVal))
 987#define _Index_get_Columns(This, ppvObject) ((This)->lpVtbl ->get_Columns (This, ppvObject))
 988#define _Index_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
 989#endif
 990
 991#endif
 992#endif
 993
 994#ifndef ___Key_INTERFACE_DEFINED__
 995#define ___Key_INTERFACE_DEFINED__
 996
 997  EXTERN_C const IID IID__Key;
 998
 999#if defined (__cplusplus) && !defined (CINTERFACE)
1000  MIDL_INTERFACE ("00000622-0000-0010-8000-00AA006D2EA4")
1001  _ADOKey : public IDispatch {
1002    public:
1003    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
1004    virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
1005    virtual HRESULT STDMETHODCALLTYPE get_DeleteRule (RuleEnum *pVal) = 0;
1006    virtual HRESULT STDMETHODCALLTYPE put_DeleteRule (RuleEnum newVal) = 0;
1007    virtual HRESULT STDMETHODCALLTYPE get_Type (KeyTypeEnum *pVal) = 0;
1008    virtual HRESULT STDMETHODCALLTYPE put_Type (KeyTypeEnum newVal) = 0;
1009    virtual HRESULT STDMETHODCALLTYPE get_RelatedTable (BSTR *pVal) = 0;
1010    virtual HRESULT STDMETHODCALLTYPE put_RelatedTable (BSTR newVal) = 0;
1011    virtual HRESULT STDMETHODCALLTYPE get_UpdateRule (RuleEnum *pVal) = 0;
1012    virtual HRESULT STDMETHODCALLTYPE put_UpdateRule (RuleEnum newVal) = 0;
1013    virtual HRESULT STDMETHODCALLTYPE get_Columns (ADOColumns **ppvObject) = 0;
1014  };
1015#else
1016  typedef struct _KeyVtbl {
1017    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOKey *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1018    ULONG (STDMETHODCALLTYPE *AddRef) (_ADOKey *This);
1019    ULONG (STDMETHODCALLTYPE *Release) (_ADOKey *This);
1020    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOKey *This, UINT *pctinfo);
1021    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOKey *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1022    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOKey *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1023    HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOKey *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1024    HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOKey *This, BSTR *pVal);
1025    HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOKey *This, BSTR newVal);
1026    HRESULT (STDMETHODCALLTYPE *get_DeleteRule) (_ADOKey *This, RuleEnum *pVal);
1027    HRESULT (STDMETHODCALLTYPE *put_DeleteRule) (_ADOKey *This, RuleEnum newVal);
1028    HRESULT (STDMETHODCALLTYPE *get_Type) (_ADOKey *This, KeyTypeEnum *pVal);
1029    HRESULT (STDMETHODCALLTYPE *put_Type) (_ADOKey *This, KeyTypeEnum newVal);
1030    HRESULT (STDMETHODCALLTYPE *get_RelatedTable) (_ADOKey *This, BSTR *pVal);
1031    HRESULT (STDMETHODCALLTYPE *put_RelatedTable) (_ADOKey *This, BSTR newVal);
1032    HRESULT (STDMETHODCALLTYPE *get_UpdateRule) (_ADOKey *This, RuleEnum *pVal);
1033    HRESULT (STDMETHODCALLTYPE *put_UpdateRule) (_ADOKey *This, RuleEnum newVal);
1034    HRESULT (STDMETHODCALLTYPE *get_Columns) (_ADOKey *This, ADOColumns **ppvObject);
1035    END_INTERFACE
1036  } _KeyVtbl;
1037
1038  interface _Key {
1039    CONST_VTBL struct _KeyVtbl *lpVtbl;
1040  };
1041
1042#ifdef COBJMACROS
1043#define _Key_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1044#define _Key_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1045#define _Key_Release(This) ((This)->lpVtbl ->Release (This))
1046#define _Key_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1047#define _Key_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1048#define _Key_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1049#define _Key_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1050#define _Key_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
1051#define _Key_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
1052#define _Key_get_DeleteRule(This, pVal) ((This)->lpVtbl ->get_DeleteRule (This, pVal))
1053#define _Key_put_DeleteRule(This, newVal) ((This)->lpVtbl ->put_DeleteRule (This, newVal))
1054#define _Key_get_Type(This, pVal) ((This)->lpVtbl ->get_Type (This, pVal))
1055#define _Key_put_Type(This, newVal) ((This)->lpVtbl ->put_Type (This, newVal))
1056#define _Key_get_RelatedTable(This, pVal) ((This)->lpVtbl ->get_RelatedTable (This, pVal))
1057#define _Key_put_RelatedTable(This, newVal) ((This)->lpVtbl ->put_RelatedTable (This, newVal))
1058#define _Key_get_UpdateRule(This, pVal) ((This)->lpVtbl ->get_UpdateRule (This, pVal))
1059#define _Key_put_UpdateRule(This, newVal) ((This)->lpVtbl ->put_UpdateRule (This, newVal))
1060#define _Key_get_Columns(This, ppvObject) ((This)->lpVtbl ->get_Columns (This, ppvObject))
1061#endif
1062
1063#endif
1064#endif
1065
1066#ifndef __View_INTERFACE_DEFINED__
1067#define __View_INTERFACE_DEFINED__
1068
1069  EXTERN_C const IID IID_View;
1070
1071#if defined (__cplusplus) && !defined (CINTERFACE)
1072  MIDL_INTERFACE ("00000613-0000-0010-8000-00AA006D2EA4")
1073  ADOView : public IDispatch {
1074    public:
1075    virtual HRESULT STDMETHODCALLTYPE get_Command (VARIANT *pVal) = 0;
1076    virtual HRESULT STDMETHODCALLTYPE put_Command (VARIANT newVal) = 0;
1077    virtual HRESULT STDMETHODCALLTYPE putref_Command (IDispatch *pComm) = 0;
1078    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
1079    virtual HRESULT STDMETHODCALLTYPE get_DateCreated (VARIANT *pVal) = 0;
1080    virtual HRESULT STDMETHODCALLTYPE get_DateModified (VARIANT *pVal) = 0;
1081  };
1082#else
1083  typedef struct ViewVtbl {
1084    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOView *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1085    ULONG (STDMETHODCALLTYPE *AddRef) (ADOView *This);
1086    ULONG (STDMETHODCALLTYPE *Release) (ADOView *This);
1087    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOView *This, UINT *pctinfo);
1088    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOView *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1089    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOView *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1090    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOView *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1091    HRESULT (STDMETHODCALLTYPE *get_Command) (ADOView *This, VARIANT *pVal);
1092    HRESULT (STDMETHODCALLTYPE *put_Command) (ADOView *This, VARIANT newVal);
1093    HRESULT (STDMETHODCALLTYPE *putref_Command) (ADOView *This, IDispatch *pComm);
1094    HRESULT (STDMETHODCALLTYPE *get_Name) (ADOView *This, BSTR *pVal);
1095    HRESULT (STDMETHODCALLTYPE *get_DateCreated) (ADOView *This, VARIANT *pVal);
1096    HRESULT (STDMETHODCALLTYPE *get_DateModified) (ADOView *This, VARIANT *pVal);
1097    END_INTERFACE
1098  } ViewVtbl;
1099
1100  interface View {
1101    CONST_VTBL struct ViewVtbl *lpVtbl;
1102  };
1103
1104#ifdef COBJMACROS
1105#define View_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1106#define View_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1107#define View_Release(This) ((This)->lpVtbl ->Release (This))
1108#define View_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1109#define View_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1110#define View_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1111#define View_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1112#define View_get_Command(This, pVal) ((This)->lpVtbl ->get_Command (This, pVal))
1113#define View_put_Command(This, newVal) ((This)->lpVtbl ->put_Command (This, newVal))
1114#define View_putref_Command(This, pComm) ((This)->lpVtbl ->putref_Command (This, pComm))
1115#define View_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
1116#define View_get_DateCreated(This, pVal) ((This)->lpVtbl ->get_DateCreated (This, pVal))
1117#define View_get_DateModified(This, pVal) ((This)->lpVtbl ->get_DateModified (This, pVal))
1118#endif
1119
1120#endif
1121#endif
1122
1123#ifndef __Procedure_INTERFACE_DEFINED__
1124#define __Procedure_INTERFACE_DEFINED__
1125
1126  EXTERN_C const IID IID_Procedure;
1127
1128#if defined (__cplusplus) && !defined (CINTERFACE)
1129  MIDL_INTERFACE ("00000625-0000-0010-8000-00AA006D2EA4")
1130  ADOProcedure : public IDispatch {
1131    public:
1132    virtual HRESULT STDMETHODCALLTYPE get_Command (VARIANT *pVar) = 0;
1133    virtual HRESULT STDMETHODCALLTYPE put_Command (VARIANT newVal) = 0;
1134    virtual HRESULT STDMETHODCALLTYPE putref_Command (IDispatch *pComm) = 0;
1135    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
1136    virtual HRESULT STDMETHODCALLTYPE get_DateCreated (VARIANT *pVal) = 0;
1137    virtual HRESULT STDMETHODCALLTYPE get_DateModified (VARIANT *pVal) = 0;
1138  };
1139#else
1140  typedef struct ProcedureVtbl {
1141    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProcedure *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1142    ULONG (STDMETHODCALLTYPE *AddRef) (ADOProcedure *This);
1143    ULONG (STDMETHODCALLTYPE *Release) (ADOProcedure *This);
1144    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProcedure *This, UINT *pctinfo);
1145    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProcedure *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1146    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProcedure *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1147    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProcedure *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1148    HRESULT (STDMETHODCALLTYPE *get_Command) (ADOProcedure *This, VARIANT *pVar);
1149    HRESULT (STDMETHODCALLTYPE *put_Command) (ADOProcedure *This, VARIANT newVal);
1150    HRESULT (STDMETHODCALLTYPE *putref_Command) (ADOProcedure *This, IDispatch *pComm);
1151    HRESULT (STDMETHODCALLTYPE *get_Name) (ADOProcedure *This, BSTR *pVal);
1152    HRESULT (STDMETHODCALLTYPE *get_DateCreated) (ADOProcedure *This, VARIANT *pVal);
1153    HRESULT (STDMETHODCALLTYPE *get_DateModified) (ADOProcedure *This, VARIANT *pVal);
1154    END_INTERFACE
1155  } ProcedureVtbl;
1156
1157  interface Procedure {
1158    CONST_VTBL struct ProcedureVtbl *lpVtbl;
1159  };
1160
1161#ifdef COBJMACROS
1162#define Procedure_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1163#define Procedure_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1164#define Procedure_Release(This) ((This)->lpVtbl ->Release (This))
1165#define Procedure_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1166#define Procedure_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1167#define Procedure_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1168#define Procedure_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1169#define Procedure_get_Command(This, pVar) ((This)->lpVtbl ->get_Command (This, pVar))
1170#define Procedure_put_Command(This, newVal) ((This)->lpVtbl ->put_Command (This, newVal))
1171#define Procedure_putref_Command(This, pComm) ((This)->lpVtbl ->putref_Command (This, pComm))
1172#define Procedure_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
1173#define Procedure_get_DateCreated(This, pVal) ((This)->lpVtbl ->get_DateCreated (This, pVal))
1174#define Procedure_get_DateModified(This, pVal) ((This)->lpVtbl ->get_DateModified (This, pVal))
1175#endif
1176
1177#endif
1178#endif
1179
1180  EXTERN_C const CLSID CLSID_Catalog;
1181
1182#ifdef __cplusplus
1183  Catalog;
1184#endif
1185  EXTERN_C const CLSID CLSID_Table;
1186#ifdef __cplusplus
1187  Table;
1188#endif
1189#ifndef __Property_INTERFACE_DEFINED__
1190#define __Property_INTERFACE_DEFINED__
1191
1192  EXTERN_C const IID IID_Property;
1193
1194#if defined (__cplusplus) && !defined (CINTERFACE)
1195  MIDL_INTERFACE ("00000503-0000-0010-8000-00AA006D2EA4")
1196  ADOProperty : public IDispatch {
1197    public:
1198    virtual HRESULT STDMETHODCALLTYPE get_Value (VARIANT *pval) = 0;
1199    virtual HRESULT STDMETHODCALLTYPE put_Value (VARIANT val) = 0;
1200    virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pbstr) = 0;
1201    virtual HRESULT STDMETHODCALLTYPE get_Type (DataTypeEnum *ptype) = 0;
1202    virtual HRESULT STDMETHODCALLTYPE get_Attributes (long *plAttributes) = 0;
1203    virtual HRESULT STDMETHODCALLTYPE put_Attributes (long lAttributes) = 0;
1204  };
1205#else
1206  typedef struct PropertyVtbl {
1207    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProperty *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1208    ULONG (STDMETHODCALLTYPE *AddRef) (ADOProperty *This);
1209    ULONG (STDMETHODCALLTYPE *Release) (ADOProperty *This);
1210    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProperty *This, UINT *pctinfo);
1211    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProperty *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1212    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProperty *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1213    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProperty *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1214    HRESULT (STDMETHODCALLTYPE *get_Value) (ADOProperty *This, VARIANT *pval);
1215    HRESULT (STDMETHODCALLTYPE *put_Value) (ADOProperty *This, VARIANT val);
1216    HRESULT (STDMETHODCALLTYPE *get_Name) (ADOProperty *This, BSTR *pbstr);
1217    HRESULT (STDMETHODCALLTYPE *get_Type) (ADOProperty *This, DataTypeEnum *ptype);
1218    HRESULT (STDMETHODCALLTYPE *get_Attributes) (ADOProperty *This, long *plAttributes);
1219    HRESULT (STDMETHODCALLTYPE *put_Attributes) (ADOProperty *This, long lAttributes);
1220    END_INTERFACE
1221  } PropertyVtbl;
1222
1223  interface Property {
1224    CONST_VTBL struct PropertyVtbl *lpVtbl;
1225  };
1226
1227#ifdef COBJMACROS
1228#define Property_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1229#define Property_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1230#define Property_Release(This) ((This)->lpVtbl ->Release (This))
1231#define Property_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1232#define Property_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1233#define Property_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1234#define Property_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1235#define Property_get_Value(This, pval) ((This)->lpVtbl ->get_Value (This, pval))
1236#define Property_put_Value(This, val) ((This)->lpVtbl ->put_Value (This, val))
1237#define Property_get_Name(This, pbstr) ((This)->lpVtbl ->get_Name (This, pbstr))
1238#define Property_get_Type(This, ptype) ((This)->lpVtbl ->get_Type (This, ptype))
1239#define Property_get_Attributes(This, plAttributes) ((This)->lpVtbl ->get_Attributes (This, plAttributes))
1240#define Property_put_Attributes(This, lAttributes) ((This)->lpVtbl ->put_Attributes (This, lAttributes))
1241#endif
1242
1243#endif
1244#endif
1245
1246  EXTERN_C const CLSID CLSID_Group;
1247
1248#ifdef __cplusplus
1249  Group;
1250#endif
1251
1252  EXTERN_C const CLSID CLSID_User;
1253
1254#ifdef __cplusplus
1255  User;
1256#endif
1257
1258  EXTERN_C const CLSID CLSID_Column;
1259
1260#ifdef __cplusplus
1261  Column;
1262#endif
1263
1264  EXTERN_C const CLSID CLSID_Index;
1265
1266#ifdef __cplusplus
1267  Index;
1268#endif
1269
1270  EXTERN_C const CLSID CLSID_Key;
1271
1272#ifdef __cplusplus
1273  Key;
1274#endif
1275
1276#ifndef __Tables_INTERFACE_DEFINED__
1277#define __Tables_INTERFACE_DEFINED__
1278
1279  EXTERN_C const IID IID_Tables;
1280
1281#if defined (__cplusplus) && !defined (CINTERFACE)
1282  MIDL_INTERFACE ("00000611-0000-0010-8000-00AA006D2EA4")
1283  ADOTables : public _ADOCollection {
1284    public:
1285    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Table **ppvObject) = 0;
1286    virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item) = 0;
1287    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1288  };
1289#else
1290  typedef struct TablesVtbl {
1291    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOTables *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1292    ULONG (STDMETHODCALLTYPE *AddRef) (ADOTables *This);
1293    ULONG (STDMETHODCALLTYPE *Release) (ADOTables *This);
1294    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOTables *This, UINT *pctinfo);
1295    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOTables *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1296    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOTables *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1297    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOTables *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1298    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOTables *This, long *c);
1299    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOTables *This, IUnknown **ppvObject);
1300    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOTables *This);
1301    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOTables *This, VARIANT Item, Table **ppvObject);
1302    HRESULT (STDMETHODCALLTYPE *Append) (ADOTables *This, VARIANT Item);
1303    HRESULT (STDMETHODCALLTYPE *Delete) (ADOTables *This, VARIANT Item);
1304    END_INTERFACE
1305  } TablesVtbl;
1306
1307  interface Tables {
1308    CONST_VTBL struct TablesVtbl *lpVtbl;
1309  };
1310
1311#ifdef COBJMACROS
1312#define Tables_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1313#define Tables_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1314#define Tables_Release(This) ((This)->lpVtbl ->Release (This))
1315#define Tables_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1316#define Tables_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1317#define Tables_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1318#define Tables_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1319#define Tables_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1320#define Tables__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1321#define Tables_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1322#define Tables_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1323#define Tables_Append(This, Item) ((This)->lpVtbl ->Append (This, Item))
1324#define Tables_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1325#endif
1326
1327#endif
1328#endif
1329
1330#ifndef __Columns_INTERFACE_DEFINED__
1331#define __Columns_INTERFACE_DEFINED__
1332
1333  EXTERN_C const IID IID_Columns;
1334
1335#if defined (__cplusplus) && !defined (CINTERFACE)
1336  MIDL_INTERFACE ("0000061D-0000-0010-8000-00AA006D2EA4")
1337  ADOColumns : public _ADOCollection {
1338    public:
1339    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Column **ppvObject) = 0;
1340    virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item, DataTypeEnum Type = adVarWChar, long DefinedSize = 0) = 0;
1341    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1342  };
1343#else
1344  typedef struct ColumnsVtbl {
1345    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOColumns *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1346    ULONG (STDMETHODCALLTYPE *AddRef) (ADOColumns *This);
1347    ULONG (STDMETHODCALLTYPE *Release) (ADOColumns *This);
1348    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOColumns *This, UINT *pctinfo);
1349    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOColumns *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1350    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOColumns *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1351    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOColumns *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1352    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOColumns *This, long *c);
1353    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOColumns *This, IUnknown **ppvObject);
1354    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOColumns *This);
1355    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOColumns *This, VARIANT Item, Column **ppvObject);
1356    HRESULT (STDMETHODCALLTYPE *Append) (ADOColumns *This, VARIANT Item, DataTypeEnum Type, long DefinedSize);
1357    HRESULT (STDMETHODCALLTYPE *Delete) (ADOColumns *This, VARIANT Item);
1358    END_INTERFACE
1359  } ColumnsVtbl;
1360
1361  interface Columns {
1362    CONST_VTBL struct ColumnsVtbl *lpVtbl;
1363  };
1364
1365#ifdef COBJMACROS
1366#define Columns_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1367#define Columns_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1368#define Columns_Release(This) ((This)->lpVtbl ->Release (This))
1369#define Columns_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1370#define Columns_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1371#define Columns_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1372#define Columns_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1373#define Columns_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1374#define Columns__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1375#define Columns_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1376#define Columns_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1377#define Columns_Append(This, Item, Type, DefinedSize) ((This)->lpVtbl ->Append (This, Item, Type, DefinedSize))
1378#define Columns_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1379#endif
1380
1381#endif
1382#endif
1383
1384#ifndef __Procedures_INTERFACE_DEFINED__
1385#define __Procedures_INTERFACE_DEFINED__
1386
1387  EXTERN_C const IID IID_Procedures;
1388
1389#if defined (__cplusplus) && !defined (CINTERFACE)
1390  MIDL_INTERFACE ("00000626-0000-0010-8000-00AA006D2EA4")
1391  ADOProcedures : public _ADOCollection {
1392    public:
1393    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, ADOProcedure **ppvObject) = 0;
1394    virtual HRESULT STDMETHODCALLTYPE Append (BSTR Name, IDispatch *Command) = 0;
1395    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1396  };
1397#else
1398  typedef struct ProceduresVtbl {
1399    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProcedures *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1400    ULONG (STDMETHODCALLTYPE *AddRef) (ADOProcedures *This);
1401    ULONG (STDMETHODCALLTYPE *Release) (ADOProcedures *This);
1402    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProcedures *This, UINT *pctinfo);
1403    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProcedures *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1404    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProcedures *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1405    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProcedures *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1406    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOProcedures *This, long *c);
1407    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOProcedures *This, IUnknown **ppvObject);
1408    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOProcedures *This);
1409    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOProcedures *This, VARIANT Item, ADOProcedure **ppvObject);
1410    HRESULT (STDMETHODCALLTYPE *Append) (ADOProcedures *This, BSTR Name, IDispatch *Command);
1411    HRESULT (STDMETHODCALLTYPE *Delete) (ADOProcedures *This, VARIANT Item);
1412    END_INTERFACE
1413  } ProceduresVtbl;
1414
1415  interface Procedures {
1416    CONST_VTBL struct ProceduresVtbl *lpVtbl;
1417  };
1418
1419#ifdef COBJMACROS
1420#define Procedures_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1421#define Procedures_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1422#define Procedures_Release(This) ((This)->lpVtbl ->Release (This))
1423#define Procedures_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1424#define Procedures_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1425#define Procedures_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1426#define Procedures_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1427#define Procedures_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1428#define Procedures__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1429#define Procedures_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1430#define Procedures_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1431#define Procedures_Append(This, Name, Command) ((This)->lpVtbl ->Append (This, Name, Command))
1432#define Procedures_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1433#endif
1434
1435#endif
1436#endif
1437
1438#ifndef __Views_INTERFACE_DEFINED__
1439#define __Views_INTERFACE_DEFINED__
1440
1441  EXTERN_C const IID IID_Views;
1442
1443#if defined (__cplusplus) && !defined (CINTERFACE)
1444  MIDL_INTERFACE ("00000614-0000-0010-8000-00AA006D2EA4")
1445  ADOViews : public _ADOCollection {
1446    public:
1447    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, ADOView **ppvObject) = 0;
1448    virtual HRESULT STDMETHODCALLTYPE Append (BSTR Name, IDispatch *Command) = 0;
1449    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1450  };
1451#else
1452  typedef struct ViewsVtbl {
1453    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOViews *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1454    ULONG (STDMETHODCALLTYPE *AddRef) (ADOViews *This);
1455    ULONG (STDMETHODCALLTYPE *Release) (ADOViews *This);
1456    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOViews *This, UINT *pctinfo);
1457    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOViews *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1458    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOViews *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1459    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOViews *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1460    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOViews *This, long *c);
1461    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOViews *This, IUnknown **ppvObject);
1462    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOViews *This);
1463    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOViews *This, VARIANT Item, ADOView **ppvObject);
1464    HRESULT (STDMETHODCALLTYPE *Append) (ADOViews *This, BSTR Name, IDispatch *Command);
1465    HRESULT (STDMETHODCALLTYPE *Delete) (ADOViews *This, VARIANT Item);
1466    END_INTERFACE
1467  } ViewsVtbl;
1468
1469  interface Views {
1470    CONST_VTBL struct ViewsVtbl *lpVtbl;
1471  };
1472
1473#ifdef COBJMACROS
1474#define Views_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1475#define Views_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1476#define Views_Release(This) ((This)->lpVtbl ->Release (This))
1477#define Views_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1478#define Views_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1479#define Views_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1480#define Views_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1481#define Views_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1482#define Views__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1483#define Views_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1484#define Views_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1485#define Views_Append(This, Name, Command) ((This)->lpVtbl ->Append (This, Name, Command))
1486#define Views_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1487#endif
1488
1489#endif
1490#endif
1491
1492#ifndef __Indexes_INTERFACE_DEFINED__
1493#define __Indexes_INTERFACE_DEFINED__
1494
1495  EXTERN_C const IID IID_Indexes;
1496
1497#if defined (__cplusplus) && !defined (CINTERFACE)
1498  MIDL_INTERFACE ("00000620-0000-0010-8000-00AA006D2EA4")
1499  ADOIndexes : public _ADOCollection {
1500    public:
1501    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Index **ppvObject) = 0;
1502    virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item, VARIANT columns) = 0;
1503    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1504  };
1505#else
1506  typedef struct IndexesVtbl {
1507    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOIndexes *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1508    ULONG (STDMETHODCALLTYPE *AddRef) (ADOIndexes *This);
1509    ULONG (STDMETHODCALLTYPE *Release) (ADOIndexes *This);
1510    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOIndexes *This, UINT *pctinfo);
1511    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOIndexes *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1512    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOIndexes *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1513    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOIndexes *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1514    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOIndexes *This, long *c);
1515    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOIndexes *This, IUnknown **ppvObject);
1516    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOIndexes *This);
1517    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOIndexes *This, VARIANT Item, Index **ppvObject);
1518    HRESULT (STDMETHODCALLTYPE *Append) (ADOIndexes *This, VARIANT Item, VARIANT columns);
1519    HRESULT (STDMETHODCALLTYPE *Delete) (ADOIndexes *This, VARIANT Item);
1520    END_INTERFACE
1521  } IndexesVtbl;
1522
1523  interface Indexes {
1524    CONST_VTBL struct IndexesVtbl *lpVtbl;
1525  };
1526
1527#ifdef COBJMACROS
1528#define Indexes_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1529#define Indexes_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1530#define Indexes_Release(This) ((This)->lpVtbl ->Release (This))
1531#define Indexes_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1532#define Indexes_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1533#define Indexes_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1534#define Indexes_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1535#define Indexes_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1536#define Indexes__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1537#define Indexes_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1538#define Indexes_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1539#define Indexes_Append(This, Item, columns) ((This)->lpVtbl ->Append (This, Item, columns))
1540#define Indexes_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1541#endif
1542
1543#endif
1544#endif
1545
1546#ifndef __Keys_INTERFACE_DEFINED__
1547#define __Keys_INTERFACE_DEFINED__
1548
1549  EXTERN_C const IID IID_Keys;
1550
1551#if defined (__cplusplus) && !defined (CINTERFACE)
1552  MIDL_INTERFACE ("00000623-0000-0010-8000-00AA006D2EA4")
1553  ADOKeys : public _ADOCollection {
1554    public:
1555    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Key **ppvObject) = 0;
1556    virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item, KeyTypeEnum Type, VARIANT Column, BSTR RelatedADOTable = L"", BSTR RelatedADOColumn = L"") = 0;
1557    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1558  };
1559#else
1560  typedef struct KeysVtbl {
1561    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOKeys *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1562    ULONG (STDMETHODCALLTYPE *AddRef) (ADOKeys *This);
1563    ULONG (STDMETHODCALLTYPE *Release) (ADOKeys *This);
1564    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOKeys *This, UINT *pctinfo);
1565    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOKeys *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1566    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOKeys *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1567    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOKeys *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1568    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOKeys *This, long *c);
1569    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOKeys *This, IUnknown **ppvObject);
1570    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOKeys *This);
1571    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOKeys *This, VARIANT Item, Key **ppvObject);
1572    HRESULT (STDMETHODCALLTYPE *Append) (ADOKeys *This, VARIANT Item, KeyTypeEnum Type, VARIANT Column, BSTR RelatedTable, BSTR RelatedColumn);
1573    HRESULT (STDMETHODCALLTYPE *Delete) (ADOKeys *This, VARIANT Item);
1574    END_INTERFACE
1575  } KeysVtbl;
1576
1577  interface Keys {
1578    CONST_VTBL struct KeysVtbl *lpVtbl;
1579  };
1580
1581#ifdef COBJMACROS
1582#define Keys_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1583#define Keys_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1584#define Keys_Release(This) ((This)->lpVtbl ->Release (This))
1585#define Keys_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1586#define Keys_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1587#define Keys_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1588#define Keys_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1589#define Keys_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1590#define Keys__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1591#define Keys_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1592#define Keys_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1593#define Keys_Append(This, Item, Type, Column, RelatedTable, RelatedColumn) ((This)->lpVtbl ->Append (This, Item, Type, Column, RelatedTable, RelatedColumn))
1594#define Keys_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1595#endif
1596
1597#endif
1598#endif
1599
1600#ifndef __Users_INTERFACE_DEFINED__
1601#define __Users_INTERFACE_DEFINED__
1602
1603  EXTERN_C const IID IID_Users;
1604
1605#if defined (__cplusplus) && !defined (CINTERFACE)
1606  MIDL_INTERFACE ("0000061A-0000-0010-8000-00AA006D2EA4")
1607  ADOUsers : public _ADOCollection {
1608    public:
1609    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, User **ppvObject) = 0;
1610    virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item, BSTR Password = L"") = 0;
1611    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1612  };
1613#else
1614  typedef struct UsersVtbl {
1615    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOUsers *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1616    ULONG (STDMETHODCALLTYPE *AddRef) (ADOUsers *This);
1617    ULONG (STDMETHODCALLTYPE *Release) (ADOUsers *This);
1618    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOUsers *This, UINT *pctinfo);
1619    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOUsers *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1620    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOUsers *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1621    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOUsers *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1622    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOUsers *This, long *c);
1623    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOUsers *This, IUnknown **ppvObject);
1624    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOUsers *This);
1625    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOUsers *This, VARIANT Item, User **ppvObject);
1626    HRESULT (STDMETHODCALLTYPE *Append) (ADOUsers *This, VARIANT Item, BSTR Password);
1627    HRESULT (STDMETHODCALLTYPE *Delete) (ADOUsers *This, VARIANT Item);
1628    END_INTERFACE
1629  } UsersVtbl;
1630  interface Users {
1631    CONST_VTBL struct UsersVtbl *lpVtbl;
1632  };
1633
1634#ifdef COBJMACROS
1635#define Users_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1636#define Users_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1637#define Users_Release(This) ((This)->lpVtbl ->Release (This))
1638#define Users_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1639#define Users_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1640#define Users_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1641#define Users_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1642#define Users_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1643#define Users__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1644#define Users_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1645#define Users_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1646#define Users_Append(This, Item, Password) ((This)->lpVtbl ->Append (This, Item, Password))
1647#define Users_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1648#endif
1649
1650#endif
1651#endif
1652
1653#ifndef __Groups_INTERFACE_DEFINED__
1654#define __Groups_INTERFACE_DEFINED__
1655
1656  EXTERN_C const IID IID_Groups;
1657
1658#if defined (__cplusplus) && !defined (CINTERFACE)
1659  MIDL_INTERFACE ("00000617-0000-0010-8000-00AA006D2EA4")
1660  ADOGroups : public _ADOCollection {
1661    public:
1662    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Group **ppvObject) = 0;
1663    virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item) = 0;
1664    virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1665  };
1666#else
1667  typedef struct GroupsVtbl {
1668    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOGroups *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1669    ULONG (STDMETHODCALLTYPE *AddRef) (ADOGroups *This);
1670    ULONG (STDMETHODCALLTYPE *Release) (ADOGroups *This);
1671    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOGroups *This, UINT *pctinfo);
1672    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOGroups *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1673    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOGroups *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1674    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOGroups *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1675    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOGroups *This, long *c);
1676    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOGroups *This, IUnknown **ppvObject);
1677    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOGroups *This);
1678    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOGroups *This, VARIANT Item, Group **ppvObject);
1679    HRESULT (STDMETHODCALLTYPE *Append) (ADOGroups *This, VARIANT Item);
1680    HRESULT (STDMETHODCALLTYPE *Delete) (ADOGroups *This, VARIANT Item);
1681    END_INTERFACE
1682  } GroupsVtbl;
1683
1684  interface Groups {
1685    CONST_VTBL struct GroupsVtbl *lpVtbl;
1686  };
1687
1688#ifdef COBJMACROS
1689#define Groups_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1690#define Groups_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1691#define Groups_Release(This) ((This)->lpVtbl ->Release (This))
1692#define Groups_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1693#define Groups_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1694#define Groups_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1695#define Groups_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1696#define Groups_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1697#define Groups__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1698#define Groups_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1699#define Groups_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1700#define Groups_Append(This, Item) ((This)->lpVtbl ->Append (This, Item))
1701#define Groups_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1702#endif
1703
1704#endif
1705#endif
1706
1707#ifndef __Properties_INTERFACE_DEFINED__
1708#define __Properties_INTERFACE_DEFINED__
1709
1710  EXTERN_C const IID IID_Properties;
1711
1712#if defined (__cplusplus) && !defined (CINTERFACE)
1713  MIDL_INTERFACE ("00000504-0000-0010-8000-00AA006D2EA4")
1714  ADOProperties : public _ADOCollection {
1715    public:
1716    virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, ADOProperty **ppvObject) = 0;
1717  };
1718#else
1719  typedef struct PropertiesVtbl {
1720    BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProperties *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1721    ULONG (STDMETHODCALLTYPE *AddRef) (ADOProperties *This);
1722    ULONG (STDMETHODCALLTYPE *Release) (ADOProperties *This);
1723    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProperties *This, UINT *pctinfo);
1724    HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProperties *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1725    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProperties *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1726    HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProperties *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1727    HRESULT (STDMETHODCALLTYPE *get_Count) (ADOProperties *This, long *c);
1728    HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOProperties *This, IUnknown **ppvObject);
1729    HRESULT (STDMETHODCALLTYPE *Refresh) (ADOProperties *This);
1730    HRESULT (STDMETHODCALLTYPE *get_Item) (ADOProperties *This, VARIANT Item, ADOProperty **ppvObject);
1731    END_INTERFACE
1732  } PropertiesVtbl;
1733
1734  interface Properties {
1735    CONST_VTBL struct PropertiesVtbl *lpVtbl;
1736  };
1737
1738#ifdef COBJMACROS
1739#define Properties_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1740#define Properties_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1741#define Properties_Release(This) ((This)->lpVtbl ->Release (This))
1742#define Properties_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1743#define Properties_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1744#define Properties_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1745#define Properties_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1746#define Properties_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1747#define Properties__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1748#define Properties_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1749#define Properties_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1750#endif
1751
1752#endif
1753#endif
1754#endif
1755
1756#ifdef __cplusplus
1757}
1758#endif
1759#endif
1760
1761#define ADOCatalog _ADOCatalog
1762#define ADOTable _ADOTable
1763#define ADOGroup _ADOGroup
1764#define ADOUser _ADOUser
1765#define ADOIndex _ADOIndex
1766#define ADOColumn _ADOColumn
1767#define ADOKey _ADOKey
1768#define ADOParameter _ADOParameter
1769#define ADOCollection _ADOCollection
1770#define ADODynaCollection _ADODynaCollection
1771
1772#endif