OleDb.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:551k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /* interface IAlterIndex */
  2. /* [unique][uuid][object][local] */ 
  3. EXTERN_C const IID IID_IAlterIndex;
  4. #if defined(__cplusplus) && !defined(CINTERFACE)
  5.     
  6.     MIDL_INTERFACE("0c733aa6-2a1c-11ce-ade5-00aa0044773d")
  7.     IAlterIndex : public IUnknown
  8.     {
  9.     public:
  10.         virtual HRESULT STDMETHODCALLTYPE AlterIndex( 
  11.             /* [in] */ DBID *pTableId,
  12.             /* [in] */ DBID *pIndexId,
  13.             /* [in] */ DBID *pNewIndexId,
  14.             /* [in] */ ULONG cPropertySets,
  15.             /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]) = 0;
  16.         
  17.     };
  18.     
  19. #else  /* C style interface */
  20.     typedef struct IAlterIndexVtbl
  21.     {
  22.         BEGIN_INTERFACE
  23.         
  24.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  25.             IAlterIndex * This,
  26.             /* [in] */ REFIID riid,
  27.             /* [iid_is][out] */ void **ppvObject);
  28.         
  29.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  30.             IAlterIndex * This);
  31.         
  32.         ULONG ( STDMETHODCALLTYPE *Release )( 
  33.             IAlterIndex * This);
  34.         
  35.         HRESULT ( STDMETHODCALLTYPE *AlterIndex )( 
  36.             IAlterIndex * This,
  37.             /* [in] */ DBID *pTableId,
  38.             /* [in] */ DBID *pIndexId,
  39.             /* [in] */ DBID *pNewIndexId,
  40.             /* [in] */ ULONG cPropertySets,
  41.             /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]);
  42.         
  43.         END_INTERFACE
  44.     } IAlterIndexVtbl;
  45.     interface IAlterIndex
  46.     {
  47.         CONST_VTBL struct IAlterIndexVtbl *lpVtbl;
  48.     };
  49.     
  50. #ifdef COBJMACROS
  51. #define IAlterIndex_QueryInterface(This,riid,ppvObject)
  52.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  53. #define IAlterIndex_AddRef(This)
  54.     (This)->lpVtbl -> AddRef(This)
  55. #define IAlterIndex_Release(This)
  56.     (This)->lpVtbl -> Release(This)
  57. #define IAlterIndex_AlterIndex(This,pTableId,pIndexId,pNewIndexId,cPropertySets,rgPropertySets)
  58.     (This)->lpVtbl -> AlterIndex(This,pTableId,pIndexId,pNewIndexId,cPropertySets,rgPropertySets)
  59. #endif /* COBJMACROS */
  60. #endif  /* C style interface */
  61. HRESULT STDMETHODCALLTYPE IAlterIndex_AlterIndex_Proxy( 
  62.     IAlterIndex * This,
  63.     /* [in] */ DBID *pTableId,
  64.     /* [in] */ DBID *pIndexId,
  65.     /* [in] */ DBID *pNewIndexId,
  66.     /* [in] */ ULONG cPropertySets,
  67.     /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]);
  68. void __RPC_STUB IAlterIndex_AlterIndex_Stub(
  69.     IRpcStubBuffer *This,
  70.     IRpcChannelBuffer *_pRpcChannelBuffer,
  71.     PRPC_MESSAGE _pRpcMessage,
  72.     DWORD *_pdwStubPhase);
  73. #endif  /* __IAlterIndex_INTERFACE_DEFINED__ */
  74. #ifndef __IRowsetChapterMember_INTERFACE_DEFINED__
  75. #define __IRowsetChapterMember_INTERFACE_DEFINED__
  76. /* interface IRowsetChapterMember */
  77. /* [unique][uuid][object][local] */ 
  78. EXTERN_C const IID IID_IRowsetChapterMember;
  79. #if defined(__cplusplus) && !defined(CINTERFACE)
  80.     
  81.     MIDL_INTERFACE("0c733aa8-2a1c-11ce-ade5-00aa0044773d")
  82.     IRowsetChapterMember : public IUnknown
  83.     {
  84.     public:
  85.         virtual HRESULT STDMETHODCALLTYPE IsRowInChapter( 
  86.             /* [in] */ HCHAPTER hChapter,
  87.             /* [in] */ HROW hRow) = 0;
  88.         
  89.     };
  90.     
  91. #else  /* C style interface */
  92.     typedef struct IRowsetChapterMemberVtbl
  93.     {
  94.         BEGIN_INTERFACE
  95.         
  96.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  97.             IRowsetChapterMember * This,
  98.             /* [in] */ REFIID riid,
  99.             /* [iid_is][out] */ void **ppvObject);
  100.         
  101.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  102.             IRowsetChapterMember * This);
  103.         
  104.         ULONG ( STDMETHODCALLTYPE *Release )( 
  105.             IRowsetChapterMember * This);
  106.         
  107.         HRESULT ( STDMETHODCALLTYPE *IsRowInChapter )( 
  108.             IRowsetChapterMember * This,
  109.             /* [in] */ HCHAPTER hChapter,
  110.             /* [in] */ HROW hRow);
  111.         
  112.         END_INTERFACE
  113.     } IRowsetChapterMemberVtbl;
  114.     interface IRowsetChapterMember
  115.     {
  116.         CONST_VTBL struct IRowsetChapterMemberVtbl *lpVtbl;
  117.     };
  118.     
  119. #ifdef COBJMACROS
  120. #define IRowsetChapterMember_QueryInterface(This,riid,ppvObject)
  121.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  122. #define IRowsetChapterMember_AddRef(This)
  123.     (This)->lpVtbl -> AddRef(This)
  124. #define IRowsetChapterMember_Release(This)
  125.     (This)->lpVtbl -> Release(This)
  126. #define IRowsetChapterMember_IsRowInChapter(This,hChapter,hRow)
  127.     (This)->lpVtbl -> IsRowInChapter(This,hChapter,hRow)
  128. #endif /* COBJMACROS */
  129. #endif  /* C style interface */
  130. HRESULT STDMETHODCALLTYPE IRowsetChapterMember_IsRowInChapter_Proxy( 
  131.     IRowsetChapterMember * This,
  132.     /* [in] */ HCHAPTER hChapter,
  133.     /* [in] */ HROW hRow);
  134. void __RPC_STUB IRowsetChapterMember_IsRowInChapter_Stub(
  135.     IRpcStubBuffer *This,
  136.     IRpcChannelBuffer *_pRpcChannelBuffer,
  137.     PRPC_MESSAGE _pRpcMessage,
  138.     DWORD *_pdwStubPhase);
  139. #endif  /* __IRowsetChapterMember_INTERFACE_DEFINED__ */
  140. #ifndef __ICommandPersist_INTERFACE_DEFINED__
  141. #define __ICommandPersist_INTERFACE_DEFINED__
  142. /* interface ICommandPersist */
  143. /* [unique][uuid][object][local] */ 
  144. EXTERN_C const IID IID_ICommandPersist;
  145. #if defined(__cplusplus) && !defined(CINTERFACE)
  146.     
  147.     MIDL_INTERFACE("0c733aa7-2a1c-11ce-ade5-00aa0044773d")
  148.     ICommandPersist : public IUnknown
  149.     {
  150.     public:
  151.         virtual HRESULT STDMETHODCALLTYPE DeleteCommand( 
  152.             /* [in] */ DBID *pCommandID) = 0;
  153.         
  154.         virtual HRESULT STDMETHODCALLTYPE GetCurrentCommand( 
  155.             /* [out] */ DBID **ppCommandID) = 0;
  156.         
  157.         virtual HRESULT STDMETHODCALLTYPE LoadCommand( 
  158.             /* [in] */ DBID *pCommandID,
  159.             /* [in] */ DWORD dwFlags) = 0;
  160.         
  161.         virtual HRESULT STDMETHODCALLTYPE SaveCommand( 
  162.             /* [in] */ DBID *pCommandID,
  163.             /* [in] */ DWORD dwFlags) = 0;
  164.         
  165.     };
  166.     
  167. #else  /* C style interface */
  168.     typedef struct ICommandPersistVtbl
  169.     {
  170.         BEGIN_INTERFACE
  171.         
  172.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  173.             ICommandPersist * This,
  174.             /* [in] */ REFIID riid,
  175.             /* [iid_is][out] */ void **ppvObject);
  176.         
  177.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  178.             ICommandPersist * This);
  179.         
  180.         ULONG ( STDMETHODCALLTYPE *Release )( 
  181.             ICommandPersist * This);
  182.         
  183.         HRESULT ( STDMETHODCALLTYPE *DeleteCommand )( 
  184.             ICommandPersist * This,
  185.             /* [in] */ DBID *pCommandID);
  186.         
  187.         HRESULT ( STDMETHODCALLTYPE *GetCurrentCommand )( 
  188.             ICommandPersist * This,
  189.             /* [out] */ DBID **ppCommandID);
  190.         
  191.         HRESULT ( STDMETHODCALLTYPE *LoadCommand )( 
  192.             ICommandPersist * This,
  193.             /* [in] */ DBID *pCommandID,
  194.             /* [in] */ DWORD dwFlags);
  195.         
  196.         HRESULT ( STDMETHODCALLTYPE *SaveCommand )( 
  197.             ICommandPersist * This,
  198.             /* [in] */ DBID *pCommandID,
  199.             /* [in] */ DWORD dwFlags);
  200.         
  201.         END_INTERFACE
  202.     } ICommandPersistVtbl;
  203.     interface ICommandPersist
  204.     {
  205.         CONST_VTBL struct ICommandPersistVtbl *lpVtbl;
  206.     };
  207.     
  208. #ifdef COBJMACROS
  209. #define ICommandPersist_QueryInterface(This,riid,ppvObject)
  210.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  211. #define ICommandPersist_AddRef(This)
  212.     (This)->lpVtbl -> AddRef(This)
  213. #define ICommandPersist_Release(This)
  214.     (This)->lpVtbl -> Release(This)
  215. #define ICommandPersist_DeleteCommand(This,pCommandID)
  216.     (This)->lpVtbl -> DeleteCommand(This,pCommandID)
  217. #define ICommandPersist_GetCurrentCommand(This,ppCommandID)
  218.     (This)->lpVtbl -> GetCurrentCommand(This,ppCommandID)
  219. #define ICommandPersist_LoadCommand(This,pCommandID,dwFlags)
  220.     (This)->lpVtbl -> LoadCommand(This,pCommandID,dwFlags)
  221. #define ICommandPersist_SaveCommand(This,pCommandID,dwFlags)
  222.     (This)->lpVtbl -> SaveCommand(This,pCommandID,dwFlags)
  223. #endif /* COBJMACROS */
  224. #endif  /* C style interface */
  225. HRESULT STDMETHODCALLTYPE ICommandPersist_DeleteCommand_Proxy( 
  226.     ICommandPersist * This,
  227.     /* [in] */ DBID *pCommandID);
  228. void __RPC_STUB ICommandPersist_DeleteCommand_Stub(
  229.     IRpcStubBuffer *This,
  230.     IRpcChannelBuffer *_pRpcChannelBuffer,
  231.     PRPC_MESSAGE _pRpcMessage,
  232.     DWORD *_pdwStubPhase);
  233. HRESULT STDMETHODCALLTYPE ICommandPersist_GetCurrentCommand_Proxy( 
  234.     ICommandPersist * This,
  235.     /* [out] */ DBID **ppCommandID);
  236. void __RPC_STUB ICommandPersist_GetCurrentCommand_Stub(
  237.     IRpcStubBuffer *This,
  238.     IRpcChannelBuffer *_pRpcChannelBuffer,
  239.     PRPC_MESSAGE _pRpcMessage,
  240.     DWORD *_pdwStubPhase);
  241. HRESULT STDMETHODCALLTYPE ICommandPersist_LoadCommand_Proxy( 
  242.     ICommandPersist * This,
  243.     /* [in] */ DBID *pCommandID,
  244.     /* [in] */ DWORD dwFlags);
  245. void __RPC_STUB ICommandPersist_LoadCommand_Stub(
  246.     IRpcStubBuffer *This,
  247.     IRpcChannelBuffer *_pRpcChannelBuffer,
  248.     PRPC_MESSAGE _pRpcMessage,
  249.     DWORD *_pdwStubPhase);
  250. HRESULT STDMETHODCALLTYPE ICommandPersist_SaveCommand_Proxy( 
  251.     ICommandPersist * This,
  252.     /* [in] */ DBID *pCommandID,
  253.     /* [in] */ DWORD dwFlags);
  254. void __RPC_STUB ICommandPersist_SaveCommand_Stub(
  255.     IRpcStubBuffer *This,
  256.     IRpcChannelBuffer *_pRpcChannelBuffer,
  257.     PRPC_MESSAGE _pRpcMessage,
  258.     DWORD *_pdwStubPhase);
  259. #endif  /* __ICommandPersist_INTERFACE_DEFINED__ */
  260. #ifndef __IRowsetRefresh_INTERFACE_DEFINED__
  261. #define __IRowsetRefresh_INTERFACE_DEFINED__
  262. /* interface IRowsetRefresh */
  263. /* [unique][uuid][object][local] */ 
  264. EXTERN_C const IID IID_IRowsetRefresh;
  265. #if defined(__cplusplus) && !defined(CINTERFACE)
  266.     
  267.     MIDL_INTERFACE("0c733aa9-2a1c-11ce-ade5-00aa0044773d")
  268.     IRowsetRefresh : public IUnknown
  269.     {
  270.     public:
  271.         virtual HRESULT STDMETHODCALLTYPE RefreshVisibleData( 
  272.             /* [in] */ HCHAPTER hChapter,
  273.             /* [in] */ DBCOUNTITEM cRows,
  274.             /* [in] */ const HROW rghRows[  ],
  275.             /* [in] */ BOOL fOverWrite,
  276.             /* [out] */ DBCOUNTITEM *pcRowsRefreshed,
  277.             /* [out] */ HROW **prghRowsRefreshed,
  278.             /* [out] */ DBROWSTATUS **prgRowStatus) = 0;
  279.         
  280.         virtual HRESULT STDMETHODCALLTYPE GetLastVisibleData( 
  281.             /* [in] */ HROW hRow,
  282.             /* [in] */ HACCESSOR hAccessor,
  283.             /* [out] */ void *pData) = 0;
  284.         
  285.     };
  286.     
  287. #else  /* C style interface */
  288.     typedef struct IRowsetRefreshVtbl
  289.     {
  290.         BEGIN_INTERFACE
  291.         
  292.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  293.             IRowsetRefresh * This,
  294.             /* [in] */ REFIID riid,
  295.             /* [iid_is][out] */ void **ppvObject);
  296.         
  297.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  298.             IRowsetRefresh * This);
  299.         
  300.         ULONG ( STDMETHODCALLTYPE *Release )( 
  301.             IRowsetRefresh * This);
  302.         
  303.         HRESULT ( STDMETHODCALLTYPE *RefreshVisibleData )( 
  304.             IRowsetRefresh * This,
  305.             /* [in] */ HCHAPTER hChapter,
  306.             /* [in] */ DBCOUNTITEM cRows,
  307.             /* [in] */ const HROW rghRows[  ],
  308.             /* [in] */ BOOL fOverWrite,
  309.             /* [out] */ DBCOUNTITEM *pcRowsRefreshed,
  310.             /* [out] */ HROW **prghRowsRefreshed,
  311.             /* [out] */ DBROWSTATUS **prgRowStatus);
  312.         
  313.         HRESULT ( STDMETHODCALLTYPE *GetLastVisibleData )( 
  314.             IRowsetRefresh * This,
  315.             /* [in] */ HROW hRow,
  316.             /* [in] */ HACCESSOR hAccessor,
  317.             /* [out] */ void *pData);
  318.         
  319.         END_INTERFACE
  320.     } IRowsetRefreshVtbl;
  321.     interface IRowsetRefresh
  322.     {
  323.         CONST_VTBL struct IRowsetRefreshVtbl *lpVtbl;
  324.     };
  325.     
  326. #ifdef COBJMACROS
  327. #define IRowsetRefresh_QueryInterface(This,riid,ppvObject)
  328.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  329. #define IRowsetRefresh_AddRef(This)
  330.     (This)->lpVtbl -> AddRef(This)
  331. #define IRowsetRefresh_Release(This)
  332.     (This)->lpVtbl -> Release(This)
  333. #define IRowsetRefresh_RefreshVisibleData(This,hChapter,cRows,rghRows,fOverWrite,pcRowsRefreshed,prghRowsRefreshed,prgRowStatus)
  334.     (This)->lpVtbl -> RefreshVisibleData(This,hChapter,cRows,rghRows,fOverWrite,pcRowsRefreshed,prghRowsRefreshed,prgRowStatus)
  335. #define IRowsetRefresh_GetLastVisibleData(This,hRow,hAccessor,pData)
  336.     (This)->lpVtbl -> GetLastVisibleData(This,hRow,hAccessor,pData)
  337. #endif /* COBJMACROS */
  338. #endif  /* C style interface */
  339. HRESULT STDMETHODCALLTYPE IRowsetRefresh_RefreshVisibleData_Proxy( 
  340.     IRowsetRefresh * This,
  341.     /* [in] */ HCHAPTER hChapter,
  342.     /* [in] */ DBCOUNTITEM cRows,
  343.     /* [in] */ const HROW rghRows[  ],
  344.     /* [in] */ BOOL fOverWrite,
  345.     /* [out] */ DBCOUNTITEM *pcRowsRefreshed,
  346.     /* [out] */ HROW **prghRowsRefreshed,
  347.     /* [out] */ DBROWSTATUS **prgRowStatus);
  348. void __RPC_STUB IRowsetRefresh_RefreshVisibleData_Stub(
  349.     IRpcStubBuffer *This,
  350.     IRpcChannelBuffer *_pRpcChannelBuffer,
  351.     PRPC_MESSAGE _pRpcMessage,
  352.     DWORD *_pdwStubPhase);
  353. HRESULT STDMETHODCALLTYPE IRowsetRefresh_GetLastVisibleData_Proxy( 
  354.     IRowsetRefresh * This,
  355.     /* [in] */ HROW hRow,
  356.     /* [in] */ HACCESSOR hAccessor,
  357.     /* [out] */ void *pData);
  358. void __RPC_STUB IRowsetRefresh_GetLastVisibleData_Stub(
  359.     IRpcStubBuffer *This,
  360.     IRpcChannelBuffer *_pRpcChannelBuffer,
  361.     PRPC_MESSAGE _pRpcMessage,
  362.     DWORD *_pdwStubPhase);
  363. #endif  /* __IRowsetRefresh_INTERFACE_DEFINED__ */
  364. #ifndef __IParentRowset_INTERFACE_DEFINED__
  365. #define __IParentRowset_INTERFACE_DEFINED__
  366. /* interface IParentRowset */
  367. /* [unique][uuid][object][local] */ 
  368. EXTERN_C const IID IID_IParentRowset;
  369. #if defined(__cplusplus) && !defined(CINTERFACE)
  370.     
  371.     MIDL_INTERFACE("0c733aaa-2a1c-11ce-ade5-00aa0044773d")
  372.     IParentRowset : public IUnknown
  373.     {
  374.     public:
  375.         virtual HRESULT STDMETHODCALLTYPE GetChildRowset( 
  376.             /* [in] */ IUnknown *pUnkOuter,
  377.             /* [in] */ DBORDINAL iOrdinal,
  378.             /* [in] */ REFIID riid,
  379.             /* [iid_is][out] */ IUnknown **ppRowset) = 0;
  380.         
  381.     };
  382.     
  383. #else  /* C style interface */
  384.     typedef struct IParentRowsetVtbl
  385.     {
  386.         BEGIN_INTERFACE
  387.         
  388.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  389.             IParentRowset * This,
  390.             /* [in] */ REFIID riid,
  391.             /* [iid_is][out] */ void **ppvObject);
  392.         
  393.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  394.             IParentRowset * This);
  395.         
  396.         ULONG ( STDMETHODCALLTYPE *Release )( 
  397.             IParentRowset * This);
  398.         
  399.         HRESULT ( STDMETHODCALLTYPE *GetChildRowset )( 
  400.             IParentRowset * This,
  401.             /* [in] */ IUnknown *pUnkOuter,
  402.             /* [in] */ DBORDINAL iOrdinal,
  403.             /* [in] */ REFIID riid,
  404.             /* [iid_is][out] */ IUnknown **ppRowset);
  405.         
  406.         END_INTERFACE
  407.     } IParentRowsetVtbl;
  408.     interface IParentRowset
  409.     {
  410.         CONST_VTBL struct IParentRowsetVtbl *lpVtbl;
  411.     };
  412.     
  413. #ifdef COBJMACROS
  414. #define IParentRowset_QueryInterface(This,riid,ppvObject)
  415.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  416. #define IParentRowset_AddRef(This)
  417.     (This)->lpVtbl -> AddRef(This)
  418. #define IParentRowset_Release(This)
  419.     (This)->lpVtbl -> Release(This)
  420. #define IParentRowset_GetChildRowset(This,pUnkOuter,iOrdinal,riid,ppRowset)
  421.     (This)->lpVtbl -> GetChildRowset(This,pUnkOuter,iOrdinal,riid,ppRowset)
  422. #endif /* COBJMACROS */
  423. #endif  /* C style interface */
  424. HRESULT STDMETHODCALLTYPE IParentRowset_GetChildRowset_Proxy( 
  425.     IParentRowset * This,
  426.     /* [in] */ IUnknown *pUnkOuter,
  427.     /* [in] */ DBORDINAL iOrdinal,
  428.     /* [in] */ REFIID riid,
  429.     /* [iid_is][out] */ IUnknown **ppRowset);
  430. void __RPC_STUB IParentRowset_GetChildRowset_Stub(
  431.     IRpcStubBuffer *This,
  432.     IRpcChannelBuffer *_pRpcChannelBuffer,
  433.     PRPC_MESSAGE _pRpcMessage,
  434.     DWORD *_pdwStubPhase);
  435. #endif  /* __IParentRowset_INTERFACE_DEFINED__ */
  436. /* interface __MIDL_itf_oledb_0314 */
  437. /* [local] */ 
  438. #endif // OLEDBVER >= 0x0200
  439. //@@@- V2.0
  440. extern RPC_IF_HANDLE __MIDL_itf_oledb_0314_v0_0_c_ifspec;
  441. extern RPC_IF_HANDLE __MIDL_itf_oledb_0314_v0_0_s_ifspec;
  442. #ifndef __IErrorRecords_INTERFACE_DEFINED__
  443. #define __IErrorRecords_INTERFACE_DEFINED__
  444. /* interface IErrorRecords */
  445. /* [unique][uuid][object] */ 
  446. #define IDENTIFIER_SDK_MASK 0xF0000000
  447. #define IDENTIFIER_SDK_ERROR 0x10000000
  448. typedef struct tagERRORINFO
  449.     {
  450.     HRESULT hrError;
  451.     DWORD dwMinor;
  452.     CLSID clsid;
  453.     IID iid;
  454.     DISPID dispid;
  455.     }  ERRORINFO;
  456. EXTERN_C const IID IID_IErrorRecords;
  457. #if defined(__cplusplus) && !defined(CINTERFACE)
  458.     
  459.     MIDL_INTERFACE("0c733a67-2a1c-11ce-ade5-00aa0044773d")
  460.     IErrorRecords : public IUnknown
  461.     {
  462.     public:
  463.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE AddErrorRecord( 
  464.             /* [in] */ ERRORINFO *pErrorInfo,
  465.             /* [in] */ DWORD dwLookupID,
  466.             /* [in] */ DISPPARAMS *pdispparams,
  467.             /* [in] */ IUnknown *punkCustomError,
  468.             /* [in] */ DWORD dwDynamicErrorID) = 0;
  469.         
  470.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetBasicErrorInfo( 
  471.             /* [in] */ ULONG ulRecordNum,
  472.             /* [out] */ ERRORINFO *pErrorInfo) = 0;
  473.         
  474.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetCustomErrorObject( 
  475.             /* [in] */ ULONG ulRecordNum,
  476.             /* [in] */ REFIID riid,
  477.             /* [iid_is][out] */ IUnknown **ppObject) = 0;
  478.         
  479.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetErrorInfo( 
  480.             /* [in] */ ULONG ulRecordNum,
  481.             /* [in] */ LCID lcid,
  482.             /* [out] */ IErrorInfo **ppErrorInfo) = 0;
  483.         
  484.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetErrorParameters( 
  485.             /* [in] */ ULONG ulRecordNum,
  486.             /* [out] */ DISPPARAMS *pdispparams) = 0;
  487.         
  488.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetRecordCount( 
  489.             /* [out] */ ULONG *pcRecords) = 0;
  490.         
  491.     };
  492.     
  493. #else  /* C style interface */
  494.     typedef struct IErrorRecordsVtbl
  495.     {
  496.         BEGIN_INTERFACE
  497.         
  498.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  499.             IErrorRecords * This,
  500.             /* [in] */ REFIID riid,
  501.             /* [iid_is][out] */ void **ppvObject);
  502.         
  503.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  504.             IErrorRecords * This);
  505.         
  506.         ULONG ( STDMETHODCALLTYPE *Release )( 
  507.             IErrorRecords * This);
  508.         
  509.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *AddErrorRecord )( 
  510.             IErrorRecords * This,
  511.             /* [in] */ ERRORINFO *pErrorInfo,
  512.             /* [in] */ DWORD dwLookupID,
  513.             /* [in] */ DISPPARAMS *pdispparams,
  514.             /* [in] */ IUnknown *punkCustomError,
  515.             /* [in] */ DWORD dwDynamicErrorID);
  516.         
  517.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBasicErrorInfo )( 
  518.             IErrorRecords * This,
  519.             /* [in] */ ULONG ulRecordNum,
  520.             /* [out] */ ERRORINFO *pErrorInfo);
  521.         
  522.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetCustomErrorObject )( 
  523.             IErrorRecords * This,
  524.             /* [in] */ ULONG ulRecordNum,
  525.             /* [in] */ REFIID riid,
  526.             /* [iid_is][out] */ IUnknown **ppObject);
  527.         
  528.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetErrorInfo )( 
  529.             IErrorRecords * This,
  530.             /* [in] */ ULONG ulRecordNum,
  531.             /* [in] */ LCID lcid,
  532.             /* [out] */ IErrorInfo **ppErrorInfo);
  533.         
  534.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetErrorParameters )( 
  535.             IErrorRecords * This,
  536.             /* [in] */ ULONG ulRecordNum,
  537.             /* [out] */ DISPPARAMS *pdispparams);
  538.         
  539.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetRecordCount )( 
  540.             IErrorRecords * This,
  541.             /* [out] */ ULONG *pcRecords);
  542.         
  543.         END_INTERFACE
  544.     } IErrorRecordsVtbl;
  545.     interface IErrorRecords
  546.     {
  547.         CONST_VTBL struct IErrorRecordsVtbl *lpVtbl;
  548.     };
  549.     
  550. #ifdef COBJMACROS
  551. #define IErrorRecords_QueryInterface(This,riid,ppvObject)
  552.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  553. #define IErrorRecords_AddRef(This)
  554.     (This)->lpVtbl -> AddRef(This)
  555. #define IErrorRecords_Release(This)
  556.     (This)->lpVtbl -> Release(This)
  557. #define IErrorRecords_AddErrorRecord(This,pErrorInfo,dwLookupID,pdispparams,punkCustomError,dwDynamicErrorID)
  558.     (This)->lpVtbl -> AddErrorRecord(This,pErrorInfo,dwLookupID,pdispparams,punkCustomError,dwDynamicErrorID)
  559. #define IErrorRecords_GetBasicErrorInfo(This,ulRecordNum,pErrorInfo)
  560.     (This)->lpVtbl -> GetBasicErrorInfo(This,ulRecordNum,pErrorInfo)
  561. #define IErrorRecords_GetCustomErrorObject(This,ulRecordNum,riid,ppObject)
  562.     (This)->lpVtbl -> GetCustomErrorObject(This,ulRecordNum,riid,ppObject)
  563. #define IErrorRecords_GetErrorInfo(This,ulRecordNum,lcid,ppErrorInfo)
  564.     (This)->lpVtbl -> GetErrorInfo(This,ulRecordNum,lcid,ppErrorInfo)
  565. #define IErrorRecords_GetErrorParameters(This,ulRecordNum,pdispparams)
  566.     (This)->lpVtbl -> GetErrorParameters(This,ulRecordNum,pdispparams)
  567. #define IErrorRecords_GetRecordCount(This,pcRecords)
  568.     (This)->lpVtbl -> GetRecordCount(This,pcRecords)
  569. #endif /* COBJMACROS */
  570. #endif  /* C style interface */
  571. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorRecords_RemoteAddErrorRecord_Proxy( 
  572.     IErrorRecords * This,
  573.     /* [in] */ ERRORINFO *pErrorInfo,
  574.     /* [in] */ DWORD dwLookupID,
  575.     /* [in] */ DISPPARAMS *pdispparams,
  576.     /* [in] */ IUnknown *punkCustomError,
  577.     /* [in] */ DWORD dwDynamicErrorID,
  578.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  579. void __RPC_STUB IErrorRecords_RemoteAddErrorRecord_Stub(
  580.     IRpcStubBuffer *This,
  581.     IRpcChannelBuffer *_pRpcChannelBuffer,
  582.     PRPC_MESSAGE _pRpcMessage,
  583.     DWORD *_pdwStubPhase);
  584. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorRecords_RemoteGetBasicErrorInfo_Proxy( 
  585.     IErrorRecords * This,
  586.     /* [in] */ ULONG ulRecordNum,
  587.     /* [out] */ ERRORINFO *pErrorInfo,
  588.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  589. void __RPC_STUB IErrorRecords_RemoteGetBasicErrorInfo_Stub(
  590.     IRpcStubBuffer *This,
  591.     IRpcChannelBuffer *_pRpcChannelBuffer,
  592.     PRPC_MESSAGE _pRpcMessage,
  593.     DWORD *_pdwStubPhase);
  594. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorRecords_RemoteGetCustomErrorObject_Proxy( 
  595.     IErrorRecords * This,
  596.     /* [in] */ ULONG ulRecordNum,
  597.     /* [in] */ REFIID riid,
  598.     /* [iid_is][out] */ IUnknown **ppObject,
  599.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  600. void __RPC_STUB IErrorRecords_RemoteGetCustomErrorObject_Stub(
  601.     IRpcStubBuffer *This,
  602.     IRpcChannelBuffer *_pRpcChannelBuffer,
  603.     PRPC_MESSAGE _pRpcMessage,
  604.     DWORD *_pdwStubPhase);
  605. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorRecords_RemoteGetErrorInfo_Proxy( 
  606.     IErrorRecords * This,
  607.     /* [in] */ ULONG ulRecordNum,
  608.     /* [in] */ LCID lcid,
  609.     /* [out] */ IErrorInfo **ppErrorInfo,
  610.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  611. void __RPC_STUB IErrorRecords_RemoteGetErrorInfo_Stub(
  612.     IRpcStubBuffer *This,
  613.     IRpcChannelBuffer *_pRpcChannelBuffer,
  614.     PRPC_MESSAGE _pRpcMessage,
  615.     DWORD *_pdwStubPhase);
  616. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorRecords_RemoteGetErrorParameters_Proxy( 
  617.     IErrorRecords * This,
  618.     /* [in] */ ULONG ulRecordNum,
  619.     /* [out] */ DISPPARAMS *pdispparams,
  620.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  621. void __RPC_STUB IErrorRecords_RemoteGetErrorParameters_Stub(
  622.     IRpcStubBuffer *This,
  623.     IRpcChannelBuffer *_pRpcChannelBuffer,
  624.     PRPC_MESSAGE _pRpcMessage,
  625.     DWORD *_pdwStubPhase);
  626. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorRecords_RemoteGetRecordCount_Proxy( 
  627.     IErrorRecords * This,
  628.     /* [out] */ ULONG *pcRecords,
  629.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  630. void __RPC_STUB IErrorRecords_RemoteGetRecordCount_Stub(
  631.     IRpcStubBuffer *This,
  632.     IRpcChannelBuffer *_pRpcChannelBuffer,
  633.     PRPC_MESSAGE _pRpcMessage,
  634.     DWORD *_pdwStubPhase);
  635. #endif  /* __IErrorRecords_INTERFACE_DEFINED__ */
  636. #ifndef __IErrorLookup_INTERFACE_DEFINED__
  637. #define __IErrorLookup_INTERFACE_DEFINED__
  638. /* interface IErrorLookup */
  639. /* [unique][uuid][object] */ 
  640. EXTERN_C const IID IID_IErrorLookup;
  641. #if defined(__cplusplus) && !defined(CINTERFACE)
  642.     
  643.     MIDL_INTERFACE("0c733a66-2a1c-11ce-ade5-00aa0044773d")
  644.     IErrorLookup : public IUnknown
  645.     {
  646.     public:
  647.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetErrorDescription( 
  648.             /* [in] */ HRESULT hrError,
  649.             /* [in] */ DWORD dwLookupID,
  650.             /* [in] */ DISPPARAMS *pdispparams,
  651.             /* [in] */ LCID lcid,
  652.             /* [out] */ BSTR *pbstrSource,
  653.             /* [out] */ BSTR *pbstrDescription) = 0;
  654.         
  655.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetHelpInfo( 
  656.             /* [in] */ HRESULT hrError,
  657.             /* [in] */ DWORD dwLookupID,
  658.             /* [in] */ LCID lcid,
  659.             /* [out] */ BSTR *pbstrHelpFile,
  660.             /* [out] */ DWORD *pdwHelpContext) = 0;
  661.         
  662.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE ReleaseErrors( 
  663.             /* [in] */ const DWORD dwDynamicErrorID) = 0;
  664.         
  665.     };
  666.     
  667. #else  /* C style interface */
  668.     typedef struct IErrorLookupVtbl
  669.     {
  670.         BEGIN_INTERFACE
  671.         
  672.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  673.             IErrorLookup * This,
  674.             /* [in] */ REFIID riid,
  675.             /* [iid_is][out] */ void **ppvObject);
  676.         
  677.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  678.             IErrorLookup * This);
  679.         
  680.         ULONG ( STDMETHODCALLTYPE *Release )( 
  681.             IErrorLookup * This);
  682.         
  683.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetErrorDescription )( 
  684.             IErrorLookup * This,
  685.             /* [in] */ HRESULT hrError,
  686.             /* [in] */ DWORD dwLookupID,
  687.             /* [in] */ DISPPARAMS *pdispparams,
  688.             /* [in] */ LCID lcid,
  689.             /* [out] */ BSTR *pbstrSource,
  690.             /* [out] */ BSTR *pbstrDescription);
  691.         
  692.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetHelpInfo )( 
  693.             IErrorLookup * This,
  694.             /* [in] */ HRESULT hrError,
  695.             /* [in] */ DWORD dwLookupID,
  696.             /* [in] */ LCID lcid,
  697.             /* [out] */ BSTR *pbstrHelpFile,
  698.             /* [out] */ DWORD *pdwHelpContext);
  699.         
  700.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *ReleaseErrors )( 
  701.             IErrorLookup * This,
  702.             /* [in] */ const DWORD dwDynamicErrorID);
  703.         
  704.         END_INTERFACE
  705.     } IErrorLookupVtbl;
  706.     interface IErrorLookup
  707.     {
  708.         CONST_VTBL struct IErrorLookupVtbl *lpVtbl;
  709.     };
  710.     
  711. #ifdef COBJMACROS
  712. #define IErrorLookup_QueryInterface(This,riid,ppvObject)
  713.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  714. #define IErrorLookup_AddRef(This)
  715.     (This)->lpVtbl -> AddRef(This)
  716. #define IErrorLookup_Release(This)
  717.     (This)->lpVtbl -> Release(This)
  718. #define IErrorLookup_GetErrorDescription(This,hrError,dwLookupID,pdispparams,lcid,pbstrSource,pbstrDescription)
  719.     (This)->lpVtbl -> GetErrorDescription(This,hrError,dwLookupID,pdispparams,lcid,pbstrSource,pbstrDescription)
  720. #define IErrorLookup_GetHelpInfo(This,hrError,dwLookupID,lcid,pbstrHelpFile,pdwHelpContext)
  721.     (This)->lpVtbl -> GetHelpInfo(This,hrError,dwLookupID,lcid,pbstrHelpFile,pdwHelpContext)
  722. #define IErrorLookup_ReleaseErrors(This,dwDynamicErrorID)
  723.     (This)->lpVtbl -> ReleaseErrors(This,dwDynamicErrorID)
  724. #endif /* COBJMACROS */
  725. #endif  /* C style interface */
  726. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorLookup_RemoteGetErrorDescription_Proxy( 
  727.     IErrorLookup * This,
  728.     /* [in] */ HRESULT hrError,
  729.     /* [in] */ DWORD dwLookupID,
  730.     /* [in] */ DISPPARAMS *pdispparams,
  731.     /* [in] */ LCID lcid,
  732.     /* [out] */ BSTR *pbstrSource,
  733.     /* [out] */ BSTR *pbstrDescription,
  734.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  735. void __RPC_STUB IErrorLookup_RemoteGetErrorDescription_Stub(
  736.     IRpcStubBuffer *This,
  737.     IRpcChannelBuffer *_pRpcChannelBuffer,
  738.     PRPC_MESSAGE _pRpcMessage,
  739.     DWORD *_pdwStubPhase);
  740. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorLookup_RemoteGetHelpInfo_Proxy( 
  741.     IErrorLookup * This,
  742.     /* [in] */ HRESULT hrError,
  743.     /* [in] */ DWORD dwLookupID,
  744.     /* [in] */ LCID lcid,
  745.     /* [out] */ BSTR *pbstrHelpFile,
  746.     /* [out] */ DWORD *pdwHelpContext,
  747.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  748. void __RPC_STUB IErrorLookup_RemoteGetHelpInfo_Stub(
  749.     IRpcStubBuffer *This,
  750.     IRpcChannelBuffer *_pRpcChannelBuffer,
  751.     PRPC_MESSAGE _pRpcMessage,
  752.     DWORD *_pdwStubPhase);
  753. /* [call_as] */ HRESULT STDMETHODCALLTYPE IErrorLookup_RemoteReleaseErrors_Proxy( 
  754.     IErrorLookup * This,
  755.     /* [in] */ const DWORD dwDynamicErrorID,
  756.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  757. void __RPC_STUB IErrorLookup_RemoteReleaseErrors_Stub(
  758.     IRpcStubBuffer *This,
  759.     IRpcChannelBuffer *_pRpcChannelBuffer,
  760.     PRPC_MESSAGE _pRpcMessage,
  761.     DWORD *_pdwStubPhase);
  762. #endif  /* __IErrorLookup_INTERFACE_DEFINED__ */
  763. #ifndef __ISQLErrorInfo_INTERFACE_DEFINED__
  764. #define __ISQLErrorInfo_INTERFACE_DEFINED__
  765. /* interface ISQLErrorInfo */
  766. /* [unique][uuid][object] */ 
  767. EXTERN_C const IID IID_ISQLErrorInfo;
  768. #if defined(__cplusplus) && !defined(CINTERFACE)
  769.     
  770.     MIDL_INTERFACE("0c733a74-2a1c-11ce-ade5-00aa0044773d")
  771.     ISQLErrorInfo : public IUnknown
  772.     {
  773.     public:
  774.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetSQLInfo( 
  775.             /* [out] */ BSTR *pbstrSQLState,
  776.             /* [out] */ LONG *plNativeError) = 0;
  777.         
  778.     };
  779.     
  780. #else  /* C style interface */
  781.     typedef struct ISQLErrorInfoVtbl
  782.     {
  783.         BEGIN_INTERFACE
  784.         
  785.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  786.             ISQLErrorInfo * This,
  787.             /* [in] */ REFIID riid,
  788.             /* [iid_is][out] */ void **ppvObject);
  789.         
  790.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  791.             ISQLErrorInfo * This);
  792.         
  793.         ULONG ( STDMETHODCALLTYPE *Release )( 
  794.             ISQLErrorInfo * This);
  795.         
  796.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetSQLInfo )( 
  797.             ISQLErrorInfo * This,
  798.             /* [out] */ BSTR *pbstrSQLState,
  799.             /* [out] */ LONG *plNativeError);
  800.         
  801.         END_INTERFACE
  802.     } ISQLErrorInfoVtbl;
  803.     interface ISQLErrorInfo
  804.     {
  805.         CONST_VTBL struct ISQLErrorInfoVtbl *lpVtbl;
  806.     };
  807.     
  808. #ifdef COBJMACROS
  809. #define ISQLErrorInfo_QueryInterface(This,riid,ppvObject)
  810.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  811. #define ISQLErrorInfo_AddRef(This)
  812.     (This)->lpVtbl -> AddRef(This)
  813. #define ISQLErrorInfo_Release(This)
  814.     (This)->lpVtbl -> Release(This)
  815. #define ISQLErrorInfo_GetSQLInfo(This,pbstrSQLState,plNativeError)
  816.     (This)->lpVtbl -> GetSQLInfo(This,pbstrSQLState,plNativeError)
  817. #endif /* COBJMACROS */
  818. #endif  /* C style interface */
  819. /* [call_as] */ HRESULT STDMETHODCALLTYPE ISQLErrorInfo_RemoteGetSQLInfo_Proxy( 
  820.     ISQLErrorInfo * This,
  821.     /* [out] */ BSTR *pbstrSQLState,
  822.     /* [out] */ LONG *plNativeError,
  823.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  824. void __RPC_STUB ISQLErrorInfo_RemoteGetSQLInfo_Stub(
  825.     IRpcStubBuffer *This,
  826.     IRpcChannelBuffer *_pRpcChannelBuffer,
  827.     PRPC_MESSAGE _pRpcMessage,
  828.     DWORD *_pdwStubPhase);
  829. #endif  /* __ISQLErrorInfo_INTERFACE_DEFINED__ */
  830. #ifndef __IGetDataSource_INTERFACE_DEFINED__
  831. #define __IGetDataSource_INTERFACE_DEFINED__
  832. /* interface IGetDataSource */
  833. /* [unique][uuid][object] */ 
  834. EXTERN_C const IID IID_IGetDataSource;
  835. #if defined(__cplusplus) && !defined(CINTERFACE)
  836.     
  837.     MIDL_INTERFACE("0c733a75-2a1c-11ce-ade5-00aa0044773d")
  838.     IGetDataSource : public IUnknown
  839.     {
  840.     public:
  841.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDataSource( 
  842.             /* [in] */ REFIID riid,
  843.             /* [iid_is][out] */ IUnknown **ppDataSource) = 0;
  844.         
  845.     };
  846.     
  847. #else  /* C style interface */
  848.     typedef struct IGetDataSourceVtbl
  849.     {
  850.         BEGIN_INTERFACE
  851.         
  852.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  853.             IGetDataSource * This,
  854.             /* [in] */ REFIID riid,
  855.             /* [iid_is][out] */ void **ppvObject);
  856.         
  857.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  858.             IGetDataSource * This);
  859.         
  860.         ULONG ( STDMETHODCALLTYPE *Release )( 
  861.             IGetDataSource * This);
  862.         
  863.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDataSource )( 
  864.             IGetDataSource * This,
  865.             /* [in] */ REFIID riid,
  866.             /* [iid_is][out] */ IUnknown **ppDataSource);
  867.         
  868.         END_INTERFACE
  869.     } IGetDataSourceVtbl;
  870.     interface IGetDataSource
  871.     {
  872.         CONST_VTBL struct IGetDataSourceVtbl *lpVtbl;
  873.     };
  874.     
  875. #ifdef COBJMACROS
  876. #define IGetDataSource_QueryInterface(This,riid,ppvObject)
  877.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  878. #define IGetDataSource_AddRef(This)
  879.     (This)->lpVtbl -> AddRef(This)
  880. #define IGetDataSource_Release(This)
  881.     (This)->lpVtbl -> Release(This)
  882. #define IGetDataSource_GetDataSource(This,riid,ppDataSource)
  883.     (This)->lpVtbl -> GetDataSource(This,riid,ppDataSource)
  884. #endif /* COBJMACROS */
  885. #endif  /* C style interface */
  886. /* [call_as] */ HRESULT STDMETHODCALLTYPE IGetDataSource_RemoteGetDataSource_Proxy( 
  887.     IGetDataSource * This,
  888.     /* [in] */ REFIID riid,
  889.     /* [iid_is][out] */ IUnknown **ppDataSource,
  890.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  891. void __RPC_STUB IGetDataSource_RemoteGetDataSource_Stub(
  892.     IRpcStubBuffer *This,
  893.     IRpcChannelBuffer *_pRpcChannelBuffer,
  894.     PRPC_MESSAGE _pRpcMessage,
  895.     DWORD *_pdwStubPhase);
  896. #endif  /* __IGetDataSource_INTERFACE_DEFINED__ */
  897. #ifndef __ITransactionLocal_INTERFACE_DEFINED__
  898. #define __ITransactionLocal_INTERFACE_DEFINED__
  899. /* interface ITransactionLocal */
  900. /* [unique][uuid][object] */ 
  901. EXTERN_C const IID IID_ITransactionLocal;
  902. #if defined(__cplusplus) && !defined(CINTERFACE)
  903.     
  904.     MIDL_INTERFACE("0c733a5f-2a1c-11ce-ade5-00aa0044773d")
  905.     ITransactionLocal : public ITransaction
  906.     {
  907.     public:
  908.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetOptionsObject( 
  909.             /* [out] */ ITransactionOptions **ppOptions) = 0;
  910.         
  911.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE StartTransaction( 
  912.             /* [in] */ ISOLEVEL isoLevel,
  913.             /* [in] */ ULONG isoFlags,
  914.             /* [in] */ ITransactionOptions *pOtherOptions,
  915.             /* [out] */ ULONG *pulTransactionLevel) = 0;
  916.         
  917.     };
  918.     
  919. #else  /* C style interface */
  920.     typedef struct ITransactionLocalVtbl
  921.     {
  922.         BEGIN_INTERFACE
  923.         
  924.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  925.             ITransactionLocal * This,
  926.             /* [in] */ REFIID riid,
  927.             /* [iid_is][out] */ void **ppvObject);
  928.         
  929.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  930.             ITransactionLocal * This);
  931.         
  932.         ULONG ( STDMETHODCALLTYPE *Release )( 
  933.             ITransactionLocal * This);
  934.         
  935.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  936.             ITransactionLocal * This,
  937.             /* [in] */ BOOL fRetaining,
  938.             /* [in] */ DWORD grfTC,
  939.             /* [in] */ DWORD grfRM);
  940.         
  941.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  942.             ITransactionLocal * This,
  943.             /* [unique][in] */ BOID *pboidReason,
  944.             /* [in] */ BOOL fRetaining,
  945.             /* [in] */ BOOL fAsync);
  946.         
  947.         HRESULT ( STDMETHODCALLTYPE *GetTransactionInfo )( 
  948.             ITransactionLocal * This,
  949.             /* [out] */ XACTTRANSINFO *pinfo);
  950.         
  951.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetOptionsObject )( 
  952.             ITransactionLocal * This,
  953.             /* [out] */ ITransactionOptions **ppOptions);
  954.         
  955.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *StartTransaction )( 
  956.             ITransactionLocal * This,
  957.             /* [in] */ ISOLEVEL isoLevel,
  958.             /* [in] */ ULONG isoFlags,
  959.             /* [in] */ ITransactionOptions *pOtherOptions,
  960.             /* [out] */ ULONG *pulTransactionLevel);
  961.         
  962.         END_INTERFACE
  963.     } ITransactionLocalVtbl;
  964.     interface ITransactionLocal
  965.     {
  966.         CONST_VTBL struct ITransactionLocalVtbl *lpVtbl;
  967.     };
  968.     
  969. #ifdef COBJMACROS
  970. #define ITransactionLocal_QueryInterface(This,riid,ppvObject)
  971.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  972. #define ITransactionLocal_AddRef(This)
  973.     (This)->lpVtbl -> AddRef(This)
  974. #define ITransactionLocal_Release(This)
  975.     (This)->lpVtbl -> Release(This)
  976. #define ITransactionLocal_Commit(This,fRetaining,grfTC,grfRM)
  977.     (This)->lpVtbl -> Commit(This,fRetaining,grfTC,grfRM)
  978. #define ITransactionLocal_Abort(This,pboidReason,fRetaining,fAsync)
  979.     (This)->lpVtbl -> Abort(This,pboidReason,fRetaining,fAsync)
  980. #define ITransactionLocal_GetTransactionInfo(This,pinfo)
  981.     (This)->lpVtbl -> GetTransactionInfo(This,pinfo)
  982. #define ITransactionLocal_GetOptionsObject(This,ppOptions)
  983.     (This)->lpVtbl -> GetOptionsObject(This,ppOptions)
  984. #define ITransactionLocal_StartTransaction(This,isoLevel,isoFlags,pOtherOptions,pulTransactionLevel)
  985.     (This)->lpVtbl -> StartTransaction(This,isoLevel,isoFlags,pOtherOptions,pulTransactionLevel)
  986. #endif /* COBJMACROS */
  987. #endif  /* C style interface */
  988. /* [call_as] */ HRESULT STDMETHODCALLTYPE ITransactionLocal_RemoteGetOptionsObject_Proxy( 
  989.     ITransactionLocal * This,
  990.     /* [out] */ ITransactionOptions **ppOptions,
  991.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  992. void __RPC_STUB ITransactionLocal_RemoteGetOptionsObject_Stub(
  993.     IRpcStubBuffer *This,
  994.     IRpcChannelBuffer *_pRpcChannelBuffer,
  995.     PRPC_MESSAGE _pRpcMessage,
  996.     DWORD *_pdwStubPhase);
  997. /* [call_as] */ HRESULT STDMETHODCALLTYPE ITransactionLocal_RemoteStartTransaction_Proxy( 
  998.     ITransactionLocal * This,
  999.     /* [in] */ ISOLEVEL isoLevel,
  1000.     /* [in] */ ULONG isoFlags,
  1001.     /* [in] */ ITransactionOptions *pOtherOptions,
  1002.     /* [unique][out][in] */ ULONG *pulTransactionLevel,
  1003.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1004. void __RPC_STUB ITransactionLocal_RemoteStartTransaction_Stub(
  1005.     IRpcStubBuffer *This,
  1006.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1007.     PRPC_MESSAGE _pRpcMessage,
  1008.     DWORD *_pdwStubPhase);
  1009. #endif  /* __ITransactionLocal_INTERFACE_DEFINED__ */
  1010. #ifndef __ITransactionJoin_INTERFACE_DEFINED__
  1011. #define __ITransactionJoin_INTERFACE_DEFINED__
  1012. /* interface ITransactionJoin */
  1013. /* [unique][uuid][object] */ 
  1014. EXTERN_C const IID IID_ITransactionJoin;
  1015. #if defined(__cplusplus) && !defined(CINTERFACE)
  1016.     
  1017.     MIDL_INTERFACE("0c733a5e-2a1c-11ce-ade5-00aa0044773d")
  1018.     ITransactionJoin : public IUnknown
  1019.     {
  1020.     public:
  1021.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetOptionsObject( 
  1022.             /* [out] */ ITransactionOptions **ppOptions) = 0;
  1023.         
  1024.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE JoinTransaction( 
  1025.             /* [in] */ IUnknown *punkTransactionCoord,
  1026.             /* [in] */ ISOLEVEL isoLevel,
  1027.             /* [in] */ ULONG isoFlags,
  1028.             /* [in] */ ITransactionOptions *pOtherOptions) = 0;
  1029.         
  1030.     };
  1031.     
  1032. #else  /* C style interface */
  1033.     typedef struct ITransactionJoinVtbl
  1034.     {
  1035.         BEGIN_INTERFACE
  1036.         
  1037.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1038.             ITransactionJoin * This,
  1039.             /* [in] */ REFIID riid,
  1040.             /* [iid_is][out] */ void **ppvObject);
  1041.         
  1042.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1043.             ITransactionJoin * This);
  1044.         
  1045.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1046.             ITransactionJoin * This);
  1047.         
  1048.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetOptionsObject )( 
  1049.             ITransactionJoin * This,
  1050.             /* [out] */ ITransactionOptions **ppOptions);
  1051.         
  1052.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *JoinTransaction )( 
  1053.             ITransactionJoin * This,
  1054.             /* [in] */ IUnknown *punkTransactionCoord,
  1055.             /* [in] */ ISOLEVEL isoLevel,
  1056.             /* [in] */ ULONG isoFlags,
  1057.             /* [in] */ ITransactionOptions *pOtherOptions);
  1058.         
  1059.         END_INTERFACE
  1060.     } ITransactionJoinVtbl;
  1061.     interface ITransactionJoin
  1062.     {
  1063.         CONST_VTBL struct ITransactionJoinVtbl *lpVtbl;
  1064.     };
  1065.     
  1066. #ifdef COBJMACROS
  1067. #define ITransactionJoin_QueryInterface(This,riid,ppvObject)
  1068.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1069. #define ITransactionJoin_AddRef(This)
  1070.     (This)->lpVtbl -> AddRef(This)
  1071. #define ITransactionJoin_Release(This)
  1072.     (This)->lpVtbl -> Release(This)
  1073. #define ITransactionJoin_GetOptionsObject(This,ppOptions)
  1074.     (This)->lpVtbl -> GetOptionsObject(This,ppOptions)
  1075. #define ITransactionJoin_JoinTransaction(This,punkTransactionCoord,isoLevel,isoFlags,pOtherOptions)
  1076.     (This)->lpVtbl -> JoinTransaction(This,punkTransactionCoord,isoLevel,isoFlags,pOtherOptions)
  1077. #endif /* COBJMACROS */
  1078. #endif  /* C style interface */
  1079. /* [call_as] */ HRESULT STDMETHODCALLTYPE ITransactionJoin_RemoteGetOptionsObject_Proxy( 
  1080.     ITransactionJoin * This,
  1081.     /* [out] */ ITransactionOptions **ppOptions,
  1082.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1083. void __RPC_STUB ITransactionJoin_RemoteGetOptionsObject_Stub(
  1084.     IRpcStubBuffer *This,
  1085.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1086.     PRPC_MESSAGE _pRpcMessage,
  1087.     DWORD *_pdwStubPhase);
  1088. /* [call_as] */ HRESULT STDMETHODCALLTYPE ITransactionJoin_RemoteJoinTransaction_Proxy( 
  1089.     ITransactionJoin * This,
  1090.     /* [unique][in] */ IUnknown *punkTransactionCoord,
  1091.     /* [in] */ ISOLEVEL isoLevel,
  1092.     /* [in] */ ULONG isoFlags,
  1093.     /* [in] */ ITransactionOptions *pOtherOptions,
  1094.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1095. void __RPC_STUB ITransactionJoin_RemoteJoinTransaction_Stub(
  1096.     IRpcStubBuffer *This,
  1097.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1098.     PRPC_MESSAGE _pRpcMessage,
  1099.     DWORD *_pdwStubPhase);
  1100. #endif  /* __ITransactionJoin_INTERFACE_DEFINED__ */
  1101. #ifndef __ITransactionObject_INTERFACE_DEFINED__
  1102. #define __ITransactionObject_INTERFACE_DEFINED__
  1103. /* interface ITransactionObject */
  1104. /* [unique][uuid][object] */ 
  1105. EXTERN_C const IID IID_ITransactionObject;
  1106. #if defined(__cplusplus) && !defined(CINTERFACE)
  1107.     
  1108.     MIDL_INTERFACE("0c733a60-2a1c-11ce-ade5-00aa0044773d")
  1109.     ITransactionObject : public IUnknown
  1110.     {
  1111.     public:
  1112.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetTransactionObject( 
  1113.             /* [in] */ ULONG ulTransactionLevel,
  1114.             /* [out] */ ITransaction **ppTransactionObject) = 0;
  1115.         
  1116.     };
  1117.     
  1118. #else  /* C style interface */
  1119.     typedef struct ITransactionObjectVtbl
  1120.     {
  1121.         BEGIN_INTERFACE
  1122.         
  1123.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1124.             ITransactionObject * This,
  1125.             /* [in] */ REFIID riid,
  1126.             /* [iid_is][out] */ void **ppvObject);
  1127.         
  1128.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1129.             ITransactionObject * This);
  1130.         
  1131.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1132.             ITransactionObject * This);
  1133.         
  1134.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetTransactionObject )( 
  1135.             ITransactionObject * This,
  1136.             /* [in] */ ULONG ulTransactionLevel,
  1137.             /* [out] */ ITransaction **ppTransactionObject);
  1138.         
  1139.         END_INTERFACE
  1140.     } ITransactionObjectVtbl;
  1141.     interface ITransactionObject
  1142.     {
  1143.         CONST_VTBL struct ITransactionObjectVtbl *lpVtbl;
  1144.     };
  1145.     
  1146. #ifdef COBJMACROS
  1147. #define ITransactionObject_QueryInterface(This,riid,ppvObject)
  1148.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1149. #define ITransactionObject_AddRef(This)
  1150.     (This)->lpVtbl -> AddRef(This)
  1151. #define ITransactionObject_Release(This)
  1152.     (This)->lpVtbl -> Release(This)
  1153. #define ITransactionObject_GetTransactionObject(This,ulTransactionLevel,ppTransactionObject)
  1154.     (This)->lpVtbl -> GetTransactionObject(This,ulTransactionLevel,ppTransactionObject)
  1155. #endif /* COBJMACROS */
  1156. #endif  /* C style interface */
  1157. /* [call_as] */ HRESULT STDMETHODCALLTYPE ITransactionObject_RemoteGetTransactionObject_Proxy( 
  1158.     ITransactionObject * This,
  1159.     /* [in] */ ULONG ulTransactionLevel,
  1160.     /* [out] */ ITransaction **ppTransactionObject,
  1161.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1162. void __RPC_STUB ITransactionObject_RemoteGetTransactionObject_Stub(
  1163.     IRpcStubBuffer *This,
  1164.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1165.     PRPC_MESSAGE _pRpcMessage,
  1166.     DWORD *_pdwStubPhase);
  1167. #endif  /* __ITransactionObject_INTERFACE_DEFINED__ */
  1168. /* interface __MIDL_itf_oledb_0328 */
  1169. /* [local] */ 
  1170. //@@@+ V2.1
  1171. #if( OLEDBVER >= 0x0210 )
  1172. #ifndef UNDER_CE
  1173. #if 0  // to get around a MIDL limitation
  1174. typedef 
  1175. enum _SE_OBJECT_TYPE
  1176.     { SE_UNKNOWN_OBJECT_TYPE = 0,
  1177. SE_FILE_OBJECT = SE_UNKNOWN_OBJECT_TYPE + 1,
  1178. SE_SERVICE = SE_FILE_OBJECT + 1,
  1179. SE_PRINTER = SE_SERVICE + 1,
  1180. SE_REGISTRY_KEY = SE_PRINTER + 1,
  1181. SE_LMSHARE = SE_REGISTRY_KEY + 1,
  1182. SE_KERNEL_OBJECT = SE_LMSHARE + 1,
  1183. SE_WINDOW_OBJECT = SE_KERNEL_OBJECT + 1,
  1184. SE_DS_OBJECT = SE_WINDOW_OBJECT + 1,
  1185. SE_DS_OBJECT_ALL = SE_DS_OBJECT + 1,
  1186. SE_PROVIDER_DEFINED_OBJECT = SE_DS_OBJECT_ALL + 1,
  1187. SE_WMIGUID_OBJECT = SE_PROVIDER_DEFINED_OBJECT + 1,
  1188. SE_REGISTRY_WOW64_32KEY = SE_WMIGUID_OBJECT + 1
  1189.     }  SE_OBJECT_TYPE;
  1190. typedef 
  1191. enum _TRUSTEE_TYPE
  1192.     { TRUSTEE_IS_UNKNOWN = 0,
  1193. TRUSTEE_IS_USER = TRUSTEE_IS_UNKNOWN + 1,
  1194. TRUSTEE_IS_GROUP = TRUSTEE_IS_USER + 1,
  1195. TRUSTEE_IS_DOMAIN = TRUSTEE_IS_GROUP + 1,
  1196. TRUSTEE_IS_ALIAS = TRUSTEE_IS_DOMAIN + 1,
  1197. TRUSTEE_IS_WELL_KNOWN_GROUP = TRUSTEE_IS_ALIAS + 1,
  1198. TRUSTEE_IS_DELETED = TRUSTEE_IS_WELL_KNOWN_GROUP + 1,
  1199. TRUSTEE_IS_INVALID = TRUSTEE_IS_DELETED + 1,
  1200. TRUSTEE_IS_COMPUTER = TRUSTEE_IS_INVALID + 1
  1201.     }  TRUSTEE_TYPE;
  1202. typedef 
  1203. enum _TRUSTEE_FORM
  1204.     { TRUSTEE_IS_SID = 0,
  1205. TRUSTEE_IS_NAME = TRUSTEE_IS_SID + 1,
  1206. TRUSTEE_BAD_FORM = TRUSTEE_IS_NAME + 1,
  1207. TRUSTEE_IS_OBJECTS_AND_SID = TRUSTEE_BAD_FORM + 1,
  1208. TRUSTEE_IS_OBJECTS_AND_NAME = TRUSTEE_IS_OBJECTS_AND_SID + 1
  1209.     }  TRUSTEE_FORM;
  1210. typedef 
  1211. enum _MULTIPLE_TRUSTEE_OPERATION
  1212.     { NO_MULTIPLE_TRUSTEE = 0,
  1213. TRUSTEE_IS_IMPERSONATE = NO_MULTIPLE_TRUSTEE + 1
  1214.     }  MULTIPLE_TRUSTEE_OPERATION;
  1215. typedef struct _OBJECTS_AND_SID
  1216.     {
  1217.     DWORD ObjectsPresent;
  1218.     GUID ObjectTypeGuid;
  1219.     GUID InheritedObjectTypeGuid;
  1220.     SID *pSid;
  1221.     }  OBJECTS_AND_SID;
  1222. typedef struct _OBJECTS_AND_SID *POBJECTS_AND_SID;
  1223. typedef struct _OBJECTS_AND_NAME_A
  1224.     {
  1225.     DWORD ObjectsPresent;
  1226.     SE_OBJECT_TYPE ObjectType;
  1227.     LPSTR ObjectTypeName;
  1228.     LPSTR InheritedObjectTypeName;
  1229.     LPSTR ptstrName;
  1230.     }  OBJECTS_AND_NAME_A;
  1231. typedef struct _OBJECTS_AND_NAME_A *POBJECTS_AND_NAME_A;
  1232. typedef struct _OBJECTS_AND_NAME_W
  1233.     {
  1234.     DWORD ObjectsPresent;
  1235.     SE_OBJECT_TYPE ObjectType;
  1236.     LPWSTR ObjectTypeName;
  1237.     LPWSTR InheritedObjectTypeName;
  1238.     LPWSTR ptstrName;
  1239.     }  OBJECTS_AND_NAME_W;
  1240. typedef struct _OBJECTS_AND_NAME_W *POBJECTS_AND_NAME_W;
  1241. typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_;
  1242. typedef POBJECTS_AND_NAME_A POBJECTS_AND_NAME_;
  1243. typedef struct _TRUSTEE_A
  1244.     {
  1245.     struct _TRUSTEE_A *pMultipleTrustee;
  1246.     MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
  1247.     TRUSTEE_FORM TrusteeForm;
  1248.     TRUSTEE_TYPE TrusteeType;
  1249.     /* [switch_is] */ /* [switch_type] */ union 
  1250.         {
  1251.         /* [case()] */ LPSTR ptstrName;
  1252.         /* [case()] */ SID *pSid;
  1253.         /* [case()] */ OBJECTS_AND_SID *pObjectsAndSid;
  1254.         /* [case()] */ OBJECTS_AND_NAME_A *pObjectsAndName;
  1255.         }  ;
  1256.     }  TRUSTEE_A;
  1257. typedef struct _TRUSTEE_A *PTRUSTEE_A;
  1258. typedef struct _TRUSTEE_A TRUSTEEA;
  1259. typedef struct _TRUSTEE_A *PTRUSTEEA;
  1260. typedef struct _TRUSTEE_W
  1261.     {
  1262.     struct _TRUSTEE_W *pMultipleTrustee;
  1263.     MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
  1264.     TRUSTEE_FORM TrusteeForm;
  1265.     TRUSTEE_TYPE TrusteeType;
  1266.     /* [switch_is] */ /* [switch_type] */ union 
  1267.         {
  1268.         /* [case()] */ LPWSTR ptstrName;
  1269.         /* [case()] */ SID *pSid;
  1270.         /* [case()] */ OBJECTS_AND_SID *pObjectsAndSid;
  1271.         /* [case()] */ OBJECTS_AND_NAME_W *pObjectsAndName;
  1272.         }  ;
  1273.     }  TRUSTEE_W;
  1274. typedef struct _TRUSTEE_W *PTRUSTEE_W;
  1275. typedef struct _TRUSTEE_W TRUSTEEW;
  1276. typedef struct _TRUSTEE_W *PTRUSTEEW;
  1277. typedef TRUSTEE_A TRUSTEE_;
  1278. typedef PTRUSTEE_A PTRUSTEE_;
  1279. typedef TRUSTEEA TRUSTEE;
  1280. typedef PTRUSTEEA PTRUSTEE;
  1281. typedef 
  1282. enum _ACCESS_MODE
  1283.     { NOT_USED_ACCESS = 0,
  1284. GRANT_ACCESS = NOT_USED_ACCESS + 1,
  1285. SET_ACCESS = GRANT_ACCESS + 1,
  1286. DENY_ACCESS = SET_ACCESS + 1,
  1287. REVOKE_ACCESS = DENY_ACCESS + 1,
  1288. SET_AUDIT_SUCCESS = REVOKE_ACCESS + 1,
  1289. SET_AUDIT_FAILURE = SET_AUDIT_SUCCESS + 1
  1290.     }  ACCESS_MODE;
  1291. typedef struct _EXPLICIT_ACCESS_A
  1292.     {
  1293.     DWORD grfAccessPermissions;
  1294.     ACCESS_MODE grfAccessMode;
  1295.     DWORD grfInheritance;
  1296.     TRUSTEE_A Trustee;
  1297.     }  EXPLICIT_ACCESS_A;
  1298. typedef struct _EXPLICIT_ACCESS_A *PEXPLICIT_ACCESS_A;
  1299. typedef struct _EXPLICIT_ACCESS_A EXPLICIT_ACCESSA;
  1300. typedef struct _EXPLICIT_ACCESS_A *PEXPLICIT_ACCESSA;
  1301. typedef struct _EXPLICIT_ACCESS_W
  1302.     {
  1303.     DWORD grfAccessPermissions;
  1304.     ACCESS_MODE grfAccessMode;
  1305.     DWORD grfInheritance;
  1306.     TRUSTEE_W Trustee;
  1307.     }  EXPLICIT_ACCESS_W;
  1308. typedef struct _EXPLICIT_ACCESS_W *PEXPLICIT_ACCESS_W;
  1309. typedef struct _EXPLICIT_ACCESS_W EXPLICIT_ACCESSW;
  1310. typedef struct _EXPLICIT_ACCESS_W *PEXPLICIT_ACCESSW;
  1311. typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_;
  1312. typedef PEXPLICIT_ACCESS_A PEXPLICIT_ACCESS_;
  1313. typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS;
  1314. typedef PEXPLICIT_ACCESSA PEXPLICIT_ACCESS;
  1315. typedef ULONG ACCESS_RIGHTS;
  1316. typedef ULONG *PACCESS_RIGHTS;
  1317. typedef ULONG INHERIT_FLAGS;
  1318. typedef ULONG *PINHERIT_FLAGS;
  1319. typedef struct _ACTRL_ACCESS_ENTRYA
  1320.     {
  1321.     TRUSTEE_A Trustee;
  1322.     ULONG fAccessFlags;
  1323.     ACCESS_RIGHTS Access;
  1324.     ACCESS_RIGHTS ProvSpecificAccess;
  1325.     INHERIT_FLAGS Inheritance;
  1326.     LPSTR lpInheritProperty;
  1327.     }  ACTRL_ACCESS_ENTRYA;
  1328. typedef struct _ACTRL_ACCESS_ENTRYA *PACTRL_ACCESS_ENTRYA;
  1329. typedef struct _ACTRL_ACCESS_ENTRYW
  1330.     {
  1331.     TRUSTEE_W Trustee;
  1332.     ULONG fAccessFlags;
  1333.     ACCESS_RIGHTS Access;
  1334.     ACCESS_RIGHTS ProvSpecificAccess;
  1335.     INHERIT_FLAGS Inheritance;
  1336.     LPWSTR lpInheritProperty;
  1337.     }  ACTRL_ACCESS_ENTRYW;
  1338. typedef struct _ACTRL_ACCESS_ENTRYW *PACTRL_ACCESS_ENTRYW;
  1339. typedef ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY;
  1340. typedef PACTRL_ACCESS_ENTRYA PACTRL_ACCESS_ENTRY;
  1341. typedef struct _ACTRL_ACCESS_ENTRY_LISTA
  1342.     {
  1343.     ULONG cEntries;
  1344.     /* [size_is] */ ACTRL_ACCESS_ENTRYA *pAccessList;
  1345.     }  ACTRL_ACCESS_ENTRY_LISTA;
  1346. typedef struct _ACTRL_ACCESS_ENTRY_LISTA *PACTRL_ACCESS_ENTRY_LISTA;
  1347. typedef struct _ACTRL_ACCESS_ENTRY_LISTW
  1348.     {
  1349.     ULONG cEntries;
  1350.     /* [size_is] */ ACTRL_ACCESS_ENTRYW *pAccessList;
  1351.     }  ACTRL_ACCESS_ENTRY_LISTW;
  1352. typedef struct _ACTRL_ACCESS_ENTRY_LISTW *PACTRL_ACCESS_ENTRY_LISTW;
  1353. typedef ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST;
  1354. typedef PACTRL_ACCESS_ENTRY_LISTA PACTRL_ACCESS_ENTRY_LIST;
  1355. typedef struct _ACTRL_PROPERTY_ENTRYA
  1356.     {
  1357.     LPSTR lpProperty;
  1358.     PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList;
  1359.     ULONG fListFlags;
  1360.     }  ACTRL_PROPERTY_ENTRYA;
  1361. typedef struct _ACTRL_PROPERTY_ENTRYA *PACTRL_PROPERTY_ENTRYA;
  1362. typedef struct _ACTRL_PROPERTY_ENTRYW
  1363.     {
  1364.     LPWSTR lpProperty;
  1365.     PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList;
  1366.     ULONG fListFlags;
  1367.     }  ACTRL_PROPERTY_ENTRYW;
  1368. typedef struct _ACTRL_PROPERTY_ENTRYW *PACTRL_PROPERTY_ENTRYW;
  1369. typedef ACTRL_PROPERTY_ENTRYA ACTRL_PROPERTY_ENTRY;
  1370. typedef PACTRL_PROPERTY_ENTRYA PACTRL_PROPERTY_ENTRY;
  1371. typedef struct _ACTRL_ALISTA
  1372.     {
  1373.     ULONG cEntries;
  1374.     /* [size_is] */ PACTRL_PROPERTY_ENTRYA pPropertyAccessList;
  1375.     }  ACTRL_ACCESSA;
  1376. typedef struct _ACTRL_ALISTA *PACTRL_ACCESSA;
  1377. typedef struct _ACTRL_ALISTA ACTRL_AUDITA;
  1378. typedef struct _ACTRL_ALISTA *PACTRL_AUDITA;
  1379. typedef struct _ACTRL_ALISTW
  1380.     {
  1381.     ULONG cEntries;
  1382.     /* [size_is] */ PACTRL_PROPERTY_ENTRYW pPropertyAccessList;
  1383.     }  ACTRL_ACCESSW;
  1384. typedef struct _ACTRL_ALISTW *PACTRL_ACCESSW;
  1385. typedef struct _ACTRL_ALISTW ACTRL_AUDITW;
  1386. typedef struct _ACTRL_ALISTW *PACTRL_AUDITW;
  1387. typedef ACTRL_ACCESSA ACTRL_ACCESS;
  1388. typedef PACTRL_ACCESSA PACTRL_ACCESS;
  1389. typedef ACTRL_AUDITA ACTRL_AUDIT;
  1390. typedef PACTRL_AUDITA PACTRL_AUDIT;
  1391. typedef struct _TRUSTEE_ACCESSA
  1392.     {
  1393.     LPSTR lpProperty;
  1394.     ACCESS_RIGHTS Access;
  1395.     ULONG fAccessFlags;
  1396.     ULONG fReturnedAccess;
  1397.     }  TRUSTEE_ACCESSA;
  1398. typedef struct _TRUSTEE_ACCESSA *PTRUSTEE_ACCESSA;
  1399. typedef struct _TRUSTEE_ACCESSW
  1400.     {
  1401.     LPWSTR lpProperty;
  1402.     ACCESS_RIGHTS Access;
  1403.     ULONG fAccessFlags;
  1404.     ULONG fReturnedAccess;
  1405.     }  TRUSTEE_ACCESSW;
  1406. typedef struct _TRUSTEE_ACCESSW *PTRUSTEE_ACCESSW;
  1407. typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS;
  1408. typedef PTRUSTEE_ACCESSA PTRUSTEE_ACCESS;
  1409. #pragma warning (push)
  1410. #pragma warning (disable: 4201)
  1411. typedef struct _ACTRL_OVERLAPPED
  1412.     {
  1413.     union 
  1414.         {
  1415.         PVOID Provider;
  1416.         ULONG Reserved1;
  1417.         }  ;
  1418.     ULONG Reserved2;
  1419.     HANDLE hEvent;
  1420.     }  ACTRL_OVERLAPPED;
  1421. typedef struct _ACTRL_OVERLAPPED *PACTRL_OVERLAPPED;
  1422. #pragma warning(pop)
  1423. typedef struct _ACTRL_ACCESS_INFOA
  1424.     {
  1425.     ULONG fAccessPermission;
  1426.     LPSTR lpAccessPermissionName;
  1427.     }  ACTRL_ACCESS_INFOA;
  1428. typedef struct _ACTRL_ACCESS_INFOA *PACTRL_ACCESS_INFOA;
  1429. typedef struct _ACTRL_ACCESS_INFOW
  1430.     {
  1431.     ULONG fAccessPermission;
  1432.     LPWSTR lpAccessPermissionName;
  1433.     }  ACTRL_ACCESS_INFOW;
  1434. typedef struct _ACTRL_ACCESS_INFOW *PACTRL_ACCESS_INFOW;
  1435. typedef ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO;
  1436. typedef PACTRL_ACCESS_INFOA PACTRL_ACCESS_INFO;
  1437. typedef struct _ACTRL_CONTROL_INFOA
  1438.     {
  1439.     LPSTR lpControlId;
  1440.     LPSTR lpControlName;
  1441.     }  ACTRL_CONTROL_INFOA;
  1442. typedef struct _ACTRL_CONTROL_INFOA *PACTRL_CONTROL_INFOA;
  1443. typedef struct _ACTRL_CONTROL_INFOW
  1444.     {
  1445.     LPWSTR lpControlId;
  1446.     LPWSTR lpControlName;
  1447.     }  ACTRL_CONTROL_INFOW;
  1448. typedef struct _ACTRL_CONTROL_INFOW *PACTRL_CONTROL_INFOW;
  1449. typedef ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO;
  1450. typedef PACTRL_CONTROL_INFOA PACTRL_CONTROL_INFO;
  1451. typedef 
  1452. enum _PROGRESS_INVOKE_SETTING
  1453.     { ProgressInvokeNever = 1,
  1454. ProgressInvokeEveryObject = ProgressInvokeNever + 1,
  1455. ProgressInvokeOnError = ProgressInvokeEveryObject + 1,
  1456. ProgressCancelOperation = ProgressInvokeOnError + 1,
  1457. ProgressRetryOperation = ProgressCancelOperation + 1
  1458.     }  PROG_INVOKE_SETTING;
  1459. typedef enum _PROGRESS_INVOKE_SETTING *PPROG_INVOKE_SETTING;
  1460. typedef struct _FN_OBJECT_MGR_FUNCTIONS
  1461.     {
  1462.     ULONG Placeholder;
  1463.     }  FN_OBJECT_MGR_FUNCTS;
  1464. typedef struct _FN_OBJECT_MGR_FUNCTIONS *PFN_OBJECT_MGR_FUNCTS;
  1465. typedef struct _INHERITED_FROMA
  1466.     {
  1467.     LONG GenerationGap;
  1468.     LPSTR AncestorName;
  1469.     }  INHERITED_FROMA;
  1470. typedef struct _INHERITED_FROMA *PINHERITED_FROMA;
  1471. typedef struct _INHERITED_FROMW
  1472.     {
  1473.     LONG GenerationGap;
  1474.     LPWSTR AncestorName;
  1475.     }  INHERITED_FROMW;
  1476. typedef struct _INHERITED_FROMW *PINHERITED_FROMW;
  1477. typedef INHERITED_FROMA INHERITED_FROM;
  1478. typedef PINHERITED_FROMA PINHERITED_FROM;
  1479. #else
  1480. #include <accctrl.h>
  1481. #endif
  1482. extern RPC_IF_HANDLE __MIDL_itf_oledb_0328_v0_0_c_ifspec;
  1483. extern RPC_IF_HANDLE __MIDL_itf_oledb_0328_v0_0_s_ifspec;
  1484. #ifndef __ITrusteeAdmin_INTERFACE_DEFINED__
  1485. #define __ITrusteeAdmin_INTERFACE_DEFINED__
  1486. /* interface ITrusteeAdmin */
  1487. /* [unique][uuid][object][local] */ 
  1488. EXTERN_C const IID IID_ITrusteeAdmin;
  1489. #if defined(__cplusplus) && !defined(CINTERFACE)
  1490.     
  1491.     MIDL_INTERFACE("0c733aa1-2a1c-11ce-ade5-00aa0044773d")
  1492.     ITrusteeAdmin : public IUnknown
  1493.     {
  1494.     public:
  1495.         virtual HRESULT STDMETHODCALLTYPE CompareTrustees( 
  1496.             /* [in] */ TRUSTEE_W *pTrustee1,
  1497.             /* [in] */ TRUSTEE_W *pTrustee2) = 0;
  1498.         
  1499.         virtual HRESULT STDMETHODCALLTYPE CreateTrustee( 
  1500.             /* [in] */ TRUSTEE_W *pTrustee,
  1501.             /* [in] */ ULONG cPropertySets,
  1502.             /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]) = 0;
  1503.         
  1504.         virtual HRESULT STDMETHODCALLTYPE DeleteTrustee( 
  1505.             /* [in] */ TRUSTEE_W *pTrustee) = 0;
  1506.         
  1507.         virtual HRESULT STDMETHODCALLTYPE SetTrusteeProperties( 
  1508.             /* [in] */ TRUSTEE_W *pTrustee,
  1509.             /* [in] */ ULONG cPropertySets,
  1510.             /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]) = 0;
  1511.         
  1512.         virtual HRESULT STDMETHODCALLTYPE GetTrusteeProperties( 
  1513.             /* [in] */ TRUSTEE_W *pTrustee,
  1514.             /* [in] */ const ULONG cPropertyIDSets,
  1515.             /* [size_is][in] */ const DBPROPIDSET rgPropertyIDSets[  ],
  1516.             /* [out][in] */ ULONG *pcPropertySets,
  1517.             /* [size_is][size_is][out] */ DBPROPSET **prgPropertySets) = 0;
  1518.         
  1519.     };
  1520.     
  1521. #else  /* C style interface */
  1522.     typedef struct ITrusteeAdminVtbl
  1523.     {
  1524.         BEGIN_INTERFACE
  1525.         
  1526.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1527.             ITrusteeAdmin * This,
  1528.             /* [in] */ REFIID riid,
  1529.             /* [iid_is][out] */ void **ppvObject);
  1530.         
  1531.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1532.             ITrusteeAdmin * This);
  1533.         
  1534.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1535.             ITrusteeAdmin * This);
  1536.         
  1537.         HRESULT ( STDMETHODCALLTYPE *CompareTrustees )( 
  1538.             ITrusteeAdmin * This,
  1539.             /* [in] */ TRUSTEE_W *pTrustee1,
  1540.             /* [in] */ TRUSTEE_W *pTrustee2);
  1541.         
  1542.         HRESULT ( STDMETHODCALLTYPE *CreateTrustee )( 
  1543.             ITrusteeAdmin * This,
  1544.             /* [in] */ TRUSTEE_W *pTrustee,
  1545.             /* [in] */ ULONG cPropertySets,
  1546.             /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]);
  1547.         
  1548.         HRESULT ( STDMETHODCALLTYPE *DeleteTrustee )( 
  1549.             ITrusteeAdmin * This,
  1550.             /* [in] */ TRUSTEE_W *pTrustee);
  1551.         
  1552.         HRESULT ( STDMETHODCALLTYPE *SetTrusteeProperties )( 
  1553.             ITrusteeAdmin * This,
  1554.             /* [in] */ TRUSTEE_W *pTrustee,
  1555.             /* [in] */ ULONG cPropertySets,
  1556.             /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]);
  1557.         
  1558.         HRESULT ( STDMETHODCALLTYPE *GetTrusteeProperties )( 
  1559.             ITrusteeAdmin * This,
  1560.             /* [in] */ TRUSTEE_W *pTrustee,
  1561.             /* [in] */ const ULONG cPropertyIDSets,
  1562.             /* [size_is][in] */ const DBPROPIDSET rgPropertyIDSets[  ],
  1563.             /* [out][in] */ ULONG *pcPropertySets,
  1564.             /* [size_is][size_is][out] */ DBPROPSET **prgPropertySets);
  1565.         
  1566.         END_INTERFACE
  1567.     } ITrusteeAdminVtbl;
  1568.     interface ITrusteeAdmin
  1569.     {
  1570.         CONST_VTBL struct ITrusteeAdminVtbl *lpVtbl;
  1571.     };
  1572.     
  1573. #ifdef COBJMACROS
  1574. #define ITrusteeAdmin_QueryInterface(This,riid,ppvObject)
  1575.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1576. #define ITrusteeAdmin_AddRef(This)
  1577.     (This)->lpVtbl -> AddRef(This)
  1578. #define ITrusteeAdmin_Release(This)
  1579.     (This)->lpVtbl -> Release(This)
  1580. #define ITrusteeAdmin_CompareTrustees(This,pTrustee1,pTrustee2)
  1581.     (This)->lpVtbl -> CompareTrustees(This,pTrustee1,pTrustee2)
  1582. #define ITrusteeAdmin_CreateTrustee(This,pTrustee,cPropertySets,rgPropertySets)
  1583.     (This)->lpVtbl -> CreateTrustee(This,pTrustee,cPropertySets,rgPropertySets)
  1584. #define ITrusteeAdmin_DeleteTrustee(This,pTrustee)
  1585.     (This)->lpVtbl -> DeleteTrustee(This,pTrustee)
  1586. #define ITrusteeAdmin_SetTrusteeProperties(This,pTrustee,cPropertySets,rgPropertySets)
  1587.     (This)->lpVtbl -> SetTrusteeProperties(This,pTrustee,cPropertySets,rgPropertySets)
  1588. #define ITrusteeAdmin_GetTrusteeProperties(This,pTrustee,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
  1589.     (This)->lpVtbl -> GetTrusteeProperties(This,pTrustee,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
  1590. #endif /* COBJMACROS */
  1591. #endif  /* C style interface */
  1592. HRESULT STDMETHODCALLTYPE ITrusteeAdmin_CompareTrustees_Proxy( 
  1593.     ITrusteeAdmin * This,
  1594.     /* [in] */ TRUSTEE_W *pTrustee1,
  1595.     /* [in] */ TRUSTEE_W *pTrustee2);
  1596. void __RPC_STUB ITrusteeAdmin_CompareTrustees_Stub(
  1597.     IRpcStubBuffer *This,
  1598.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1599.     PRPC_MESSAGE _pRpcMessage,
  1600.     DWORD *_pdwStubPhase);
  1601. HRESULT STDMETHODCALLTYPE ITrusteeAdmin_CreateTrustee_Proxy( 
  1602.     ITrusteeAdmin * This,
  1603.     /* [in] */ TRUSTEE_W *pTrustee,
  1604.     /* [in] */ ULONG cPropertySets,
  1605.     /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]);
  1606. void __RPC_STUB ITrusteeAdmin_CreateTrustee_Stub(
  1607.     IRpcStubBuffer *This,
  1608.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1609.     PRPC_MESSAGE _pRpcMessage,
  1610.     DWORD *_pdwStubPhase);
  1611. HRESULT STDMETHODCALLTYPE ITrusteeAdmin_DeleteTrustee_Proxy( 
  1612.     ITrusteeAdmin * This,
  1613.     /* [in] */ TRUSTEE_W *pTrustee);
  1614. void __RPC_STUB ITrusteeAdmin_DeleteTrustee_Stub(
  1615.     IRpcStubBuffer *This,
  1616.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1617.     PRPC_MESSAGE _pRpcMessage,
  1618.     DWORD *_pdwStubPhase);
  1619. HRESULT STDMETHODCALLTYPE ITrusteeAdmin_SetTrusteeProperties_Proxy( 
  1620.     ITrusteeAdmin * This,
  1621.     /* [in] */ TRUSTEE_W *pTrustee,
  1622.     /* [in] */ ULONG cPropertySets,
  1623.     /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ]);
  1624. void __RPC_STUB ITrusteeAdmin_SetTrusteeProperties_Stub(
  1625.     IRpcStubBuffer *This,
  1626.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1627.     PRPC_MESSAGE _pRpcMessage,
  1628.     DWORD *_pdwStubPhase);
  1629. HRESULT STDMETHODCALLTYPE ITrusteeAdmin_GetTrusteeProperties_Proxy( 
  1630.     ITrusteeAdmin * This,
  1631.     /* [in] */ TRUSTEE_W *pTrustee,
  1632.     /* [in] */ const ULONG cPropertyIDSets,
  1633.     /* [size_is][in] */ const DBPROPIDSET rgPropertyIDSets[  ],
  1634.     /* [out][in] */ ULONG *pcPropertySets,
  1635.     /* [size_is][size_is][out] */ DBPROPSET **prgPropertySets);
  1636. void __RPC_STUB ITrusteeAdmin_GetTrusteeProperties_Stub(
  1637.     IRpcStubBuffer *This,
  1638.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1639.     PRPC_MESSAGE _pRpcMessage,
  1640.     DWORD *_pdwStubPhase);
  1641. #endif  /* __ITrusteeAdmin_INTERFACE_DEFINED__ */
  1642. #ifndef __ITrusteeGroupAdmin_INTERFACE_DEFINED__
  1643. #define __ITrusteeGroupAdmin_INTERFACE_DEFINED__
  1644. /* interface ITrusteeGroupAdmin */
  1645. /* [unique][uuid][object][local] */ 
  1646. EXTERN_C const IID IID_ITrusteeGroupAdmin;
  1647. #if defined(__cplusplus) && !defined(CINTERFACE)
  1648.     
  1649.     MIDL_INTERFACE("0c733aa2-2a1c-11ce-ade5-00aa0044773d")
  1650.     ITrusteeGroupAdmin : public IUnknown
  1651.     {
  1652.     public:
  1653.         virtual HRESULT STDMETHODCALLTYPE AddMember( 
  1654.             /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1655.             /* [in] */ TRUSTEE_W *pMemberTrustee) = 0;
  1656.         
  1657.         virtual HRESULT STDMETHODCALLTYPE DeleteMember( 
  1658.             /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1659.             /* [in] */ TRUSTEE_W *pMemberTrustee) = 0;
  1660.         
  1661.         virtual HRESULT STDMETHODCALLTYPE IsMember( 
  1662.             /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1663.             /* [in] */ TRUSTEE_W *pMemberTrustee,
  1664.             /* [out] */ BOOL *pfStatus) = 0;
  1665.         
  1666.         virtual HRESULT STDMETHODCALLTYPE GetMembers( 
  1667.             /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1668.             /* [out] */ ULONG *pcMembers,
  1669.             /* [out] */ TRUSTEE_W **prgMembers) = 0;
  1670.         
  1671.         virtual HRESULT STDMETHODCALLTYPE GetMemberships( 
  1672.             /* [in] */ TRUSTEE_W *pTrustee,
  1673.             /* [out] */ ULONG *pcMemberships,
  1674.             /* [out] */ TRUSTEE_W **prgMemberships) = 0;
  1675.         
  1676.     };
  1677.     
  1678. #else  /* C style interface */
  1679.     typedef struct ITrusteeGroupAdminVtbl
  1680.     {
  1681.         BEGIN_INTERFACE
  1682.         
  1683.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1684.             ITrusteeGroupAdmin * This,
  1685.             /* [in] */ REFIID riid,
  1686.             /* [iid_is][out] */ void **ppvObject);
  1687.         
  1688.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1689.             ITrusteeGroupAdmin * This);
  1690.         
  1691.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1692.             ITrusteeGroupAdmin * This);
  1693.         
  1694.         HRESULT ( STDMETHODCALLTYPE *AddMember )( 
  1695.             ITrusteeGroupAdmin * This,
  1696.             /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1697.             /* [in] */ TRUSTEE_W *pMemberTrustee);
  1698.         
  1699.         HRESULT ( STDMETHODCALLTYPE *DeleteMember )( 
  1700.             ITrusteeGroupAdmin * This,
  1701.             /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1702.             /* [in] */ TRUSTEE_W *pMemberTrustee);
  1703.         
  1704.         HRESULT ( STDMETHODCALLTYPE *IsMember )( 
  1705.             ITrusteeGroupAdmin * This,
  1706.             /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1707.             /* [in] */ TRUSTEE_W *pMemberTrustee,
  1708.             /* [out] */ BOOL *pfStatus);
  1709.         
  1710.         HRESULT ( STDMETHODCALLTYPE *GetMembers )( 
  1711.             ITrusteeGroupAdmin * This,
  1712.             /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1713.             /* [out] */ ULONG *pcMembers,
  1714.             /* [out] */ TRUSTEE_W **prgMembers);
  1715.         
  1716.         HRESULT ( STDMETHODCALLTYPE *GetMemberships )( 
  1717.             ITrusteeGroupAdmin * This,
  1718.             /* [in] */ TRUSTEE_W *pTrustee,
  1719.             /* [out] */ ULONG *pcMemberships,
  1720.             /* [out] */ TRUSTEE_W **prgMemberships);
  1721.         
  1722.         END_INTERFACE
  1723.     } ITrusteeGroupAdminVtbl;
  1724.     interface ITrusteeGroupAdmin
  1725.     {
  1726.         CONST_VTBL struct ITrusteeGroupAdminVtbl *lpVtbl;
  1727.     };
  1728.     
  1729. #ifdef COBJMACROS
  1730. #define ITrusteeGroupAdmin_QueryInterface(This,riid,ppvObject)
  1731.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1732. #define ITrusteeGroupAdmin_AddRef(This)
  1733.     (This)->lpVtbl -> AddRef(This)
  1734. #define ITrusteeGroupAdmin_Release(This)
  1735.     (This)->lpVtbl -> Release(This)
  1736. #define ITrusteeGroupAdmin_AddMember(This,pMembershipTrustee,pMemberTrustee)
  1737.     (This)->lpVtbl -> AddMember(This,pMembershipTrustee,pMemberTrustee)
  1738. #define ITrusteeGroupAdmin_DeleteMember(This,pMembershipTrustee,pMemberTrustee)
  1739.     (This)->lpVtbl -> DeleteMember(This,pMembershipTrustee,pMemberTrustee)
  1740. #define ITrusteeGroupAdmin_IsMember(This,pMembershipTrustee,pMemberTrustee,pfStatus)
  1741.     (This)->lpVtbl -> IsMember(This,pMembershipTrustee,pMemberTrustee,pfStatus)
  1742. #define ITrusteeGroupAdmin_GetMembers(This,pMembershipTrustee,pcMembers,prgMembers)
  1743.     (This)->lpVtbl -> GetMembers(This,pMembershipTrustee,pcMembers,prgMembers)
  1744. #define ITrusteeGroupAdmin_GetMemberships(This,pTrustee,pcMemberships,prgMemberships)
  1745.     (This)->lpVtbl -> GetMemberships(This,pTrustee,pcMemberships,prgMemberships)
  1746. #endif /* COBJMACROS */
  1747. #endif  /* C style interface */
  1748. HRESULT STDMETHODCALLTYPE ITrusteeGroupAdmin_AddMember_Proxy( 
  1749.     ITrusteeGroupAdmin * This,
  1750.     /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1751.     /* [in] */ TRUSTEE_W *pMemberTrustee);
  1752. void __RPC_STUB ITrusteeGroupAdmin_AddMember_Stub(
  1753.     IRpcStubBuffer *This,
  1754.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1755.     PRPC_MESSAGE _pRpcMessage,
  1756.     DWORD *_pdwStubPhase);
  1757. HRESULT STDMETHODCALLTYPE ITrusteeGroupAdmin_DeleteMember_Proxy( 
  1758.     ITrusteeGroupAdmin * This,
  1759.     /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1760.     /* [in] */ TRUSTEE_W *pMemberTrustee);
  1761. void __RPC_STUB ITrusteeGroupAdmin_DeleteMember_Stub(
  1762.     IRpcStubBuffer *This,
  1763.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1764.     PRPC_MESSAGE _pRpcMessage,
  1765.     DWORD *_pdwStubPhase);
  1766. HRESULT STDMETHODCALLTYPE ITrusteeGroupAdmin_IsMember_Proxy( 
  1767.     ITrusteeGroupAdmin * This,
  1768.     /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1769.     /* [in] */ TRUSTEE_W *pMemberTrustee,
  1770.     /* [out] */ BOOL *pfStatus);
  1771. void __RPC_STUB ITrusteeGroupAdmin_IsMember_Stub(
  1772.     IRpcStubBuffer *This,
  1773.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1774.     PRPC_MESSAGE _pRpcMessage,
  1775.     DWORD *_pdwStubPhase);
  1776. HRESULT STDMETHODCALLTYPE ITrusteeGroupAdmin_GetMembers_Proxy( 
  1777.     ITrusteeGroupAdmin * This,
  1778.     /* [in] */ TRUSTEE_W *pMembershipTrustee,
  1779.     /* [out] */ ULONG *pcMembers,
  1780.     /* [out] */ TRUSTEE_W **prgMembers);
  1781. void __RPC_STUB ITrusteeGroupAdmin_GetMembers_Stub(
  1782.     IRpcStubBuffer *This,
  1783.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1784.     PRPC_MESSAGE _pRpcMessage,
  1785.     DWORD *_pdwStubPhase);
  1786. HRESULT STDMETHODCALLTYPE ITrusteeGroupAdmin_GetMemberships_Proxy( 
  1787.     ITrusteeGroupAdmin * This,
  1788.     /* [in] */ TRUSTEE_W *pTrustee,
  1789.     /* [out] */ ULONG *pcMemberships,
  1790.     /* [out] */ TRUSTEE_W **prgMemberships);
  1791. void __RPC_STUB ITrusteeGroupAdmin_GetMemberships_Stub(
  1792.     IRpcStubBuffer *This,
  1793.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1794.     PRPC_MESSAGE _pRpcMessage,
  1795.     DWORD *_pdwStubPhase);
  1796. #endif  /* __ITrusteeGroupAdmin_INTERFACE_DEFINED__ */
  1797. #ifndef __IObjectAccessControl_INTERFACE_DEFINED__
  1798. #define __IObjectAccessControl_INTERFACE_DEFINED__
  1799. /* interface IObjectAccessControl */
  1800. /* [unique][uuid][object][local] */ 
  1801. EXTERN_C const IID IID_IObjectAccessControl;
  1802. #if defined(__cplusplus) && !defined(CINTERFACE)
  1803.     
  1804.     MIDL_INTERFACE("0c733aa3-2a1c-11ce-ade5-00aa0044773d")
  1805.     IObjectAccessControl : public IUnknown
  1806.     {
  1807.     public:
  1808.         virtual HRESULT STDMETHODCALLTYPE GetObjectAccessRights( 
  1809.             /* [in] */ SEC_OBJECT *pObject,
  1810.             /* [out][in] */ ULONG *pcAccessEntries,
  1811.             /* [out][in] */ EXPLICIT_ACCESS_W **prgAccessEntries) = 0;
  1812.         
  1813.         virtual HRESULT STDMETHODCALLTYPE GetObjectOwner( 
  1814.             /* [in] */ SEC_OBJECT *pObject,
  1815.             /* [out] */ TRUSTEE_W **ppOwner) = 0;
  1816.         
  1817.         virtual HRESULT STDMETHODCALLTYPE IsObjectAccessAllowed( 
  1818.             /* [in] */ SEC_OBJECT *pObject,
  1819.             /* [in] */ EXPLICIT_ACCESS_W *pAccessEntry,
  1820.             /* [out] */ BOOL *pfResult) = 0;
  1821.         
  1822.         virtual HRESULT STDMETHODCALLTYPE SetObjectAccessRights( 
  1823.             /* [in] */ SEC_OBJECT *pObject,
  1824.             /* [in] */ ULONG cAccessEntries,
  1825.             /* [out][in] */ EXPLICIT_ACCESS_W *prgAccessEntries) = 0;
  1826.         
  1827.         virtual HRESULT STDMETHODCALLTYPE SetObjectOwner( 
  1828.             /* [in] */ SEC_OBJECT *pObject,
  1829.             /* [in] */ TRUSTEE_W *pOwner) = 0;
  1830.         
  1831.     };
  1832.     
  1833. #else  /* C style interface */
  1834.     typedef struct IObjectAccessControlVtbl
  1835.     {
  1836.         BEGIN_INTERFACE
  1837.         
  1838.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1839.             IObjectAccessControl * This,
  1840.             /* [in] */ REFIID riid,
  1841.             /* [iid_is][out] */ void **ppvObject);
  1842.         
  1843.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1844.             IObjectAccessControl * This);
  1845.         
  1846.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1847.             IObjectAccessControl * This);
  1848.         
  1849.         HRESULT ( STDMETHODCALLTYPE *GetObjectAccessRights )( 
  1850.             IObjectAccessControl * This,
  1851.             /* [in] */ SEC_OBJECT *pObject,
  1852.             /* [out][in] */ ULONG *pcAccessEntries,
  1853.             /* [out][in] */ EXPLICIT_ACCESS_W **prgAccessEntries);
  1854.         
  1855.         HRESULT ( STDMETHODCALLTYPE *GetObjectOwner )( 
  1856.             IObjectAccessControl * This,
  1857.             /* [in] */ SEC_OBJECT *pObject,
  1858.             /* [out] */ TRUSTEE_W **ppOwner);
  1859.         
  1860.         HRESULT ( STDMETHODCALLTYPE *IsObjectAccessAllowed )( 
  1861.             IObjectAccessControl * This,
  1862.             /* [in] */ SEC_OBJECT *pObject,
  1863.             /* [in] */ EXPLICIT_ACCESS_W *pAccessEntry,
  1864.             /* [out] */ BOOL *pfResult);
  1865.         
  1866.         HRESULT ( STDMETHODCALLTYPE *SetObjectAccessRights )( 
  1867.             IObjectAccessControl * This,
  1868.             /* [in] */ SEC_OBJECT *pObject,
  1869.             /* [in] */ ULONG cAccessEntries,
  1870.             /* [out][in] */ EXPLICIT_ACCESS_W *prgAccessEntries);
  1871.         
  1872.         HRESULT ( STDMETHODCALLTYPE *SetObjectOwner )( 
  1873.             IObjectAccessControl * This,
  1874.             /* [in] */ SEC_OBJECT *pObject,
  1875.             /* [in] */ TRUSTEE_W *pOwner);
  1876.         
  1877.         END_INTERFACE
  1878.     } IObjectAccessControlVtbl;
  1879.     interface IObjectAccessControl
  1880.     {
  1881.         CONST_VTBL struct IObjectAccessControlVtbl *lpVtbl;
  1882.     };
  1883.     
  1884. #ifdef COBJMACROS
  1885. #define IObjectAccessControl_QueryInterface(This,riid,ppvObject)
  1886.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1887. #define IObjectAccessControl_AddRef(This)
  1888.     (This)->lpVtbl -> AddRef(This)
  1889. #define IObjectAccessControl_Release(This)
  1890.     (This)->lpVtbl -> Release(This)
  1891. #define IObjectAccessControl_GetObjectAccessRights(This,pObject,pcAccessEntries,prgAccessEntries)
  1892.     (This)->lpVtbl -> GetObjectAccessRights(This,pObject,pcAccessEntries,prgAccessEntries)
  1893. #define IObjectAccessControl_GetObjectOwner(This,pObject,ppOwner)
  1894.     (This)->lpVtbl -> GetObjectOwner(This,pObject,ppOwner)
  1895. #define IObjectAccessControl_IsObjectAccessAllowed(This,pObject,pAccessEntry,pfResult)
  1896.     (This)->lpVtbl -> IsObjectAccessAllowed(This,pObject,pAccessEntry,pfResult)
  1897. #define IObjectAccessControl_SetObjectAccessRights(This,pObject,cAccessEntries,prgAccessEntries)
  1898.     (This)->lpVtbl -> SetObjectAccessRights(This,pObject,cAccessEntries,prgAccessEntries)
  1899. #define IObjectAccessControl_SetObjectOwner(This,pObject,pOwner)
  1900.     (This)->lpVtbl -> SetObjectOwner(This,pObject,pOwner)
  1901. #endif /* COBJMACROS */
  1902. #endif  /* C style interface */
  1903. HRESULT STDMETHODCALLTYPE IObjectAccessControl_GetObjectAccessRights_Proxy( 
  1904.     IObjectAccessControl * This,
  1905.     /* [in] */ SEC_OBJECT *pObject,
  1906.     /* [out][in] */ ULONG *pcAccessEntries,
  1907.     /* [out][in] */ EXPLICIT_ACCESS_W **prgAccessEntries);
  1908. void __RPC_STUB IObjectAccessControl_GetObjectAccessRights_Stub(
  1909.     IRpcStubBuffer *This,
  1910.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1911.     PRPC_MESSAGE _pRpcMessage,
  1912.     DWORD *_pdwStubPhase);
  1913. HRESULT STDMETHODCALLTYPE IObjectAccessControl_GetObjectOwner_Proxy( 
  1914.     IObjectAccessControl * This,
  1915.     /* [in] */ SEC_OBJECT *pObject,
  1916.     /* [out] */ TRUSTEE_W **ppOwner);
  1917. void __RPC_STUB IObjectAccessControl_GetObjectOwner_Stub(
  1918.     IRpcStubBuffer *This,
  1919.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1920.     PRPC_MESSAGE _pRpcMessage,
  1921.     DWORD *_pdwStubPhase);
  1922. HRESULT STDMETHODCALLTYPE IObjectAccessControl_IsObjectAccessAllowed_Proxy( 
  1923.     IObjectAccessControl * This,
  1924.     /* [in] */ SEC_OBJECT *pObject,
  1925.     /* [in] */ EXPLICIT_ACCESS_W *pAccessEntry,
  1926.     /* [out] */ BOOL *pfResult);
  1927. void __RPC_STUB IObjectAccessControl_IsObjectAccessAllowed_Stub(
  1928.     IRpcStubBuffer *This,
  1929.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1930.     PRPC_MESSAGE _pRpcMessage,
  1931.     DWORD *_pdwStubPhase);
  1932. HRESULT STDMETHODCALLTYPE IObjectAccessControl_SetObjectAccessRights_Proxy( 
  1933.     IObjectAccessControl * This,
  1934.     /* [in] */ SEC_OBJECT *pObject,
  1935.     /* [in] */ ULONG cAccessEntries,
  1936.     /* [out][in] */ EXPLICIT_ACCESS_W *prgAccessEntries);
  1937. void __RPC_STUB IObjectAccessControl_SetObjectAccessRights_Stub(
  1938.     IRpcStubBuffer *This,
  1939.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1940.     PRPC_MESSAGE _pRpcMessage,
  1941.     DWORD *_pdwStubPhase);
  1942. HRESULT STDMETHODCALLTYPE IObjectAccessControl_SetObjectOwner_Proxy( 
  1943.     IObjectAccessControl * This,
  1944.     /* [in] */ SEC_OBJECT *pObject,
  1945.     /* [in] */ TRUSTEE_W *pOwner);
  1946. void __RPC_STUB IObjectAccessControl_SetObjectOwner_Stub(
  1947.     IRpcStubBuffer *This,
  1948.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1949.     PRPC_MESSAGE _pRpcMessage,
  1950.     DWORD *_pdwStubPhase);
  1951. #endif  /* __IObjectAccessControl_INTERFACE_DEFINED__ */
  1952. #ifndef __ISecurityInfo_INTERFACE_DEFINED__
  1953. #define __ISecurityInfo_INTERFACE_DEFINED__
  1954. /* interface ISecurityInfo */
  1955. /* [unique][uuid][object][local] */ 
  1956. //@@@+ V2.1
  1957. #if( OLEDBVER >= 0x0210 )
  1958. typedef DWORD ACCESS_MASK;
  1959. enum ACCESS_MASKENUM
  1960.     { PERM_EXCLUSIVE = 0x200L,
  1961. PERM_READDESIGN = 0x400L,
  1962. PERM_WRITEDESIGN = 0x800L,
  1963. PERM_WITHGRANT = 0x1000L,
  1964. PERM_REFERENCE = 0x2000L,
  1965. PERM_CREATE = 0x4000L,
  1966. PERM_INSERT = 0x8000L,
  1967. PERM_DELETE = 0x10000L,
  1968. PERM_READCONTROL = 0x20000L,
  1969. PERM_WRITEPERMISSIONS = 0x40000L,
  1970. PERM_WRITEOWNER = 0x80000L,
  1971. PERM_MAXIMUM_ALLOWED = 0x2000000L,
  1972. PERM_ALL = 0x10000000L,
  1973. PERM_EXECUTE = 0x20000000L,
  1974. PERM_READ = 0x80000000L,
  1975. PERM_UPDATE = 0x40000000L,
  1976. PERM_DROP = 0x100L
  1977.     } ;
  1978. #define PERM_DESIGN  PERM_WRITEDESIGN
  1979. #endif // OLEDBVER >= 0x0210
  1980. //@@@- V2.1
  1981. EXTERN_C const IID IID_ISecurityInfo;
  1982. #if defined(__cplusplus) && !defined(CINTERFACE)
  1983.     
  1984.     MIDL_INTERFACE("0c733aa4-2a1c-11ce-ade5-00aa0044773d")
  1985.     ISecurityInfo : public IUnknown
  1986.     {
  1987.     public:
  1988.         virtual HRESULT STDMETHODCALLTYPE GetCurrentTrustee( 
  1989.             /* [out] */ TRUSTEE_W **ppTrustee) = 0;
  1990.         
  1991.         virtual HRESULT STDMETHODCALLTYPE GetObjectTypes( 
  1992.             /* [out] */ ULONG *cObjectTypes,
  1993.             /* [out] */ GUID **rgObjectTypes) = 0;
  1994.         
  1995.         virtual HRESULT STDMETHODCALLTYPE GetPermissions( 
  1996.             /* [in] */ GUID ObjectType,
  1997.             /* [out] */ ACCESS_MASK *pPermissions) = 0;
  1998.         
  1999.     };
  2000.     
  2001. #else  /* C style interface */
  2002.     typedef struct ISecurityInfoVtbl
  2003.     {
  2004.         BEGIN_INTERFACE
  2005.         
  2006.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2007.             ISecurityInfo * This,
  2008.             /* [in] */ REFIID riid,
  2009.             /* [iid_is][out] */ void **ppvObject);
  2010.         
  2011.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2012.             ISecurityInfo * This);
  2013.         
  2014.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2015.             ISecurityInfo * This);
  2016.         
  2017.         HRESULT ( STDMETHODCALLTYPE *GetCurrentTrustee )( 
  2018.             ISecurityInfo * This,
  2019.             /* [out] */ TRUSTEE_W **ppTrustee);
  2020.         
  2021.         HRESULT ( STDMETHODCALLTYPE *GetObjectTypes )( 
  2022.             ISecurityInfo * This,
  2023.             /* [out] */ ULONG *cObjectTypes,
  2024.             /* [out] */ GUID **rgObjectTypes);
  2025.         
  2026.         HRESULT ( STDMETHODCALLTYPE *GetPermissions )( 
  2027.             ISecurityInfo * This,
  2028.             /* [in] */ GUID ObjectType,
  2029.             /* [out] */ ACCESS_MASK *pPermissions);
  2030.         
  2031.         END_INTERFACE
  2032.     } ISecurityInfoVtbl;
  2033.     interface ISecurityInfo
  2034.     {
  2035.         CONST_VTBL struct ISecurityInfoVtbl *lpVtbl;
  2036.     };
  2037.     
  2038. #ifdef COBJMACROS
  2039. #define ISecurityInfo_QueryInterface(This,riid,ppvObject)
  2040.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2041. #define ISecurityInfo_AddRef(This)
  2042.     (This)->lpVtbl -> AddRef(This)
  2043. #define ISecurityInfo_Release(This)
  2044.     (This)->lpVtbl -> Release(This)
  2045. #define ISecurityInfo_GetCurrentTrustee(This,ppTrustee)
  2046.     (This)->lpVtbl -> GetCurrentTrustee(This,ppTrustee)
  2047. #define ISecurityInfo_GetObjectTypes(This,cObjectTypes,rgObjectTypes)
  2048.     (This)->lpVtbl -> GetObjectTypes(This,cObjectTypes,rgObjectTypes)
  2049. #define ISecurityInfo_GetPermissions(This,ObjectType,pPermissions)
  2050.     (This)->lpVtbl -> GetPermissions(This,ObjectType,pPermissions)
  2051. #endif /* COBJMACROS */
  2052. #endif  /* C style interface */
  2053. HRESULT STDMETHODCALLTYPE ISecurityInfo_GetCurrentTrustee_Proxy( 
  2054.     ISecurityInfo * This,
  2055.     /* [out] */ TRUSTEE_W **ppTrustee);
  2056. void __RPC_STUB ISecurityInfo_GetCurrentTrustee_Stub(
  2057.     IRpcStubBuffer *This,
  2058.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2059.     PRPC_MESSAGE _pRpcMessage,
  2060.     DWORD *_pdwStubPhase);
  2061. HRESULT STDMETHODCALLTYPE ISecurityInfo_GetObjectTypes_Proxy( 
  2062.     ISecurityInfo * This,
  2063.     /* [out] */ ULONG *cObjectTypes,
  2064.     /* [out] */ GUID **rgObjectTypes);
  2065. void __RPC_STUB ISecurityInfo_GetObjectTypes_Stub(
  2066.     IRpcStubBuffer *This,
  2067.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2068.     PRPC_MESSAGE _pRpcMessage,
  2069.     DWORD *_pdwStubPhase);
  2070. HRESULT STDMETHODCALLTYPE ISecurityInfo_GetPermissions_Proxy( 
  2071.     ISecurityInfo * This,
  2072.     /* [in] */ GUID ObjectType,
  2073.     /* [out] */ ACCESS_MASK *pPermissions);
  2074. void __RPC_STUB ISecurityInfo_GetPermissions_Stub(
  2075.     IRpcStubBuffer *This,
  2076.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2077.     PRPC_MESSAGE _pRpcMessage,
  2078.     DWORD *_pdwStubPhase);
  2079. #endif  /* __ISecurityInfo_INTERFACE_DEFINED__ */
  2080. /* interface __MIDL_itf_oledb_0332 */
  2081. /* [local] */ 
  2082. #endif // UNDER_CE
  2083. extern RPC_IF_HANDLE __MIDL_itf_oledb_0332_v0_0_c_ifspec;
  2084. extern RPC_IF_HANDLE __MIDL_itf_oledb_0332_v0_0_s_ifspec;
  2085. #ifndef __ITableCreation_INTERFACE_DEFINED__
  2086. #define __ITableCreation_INTERFACE_DEFINED__
  2087. /* interface ITableCreation */
  2088. /* [unique][uuid][object][local] */ 
  2089. EXTERN_C const IID IID_ITableCreation;
  2090. #if defined(__cplusplus) && !defined(CINTERFACE)
  2091.     
  2092.     MIDL_INTERFACE("0c733abc-2a1c-11ce-ade5-00aa0044773d")
  2093.     ITableCreation : public ITableDefinition
  2094.     {
  2095.     public:
  2096.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetTableDefinition( 
  2097.             /* [in] */ DBID *pTableID,
  2098.             /* [out] */ DBORDINAL *pcColumnDescs,
  2099.             /* [size_is][size_is][out] */ DBCOLUMNDESC *prgColumnDescs[  ],
  2100.             /* [out] */ ULONG *pcPropertySets,
  2101.             /* [size_is][size_is][out] */ DBPROPSET *prgPropertySets[  ],
  2102.             /* [out] */ ULONG *pcConstraintDescs,
  2103.             /* [size_is][size_is][out] */ DBCONSTRAINTDESC *prgConstraintDescs[  ],
  2104.             /* [out] */ OLECHAR **ppwszStringBuffer) = 0;
  2105.         
  2106.     };
  2107.     
  2108. #else  /* C style interface */
  2109.     typedef struct ITableCreationVtbl
  2110.     {
  2111.         BEGIN_INTERFACE
  2112.         
  2113.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2114.             ITableCreation * This,
  2115.             /* [in] */ REFIID riid,
  2116.             /* [iid_is][out] */ void **ppvObject);
  2117.         
  2118.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2119.             ITableCreation * This);
  2120.         
  2121.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2122.             ITableCreation * This);
  2123.         
  2124.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateTable )( 
  2125.             ITableCreation * This,
  2126.             /* [in] */ IUnknown *pUnkOuter,
  2127.             /* [in] */ DBID *pTableID,
  2128.             /* [in] */ DBORDINAL cColumnDescs,
  2129.             /* [size_is][in] */ const DBCOLUMNDESC rgColumnDescs[  ],
  2130.             /* [in] */ REFIID riid,
  2131.             /* [in] */ ULONG cPropertySets,
  2132.             /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ],
  2133.             /* [out] */ DBID **ppTableID,
  2134.             /* [iid_is][out] */ IUnknown **ppRowset);
  2135.         
  2136.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DropTable )( 
  2137.             ITableCreation * This,
  2138.             /* [unique][in] */ DBID *pTableID);
  2139.         
  2140.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *AddColumn )( 
  2141.             ITableCreation * This,
  2142.             /* [in] */ DBID *pTableID,
  2143.             /* [out][in] */ DBCOLUMNDESC *pColumnDesc,
  2144.             /* [out] */ DBID **ppColumnID);
  2145.         
  2146.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DropColumn )( 
  2147.             ITableCreation * This,
  2148.             /* [unique][in] */ DBID *pTableID,
  2149.             /* [unique][in] */ DBID *pColumnID);
  2150.         
  2151.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetTableDefinition )( 
  2152.             ITableCreation * This,
  2153.             /* [in] */ DBID *pTableID,
  2154.             /* [out] */ DBORDINAL *pcColumnDescs,
  2155.             /* [size_is][size_is][out] */ DBCOLUMNDESC *prgColumnDescs[  ],
  2156.             /* [out] */ ULONG *pcPropertySets,
  2157.             /* [size_is][size_is][out] */ DBPROPSET *prgPropertySets[  ],
  2158.             /* [out] */ ULONG *pcConstraintDescs,
  2159.             /* [size_is][size_is][out] */ DBCONSTRAINTDESC *prgConstraintDescs[  ],
  2160.             /* [out] */ OLECHAR **ppwszStringBuffer);
  2161.         
  2162.         END_INTERFACE
  2163.     } ITableCreationVtbl;
  2164.     interface ITableCreation
  2165.     {
  2166.         CONST_VTBL struct ITableCreationVtbl *lpVtbl;
  2167.     };
  2168.     
  2169. #ifdef COBJMACROS
  2170. #define ITableCreation_QueryInterface(This,riid,ppvObject)
  2171.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2172. #define ITableCreation_AddRef(This)
  2173.     (This)->lpVtbl -> AddRef(This)
  2174. #define ITableCreation_Release(This)
  2175.     (This)->lpVtbl -> Release(This)
  2176. #define ITableCreation_CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
  2177.     (This)->lpVtbl -> CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
  2178. #define ITableCreation_DropTable(This,pTableID)
  2179.     (This)->lpVtbl -> DropTable(This,pTableID)
  2180. #define ITableCreation_AddColumn(This,pTableID,pColumnDesc,ppColumnID)
  2181.     (This)->lpVtbl -> AddColumn(This,pTableID,pColumnDesc,ppColumnID)
  2182. #define ITableCreation_DropColumn(This,pTableID,pColumnID)
  2183.     (This)->lpVtbl -> DropColumn(This,pTableID,pColumnID)
  2184. #define ITableCreation_GetTableDefinition(This,pTableID,pcColumnDescs,prgColumnDescs,pcPropertySets,prgPropertySets,pcConstraintDescs,prgConstraintDescs,ppwszStringBuffer)
  2185.     (This)->lpVtbl -> GetTableDefinition(This,pTableID,pcColumnDescs,prgColumnDescs,pcPropertySets,prgPropertySets,pcConstraintDescs,prgConstraintDescs,ppwszStringBuffer)
  2186. #endif /* COBJMACROS */
  2187. #endif  /* C style interface */
  2188. /* [local] */ HRESULT STDMETHODCALLTYPE ITableCreation_GetTableDefinition_Proxy( 
  2189.     ITableCreation * This,
  2190.     /* [in] */ DBID *pTableID,
  2191.     /* [out] */ DBORDINAL *pcColumnDescs,
  2192.     /* [size_is][size_is][out] */ DBCOLUMNDESC *prgColumnDescs[  ],
  2193.     /* [out] */ ULONG *pcPropertySets,
  2194.     /* [size_is][size_is][out] */ DBPROPSET *prgPropertySets[  ],
  2195.     /* [out] */ ULONG *pcConstraintDescs,
  2196.     /* [size_is][size_is][out] */ DBCONSTRAINTDESC *prgConstraintDescs[  ],
  2197.     /* [out] */ OLECHAR **ppwszStringBuffer);
  2198. void __RPC_STUB ITableCreation_GetTableDefinition_Stub(
  2199.     IRpcStubBuffer *This,
  2200.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2201.     PRPC_MESSAGE _pRpcMessage,
  2202.     DWORD *_pdwStubPhase);
  2203. #endif  /* __ITableCreation_INTERFACE_DEFINED__ */
  2204. #ifndef __ITableDefinitionWithConstraints_INTERFACE_DEFINED__
  2205. #define __ITableDefinitionWithConstraints_INTERFACE_DEFINED__
  2206. /* interface ITableDefinitionWithConstraints */
  2207. /* [unique][uuid][object][local] */ 
  2208. EXTERN_C const IID IID_ITableDefinitionWithConstraints;
  2209. #if defined(__cplusplus) && !defined(CINTERFACE)
  2210.     
  2211.     MIDL_INTERFACE("0c733aab-2a1c-11ce-ade5-00aa0044773d")
  2212.     ITableDefinitionWithConstraints : public ITableCreation
  2213.     {
  2214.     public:
  2215.         virtual HRESULT STDMETHODCALLTYPE AddConstraint( 
  2216.             /* [in] */ DBID *pTableID,
  2217.             /* [in] */ DBCONSTRAINTDESC *pConstraintDesc) = 0;
  2218.         
  2219.         virtual HRESULT STDMETHODCALLTYPE CreateTableWithConstraints( 
  2220.             /* [in] */ IUnknown *pUnkOuter,
  2221.             /* [in] */ DBID *pTableID,
  2222.             /* [in] */ DBORDINAL cColumnDescs,
  2223.             /* [out][size_is][in] */ DBCOLUMNDESC rgColumnDescs[  ],
  2224.             /* [in] */ ULONG cConstraintDescs,
  2225.             /* [size_is][in] */ DBCONSTRAINTDESC rgConstraintDescs[  ],
  2226.             /* [in] */ REFIID riid,
  2227.             /* [in] */ ULONG cPropertySets,
  2228.             /* [out][size_is][in] */ DBPROPSET rgPropertySets[  ],
  2229.             /* [out] */ DBID **ppTableID,
  2230.             /* [out] */ IUnknown **ppRowset) = 0;
  2231.         
  2232.         virtual HRESULT STDMETHODCALLTYPE DropConstraint( 
  2233.             /* [in] */ DBID *pTableID,
  2234.             /* [in] */ DBID *pConstraintID) = 0;
  2235.         
  2236.     };
  2237.     
  2238. #else  /* C style interface */
  2239.     typedef struct ITableDefinitionWithConstraintsVtbl
  2240.     {
  2241.         BEGIN_INTERFACE
  2242.         
  2243.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2244.             ITableDefinitionWithConstraints * This,
  2245.             /* [in] */ REFIID riid,
  2246.             /* [iid_is][out] */ void **ppvObject);
  2247.         
  2248.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2249.             ITableDefinitionWithConstraints * This);
  2250.         
  2251.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2252.             ITableDefinitionWithConstraints * This);
  2253.         
  2254.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateTable )( 
  2255.             ITableDefinitionWithConstraints * This,
  2256.             /* [in] */ IUnknown *pUnkOuter,
  2257.             /* [in] */ DBID *pTableID,
  2258.             /* [in] */ DBORDINAL cColumnDescs,
  2259.             /* [size_is][in] */ const DBCOLUMNDESC rgColumnDescs[  ],
  2260.             /* [in] */ REFIID riid,
  2261.             /* [in] */ ULONG cPropertySets,
  2262.             /* [size_is][out][in] */ DBPROPSET rgPropertySets[  ],
  2263.             /* [out] */ DBID **ppTableID,
  2264.             /* [iid_is][out] */ IUnknown **ppRowset);
  2265.         
  2266.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DropTable )( 
  2267.             ITableDefinitionWithConstraints * This,
  2268.             /* [unique][in] */ DBID *pTableID);
  2269.         
  2270.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *AddColumn )( 
  2271.             ITableDefinitionWithConstraints * This,
  2272.             /* [in] */ DBID *pTableID,
  2273.             /* [out][in] */ DBCOLUMNDESC *pColumnDesc,
  2274.             /* [out] */ DBID **ppColumnID);
  2275.         
  2276.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DropColumn )( 
  2277.             ITableDefinitionWithConstraints * This,
  2278.             /* [unique][in] */ DBID *pTableID,
  2279.             /* [unique][in] */ DBID *pColumnID);
  2280.         
  2281.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetTableDefinition )( 
  2282.             ITableDefinitionWithConstraints * This,
  2283.             /* [in] */ DBID *pTableID,
  2284.             /* [out] */ DBORDINAL *pcColumnDescs,
  2285.             /* [size_is][size_is][out] */ DBCOLUMNDESC *prgColumnDescs[  ],
  2286.             /* [out] */ ULONG *pcPropertySets,
  2287.             /* [size_is][size_is][out] */ DBPROPSET *prgPropertySets[  ],
  2288.             /* [out] */ ULONG *pcConstraintDescs,
  2289.             /* [size_is][size_is][out] */ DBCONSTRAINTDESC *prgConstraintDescs[  ],
  2290.             /* [out] */ OLECHAR **ppwszStringBuffer);
  2291.         
  2292.         HRESULT ( STDMETHODCALLTYPE *AddConstraint )( 
  2293.             ITableDefinitionWithConstraints * This,
  2294.             /* [in] */ DBID *pTableID,
  2295.             /* [in] */ DBCONSTRAINTDESC *pConstraintDesc);
  2296.         
  2297.         HRESULT ( STDMETHODCALLTYPE *CreateTableWithConstraints )( 
  2298.             ITableDefinitionWithConstraints * This,
  2299.             /* [in] */ IUnknown *pUnkOuter,
  2300.             /* [in] */ DBID *pTableID,
  2301.             /* [in] */ DBORDINAL cColumnDescs,
  2302.             /* [out][size_is][in] */ DBCOLUMNDESC rgColumnDescs[  ],
  2303.             /* [in] */ ULONG cConstraintDescs,
  2304.             /* [size_is][in] */ DBCONSTRAINTDESC rgConstraintDescs[  ],
  2305.             /* [in] */ REFIID riid,
  2306.             /* [in] */ ULONG cPropertySets,
  2307.             /* [out][size_is][in] */ DBPROPSET rgPropertySets[  ],
  2308.             /* [out] */ DBID **ppTableID,
  2309.             /* [out] */ IUnknown **ppRowset);
  2310.         
  2311.         HRESULT ( STDMETHODCALLTYPE *DropConstraint )( 
  2312.             ITableDefinitionWithConstraints * This,
  2313.             /* [in] */ DBID *pTableID,
  2314.             /* [in] */ DBID *pConstraintID);
  2315.         
  2316.         END_INTERFACE
  2317.     } ITableDefinitionWithConstraintsVtbl;
  2318.     interface ITableDefinitionWithConstraints
  2319.     {
  2320.         CONST_VTBL struct ITableDefinitionWithConstraintsVtbl *lpVtbl;
  2321.     };
  2322.     
  2323. #ifdef COBJMACROS
  2324. #define ITableDefinitionWithConstraints_QueryInterface(This,riid,ppvObject)
  2325.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2326. #define ITableDefinitionWithConstraints_AddRef(This)
  2327.     (This)->lpVtbl -> AddRef(This)
  2328. #define ITableDefinitionWithConstraints_Release(This)
  2329.     (This)->lpVtbl -> Release(This)
  2330. #define ITableDefinitionWithConstraints_CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
  2331.     (This)->lpVtbl -> CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
  2332. #define ITableDefinitionWithConstraints_DropTable(This,pTableID)
  2333.     (This)->lpVtbl -> DropTable(This,pTableID)
  2334. #define ITableDefinitionWithConstraints_AddColumn(This,pTableID,pColumnDesc,ppColumnID)
  2335.     (This)->lpVtbl -> AddColumn(This,pTableID,pColumnDesc,ppColumnID)
  2336. #define ITableDefinitionWithConstraints_DropColumn(This,pTableID,pColumnID)
  2337.     (This)->lpVtbl -> DropColumn(This,pTableID,pColumnID)
  2338. #define ITableDefinitionWithConstraints_GetTableDefinition(This,pTableID,pcColumnDescs,prgColumnDescs,pcPropertySets,prgPropertySets,pcConstraintDescs,prgConstraintDescs,ppwszStringBuffer)
  2339.     (This)->lpVtbl -> GetTableDefinition(This,pTableID,pcColumnDescs,prgColumnDescs,pcPropertySets,prgPropertySets,pcConstraintDescs,prgConstraintDescs,ppwszStringBuffer)
  2340. #define ITableDefinitionWithConstraints_AddConstraint(This,pTableID,pConstraintDesc)
  2341.     (This)->lpVtbl -> AddConstraint(This,pTableID,pConstraintDesc)
  2342. #define ITableDefinitionWithConstraints_CreateTableWithConstraints(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,cConstraintDescs,rgConstraintDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
  2343.     (This)->lpVtbl -> CreateTableWithConstraints(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,cConstraintDescs,rgConstraintDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
  2344. #define ITableDefinitionWithConstraints_DropConstraint(This,pTableID,pConstraintID)
  2345.     (This)->lpVtbl -> DropConstraint(This,pTableID,pConstraintID)
  2346. #endif /* COBJMACROS */
  2347. #endif  /* C style interface */
  2348. HRESULT STDMETHODCALLTYPE ITableDefinitionWithConstraints_AddConstraint_Proxy( 
  2349.     ITableDefinitionWithConstraints * This,
  2350.     /* [in] */ DBID *pTableID,
  2351.     /* [in] */ DBCONSTRAINTDESC *pConstraintDesc);
  2352. void __RPC_STUB ITableDefinitionWithConstraints_AddConstraint_Stub(
  2353.     IRpcStubBuffer *This,
  2354.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2355.     PRPC_MESSAGE _pRpcMessage,
  2356.     DWORD *_pdwStubPhase);
  2357. HRESULT STDMETHODCALLTYPE ITableDefinitionWithConstraints_CreateTableWithConstraints_Proxy( 
  2358.     ITableDefinitionWithConstraints * This,
  2359.     /* [in] */ IUnknown *pUnkOuter,
  2360.     /* [in] */ DBID *pTableID,
  2361.     /* [in] */ DBORDINAL cColumnDescs,
  2362.     /* [out][size_is][in] */ DBCOLUMNDESC rgColumnDescs[  ],
  2363.     /* [in] */ ULONG cConstraintDescs,
  2364.     /* [size_is][in] */ DBCONSTRAINTDESC rgConstraintDescs[  ],
  2365.     /* [in] */ REFIID riid,
  2366.     /* [in] */ ULONG cPropertySets,
  2367.     /* [out][size_is][in] */ DBPROPSET rgPropertySets[  ],
  2368.     /* [out] */ DBID **ppTableID,
  2369.     /* [out] */ IUnknown **ppRowset);
  2370. void __RPC_STUB ITableDefinitionWithConstraints_CreateTableWithConstraints_Stub(
  2371.     IRpcStubBuffer *This,
  2372.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2373.     PRPC_MESSAGE _pRpcMessage,
  2374.     DWORD *_pdwStubPhase);
  2375. HRESULT STDMETHODCALLTYPE ITableDefinitionWithConstraints_DropConstraint_Proxy( 
  2376.     ITableDefinitionWithConstraints * This,
  2377.     /* [in] */ DBID *pTableID,
  2378.     /* [in] */ DBID *pConstraintID);
  2379. void __RPC_STUB ITableDefinitionWithConstraints_DropConstraint_Stub(
  2380.     IRpcStubBuffer *This,
  2381.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2382.     PRPC_MESSAGE _pRpcMessage,
  2383.     DWORD *_pdwStubPhase);
  2384. #endif  /* __ITableDefinitionWithConstraints_INTERFACE_DEFINED__ */
  2385. /* interface __MIDL_itf_oledb_0333 */
  2386. /* [local] */ 
  2387. #ifndef UNDER_CE
  2388. extern RPC_IF_HANDLE __MIDL_itf_oledb_0333_v0_0_c_ifspec;
  2389. extern RPC_IF_HANDLE __MIDL_itf_oledb_0333_v0_0_s_ifspec;
  2390. #ifndef __IRow_INTERFACE_DEFINED__
  2391. #define __IRow_INTERFACE_DEFINED__
  2392. /* interface IRow */
  2393. /* [unique][uuid][object][local] */ 
  2394. EXTERN_C const IID IID_IRow;
  2395. #if defined(__cplusplus) && !defined(CINTERFACE)
  2396.     
  2397.     MIDL_INTERFACE("0c733ab4-2a1c-11ce-ade5-00aa0044773d")
  2398.     IRow : public IUnknown
  2399.     {
  2400.     public:
  2401.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetColumns( 
  2402.             /* [in] */ DBORDINAL cColumns,
  2403.             /* [size_is][out][in] */ DBCOLUMNACCESS rgColumns[  ]) = 0;
  2404.         
  2405.         virtual HRESULT STDMETHODCALLTYPE GetSourceRowset( 
  2406.             /* [in] */ REFIID riid,
  2407.             /* [iid_is][out] */ IUnknown **ppRowset,
  2408.             /* [out] */ HROW *phRow) = 0;
  2409.         
  2410.         virtual HRESULT STDMETHODCALLTYPE Open( 
  2411.             /* [unique][in] */ IUnknown *pUnkOuter,
  2412.             /* [in] */ DBID *pColumnID,
  2413.             /* [in] */ REFGUID rguidColumnType,
  2414.             /* [in] */ DWORD dwBindFlags,
  2415.             /* [in] */ REFIID riid,
  2416.             /* [iid_is][out] */ IUnknown **ppUnk) = 0;
  2417.         
  2418.     };
  2419.     
  2420. #else  /* C style interface */
  2421.     typedef struct IRowVtbl
  2422.     {
  2423.         BEGIN_INTERFACE
  2424.         
  2425.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2426.             IRow * This,
  2427.             /* [in] */ REFIID riid,
  2428.             /* [iid_is][out] */ void **ppvObject);
  2429.         
  2430.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2431.             IRow * This);
  2432.         
  2433.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2434.             IRow * This);
  2435.         
  2436.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetColumns )( 
  2437.             IRow * This,
  2438.             /* [in] */ DBORDINAL cColumns,
  2439.             /* [size_is][out][in] */ DBCOLUMNACCESS rgColumns[  ]);
  2440.         
  2441.         HRESULT ( STDMETHODCALLTYPE *GetSourceRowset )( 
  2442.             IRow * This,
  2443.             /* [in] */ REFIID riid,
  2444.             /* [iid_is][out] */ IUnknown **ppRowset,
  2445.             /* [out] */ HROW *phRow);
  2446.         
  2447.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  2448.             IRow * This,
  2449.             /* [unique][in] */ IUnknown *pUnkOuter,
  2450.             /* [in] */ DBID *pColumnID,
  2451.             /* [in] */ REFGUID rguidColumnType,
  2452.             /* [in] */ DWORD dwBindFlags,
  2453.             /* [in] */ REFIID riid,
  2454.             /* [iid_is][out] */ IUnknown **ppUnk);
  2455.         
  2456.         END_INTERFACE
  2457.     } IRowVtbl;
  2458.     interface IRow
  2459.     {
  2460.         CONST_VTBL struct IRowVtbl *lpVtbl;
  2461.     };
  2462.     
  2463. #ifdef COBJMACROS
  2464. #define IRow_QueryInterface(This,riid,ppvObject)
  2465.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2466. #define IRow_AddRef(This)
  2467.     (This)->lpVtbl -> AddRef(This)
  2468. #define IRow_Release(This)
  2469.     (This)->lpVtbl -> Release(This)
  2470. #define IRow_GetColumns(This,cColumns,rgColumns)
  2471.     (This)->lpVtbl -> GetColumns(This,cColumns,rgColumns)
  2472. #define IRow_GetSourceRowset(This,riid,ppRowset,phRow)
  2473.     (This)->lpVtbl -> GetSourceRowset(This,riid,ppRowset,phRow)
  2474. #define IRow_Open(This,pUnkOuter,pColumnID,rguidColumnType,dwBindFlags,riid,ppUnk)
  2475.     (This)->lpVtbl -> Open(This,pUnkOuter,pColumnID,rguidColumnType,dwBindFlags,riid,ppUnk)
  2476. #endif /* COBJMACROS */
  2477. #endif  /* C style interface */
  2478. /* [local] */ HRESULT STDMETHODCALLTYPE IRow_GetColumns_Proxy( 
  2479.     IRow * This,
  2480.     /* [in] */ DBORDINAL cColumns,
  2481.     /* [size_is][out][in] */ DBCOLUMNACCESS rgColumns[  ]);
  2482. void __RPC_STUB IRow_GetColumns_Stub(
  2483.     IRpcStubBuffer *This,
  2484.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2485.     PRPC_MESSAGE _pRpcMessage,
  2486.     DWORD *_pdwStubPhase);
  2487. HRESULT STDMETHODCALLTYPE IRow_GetSourceRowset_Proxy( 
  2488.     IRow * This,
  2489.     /* [in] */ REFIID riid,
  2490.     /* [iid_is][out] */ IUnknown **ppRowset,
  2491.     /* [out] */ HROW *phRow);
  2492. void __RPC_STUB IRow_GetSourceRowset_Stub(
  2493.     IRpcStubBuffer *This,
  2494.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2495.     PRPC_MESSAGE _pRpcMessage,
  2496.     DWORD *_pdwStubPhase);
  2497. HRESULT STDMETHODCALLTYPE IRow_Open_Proxy( 
  2498.     IRow * This,
  2499.     /* [unique][in] */ IUnknown *pUnkOuter,
  2500.     /* [in] */ DBID *pColumnID,
  2501.     /* [in] */ REFGUID rguidColumnType,
  2502.     /* [in] */ DWORD dwBindFlags,
  2503.     /* [in] */ REFIID riid,
  2504.     /* [iid_is][out] */ IUnknown **ppUnk);
  2505. void __RPC_STUB IRow_Open_Stub(
  2506.     IRpcStubBuffer *This,
  2507.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2508.     PRPC_MESSAGE _pRpcMessage,
  2509.     DWORD *_pdwStubPhase);
  2510. #endif  /* __IRow_INTERFACE_DEFINED__ */
  2511. #ifndef __IRowChange_INTERFACE_DEFINED__
  2512. #define __IRowChange_INTERFACE_DEFINED__
  2513. /* interface IRowChange */
  2514. /* [unique][uuid][object][local] */ 
  2515. EXTERN_C const IID IID_IRowChange;
  2516. #if defined(__cplusplus) && !defined(CINTERFACE)
  2517.     
  2518.     MIDL_INTERFACE("0c733ab5-2a1c-11ce-ade5-00aa0044773d")
  2519.     IRowChange : public IUnknown
  2520.     {
  2521.     public:
  2522.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetColumns( 
  2523.             /* [in] */ DBORDINAL cColumns,
  2524.             /* [size_is][out][in] */ DBCOLUMNACCESS rgColumns[  ]) = 0;
  2525.         
  2526.     };
  2527.     
  2528. #else  /* C style interface */
  2529.     typedef struct IRowChangeVtbl
  2530.     {
  2531.         BEGIN_INTERFACE
  2532.         
  2533.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2534.             IRowChange * This,
  2535.             /* [in] */ REFIID riid,
  2536.             /* [iid_is][out] */ void **ppvObject);
  2537.         
  2538.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2539.             IRowChange * This);
  2540.         
  2541.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2542.             IRowChange * This);
  2543.         
  2544.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetColumns )( 
  2545.             IRowChange * This,
  2546.             /* [in] */ DBORDINAL cColumns,
  2547.             /* [size_is][out][in] */ DBCOLUMNACCESS rgColumns[  ]);
  2548.         
  2549.         END_INTERFACE
  2550.     } IRowChangeVtbl;
  2551.     interface IRowChange
  2552.     {
  2553.         CONST_VTBL struct IRowChangeVtbl *lpVtbl;
  2554.     };
  2555.     
  2556. #ifdef COBJMACROS
  2557. #define IRowChange_QueryInterface(This,riid,ppvObject)
  2558.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2559. #define IRowChange_AddRef(This)
  2560.     (This)->lpVtbl -> AddRef(This)
  2561. #define IRowChange_Release(This)
  2562.     (This)->lpVtbl -> Release(This)
  2563. #define IRowChange_SetColumns(This,cColumns,rgColumns)
  2564.     (This)->lpVtbl -> SetColumns(This,cColumns,rgColumns)
  2565. #endif /* COBJMACROS */
  2566. #endif  /* C style interface */
  2567. /* [local] */ HRESULT STDMETHODCALLTYPE IRowChange_SetColumns_Proxy( 
  2568.     IRowChange * This,
  2569.     /* [in] */ DBORDINAL cColumns,
  2570.     /* [size_is][out][in] */ DBCOLUMNACCESS rgColumns[  ]);
  2571. void __RPC_STUB IRowChange_SetColumns_Stub(
  2572.     IRpcStubBuffer *This,
  2573.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2574.     PRPC_MESSAGE _pRpcMessage,
  2575.     DWORD *_pdwStubPhase);