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

模拟服务器

开发平台:

C/C++

  1.         
  2.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3.             IRowsetLocate * This,
  4.             /* [in] */ REFIID riid,
  5.             /* [iid_is][out] */ void **ppvObject);
  6.         
  7.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  8.             IRowsetLocate * This);
  9.         
  10.         ULONG ( STDMETHODCALLTYPE *Release )( 
  11.             IRowsetLocate * This);
  12.         
  13.         HRESULT ( STDMETHODCALLTYPE *AddRefRows )( 
  14.             IRowsetLocate * This,
  15.             /* [in] */ DBCOUNTITEM cRows,
  16.             /* [size_is][in] */ const HROW rghRows[  ],
  17.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  18.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  19.         
  20.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  21.             IRowsetLocate * This,
  22.             /* [in] */ HROW hRow,
  23.             /* [in] */ HACCESSOR hAccessor,
  24.             /* [out] */ void *pData);
  25.         
  26.         HRESULT ( STDMETHODCALLTYPE *GetNextRows )( 
  27.             IRowsetLocate * This,
  28.             /* [in] */ HCHAPTER hReserved,
  29.             /* [in] */ DBROWOFFSET lRowsOffset,
  30.             /* [in] */ DBROWCOUNT cRows,
  31.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  32.             /* [size_is][size_is][out] */ HROW **prghRows);
  33.         
  34.         HRESULT ( STDMETHODCALLTYPE *ReleaseRows )( 
  35.             IRowsetLocate * This,
  36.             /* [in] */ DBCOUNTITEM cRows,
  37.             /* [size_is][in] */ const HROW rghRows[  ],
  38.             /* [size_is][in] */ DBROWOPTIONS rgRowOptions[  ],
  39.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  40.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  41.         
  42.         HRESULT ( STDMETHODCALLTYPE *RestartPosition )( 
  43.             IRowsetLocate * This,
  44.             /* [in] */ HCHAPTER hReserved);
  45.         
  46.         HRESULT ( STDMETHODCALLTYPE *Compare )( 
  47.             IRowsetLocate * This,
  48.             /* [in] */ HCHAPTER hReserved,
  49.             /* [in] */ DBBKMARK cbBookmark1,
  50.             /* [size_is][in] */ const BYTE *pBookmark1,
  51.             /* [in] */ DBBKMARK cbBookmark2,
  52.             /* [size_is][in] */ const BYTE *pBookmark2,
  53.             /* [out] */ DBCOMPARE *pComparison);
  54.         
  55.         HRESULT ( STDMETHODCALLTYPE *GetRowsAt )( 
  56.             IRowsetLocate * This,
  57.             /* [in] */ HWATCHREGION hReserved1,
  58.             /* [in] */ HCHAPTER hReserved2,
  59.             /* [in] */ DBBKMARK cbBookmark,
  60.             /* [size_is][in] */ const BYTE *pBookmark,
  61.             /* [in] */ DBROWOFFSET lRowsOffset,
  62.             /* [in] */ DBROWCOUNT cRows,
  63.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  64.             /* [size_is][size_is][out] */ HROW **prghRows);
  65.         
  66.         HRESULT ( STDMETHODCALLTYPE *GetRowsByBookmark )( 
  67.             IRowsetLocate * This,
  68.             /* [in] */ HCHAPTER hReserved,
  69.             /* [in] */ DBCOUNTITEM cRows,
  70.             /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  71.             /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  72.             /* [size_is][out] */ HROW rghRows[  ],
  73.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  74.         
  75.         HRESULT ( STDMETHODCALLTYPE *Hash )( 
  76.             IRowsetLocate * This,
  77.             /* [in] */ HCHAPTER hReserved,
  78.             /* [in] */ DBBKMARK cBookmarks,
  79.             /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  80.             /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  81.             /* [size_is][out] */ DBHASHVALUE rgHashedValues[  ],
  82.             /* [size_is][out] */ DBROWSTATUS rgBookmarkStatus[  ]);
  83.         
  84.         END_INTERFACE
  85.     } IRowsetLocateVtbl;
  86.     interface IRowsetLocate
  87.     {
  88.         CONST_VTBL struct IRowsetLocateVtbl *lpVtbl;
  89.     };
  90.     
  91. #ifdef COBJMACROS
  92. #define IRowsetLocate_QueryInterface(This,riid,ppvObject)
  93.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  94. #define IRowsetLocate_AddRef(This)
  95.     (This)->lpVtbl -> AddRef(This)
  96. #define IRowsetLocate_Release(This)
  97.     (This)->lpVtbl -> Release(This)
  98. #define IRowsetLocate_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
  99.     (This)->lpVtbl -> AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
  100. #define IRowsetLocate_GetData(This,hRow,hAccessor,pData)
  101.     (This)->lpVtbl -> GetData(This,hRow,hAccessor,pData)
  102. #define IRowsetLocate_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
  103.     (This)->lpVtbl -> GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
  104. #define IRowsetLocate_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
  105.     (This)->lpVtbl -> ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
  106. #define IRowsetLocate_RestartPosition(This,hReserved)
  107.     (This)->lpVtbl -> RestartPosition(This,hReserved)
  108. #define IRowsetLocate_Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
  109.     (This)->lpVtbl -> Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
  110. #define IRowsetLocate_GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
  111.     (This)->lpVtbl -> GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
  112. #define IRowsetLocate_GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
  113.     (This)->lpVtbl -> GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
  114. #define IRowsetLocate_Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
  115.     (This)->lpVtbl -> Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
  116. #endif /* COBJMACROS */
  117. #endif  /* C style interface */
  118. HRESULT STDMETHODCALLTYPE IRowsetLocate_Compare_Proxy( 
  119.     IRowsetLocate * This,
  120.     /* [in] */ HCHAPTER hReserved,
  121.     /* [in] */ DBBKMARK cbBookmark1,
  122.     /* [size_is][in] */ const BYTE *pBookmark1,
  123.     /* [in] */ DBBKMARK cbBookmark2,
  124.     /* [size_is][in] */ const BYTE *pBookmark2,
  125.     /* [out] */ DBCOMPARE *pComparison);
  126. void __RPC_STUB IRowsetLocate_Compare_Stub(
  127.     IRpcStubBuffer *This,
  128.     IRpcChannelBuffer *_pRpcChannelBuffer,
  129.     PRPC_MESSAGE _pRpcMessage,
  130.     DWORD *_pdwStubPhase);
  131. HRESULT STDMETHODCALLTYPE IRowsetLocate_GetRowsAt_Proxy( 
  132.     IRowsetLocate * This,
  133.     /* [in] */ HWATCHREGION hReserved1,
  134.     /* [in] */ HCHAPTER hReserved2,
  135.     /* [in] */ DBBKMARK cbBookmark,
  136.     /* [size_is][in] */ const BYTE *pBookmark,
  137.     /* [in] */ DBROWOFFSET lRowsOffset,
  138.     /* [in] */ DBROWCOUNT cRows,
  139.     /* [out] */ DBCOUNTITEM *pcRowsObtained,
  140.     /* [size_is][size_is][out] */ HROW **prghRows);
  141. void __RPC_STUB IRowsetLocate_GetRowsAt_Stub(
  142.     IRpcStubBuffer *This,
  143.     IRpcChannelBuffer *_pRpcChannelBuffer,
  144.     PRPC_MESSAGE _pRpcMessage,
  145.     DWORD *_pdwStubPhase);
  146. HRESULT STDMETHODCALLTYPE IRowsetLocate_GetRowsByBookmark_Proxy( 
  147.     IRowsetLocate * This,
  148.     /* [in] */ HCHAPTER hReserved,
  149.     /* [in] */ DBCOUNTITEM cRows,
  150.     /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  151.     /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  152.     /* [size_is][out] */ HROW rghRows[  ],
  153.     /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  154. void __RPC_STUB IRowsetLocate_GetRowsByBookmark_Stub(
  155.     IRpcStubBuffer *This,
  156.     IRpcChannelBuffer *_pRpcChannelBuffer,
  157.     PRPC_MESSAGE _pRpcMessage,
  158.     DWORD *_pdwStubPhase);
  159. HRESULT STDMETHODCALLTYPE IRowsetLocate_Hash_Proxy( 
  160.     IRowsetLocate * This,
  161.     /* [in] */ HCHAPTER hReserved,
  162.     /* [in] */ DBBKMARK cBookmarks,
  163.     /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  164.     /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  165.     /* [size_is][out] */ DBHASHVALUE rgHashedValues[  ],
  166.     /* [size_is][out] */ DBROWSTATUS rgBookmarkStatus[  ]);
  167. void __RPC_STUB IRowsetLocate_Hash_Stub(
  168.     IRpcStubBuffer *This,
  169.     IRpcChannelBuffer *_pRpcChannelBuffer,
  170.     PRPC_MESSAGE _pRpcMessage,
  171.     DWORD *_pdwStubPhase);
  172. #endif  /* __IRowsetLocate_INTERFACE_DEFINED__ */
  173. #ifndef __IRowsetResynch_INTERFACE_DEFINED__
  174. #define __IRowsetResynch_INTERFACE_DEFINED__
  175. /* interface IRowsetResynch */
  176. /* [unique][uuid][object][local] */ 
  177. EXTERN_C const IID IID_IRowsetResynch;
  178. #if defined(__cplusplus) && !defined(CINTERFACE)
  179.     
  180.     MIDL_INTERFACE("0c733a84-2a1c-11ce-ade5-00aa0044773d")
  181.     IRowsetResynch : public IUnknown
  182.     {
  183.     public:
  184.         virtual HRESULT STDMETHODCALLTYPE GetVisibleData( 
  185.             /* [in] */ HROW hRow,
  186.             /* [in] */ HACCESSOR hAccessor,
  187.             /* [out] */ void *pData) = 0;
  188.         
  189.         virtual HRESULT STDMETHODCALLTYPE ResynchRows( 
  190.             /* [in] */ DBCOUNTITEM cRows,
  191.             /* [size_is][in] */ const HROW rghRows[  ],
  192.             /* [out] */ DBCOUNTITEM *pcRowsResynched,
  193.             /* [size_is][size_is][out] */ HROW **prghRowsResynched,
  194.             /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus) = 0;
  195.         
  196.     };
  197.     
  198. #else  /* C style interface */
  199.     typedef struct IRowsetResynchVtbl
  200.     {
  201.         BEGIN_INTERFACE
  202.         
  203.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  204.             IRowsetResynch * This,
  205.             /* [in] */ REFIID riid,
  206.             /* [iid_is][out] */ void **ppvObject);
  207.         
  208.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  209.             IRowsetResynch * This);
  210.         
  211.         ULONG ( STDMETHODCALLTYPE *Release )( 
  212.             IRowsetResynch * This);
  213.         
  214.         HRESULT ( STDMETHODCALLTYPE *GetVisibleData )( 
  215.             IRowsetResynch * This,
  216.             /* [in] */ HROW hRow,
  217.             /* [in] */ HACCESSOR hAccessor,
  218.             /* [out] */ void *pData);
  219.         
  220.         HRESULT ( STDMETHODCALLTYPE *ResynchRows )( 
  221.             IRowsetResynch * This,
  222.             /* [in] */ DBCOUNTITEM cRows,
  223.             /* [size_is][in] */ const HROW rghRows[  ],
  224.             /* [out] */ DBCOUNTITEM *pcRowsResynched,
  225.             /* [size_is][size_is][out] */ HROW **prghRowsResynched,
  226.             /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus);
  227.         
  228.         END_INTERFACE
  229.     } IRowsetResynchVtbl;
  230.     interface IRowsetResynch
  231.     {
  232.         CONST_VTBL struct IRowsetResynchVtbl *lpVtbl;
  233.     };
  234.     
  235. #ifdef COBJMACROS
  236. #define IRowsetResynch_QueryInterface(This,riid,ppvObject)
  237.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  238. #define IRowsetResynch_AddRef(This)
  239.     (This)->lpVtbl -> AddRef(This)
  240. #define IRowsetResynch_Release(This)
  241.     (This)->lpVtbl -> Release(This)
  242. #define IRowsetResynch_GetVisibleData(This,hRow,hAccessor,pData)
  243.     (This)->lpVtbl -> GetVisibleData(This,hRow,hAccessor,pData)
  244. #define IRowsetResynch_ResynchRows(This,cRows,rghRows,pcRowsResynched,prghRowsResynched,prgRowStatus)
  245.     (This)->lpVtbl -> ResynchRows(This,cRows,rghRows,pcRowsResynched,prghRowsResynched,prgRowStatus)
  246. #endif /* COBJMACROS */
  247. #endif  /* C style interface */
  248. HRESULT STDMETHODCALLTYPE IRowsetResynch_GetVisibleData_Proxy( 
  249.     IRowsetResynch * This,
  250.     /* [in] */ HROW hRow,
  251.     /* [in] */ HACCESSOR hAccessor,
  252.     /* [out] */ void *pData);
  253. void __RPC_STUB IRowsetResynch_GetVisibleData_Stub(
  254.     IRpcStubBuffer *This,
  255.     IRpcChannelBuffer *_pRpcChannelBuffer,
  256.     PRPC_MESSAGE _pRpcMessage,
  257.     DWORD *_pdwStubPhase);
  258. HRESULT STDMETHODCALLTYPE IRowsetResynch_ResynchRows_Proxy( 
  259.     IRowsetResynch * This,
  260.     /* [in] */ DBCOUNTITEM cRows,
  261.     /* [size_is][in] */ const HROW rghRows[  ],
  262.     /* [out] */ DBCOUNTITEM *pcRowsResynched,
  263.     /* [size_is][size_is][out] */ HROW **prghRowsResynched,
  264.     /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus);
  265. void __RPC_STUB IRowsetResynch_ResynchRows_Stub(
  266.     IRpcStubBuffer *This,
  267.     IRpcChannelBuffer *_pRpcChannelBuffer,
  268.     PRPC_MESSAGE _pRpcMessage,
  269.     DWORD *_pdwStubPhase);
  270. #endif  /* __IRowsetResynch_INTERFACE_DEFINED__ */
  271. #ifndef __IRowsetScroll_INTERFACE_DEFINED__
  272. #define __IRowsetScroll_INTERFACE_DEFINED__
  273. /* interface IRowsetScroll */
  274. /* [unique][uuid][object][local] */ 
  275. EXTERN_C const IID IID_IRowsetScroll;
  276. #if defined(__cplusplus) && !defined(CINTERFACE)
  277.     
  278.     MIDL_INTERFACE("0c733a7e-2a1c-11ce-ade5-00aa0044773d")
  279.     IRowsetScroll : public IRowsetLocate
  280.     {
  281.     public:
  282.         virtual HRESULT STDMETHODCALLTYPE GetApproximatePosition( 
  283.             /* [in] */ HCHAPTER hReserved,
  284.             /* [in] */ DBBKMARK cbBookmark,
  285.             /* [size_is][in] */ const BYTE *pBookmark,
  286.             /* [out] */ DBCOUNTITEM *pulPosition,
  287.             /* [out] */ DBCOUNTITEM *pcRows) = 0;
  288.         
  289.         virtual HRESULT STDMETHODCALLTYPE GetRowsAtRatio( 
  290.             /* [in] */ HWATCHREGION hReserved1,
  291.             /* [in] */ HCHAPTER hReserved2,
  292.             /* [in] */ DBCOUNTITEM ulNumerator,
  293.             /* [in] */ DBCOUNTITEM ulDenominator,
  294.             /* [in] */ DBROWCOUNT cRows,
  295.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  296.             /* [size_is][size_is][out] */ HROW **prghRows) = 0;
  297.         
  298.     };
  299.     
  300. #else  /* C style interface */
  301.     typedef struct IRowsetScrollVtbl
  302.     {
  303.         BEGIN_INTERFACE
  304.         
  305.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  306.             IRowsetScroll * This,
  307.             /* [in] */ REFIID riid,
  308.             /* [iid_is][out] */ void **ppvObject);
  309.         
  310.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  311.             IRowsetScroll * This);
  312.         
  313.         ULONG ( STDMETHODCALLTYPE *Release )( 
  314.             IRowsetScroll * This);
  315.         
  316.         HRESULT ( STDMETHODCALLTYPE *AddRefRows )( 
  317.             IRowsetScroll * This,
  318.             /* [in] */ DBCOUNTITEM cRows,
  319.             /* [size_is][in] */ const HROW rghRows[  ],
  320.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  321.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  322.         
  323.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  324.             IRowsetScroll * This,
  325.             /* [in] */ HROW hRow,
  326.             /* [in] */ HACCESSOR hAccessor,
  327.             /* [out] */ void *pData);
  328.         
  329.         HRESULT ( STDMETHODCALLTYPE *GetNextRows )( 
  330.             IRowsetScroll * This,
  331.             /* [in] */ HCHAPTER hReserved,
  332.             /* [in] */ DBROWOFFSET lRowsOffset,
  333.             /* [in] */ DBROWCOUNT cRows,
  334.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  335.             /* [size_is][size_is][out] */ HROW **prghRows);
  336.         
  337.         HRESULT ( STDMETHODCALLTYPE *ReleaseRows )( 
  338.             IRowsetScroll * This,
  339.             /* [in] */ DBCOUNTITEM cRows,
  340.             /* [size_is][in] */ const HROW rghRows[  ],
  341.             /* [size_is][in] */ DBROWOPTIONS rgRowOptions[  ],
  342.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  343.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  344.         
  345.         HRESULT ( STDMETHODCALLTYPE *RestartPosition )( 
  346.             IRowsetScroll * This,
  347.             /* [in] */ HCHAPTER hReserved);
  348.         
  349.         HRESULT ( STDMETHODCALLTYPE *Compare )( 
  350.             IRowsetScroll * This,
  351.             /* [in] */ HCHAPTER hReserved,
  352.             /* [in] */ DBBKMARK cbBookmark1,
  353.             /* [size_is][in] */ const BYTE *pBookmark1,
  354.             /* [in] */ DBBKMARK cbBookmark2,
  355.             /* [size_is][in] */ const BYTE *pBookmark2,
  356.             /* [out] */ DBCOMPARE *pComparison);
  357.         
  358.         HRESULT ( STDMETHODCALLTYPE *GetRowsAt )( 
  359.             IRowsetScroll * This,
  360.             /* [in] */ HWATCHREGION hReserved1,
  361.             /* [in] */ HCHAPTER hReserved2,
  362.             /* [in] */ DBBKMARK cbBookmark,
  363.             /* [size_is][in] */ const BYTE *pBookmark,
  364.             /* [in] */ DBROWOFFSET lRowsOffset,
  365.             /* [in] */ DBROWCOUNT cRows,
  366.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  367.             /* [size_is][size_is][out] */ HROW **prghRows);
  368.         
  369.         HRESULT ( STDMETHODCALLTYPE *GetRowsByBookmark )( 
  370.             IRowsetScroll * This,
  371.             /* [in] */ HCHAPTER hReserved,
  372.             /* [in] */ DBCOUNTITEM cRows,
  373.             /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  374.             /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  375.             /* [size_is][out] */ HROW rghRows[  ],
  376.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  377.         
  378.         HRESULT ( STDMETHODCALLTYPE *Hash )( 
  379.             IRowsetScroll * This,
  380.             /* [in] */ HCHAPTER hReserved,
  381.             /* [in] */ DBBKMARK cBookmarks,
  382.             /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  383.             /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  384.             /* [size_is][out] */ DBHASHVALUE rgHashedValues[  ],
  385.             /* [size_is][out] */ DBROWSTATUS rgBookmarkStatus[  ]);
  386.         
  387.         HRESULT ( STDMETHODCALLTYPE *GetApproximatePosition )( 
  388.             IRowsetScroll * This,
  389.             /* [in] */ HCHAPTER hReserved,
  390.             /* [in] */ DBBKMARK cbBookmark,
  391.             /* [size_is][in] */ const BYTE *pBookmark,
  392.             /* [out] */ DBCOUNTITEM *pulPosition,
  393.             /* [out] */ DBCOUNTITEM *pcRows);
  394.         
  395.         HRESULT ( STDMETHODCALLTYPE *GetRowsAtRatio )( 
  396.             IRowsetScroll * This,
  397.             /* [in] */ HWATCHREGION hReserved1,
  398.             /* [in] */ HCHAPTER hReserved2,
  399.             /* [in] */ DBCOUNTITEM ulNumerator,
  400.             /* [in] */ DBCOUNTITEM ulDenominator,
  401.             /* [in] */ DBROWCOUNT cRows,
  402.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  403.             /* [size_is][size_is][out] */ HROW **prghRows);
  404.         
  405.         END_INTERFACE
  406.     } IRowsetScrollVtbl;
  407.     interface IRowsetScroll
  408.     {
  409.         CONST_VTBL struct IRowsetScrollVtbl *lpVtbl;
  410.     };
  411.     
  412. #ifdef COBJMACROS
  413. #define IRowsetScroll_QueryInterface(This,riid,ppvObject)
  414.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  415. #define IRowsetScroll_AddRef(This)
  416.     (This)->lpVtbl -> AddRef(This)
  417. #define IRowsetScroll_Release(This)
  418.     (This)->lpVtbl -> Release(This)
  419. #define IRowsetScroll_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
  420.     (This)->lpVtbl -> AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
  421. #define IRowsetScroll_GetData(This,hRow,hAccessor,pData)
  422.     (This)->lpVtbl -> GetData(This,hRow,hAccessor,pData)
  423. #define IRowsetScroll_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
  424.     (This)->lpVtbl -> GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
  425. #define IRowsetScroll_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
  426.     (This)->lpVtbl -> ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
  427. #define IRowsetScroll_RestartPosition(This,hReserved)
  428.     (This)->lpVtbl -> RestartPosition(This,hReserved)
  429. #define IRowsetScroll_Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
  430.     (This)->lpVtbl -> Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
  431. #define IRowsetScroll_GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
  432.     (This)->lpVtbl -> GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
  433. #define IRowsetScroll_GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
  434.     (This)->lpVtbl -> GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
  435. #define IRowsetScroll_Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
  436.     (This)->lpVtbl -> Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
  437. #define IRowsetScroll_GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows)
  438.     (This)->lpVtbl -> GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows)
  439. #define IRowsetScroll_GetRowsAtRatio(This,hReserved1,hReserved2,ulNumerator,ulDenominator,cRows,pcRowsObtained,prghRows)
  440.     (This)->lpVtbl -> GetRowsAtRatio(This,hReserved1,hReserved2,ulNumerator,ulDenominator,cRows,pcRowsObtained,prghRows)
  441. #endif /* COBJMACROS */
  442. #endif  /* C style interface */
  443. HRESULT STDMETHODCALLTYPE IRowsetScroll_GetApproximatePosition_Proxy( 
  444.     IRowsetScroll * This,
  445.     /* [in] */ HCHAPTER hReserved,
  446.     /* [in] */ DBBKMARK cbBookmark,
  447.     /* [size_is][in] */ const BYTE *pBookmark,
  448.     /* [out] */ DBCOUNTITEM *pulPosition,
  449.     /* [out] */ DBCOUNTITEM *pcRows);
  450. void __RPC_STUB IRowsetScroll_GetApproximatePosition_Stub(
  451.     IRpcStubBuffer *This,
  452.     IRpcChannelBuffer *_pRpcChannelBuffer,
  453.     PRPC_MESSAGE _pRpcMessage,
  454.     DWORD *_pdwStubPhase);
  455. HRESULT STDMETHODCALLTYPE IRowsetScroll_GetRowsAtRatio_Proxy( 
  456.     IRowsetScroll * This,
  457.     /* [in] */ HWATCHREGION hReserved1,
  458.     /* [in] */ HCHAPTER hReserved2,
  459.     /* [in] */ DBCOUNTITEM ulNumerator,
  460.     /* [in] */ DBCOUNTITEM ulDenominator,
  461.     /* [in] */ DBROWCOUNT cRows,
  462.     /* [out] */ DBCOUNTITEM *pcRowsObtained,
  463.     /* [size_is][size_is][out] */ HROW **prghRows);
  464. void __RPC_STUB IRowsetScroll_GetRowsAtRatio_Stub(
  465.     IRpcStubBuffer *This,
  466.     IRpcChannelBuffer *_pRpcChannelBuffer,
  467.     PRPC_MESSAGE _pRpcMessage,
  468.     DWORD *_pdwStubPhase);
  469. #endif  /* __IRowsetScroll_INTERFACE_DEFINED__ */
  470. /* interface __MIDL_itf_oledb_0267 */
  471. /* [local] */ 
  472. //@@@+ V1.5
  473. #if( OLEDBVER >= 0x0150 )
  474. extern RPC_IF_HANDLE __MIDL_itf_oledb_0267_v0_0_c_ifspec;
  475. extern RPC_IF_HANDLE __MIDL_itf_oledb_0267_v0_0_s_ifspec;
  476. #ifndef __IChapteredRowset_INTERFACE_DEFINED__
  477. #define __IChapteredRowset_INTERFACE_DEFINED__
  478. /* interface IChapteredRowset */
  479. /* [unique][uuid][object] */ 
  480. EXTERN_C const IID IID_IChapteredRowset;
  481. #if defined(__cplusplus) && !defined(CINTERFACE)
  482.     
  483.     MIDL_INTERFACE("0c733a93-2a1c-11ce-ade5-00aa0044773d")
  484.     IChapteredRowset : public IUnknown
  485.     {
  486.     public:
  487.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE AddRefChapter( 
  488.             /* [in] */ HCHAPTER hChapter,
  489.             /* [out] */ DBREFCOUNT *pcRefCount) = 0;
  490.         
  491.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE ReleaseChapter( 
  492.             /* [in] */ HCHAPTER hChapter,
  493.             /* [out] */ DBREFCOUNT *pcRefCount) = 0;
  494.         
  495.     };
  496.     
  497. #else  /* C style interface */
  498.     typedef struct IChapteredRowsetVtbl
  499.     {
  500.         BEGIN_INTERFACE
  501.         
  502.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  503.             IChapteredRowset * This,
  504.             /* [in] */ REFIID riid,
  505.             /* [iid_is][out] */ void **ppvObject);
  506.         
  507.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  508.             IChapteredRowset * This);
  509.         
  510.         ULONG ( STDMETHODCALLTYPE *Release )( 
  511.             IChapteredRowset * This);
  512.         
  513.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *AddRefChapter )( 
  514.             IChapteredRowset * This,
  515.             /* [in] */ HCHAPTER hChapter,
  516.             /* [out] */ DBREFCOUNT *pcRefCount);
  517.         
  518.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *ReleaseChapter )( 
  519.             IChapteredRowset * This,
  520.             /* [in] */ HCHAPTER hChapter,
  521.             /* [out] */ DBREFCOUNT *pcRefCount);
  522.         
  523.         END_INTERFACE
  524.     } IChapteredRowsetVtbl;
  525.     interface IChapteredRowset
  526.     {
  527.         CONST_VTBL struct IChapteredRowsetVtbl *lpVtbl;
  528.     };
  529.     
  530. #ifdef COBJMACROS
  531. #define IChapteredRowset_QueryInterface(This,riid,ppvObject)
  532.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  533. #define IChapteredRowset_AddRef(This)
  534.     (This)->lpVtbl -> AddRef(This)
  535. #define IChapteredRowset_Release(This)
  536.     (This)->lpVtbl -> Release(This)
  537. #define IChapteredRowset_AddRefChapter(This,hChapter,pcRefCount)
  538.     (This)->lpVtbl -> AddRefChapter(This,hChapter,pcRefCount)
  539. #define IChapteredRowset_ReleaseChapter(This,hChapter,pcRefCount)
  540.     (This)->lpVtbl -> ReleaseChapter(This,hChapter,pcRefCount)
  541. #endif /* COBJMACROS */
  542. #endif  /* C style interface */
  543. /* [call_as] */ HRESULT STDMETHODCALLTYPE IChapteredRowset_RemoteAddRefChapter_Proxy( 
  544.     IChapteredRowset * This,
  545.     /* [in] */ HCHAPTER hChapter,
  546.     /* [out] */ DBREFCOUNT *pcRefCount,
  547.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  548. void __RPC_STUB IChapteredRowset_RemoteAddRefChapter_Stub(
  549.     IRpcStubBuffer *This,
  550.     IRpcChannelBuffer *_pRpcChannelBuffer,
  551.     PRPC_MESSAGE _pRpcMessage,
  552.     DWORD *_pdwStubPhase);
  553. /* [call_as] */ HRESULT STDMETHODCALLTYPE IChapteredRowset_RemoteReleaseChapter_Proxy( 
  554.     IChapteredRowset * This,
  555.     /* [in] */ HCHAPTER hChapter,
  556.     /* [out] */ DBREFCOUNT *pcRefCount,
  557.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  558. void __RPC_STUB IChapteredRowset_RemoteReleaseChapter_Stub(
  559.     IRpcStubBuffer *This,
  560.     IRpcChannelBuffer *_pRpcChannelBuffer,
  561.     PRPC_MESSAGE _pRpcMessage,
  562.     DWORD *_pdwStubPhase);
  563. #endif  /* __IChapteredRowset_INTERFACE_DEFINED__ */
  564. #ifndef __IRowsetFind_INTERFACE_DEFINED__
  565. #define __IRowsetFind_INTERFACE_DEFINED__
  566. /* interface IRowsetFind */
  567. /* [unique][uuid][object][local] */ 
  568. EXTERN_C const IID IID_IRowsetFind;
  569. #if defined(__cplusplus) && !defined(CINTERFACE)
  570.     
  571.     MIDL_INTERFACE("0c733a9d-2a1c-11ce-ade5-00aa0044773d")
  572.     IRowsetFind : public IUnknown
  573.     {
  574.     public:
  575.         virtual HRESULT STDMETHODCALLTYPE FindNextRow( 
  576.             /* [in] */ HCHAPTER hChapter,
  577.             /* [in] */ HACCESSOR hAccessor,
  578.             /* [in] */ void *pFindValue,
  579.             /* [in] */ DBCOMPAREOP CompareOp,
  580.             /* [in] */ DBBKMARK cbBookmark,
  581.             /* [size_is][in] */ const BYTE *pBookmark,
  582.             /* [in] */ DBROWOFFSET lRowsOffset,
  583.             /* [in] */ DBROWCOUNT cRows,
  584.             /* [out][in] */ DBCOUNTITEM *pcRowsObtained,
  585.             /* [size_is][size_is][out] */ HROW **prghRows) = 0;
  586.         
  587.     };
  588.     
  589. #else  /* C style interface */
  590.     typedef struct IRowsetFindVtbl
  591.     {
  592.         BEGIN_INTERFACE
  593.         
  594.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  595.             IRowsetFind * This,
  596.             /* [in] */ REFIID riid,
  597.             /* [iid_is][out] */ void **ppvObject);
  598.         
  599.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  600.             IRowsetFind * This);
  601.         
  602.         ULONG ( STDMETHODCALLTYPE *Release )( 
  603.             IRowsetFind * This);
  604.         
  605.         HRESULT ( STDMETHODCALLTYPE *FindNextRow )( 
  606.             IRowsetFind * This,
  607.             /* [in] */ HCHAPTER hChapter,
  608.             /* [in] */ HACCESSOR hAccessor,
  609.             /* [in] */ void *pFindValue,
  610.             /* [in] */ DBCOMPAREOP CompareOp,
  611.             /* [in] */ DBBKMARK cbBookmark,
  612.             /* [size_is][in] */ const BYTE *pBookmark,
  613.             /* [in] */ DBROWOFFSET lRowsOffset,
  614.             /* [in] */ DBROWCOUNT cRows,
  615.             /* [out][in] */ DBCOUNTITEM *pcRowsObtained,
  616.             /* [size_is][size_is][out] */ HROW **prghRows);
  617.         
  618.         END_INTERFACE
  619.     } IRowsetFindVtbl;
  620.     interface IRowsetFind
  621.     {
  622.         CONST_VTBL struct IRowsetFindVtbl *lpVtbl;
  623.     };
  624.     
  625. #ifdef COBJMACROS
  626. #define IRowsetFind_QueryInterface(This,riid,ppvObject)
  627.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  628. #define IRowsetFind_AddRef(This)
  629.     (This)->lpVtbl -> AddRef(This)
  630. #define IRowsetFind_Release(This)
  631.     (This)->lpVtbl -> Release(This)
  632. #define IRowsetFind_FindNextRow(This,hChapter,hAccessor,pFindValue,CompareOp,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
  633.     (This)->lpVtbl -> FindNextRow(This,hChapter,hAccessor,pFindValue,CompareOp,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
  634. #endif /* COBJMACROS */
  635. #endif  /* C style interface */
  636. HRESULT STDMETHODCALLTYPE IRowsetFind_FindNextRow_Proxy( 
  637.     IRowsetFind * This,
  638.     /* [in] */ HCHAPTER hChapter,
  639.     /* [in] */ HACCESSOR hAccessor,
  640.     /* [in] */ void *pFindValue,
  641.     /* [in] */ DBCOMPAREOP CompareOp,
  642.     /* [in] */ DBBKMARK cbBookmark,
  643.     /* [size_is][in] */ const BYTE *pBookmark,
  644.     /* [in] */ DBROWOFFSET lRowsOffset,
  645.     /* [in] */ DBROWCOUNT cRows,
  646.     /* [out][in] */ DBCOUNTITEM *pcRowsObtained,
  647.     /* [size_is][size_is][out] */ HROW **prghRows);
  648. void __RPC_STUB IRowsetFind_FindNextRow_Stub(
  649.     IRpcStubBuffer *This,
  650.     IRpcChannelBuffer *_pRpcChannelBuffer,
  651.     PRPC_MESSAGE _pRpcMessage,
  652.     DWORD *_pdwStubPhase);
  653. #endif  /* __IRowsetFind_INTERFACE_DEFINED__ */
  654. #ifndef __IRowPosition_INTERFACE_DEFINED__
  655. #define __IRowPosition_INTERFACE_DEFINED__
  656. /* interface IRowPosition */
  657. /* [unique][uuid][object] */ 
  658. typedef DWORD DBPOSITIONFLAGS;
  659. enum DBPOSITIONFLAGSENUM
  660.     { DBPOSITION_OK = 0,
  661. DBPOSITION_NOROW = DBPOSITION_OK + 1,
  662. DBPOSITION_BOF = DBPOSITION_NOROW + 1,
  663. DBPOSITION_EOF = DBPOSITION_BOF + 1
  664.     } ;
  665. EXTERN_C const IID IID_IRowPosition;
  666. #if defined(__cplusplus) && !defined(CINTERFACE)
  667.     
  668.     MIDL_INTERFACE("0c733a94-2a1c-11ce-ade5-00aa0044773d")
  669.     IRowPosition : public IUnknown
  670.     {
  671.     public:
  672.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE ClearRowPosition( void) = 0;
  673.         
  674.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetRowPosition( 
  675.             /* [out] */ HCHAPTER *phChapter,
  676.             /* [out] */ HROW *phRow,
  677.             /* [out] */ DBPOSITIONFLAGS *pdwPositionFlags) = 0;
  678.         
  679.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetRowset( 
  680.             /* [in] */ REFIID riid,
  681.             /* [iid_is][out] */ IUnknown **ppRowset) = 0;
  682.         
  683.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Initialize( 
  684.             /* [in] */ IUnknown *pRowset) = 0;
  685.         
  686.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetRowPosition( 
  687.             /* [in] */ HCHAPTER hChapter,
  688.             /* [in] */ HROW hRow,
  689.             /* [in] */ DBPOSITIONFLAGS dwPositionFlags) = 0;
  690.         
  691.     };
  692.     
  693. #else  /* C style interface */
  694.     typedef struct IRowPositionVtbl
  695.     {
  696.         BEGIN_INTERFACE
  697.         
  698.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  699.             IRowPosition * This,
  700.             /* [in] */ REFIID riid,
  701.             /* [iid_is][out] */ void **ppvObject);
  702.         
  703.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  704.             IRowPosition * This);
  705.         
  706.         ULONG ( STDMETHODCALLTYPE *Release )( 
  707.             IRowPosition * This);
  708.         
  709.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *ClearRowPosition )( 
  710.             IRowPosition * This);
  711.         
  712.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetRowPosition )( 
  713.             IRowPosition * This,
  714.             /* [out] */ HCHAPTER *phChapter,
  715.             /* [out] */ HROW *phRow,
  716.             /* [out] */ DBPOSITIONFLAGS *pdwPositionFlags);
  717.         
  718.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetRowset )( 
  719.             IRowPosition * This,
  720.             /* [in] */ REFIID riid,
  721.             /* [iid_is][out] */ IUnknown **ppRowset);
  722.         
  723.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  724.             IRowPosition * This,
  725.             /* [in] */ IUnknown *pRowset);
  726.         
  727.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetRowPosition )( 
  728.             IRowPosition * This,
  729.             /* [in] */ HCHAPTER hChapter,
  730.             /* [in] */ HROW hRow,
  731.             /* [in] */ DBPOSITIONFLAGS dwPositionFlags);
  732.         
  733.         END_INTERFACE
  734.     } IRowPositionVtbl;
  735.     interface IRowPosition
  736.     {
  737.         CONST_VTBL struct IRowPositionVtbl *lpVtbl;
  738.     };
  739.     
  740. #ifdef COBJMACROS
  741. #define IRowPosition_QueryInterface(This,riid,ppvObject)
  742.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  743. #define IRowPosition_AddRef(This)
  744.     (This)->lpVtbl -> AddRef(This)
  745. #define IRowPosition_Release(This)
  746.     (This)->lpVtbl -> Release(This)
  747. #define IRowPosition_ClearRowPosition(This)
  748.     (This)->lpVtbl -> ClearRowPosition(This)
  749. #define IRowPosition_GetRowPosition(This,phChapter,phRow,pdwPositionFlags)
  750.     (This)->lpVtbl -> GetRowPosition(This,phChapter,phRow,pdwPositionFlags)
  751. #define IRowPosition_GetRowset(This,riid,ppRowset)
  752.     (This)->lpVtbl -> GetRowset(This,riid,ppRowset)
  753. #define IRowPosition_Initialize(This,pRowset)
  754.     (This)->lpVtbl -> Initialize(This,pRowset)
  755. #define IRowPosition_SetRowPosition(This,hChapter,hRow,dwPositionFlags)
  756.     (This)->lpVtbl -> SetRowPosition(This,hChapter,hRow,dwPositionFlags)
  757. #endif /* COBJMACROS */
  758. #endif  /* C style interface */
  759. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowPosition_RemoteClearRowPosition_Proxy( 
  760.     IRowPosition * This,
  761.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  762. void __RPC_STUB IRowPosition_RemoteClearRowPosition_Stub(
  763.     IRpcStubBuffer *This,
  764.     IRpcChannelBuffer *_pRpcChannelBuffer,
  765.     PRPC_MESSAGE _pRpcMessage,
  766.     DWORD *_pdwStubPhase);
  767. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowPosition_RemoteGetRowPosition_Proxy( 
  768.     IRowPosition * This,
  769.     /* [out] */ HCHAPTER *phChapter,
  770.     /* [out] */ HROW *phRow,
  771.     /* [out] */ DBPOSITIONFLAGS *pdwPositionFlags,
  772.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  773. void __RPC_STUB IRowPosition_RemoteGetRowPosition_Stub(
  774.     IRpcStubBuffer *This,
  775.     IRpcChannelBuffer *_pRpcChannelBuffer,
  776.     PRPC_MESSAGE _pRpcMessage,
  777.     DWORD *_pdwStubPhase);
  778. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowPosition_RemoteGetRowset_Proxy( 
  779.     IRowPosition * This,
  780.     /* [in] */ REFIID riid,
  781.     /* [iid_is][out] */ IUnknown **ppRowset,
  782.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  783. void __RPC_STUB IRowPosition_RemoteGetRowset_Stub(
  784.     IRpcStubBuffer *This,
  785.     IRpcChannelBuffer *_pRpcChannelBuffer,
  786.     PRPC_MESSAGE _pRpcMessage,
  787.     DWORD *_pdwStubPhase);
  788. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowPosition_RemoteInitialize_Proxy( 
  789.     IRowPosition * This,
  790.     /* [in] */ IUnknown *pRowset,
  791.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  792. void __RPC_STUB IRowPosition_RemoteInitialize_Stub(
  793.     IRpcStubBuffer *This,
  794.     IRpcChannelBuffer *_pRpcChannelBuffer,
  795.     PRPC_MESSAGE _pRpcMessage,
  796.     DWORD *_pdwStubPhase);
  797. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowPosition_RemoteSetRowPosition_Proxy( 
  798.     IRowPosition * This,
  799.     /* [in] */ HCHAPTER hChapter,
  800.     /* [in] */ HROW hRow,
  801.     /* [in] */ DBPOSITIONFLAGS dwPositionFlags,
  802.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  803. void __RPC_STUB IRowPosition_RemoteSetRowPosition_Stub(
  804.     IRpcStubBuffer *This,
  805.     IRpcChannelBuffer *_pRpcChannelBuffer,
  806.     PRPC_MESSAGE _pRpcMessage,
  807.     DWORD *_pdwStubPhase);
  808. #endif  /* __IRowPosition_INTERFACE_DEFINED__ */
  809. #ifndef __IRowPositionChange_INTERFACE_DEFINED__
  810. #define __IRowPositionChange_INTERFACE_DEFINED__
  811. /* interface IRowPositionChange */
  812. /* [unique][uuid][object] */ 
  813. EXTERN_C const IID IID_IRowPositionChange;
  814. #if defined(__cplusplus) && !defined(CINTERFACE)
  815.     
  816.     MIDL_INTERFACE("0997a571-126e-11d0-9f8a-00a0c9a0631e")
  817.     IRowPositionChange : public IUnknown
  818.     {
  819.     public:
  820.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE OnRowPositionChange( 
  821.             /* [in] */ DBREASON eReason,
  822.             /* [in] */ DBEVENTPHASE ePhase,
  823.             /* [in] */ BOOL fCantDeny) = 0;
  824.         
  825.     };
  826.     
  827. #else  /* C style interface */
  828.     typedef struct IRowPositionChangeVtbl
  829.     {
  830.         BEGIN_INTERFACE
  831.         
  832.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  833.             IRowPositionChange * This,
  834.             /* [in] */ REFIID riid,
  835.             /* [iid_is][out] */ void **ppvObject);
  836.         
  837.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  838.             IRowPositionChange * This);
  839.         
  840.         ULONG ( STDMETHODCALLTYPE *Release )( 
  841.             IRowPositionChange * This);
  842.         
  843.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *OnRowPositionChange )( 
  844.             IRowPositionChange * This,
  845.             /* [in] */ DBREASON eReason,
  846.             /* [in] */ DBEVENTPHASE ePhase,
  847.             /* [in] */ BOOL fCantDeny);
  848.         
  849.         END_INTERFACE
  850.     } IRowPositionChangeVtbl;
  851.     interface IRowPositionChange
  852.     {
  853.         CONST_VTBL struct IRowPositionChangeVtbl *lpVtbl;
  854.     };
  855.     
  856. #ifdef COBJMACROS
  857. #define IRowPositionChange_QueryInterface(This,riid,ppvObject)
  858.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  859. #define IRowPositionChange_AddRef(This)
  860.     (This)->lpVtbl -> AddRef(This)
  861. #define IRowPositionChange_Release(This)
  862.     (This)->lpVtbl -> Release(This)
  863. #define IRowPositionChange_OnRowPositionChange(This,eReason,ePhase,fCantDeny)
  864.     (This)->lpVtbl -> OnRowPositionChange(This,eReason,ePhase,fCantDeny)
  865. #endif /* COBJMACROS */
  866. #endif  /* C style interface */
  867. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowPositionChange_RemoteOnRowPositionChange_Proxy( 
  868.     IRowPositionChange * This,
  869.     /* [in] */ DBREASON eReason,
  870.     /* [in] */ DBEVENTPHASE ePhase,
  871.     /* [in] */ BOOL fCantDeny,
  872.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  873. void __RPC_STUB IRowPositionChange_RemoteOnRowPositionChange_Stub(
  874.     IRpcStubBuffer *This,
  875.     IRpcChannelBuffer *_pRpcChannelBuffer,
  876.     PRPC_MESSAGE _pRpcMessage,
  877.     DWORD *_pdwStubPhase);
  878. #endif  /* __IRowPositionChange_INTERFACE_DEFINED__ */
  879. #ifndef __IViewRowset_INTERFACE_DEFINED__
  880. #define __IViewRowset_INTERFACE_DEFINED__
  881. /* interface IViewRowset */
  882. /* [unique][uuid][object] */ 
  883. EXTERN_C const IID IID_IViewRowset;
  884. #if defined(__cplusplus) && !defined(CINTERFACE)
  885.     
  886.     MIDL_INTERFACE("0c733a97-2a1c-11ce-ade5-00aa0044773d")
  887.     IViewRowset : public IUnknown
  888.     {
  889.     public:
  890.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetSpecification( 
  891.             /* [in] */ REFIID riid,
  892.             /* [iid_is][out] */ IUnknown **ppObject) = 0;
  893.         
  894.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE OpenViewRowset( 
  895.             /* [in] */ IUnknown *pUnkOuter,
  896.             /* [in] */ REFIID riid,
  897.             /* [iid_is][out] */ IUnknown **ppRowset) = 0;
  898.         
  899.     };
  900.     
  901. #else  /* C style interface */
  902.     typedef struct IViewRowsetVtbl
  903.     {
  904.         BEGIN_INTERFACE
  905.         
  906.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  907.             IViewRowset * This,
  908.             /* [in] */ REFIID riid,
  909.             /* [iid_is][out] */ void **ppvObject);
  910.         
  911.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  912.             IViewRowset * This);
  913.         
  914.         ULONG ( STDMETHODCALLTYPE *Release )( 
  915.             IViewRowset * This);
  916.         
  917.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetSpecification )( 
  918.             IViewRowset * This,
  919.             /* [in] */ REFIID riid,
  920.             /* [iid_is][out] */ IUnknown **ppObject);
  921.         
  922.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *OpenViewRowset )( 
  923.             IViewRowset * This,
  924.             /* [in] */ IUnknown *pUnkOuter,
  925.             /* [in] */ REFIID riid,
  926.             /* [iid_is][out] */ IUnknown **ppRowset);
  927.         
  928.         END_INTERFACE
  929.     } IViewRowsetVtbl;
  930.     interface IViewRowset
  931.     {
  932.         CONST_VTBL struct IViewRowsetVtbl *lpVtbl;
  933.     };
  934.     
  935. #ifdef COBJMACROS
  936. #define IViewRowset_QueryInterface(This,riid,ppvObject)
  937.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  938. #define IViewRowset_AddRef(This)
  939.     (This)->lpVtbl -> AddRef(This)
  940. #define IViewRowset_Release(This)
  941.     (This)->lpVtbl -> Release(This)
  942. #define IViewRowset_GetSpecification(This,riid,ppObject)
  943.     (This)->lpVtbl -> GetSpecification(This,riid,ppObject)
  944. #define IViewRowset_OpenViewRowset(This,pUnkOuter,riid,ppRowset)
  945.     (This)->lpVtbl -> OpenViewRowset(This,pUnkOuter,riid,ppRowset)
  946. #endif /* COBJMACROS */
  947. #endif  /* C style interface */
  948. /* [call_as] */ HRESULT STDMETHODCALLTYPE IViewRowset_RemoteGetSpecification_Proxy( 
  949.     IViewRowset * This,
  950.     /* [in] */ REFIID riid,
  951.     /* [iid_is][out] */ IUnknown **ppObject,
  952.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  953. void __RPC_STUB IViewRowset_RemoteGetSpecification_Stub(
  954.     IRpcStubBuffer *This,
  955.     IRpcChannelBuffer *_pRpcChannelBuffer,
  956.     PRPC_MESSAGE _pRpcMessage,
  957.     DWORD *_pdwStubPhase);
  958. /* [call_as] */ HRESULT STDMETHODCALLTYPE IViewRowset_RemoteOpenViewRowset_Proxy( 
  959.     IViewRowset * This,
  960.     /* [in] */ IUnknown *pUnkOuter,
  961.     /* [in] */ REFIID riid,
  962.     /* [iid_is][out] */ IUnknown **ppRowset,
  963.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  964. void __RPC_STUB IViewRowset_RemoteOpenViewRowset_Stub(
  965.     IRpcStubBuffer *This,
  966.     IRpcChannelBuffer *_pRpcChannelBuffer,
  967.     PRPC_MESSAGE _pRpcMessage,
  968.     DWORD *_pdwStubPhase);
  969. #endif  /* __IViewRowset_INTERFACE_DEFINED__ */
  970. #ifndef __IViewChapter_INTERFACE_DEFINED__
  971. #define __IViewChapter_INTERFACE_DEFINED__
  972. /* interface IViewChapter */
  973. /* [unique][uuid][object] */ 
  974. EXTERN_C const IID IID_IViewChapter;
  975. #if defined(__cplusplus) && !defined(CINTERFACE)
  976.     
  977.     MIDL_INTERFACE("0c733a98-2a1c-11ce-ade5-00aa0044773d")
  978.     IViewChapter : public IUnknown
  979.     {
  980.     public:
  981.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetSpecification( 
  982.             /* [in] */ REFIID riid,
  983.             /* [iid_is][out] */ IUnknown **ppRowset) = 0;
  984.         
  985.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE OpenViewChapter( 
  986.             /* [in] */ HCHAPTER hSource,
  987.             /* [out] */ HCHAPTER *phViewChapter) = 0;
  988.         
  989.     };
  990.     
  991. #else  /* C style interface */
  992.     typedef struct IViewChapterVtbl
  993.     {
  994.         BEGIN_INTERFACE
  995.         
  996.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  997.             IViewChapter * This,
  998.             /* [in] */ REFIID riid,
  999.             /* [iid_is][out] */ void **ppvObject);
  1000.         
  1001.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1002.             IViewChapter * This);
  1003.         
  1004.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1005.             IViewChapter * This);
  1006.         
  1007.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetSpecification )( 
  1008.             IViewChapter * This,
  1009.             /* [in] */ REFIID riid,
  1010.             /* [iid_is][out] */ IUnknown **ppRowset);
  1011.         
  1012.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *OpenViewChapter )( 
  1013.             IViewChapter * This,
  1014.             /* [in] */ HCHAPTER hSource,
  1015.             /* [out] */ HCHAPTER *phViewChapter);
  1016.         
  1017.         END_INTERFACE
  1018.     } IViewChapterVtbl;
  1019.     interface IViewChapter
  1020.     {
  1021.         CONST_VTBL struct IViewChapterVtbl *lpVtbl;
  1022.     };
  1023.     
  1024. #ifdef COBJMACROS
  1025. #define IViewChapter_QueryInterface(This,riid,ppvObject)
  1026.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1027. #define IViewChapter_AddRef(This)
  1028.     (This)->lpVtbl -> AddRef(This)
  1029. #define IViewChapter_Release(This)
  1030.     (This)->lpVtbl -> Release(This)
  1031. #define IViewChapter_GetSpecification(This,riid,ppRowset)
  1032.     (This)->lpVtbl -> GetSpecification(This,riid,ppRowset)
  1033. #define IViewChapter_OpenViewChapter(This,hSource,phViewChapter)
  1034.     (This)->lpVtbl -> OpenViewChapter(This,hSource,phViewChapter)
  1035. #endif /* COBJMACROS */
  1036. #endif  /* C style interface */
  1037. /* [call_as] */ HRESULT STDMETHODCALLTYPE IViewChapter_RemoteGetSpecification_Proxy( 
  1038.     IViewChapter * This,
  1039.     /* [in] */ REFIID riid,
  1040.     /* [iid_is][out] */ IUnknown **ppRowset,
  1041.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1042. void __RPC_STUB IViewChapter_RemoteGetSpecification_Stub(
  1043.     IRpcStubBuffer *This,
  1044.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1045.     PRPC_MESSAGE _pRpcMessage,
  1046.     DWORD *_pdwStubPhase);
  1047. /* [call_as] */ HRESULT STDMETHODCALLTYPE IViewChapter_RemoteOpenViewChapter_Proxy( 
  1048.     IViewChapter * This,
  1049.     /* [in] */ HCHAPTER hSource,
  1050.     /* [out] */ HCHAPTER *phViewChapter,
  1051.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1052. void __RPC_STUB IViewChapter_RemoteOpenViewChapter_Stub(
  1053.     IRpcStubBuffer *This,
  1054.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1055.     PRPC_MESSAGE _pRpcMessage,
  1056.     DWORD *_pdwStubPhase);
  1057. #endif  /* __IViewChapter_INTERFACE_DEFINED__ */
  1058. #ifndef __IViewSort_INTERFACE_DEFINED__
  1059. #define __IViewSort_INTERFACE_DEFINED__
  1060. /* interface IViewSort */
  1061. /* [unique][uuid][object] */ 
  1062. EXTERN_C const IID IID_IViewSort;
  1063. #if defined(__cplusplus) && !defined(CINTERFACE)
  1064.     
  1065.     MIDL_INTERFACE("0c733a9a-2a1c-11ce-ade5-00aa0044773d")
  1066.     IViewSort : public IUnknown
  1067.     {
  1068.     public:
  1069.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetSortOrder( 
  1070.             /* [out] */ DBORDINAL *pcValues,
  1071.             /* [out] */ DBORDINAL *prgColumns[  ],
  1072.             /* [out] */ DBSORT *prgOrders[  ]) = 0;
  1073.         
  1074.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetSortOrder( 
  1075.             /* [in] */ DBORDINAL cValues,
  1076.             /* [size_is][in] */ const DBORDINAL rgColumns[  ],
  1077.             /* [size_is][in] */ const DBSORT rgOrders[  ]) = 0;
  1078.         
  1079.     };
  1080.     
  1081. #else  /* C style interface */
  1082.     typedef struct IViewSortVtbl
  1083.     {
  1084.         BEGIN_INTERFACE
  1085.         
  1086.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1087.             IViewSort * This,
  1088.             /* [in] */ REFIID riid,
  1089.             /* [iid_is][out] */ void **ppvObject);
  1090.         
  1091.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1092.             IViewSort * This);
  1093.         
  1094.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1095.             IViewSort * This);
  1096.         
  1097.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetSortOrder )( 
  1098.             IViewSort * This,
  1099.             /* [out] */ DBORDINAL *pcValues,
  1100.             /* [out] */ DBORDINAL *prgColumns[  ],
  1101.             /* [out] */ DBSORT *prgOrders[  ]);
  1102.         
  1103.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetSortOrder )( 
  1104.             IViewSort * This,
  1105.             /* [in] */ DBORDINAL cValues,
  1106.             /* [size_is][in] */ const DBORDINAL rgColumns[  ],
  1107.             /* [size_is][in] */ const DBSORT rgOrders[  ]);
  1108.         
  1109.         END_INTERFACE
  1110.     } IViewSortVtbl;
  1111.     interface IViewSort
  1112.     {
  1113.         CONST_VTBL struct IViewSortVtbl *lpVtbl;
  1114.     };
  1115.     
  1116. #ifdef COBJMACROS
  1117. #define IViewSort_QueryInterface(This,riid,ppvObject)
  1118.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1119. #define IViewSort_AddRef(This)
  1120.     (This)->lpVtbl -> AddRef(This)
  1121. #define IViewSort_Release(This)
  1122.     (This)->lpVtbl -> Release(This)
  1123. #define IViewSort_GetSortOrder(This,pcValues,prgColumns,prgOrders)
  1124.     (This)->lpVtbl -> GetSortOrder(This,pcValues,prgColumns,prgOrders)
  1125. #define IViewSort_SetSortOrder(This,cValues,rgColumns,rgOrders)
  1126.     (This)->lpVtbl -> SetSortOrder(This,cValues,rgColumns,rgOrders)
  1127. #endif /* COBJMACROS */
  1128. #endif  /* C style interface */
  1129. /* [call_as] */ HRESULT STDMETHODCALLTYPE IViewSort_RemoteGetSortOrder_Proxy( 
  1130.     IViewSort * This,
  1131.     /* [out][in] */ DBORDINAL *pcValues,
  1132.     /* [size_is][size_is][out] */ DBORDINAL **prgColumns,
  1133.     /* [size_is][size_is][out] */ DBSORT **prgOrders,
  1134.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1135. void __RPC_STUB IViewSort_RemoteGetSortOrder_Stub(
  1136.     IRpcStubBuffer *This,
  1137.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1138.     PRPC_MESSAGE _pRpcMessage,
  1139.     DWORD *_pdwStubPhase);
  1140. /* [call_as] */ HRESULT STDMETHODCALLTYPE IViewSort_RemoteSetSortOrder_Proxy( 
  1141.     IViewSort * This,
  1142.     /* [in] */ DBORDINAL cValues,
  1143.     /* [size_is][in] */ const DBORDINAL *rgColumns,
  1144.     /* [size_is][in] */ const DBSORT *rgOrders,
  1145.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1146. void __RPC_STUB IViewSort_RemoteSetSortOrder_Stub(
  1147.     IRpcStubBuffer *This,
  1148.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1149.     PRPC_MESSAGE _pRpcMessage,
  1150.     DWORD *_pdwStubPhase);
  1151. #endif  /* __IViewSort_INTERFACE_DEFINED__ */
  1152. #ifndef __IViewFilter_INTERFACE_DEFINED__
  1153. #define __IViewFilter_INTERFACE_DEFINED__
  1154. /* interface IViewFilter */
  1155. /* [unique][uuid][object] */ 
  1156. EXTERN_C const IID IID_IViewFilter;
  1157. #if defined(__cplusplus) && !defined(CINTERFACE)
  1158.     
  1159.     MIDL_INTERFACE("0c733a9b-2a1c-11ce-ade5-00aa0044773d")
  1160.     IViewFilter : public IUnknown
  1161.     {
  1162.     public:
  1163.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetFilter( 
  1164.             /* [in] */ HACCESSOR hAccessor,
  1165.             /* [out] */ DBCOUNTITEM *pcRows,
  1166.             /* [out] */ DBCOMPAREOP *pCompareOps[  ],
  1167.             /* [out] */ void *pCriteriaData) = 0;
  1168.         
  1169.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetFilterBindings( 
  1170.             /* [out] */ DBCOUNTITEM *pcBindings,
  1171.             /* [out] */ DBBINDING **prgBindings) = 0;
  1172.         
  1173.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetFilter( 
  1174.             /* [in] */ HACCESSOR hAccessor,
  1175.             /* [in] */ DBCOUNTITEM cRows,
  1176.             /* [in] */ DBCOMPAREOP CompareOps[  ],
  1177.             /* [in] */ void *pCriteriaData) = 0;
  1178.         
  1179.     };
  1180.     
  1181. #else  /* C style interface */
  1182.     typedef struct IViewFilterVtbl
  1183.     {
  1184.         BEGIN_INTERFACE
  1185.         
  1186.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1187.             IViewFilter * This,
  1188.             /* [in] */ REFIID riid,
  1189.             /* [iid_is][out] */ void **ppvObject);
  1190.         
  1191.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1192.             IViewFilter * This);
  1193.         
  1194.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1195.             IViewFilter * This);
  1196.         
  1197.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetFilter )( 
  1198.             IViewFilter * This,
  1199.             /* [in] */ HACCESSOR hAccessor,
  1200.             /* [out] */ DBCOUNTITEM *pcRows,
  1201.             /* [out] */ DBCOMPAREOP *pCompareOps[  ],
  1202.             /* [out] */ void *pCriteriaData);
  1203.         
  1204.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetFilterBindings )( 
  1205.             IViewFilter * This,
  1206.             /* [out] */ DBCOUNTITEM *pcBindings,
  1207.             /* [out] */ DBBINDING **prgBindings);
  1208.         
  1209.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetFilter )( 
  1210.             IViewFilter * This,
  1211.             /* [in] */ HACCESSOR hAccessor,
  1212.             /* [in] */ DBCOUNTITEM cRows,
  1213.             /* [in] */ DBCOMPAREOP CompareOps[  ],
  1214.             /* [in] */ void *pCriteriaData);
  1215.         
  1216.         END_INTERFACE
  1217.     } IViewFilterVtbl;
  1218.     interface IViewFilter
  1219.     {
  1220.         CONST_VTBL struct IViewFilterVtbl *lpVtbl;
  1221.     };
  1222.     
  1223. #ifdef COBJMACROS
  1224. #define IViewFilter_QueryInterface(This,riid,ppvObject)
  1225.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1226. #define IViewFilter_AddRef(This)
  1227.     (This)->lpVtbl -> AddRef(This)
  1228. #define IViewFilter_Release(This)
  1229.     (This)->lpVtbl -> Release(This)
  1230. #define IViewFilter_GetFilter(This,hAccessor,pcRows,pCompareOps,pCriteriaData)
  1231.     (This)->lpVtbl -> GetFilter(This,hAccessor,pcRows,pCompareOps,pCriteriaData)
  1232. #define IViewFilter_GetFilterBindings(This,pcBindings,prgBindings)
  1233.     (This)->lpVtbl -> GetFilterBindings(This,pcBindings,prgBindings)
  1234. #define IViewFilter_SetFilter(This,hAccessor,cRows,CompareOps,pCriteriaData)
  1235.     (This)->lpVtbl -> SetFilter(This,hAccessor,cRows,CompareOps,pCriteriaData)
  1236. #endif /* COBJMACROS */
  1237. #endif  /* C style interface */
  1238. /* [local] */ HRESULT STDMETHODCALLTYPE IViewFilter_GetFilter_Proxy( 
  1239.     IViewFilter * This,
  1240.     /* [in] */ HACCESSOR hAccessor,
  1241.     /* [out] */ DBCOUNTITEM *pcRows,
  1242.     /* [out] */ DBCOMPAREOP *pCompareOps[  ],
  1243.     /* [out] */ void *pCriteriaData);
  1244. void __RPC_STUB IViewFilter_GetFilter_Stub(
  1245.     IRpcStubBuffer *This,
  1246.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1247.     PRPC_MESSAGE _pRpcMessage,
  1248.     DWORD *_pdwStubPhase);
  1249. /* [call_as] */ HRESULT STDMETHODCALLTYPE IViewFilter_RemoteGetFilterBindings_Proxy( 
  1250.     IViewFilter * This,
  1251.     /* [out][in] */ DBCOUNTITEM *pcBindings,
  1252.     /* [size_is][size_is][out] */ DBBINDING **prgBindings,
  1253.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1254. void __RPC_STUB IViewFilter_RemoteGetFilterBindings_Stub(
  1255.     IRpcStubBuffer *This,
  1256.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1257.     PRPC_MESSAGE _pRpcMessage,
  1258.     DWORD *_pdwStubPhase);
  1259. /* [local] */ HRESULT STDMETHODCALLTYPE IViewFilter_SetFilter_Proxy( 
  1260.     IViewFilter * This,
  1261.     /* [in] */ HACCESSOR hAccessor,
  1262.     /* [in] */ DBCOUNTITEM cRows,
  1263.     /* [in] */ DBCOMPAREOP CompareOps[  ],
  1264.     /* [in] */ void *pCriteriaData);
  1265. void __RPC_STUB IViewFilter_SetFilter_Stub(
  1266.     IRpcStubBuffer *This,
  1267.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1268.     PRPC_MESSAGE _pRpcMessage,
  1269.     DWORD *_pdwStubPhase);
  1270. #endif  /* __IViewFilter_INTERFACE_DEFINED__ */
  1271. #ifndef __IRowsetView_INTERFACE_DEFINED__
  1272. #define __IRowsetView_INTERFACE_DEFINED__
  1273. /* interface IRowsetView */
  1274. /* [unique][uuid][object] */ 
  1275. EXTERN_C const IID IID_IRowsetView;
  1276. #if defined(__cplusplus) && !defined(CINTERFACE)
  1277.     
  1278.     MIDL_INTERFACE("0c733a99-2a1c-11ce-ade5-00aa0044773d")
  1279.     IRowsetView : public IUnknown
  1280.     {
  1281.     public:
  1282.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateView( 
  1283.             /* [in] */ IUnknown *pUnkOuter,
  1284.             /* [in] */ REFIID riid,
  1285.             /* [iid_is][out] */ IUnknown **ppView) = 0;
  1286.         
  1287.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetView( 
  1288.             /* [in] */ HCHAPTER hChapter,
  1289.             /* [in] */ REFIID riid,
  1290.             /* [out] */ HCHAPTER *phChapterSource,
  1291.             /* [iid_is][out] */ IUnknown **ppView) = 0;
  1292.         
  1293.     };
  1294.     
  1295. #else  /* C style interface */
  1296.     typedef struct IRowsetViewVtbl
  1297.     {
  1298.         BEGIN_INTERFACE
  1299.         
  1300.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1301.             IRowsetView * This,
  1302.             /* [in] */ REFIID riid,
  1303.             /* [iid_is][out] */ void **ppvObject);
  1304.         
  1305.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1306.             IRowsetView * This);
  1307.         
  1308.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1309.             IRowsetView * This);
  1310.         
  1311.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateView )( 
  1312.             IRowsetView * This,
  1313.             /* [in] */ IUnknown *pUnkOuter,
  1314.             /* [in] */ REFIID riid,
  1315.             /* [iid_is][out] */ IUnknown **ppView);
  1316.         
  1317.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetView )( 
  1318.             IRowsetView * This,
  1319.             /* [in] */ HCHAPTER hChapter,
  1320.             /* [in] */ REFIID riid,
  1321.             /* [out] */ HCHAPTER *phChapterSource,
  1322.             /* [iid_is][out] */ IUnknown **ppView);
  1323.         
  1324.         END_INTERFACE
  1325.     } IRowsetViewVtbl;
  1326.     interface IRowsetView
  1327.     {
  1328.         CONST_VTBL struct IRowsetViewVtbl *lpVtbl;
  1329.     };
  1330.     
  1331. #ifdef COBJMACROS
  1332. #define IRowsetView_QueryInterface(This,riid,ppvObject)
  1333.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1334. #define IRowsetView_AddRef(This)
  1335.     (This)->lpVtbl -> AddRef(This)
  1336. #define IRowsetView_Release(This)
  1337.     (This)->lpVtbl -> Release(This)
  1338. #define IRowsetView_CreateView(This,pUnkOuter,riid,ppView)
  1339.     (This)->lpVtbl -> CreateView(This,pUnkOuter,riid,ppView)
  1340. #define IRowsetView_GetView(This,hChapter,riid,phChapterSource,ppView)
  1341.     (This)->lpVtbl -> GetView(This,hChapter,riid,phChapterSource,ppView)
  1342. #endif /* COBJMACROS */
  1343. #endif  /* C style interface */
  1344. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetView_RemoteCreateView_Proxy( 
  1345.     IRowsetView * This,
  1346.     /* [in] */ IUnknown *pUnkOuter,
  1347.     /* [in] */ REFIID riid,
  1348.     /* [iid_is][out] */ IUnknown **ppView,
  1349.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1350. void __RPC_STUB IRowsetView_RemoteCreateView_Stub(
  1351.     IRpcStubBuffer *This,
  1352.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1353.     PRPC_MESSAGE _pRpcMessage,
  1354.     DWORD *_pdwStubPhase);
  1355. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetView_RemoteGetView_Proxy( 
  1356.     IRowsetView * This,
  1357.     /* [in] */ HCHAPTER hChapter,
  1358.     /* [in] */ REFIID riid,
  1359.     /* [out] */ HCHAPTER *phChapterSource,
  1360.     /* [iid_is][out] */ IUnknown **ppView,
  1361.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1362. void __RPC_STUB IRowsetView_RemoteGetView_Stub(
  1363.     IRpcStubBuffer *This,
  1364.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1365.     PRPC_MESSAGE _pRpcMessage,
  1366.     DWORD *_pdwStubPhase);
  1367. #endif  /* __IRowsetView_INTERFACE_DEFINED__ */
  1368. /* interface __MIDL_itf_oledb_0276 */
  1369. /* [local] */ 
  1370. #endif // OLEDBVER >= 0x0150
  1371. //@@@- V1.5
  1372. //@@@+ deprecated
  1373. #ifdef deprecated
  1374. extern RPC_IF_HANDLE __MIDL_itf_oledb_0276_v0_0_c_ifspec;
  1375. extern RPC_IF_HANDLE __MIDL_itf_oledb_0276_v0_0_s_ifspec;
  1376. #ifndef __IRowsetExactScroll_INTERFACE_DEFINED__
  1377. #define __IRowsetExactScroll_INTERFACE_DEFINED__
  1378. /* interface IRowsetExactScroll */
  1379. /* [unique][uuid][object][local] */ 
  1380. EXTERN_C const IID IID_IRowsetExactScroll;
  1381. #if defined(__cplusplus) && !defined(CINTERFACE)
  1382.     
  1383.     MIDL_INTERFACE("0c733a7f-2a1c-11ce-ade5-00aa0044773d")
  1384.     IRowsetExactScroll : public IRowsetScroll
  1385.     {
  1386.     public:
  1387.         virtual HRESULT STDMETHODCALLTYPE GetExactPosition( 
  1388.             /* [in] */ HCHAPTER hChapter,
  1389.             /* [in] */ DBBKMARK cbBookmark,
  1390.             /* [size_is][in] */ const BYTE *pBookmark,
  1391.             /* [out] */ DBCOUNTITEM *pulPosition,
  1392.             /* [out] */ DBCOUNTITEM *pcRows) = 0;
  1393.         
  1394.     };
  1395.     
  1396. #else  /* C style interface */
  1397.     typedef struct IRowsetExactScrollVtbl
  1398.     {
  1399.         BEGIN_INTERFACE
  1400.         
  1401.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1402.             IRowsetExactScroll * This,
  1403.             /* [in] */ REFIID riid,
  1404.             /* [iid_is][out] */ void **ppvObject);
  1405.         
  1406.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1407.             IRowsetExactScroll * This);
  1408.         
  1409.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1410.             IRowsetExactScroll * This);
  1411.         
  1412.         HRESULT ( STDMETHODCALLTYPE *AddRefRows )( 
  1413.             IRowsetExactScroll * This,
  1414.             /* [in] */ DBCOUNTITEM cRows,
  1415.             /* [size_is][in] */ const HROW rghRows[  ],
  1416.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  1417.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  1418.         
  1419.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  1420.             IRowsetExactScroll * This,
  1421.             /* [in] */ HROW hRow,
  1422.             /* [in] */ HACCESSOR hAccessor,
  1423.             /* [out] */ void *pData);
  1424.         
  1425.         HRESULT ( STDMETHODCALLTYPE *GetNextRows )( 
  1426.             IRowsetExactScroll * This,
  1427.             /* [in] */ HCHAPTER hReserved,
  1428.             /* [in] */ DBROWOFFSET lRowsOffset,
  1429.             /* [in] */ DBROWCOUNT cRows,
  1430.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  1431.             /* [size_is][size_is][out] */ HROW **prghRows);
  1432.         
  1433.         HRESULT ( STDMETHODCALLTYPE *ReleaseRows )( 
  1434.             IRowsetExactScroll * This,
  1435.             /* [in] */ DBCOUNTITEM cRows,
  1436.             /* [size_is][in] */ const HROW rghRows[  ],
  1437.             /* [size_is][in] */ DBROWOPTIONS rgRowOptions[  ],
  1438.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  1439.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  1440.         
  1441.         HRESULT ( STDMETHODCALLTYPE *RestartPosition )( 
  1442.             IRowsetExactScroll * This,
  1443.             /* [in] */ HCHAPTER hReserved);
  1444.         
  1445.         HRESULT ( STDMETHODCALLTYPE *Compare )( 
  1446.             IRowsetExactScroll * This,
  1447.             /* [in] */ HCHAPTER hReserved,
  1448.             /* [in] */ DBBKMARK cbBookmark1,
  1449.             /* [size_is][in] */ const BYTE *pBookmark1,
  1450.             /* [in] */ DBBKMARK cbBookmark2,
  1451.             /* [size_is][in] */ const BYTE *pBookmark2,
  1452.             /* [out] */ DBCOMPARE *pComparison);
  1453.         
  1454.         HRESULT ( STDMETHODCALLTYPE *GetRowsAt )( 
  1455.             IRowsetExactScroll * This,
  1456.             /* [in] */ HWATCHREGION hReserved1,
  1457.             /* [in] */ HCHAPTER hReserved2,
  1458.             /* [in] */ DBBKMARK cbBookmark,
  1459.             /* [size_is][in] */ const BYTE *pBookmark,
  1460.             /* [in] */ DBROWOFFSET lRowsOffset,
  1461.             /* [in] */ DBROWCOUNT cRows,
  1462.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  1463.             /* [size_is][size_is][out] */ HROW **prghRows);
  1464.         
  1465.         HRESULT ( STDMETHODCALLTYPE *GetRowsByBookmark )( 
  1466.             IRowsetExactScroll * This,
  1467.             /* [in] */ HCHAPTER hReserved,
  1468.             /* [in] */ DBCOUNTITEM cRows,
  1469.             /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  1470.             /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  1471.             /* [size_is][out] */ HROW rghRows[  ],
  1472.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  1473.         
  1474.         HRESULT ( STDMETHODCALLTYPE *Hash )( 
  1475.             IRowsetExactScroll * This,
  1476.             /* [in] */ HCHAPTER hReserved,
  1477.             /* [in] */ DBBKMARK cBookmarks,
  1478.             /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  1479.             /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  1480.             /* [size_is][out] */ DBHASHVALUE rgHashedValues[  ],
  1481.             /* [size_is][out] */ DBROWSTATUS rgBookmarkStatus[  ]);
  1482.         
  1483.         HRESULT ( STDMETHODCALLTYPE *GetApproximatePosition )( 
  1484.             IRowsetExactScroll * This,
  1485.             /* [in] */ HCHAPTER hReserved,
  1486.             /* [in] */ DBBKMARK cbBookmark,
  1487.             /* [size_is][in] */ const BYTE *pBookmark,
  1488.             /* [out] */ DBCOUNTITEM *pulPosition,
  1489.             /* [out] */ DBCOUNTITEM *pcRows);
  1490.         
  1491.         HRESULT ( STDMETHODCALLTYPE *GetRowsAtRatio )( 
  1492.             IRowsetExactScroll * This,
  1493.             /* [in] */ HWATCHREGION hReserved1,
  1494.             /* [in] */ HCHAPTER hReserved2,
  1495.             /* [in] */ DBCOUNTITEM ulNumerator,
  1496.             /* [in] */ DBCOUNTITEM ulDenominator,
  1497.             /* [in] */ DBROWCOUNT cRows,
  1498.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  1499.             /* [size_is][size_is][out] */ HROW **prghRows);
  1500.         
  1501.         HRESULT ( STDMETHODCALLTYPE *GetExactPosition )( 
  1502.             IRowsetExactScroll * This,
  1503.             /* [in] */ HCHAPTER hChapter,
  1504.             /* [in] */ DBBKMARK cbBookmark,
  1505.             /* [size_is][in] */ const BYTE *pBookmark,
  1506.             /* [out] */ DBCOUNTITEM *pulPosition,
  1507.             /* [out] */ DBCOUNTITEM *pcRows);
  1508.         
  1509.         END_INTERFACE
  1510.     } IRowsetExactScrollVtbl;
  1511.     interface IRowsetExactScroll
  1512.     {
  1513.         CONST_VTBL struct IRowsetExactScrollVtbl *lpVtbl;
  1514.     };
  1515.     
  1516. #ifdef COBJMACROS
  1517. #define IRowsetExactScroll_QueryInterface(This,riid,ppvObject)
  1518.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1519. #define IRowsetExactScroll_AddRef(This)
  1520.     (This)->lpVtbl -> AddRef(This)
  1521. #define IRowsetExactScroll_Release(This)
  1522.     (This)->lpVtbl -> Release(This)
  1523. #define IRowsetExactScroll_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
  1524.     (This)->lpVtbl -> AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
  1525. #define IRowsetExactScroll_GetData(This,hRow,hAccessor,pData)
  1526.     (This)->lpVtbl -> GetData(This,hRow,hAccessor,pData)
  1527. #define IRowsetExactScroll_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
  1528.     (This)->lpVtbl -> GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
  1529. #define IRowsetExactScroll_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
  1530.     (This)->lpVtbl -> ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
  1531. #define IRowsetExactScroll_RestartPosition(This,hReserved)
  1532.     (This)->lpVtbl -> RestartPosition(This,hReserved)
  1533. #define IRowsetExactScroll_Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
  1534.     (This)->lpVtbl -> Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
  1535. #define IRowsetExactScroll_GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
  1536.     (This)->lpVtbl -> GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
  1537. #define IRowsetExactScroll_GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
  1538.     (This)->lpVtbl -> GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
  1539. #define IRowsetExactScroll_Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
  1540.     (This)->lpVtbl -> Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
  1541. #define IRowsetExactScroll_GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows)
  1542.     (This)->lpVtbl -> GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows)
  1543. #define IRowsetExactScroll_GetRowsAtRatio(This,hReserved1,hReserved2,ulNumerator,ulDenominator,cRows,pcRowsObtained,prghRows)
  1544.     (This)->lpVtbl -> GetRowsAtRatio(This,hReserved1,hReserved2,ulNumerator,ulDenominator,cRows,pcRowsObtained,prghRows)
  1545. #define IRowsetExactScroll_GetExactPosition(This,hChapter,cbBookmark,pBookmark,pulPosition,pcRows)
  1546.     (This)->lpVtbl -> GetExactPosition(This,hChapter,cbBookmark,pBookmark,pulPosition,pcRows)
  1547. #endif /* COBJMACROS */
  1548. #endif  /* C style interface */
  1549. HRESULT STDMETHODCALLTYPE IRowsetExactScroll_GetExactPosition_Proxy( 
  1550.     IRowsetExactScroll * This,
  1551.     /* [in] */ HCHAPTER hChapter,
  1552.     /* [in] */ DBBKMARK cbBookmark,
  1553.     /* [size_is][in] */ const BYTE *pBookmark,
  1554.     /* [out] */ DBCOUNTITEM *pulPosition,
  1555.     /* [out] */ DBCOUNTITEM *pcRows);
  1556. void __RPC_STUB IRowsetExactScroll_GetExactPosition_Stub(
  1557.     IRpcStubBuffer *This,
  1558.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1559.     PRPC_MESSAGE _pRpcMessage,
  1560.     DWORD *_pdwStubPhase);
  1561. #endif  /* __IRowsetExactScroll_INTERFACE_DEFINED__ */
  1562. /* interface __MIDL_itf_oledb_0277 */
  1563. /* [local] */ 
  1564. #endif // deprecated
  1565. //@@@- deprecated
  1566. extern RPC_IF_HANDLE __MIDL_itf_oledb_0277_v0_0_c_ifspec;
  1567. extern RPC_IF_HANDLE __MIDL_itf_oledb_0277_v0_0_s_ifspec;
  1568. #ifndef __IRowsetChange_INTERFACE_DEFINED__
  1569. #define __IRowsetChange_INTERFACE_DEFINED__
  1570. /* interface IRowsetChange */
  1571. /* [unique][uuid][object][local] */ 
  1572. EXTERN_C const IID IID_IRowsetChange;
  1573. #if defined(__cplusplus) && !defined(CINTERFACE)
  1574.     
  1575.     MIDL_INTERFACE("0c733a05-2a1c-11ce-ade5-00aa0044773d")
  1576.     IRowsetChange : public IUnknown
  1577.     {
  1578.     public:
  1579.         virtual HRESULT STDMETHODCALLTYPE DeleteRows( 
  1580.             /* [in] */ HCHAPTER hReserved,
  1581.             /* [in] */ DBCOUNTITEM cRows,
  1582.             /* [size_is][in] */ const HROW rghRows[  ],
  1583.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]) = 0;
  1584.         
  1585.         virtual HRESULT STDMETHODCALLTYPE SetData( 
  1586.             /* [in] */ HROW hRow,
  1587.             /* [in] */ HACCESSOR hAccessor,
  1588.             /* [in] */ void *pData) = 0;
  1589.         
  1590.         virtual HRESULT STDMETHODCALLTYPE InsertRow( 
  1591.             /* [in] */ HCHAPTER hReserved,
  1592.             /* [in] */ HACCESSOR hAccessor,
  1593.             /* [in] */ void *pData,
  1594.             /* [out] */ HROW *phRow) = 0;
  1595.         
  1596.     };
  1597.     
  1598. #else  /* C style interface */
  1599.     typedef struct IRowsetChangeVtbl
  1600.     {
  1601.         BEGIN_INTERFACE
  1602.         
  1603.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1604.             IRowsetChange * This,
  1605.             /* [in] */ REFIID riid,
  1606.             /* [iid_is][out] */ void **ppvObject);
  1607.         
  1608.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1609.             IRowsetChange * This);
  1610.         
  1611.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1612.             IRowsetChange * This);
  1613.         
  1614.         HRESULT ( STDMETHODCALLTYPE *DeleteRows )( 
  1615.             IRowsetChange * This,
  1616.             /* [in] */ HCHAPTER hReserved,
  1617.             /* [in] */ DBCOUNTITEM cRows,
  1618.             /* [size_is][in] */ const HROW rghRows[  ],
  1619.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  1620.         
  1621.         HRESULT ( STDMETHODCALLTYPE *SetData )( 
  1622.             IRowsetChange * This,
  1623.             /* [in] */ HROW hRow,
  1624.             /* [in] */ HACCESSOR hAccessor,
  1625.             /* [in] */ void *pData);
  1626.         
  1627.         HRESULT ( STDMETHODCALLTYPE *InsertRow )( 
  1628.             IRowsetChange * This,
  1629.             /* [in] */ HCHAPTER hReserved,
  1630.             /* [in] */ HACCESSOR hAccessor,
  1631.             /* [in] */ void *pData,
  1632.             /* [out] */ HROW *phRow);
  1633.         
  1634.         END_INTERFACE
  1635.     } IRowsetChangeVtbl;
  1636.     interface IRowsetChange
  1637.     {
  1638.         CONST_VTBL struct IRowsetChangeVtbl *lpVtbl;
  1639.     };
  1640.     
  1641. #ifdef COBJMACROS
  1642. #define IRowsetChange_QueryInterface(This,riid,ppvObject)
  1643.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1644. #define IRowsetChange_AddRef(This)
  1645.     (This)->lpVtbl -> AddRef(This)
  1646. #define IRowsetChange_Release(This)
  1647.     (This)->lpVtbl -> Release(This)
  1648. #define IRowsetChange_DeleteRows(This,hReserved,cRows,rghRows,rgRowStatus)
  1649.     (This)->lpVtbl -> DeleteRows(This,hReserved,cRows,rghRows,rgRowStatus)
  1650. #define IRowsetChange_SetData(This,hRow,hAccessor,pData)
  1651.     (This)->lpVtbl -> SetData(This,hRow,hAccessor,pData)
  1652. #define IRowsetChange_InsertRow(This,hReserved,hAccessor,pData,phRow)
  1653.     (This)->lpVtbl -> InsertRow(This,hReserved,hAccessor,pData,phRow)
  1654. #endif /* COBJMACROS */
  1655. #endif  /* C style interface */
  1656. HRESULT STDMETHODCALLTYPE IRowsetChange_DeleteRows_Proxy( 
  1657.     IRowsetChange * This,
  1658.     /* [in] */ HCHAPTER hReserved,
  1659.     /* [in] */ DBCOUNTITEM cRows,
  1660.     /* [size_is][in] */ const HROW rghRows[  ],
  1661.     /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  1662. void __RPC_STUB IRowsetChange_DeleteRows_Stub(
  1663.     IRpcStubBuffer *This,
  1664.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1665.     PRPC_MESSAGE _pRpcMessage,
  1666.     DWORD *_pdwStubPhase);
  1667. HRESULT STDMETHODCALLTYPE IRowsetChange_SetData_Proxy( 
  1668.     IRowsetChange * This,
  1669.     /* [in] */ HROW hRow,
  1670.     /* [in] */ HACCESSOR hAccessor,
  1671.     /* [in] */ void *pData);
  1672. void __RPC_STUB IRowsetChange_SetData_Stub(
  1673.     IRpcStubBuffer *This,
  1674.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1675.     PRPC_MESSAGE _pRpcMessage,
  1676.     DWORD *_pdwStubPhase);
  1677. HRESULT STDMETHODCALLTYPE IRowsetChange_InsertRow_Proxy( 
  1678.     IRowsetChange * This,
  1679.     /* [in] */ HCHAPTER hReserved,
  1680.     /* [in] */ HACCESSOR hAccessor,
  1681.     /* [in] */ void *pData,
  1682.     /* [out] */ HROW *phRow);
  1683. void __RPC_STUB IRowsetChange_InsertRow_Stub(
  1684.     IRpcStubBuffer *This,
  1685.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1686.     PRPC_MESSAGE _pRpcMessage,
  1687.     DWORD *_pdwStubPhase);
  1688. #endif  /* __IRowsetChange_INTERFACE_DEFINED__ */
  1689. #ifndef __IRowsetUpdate_INTERFACE_DEFINED__
  1690. #define __IRowsetUpdate_INTERFACE_DEFINED__
  1691. /* interface IRowsetUpdate */
  1692. /* [unique][uuid][object][local] */ 
  1693. typedef DWORD DBPENDINGSTATUS;
  1694. enum DBPENDINGSTATUSENUM
  1695.     { DBPENDINGSTATUS_NEW = 0x1,
  1696. DBPENDINGSTATUS_CHANGED = 0x2,
  1697. DBPENDINGSTATUS_DELETED = 0x4,
  1698. DBPENDINGSTATUS_UNCHANGED = 0x8,
  1699. DBPENDINGSTATUS_INVALIDROW = 0x10
  1700.     } ;
  1701. EXTERN_C const IID IID_IRowsetUpdate;
  1702. #if defined(__cplusplus) && !defined(CINTERFACE)
  1703.     
  1704.     MIDL_INTERFACE("0c733a6d-2a1c-11ce-ade5-00aa0044773d")
  1705.     IRowsetUpdate : public IRowsetChange
  1706.     {
  1707.     public:
  1708.         virtual HRESULT STDMETHODCALLTYPE GetOriginalData( 
  1709.             /* [in] */ HROW hRow,
  1710.             /* [in] */ HACCESSOR hAccessor,
  1711.             /* [out] */ void *pData) = 0;
  1712.         
  1713.         virtual HRESULT STDMETHODCALLTYPE GetPendingRows( 
  1714.             /* [in] */ HCHAPTER hReserved,
  1715.             /* [in] */ DBPENDINGSTATUS dwRowStatus,
  1716.             /* [out][in] */ DBCOUNTITEM *pcPendingRows,
  1717.             /* [size_is][size_is][out] */ HROW **prgPendingRows,
  1718.             /* [size_is][size_is][out] */ DBPENDINGSTATUS **prgPendingStatus) = 0;
  1719.         
  1720.         virtual HRESULT STDMETHODCALLTYPE GetRowStatus( 
  1721.             /* [in] */ HCHAPTER hReserved,
  1722.             /* [in] */ DBCOUNTITEM cRows,
  1723.             /* [size_is][in] */ const HROW rghRows[  ],
  1724.             /* [size_is][out] */ DBPENDINGSTATUS rgPendingStatus[  ]) = 0;
  1725.         
  1726.         virtual HRESULT STDMETHODCALLTYPE Undo( 
  1727.             /* [in] */ HCHAPTER hReserved,
  1728.             /* [in] */ DBCOUNTITEM cRows,
  1729.             /* [size_is][in] */ const HROW rghRows[  ],
  1730.             /* [out][in] */ DBCOUNTITEM *pcRowsUndone,
  1731.             /* [size_is][size_is][out] */ HROW **prgRowsUndone,
  1732.             /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus) = 0;
  1733.         
  1734.         virtual HRESULT STDMETHODCALLTYPE Update( 
  1735.             /* [in] */ HCHAPTER hReserved,
  1736.             /* [in] */ DBCOUNTITEM cRows,
  1737.             /* [size_is][in] */ const HROW rghRows[  ],
  1738.             /* [out][in] */ DBCOUNTITEM *pcRows,
  1739.             /* [size_is][size_is][out] */ HROW **prgRows,
  1740.             /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus) = 0;
  1741.         
  1742.     };
  1743.     
  1744. #else  /* C style interface */
  1745.     typedef struct IRowsetUpdateVtbl
  1746.     {
  1747.         BEGIN_INTERFACE
  1748.         
  1749.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1750.             IRowsetUpdate * This,
  1751.             /* [in] */ REFIID riid,
  1752.             /* [iid_is][out] */ void **ppvObject);
  1753.         
  1754.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1755.             IRowsetUpdate * This);
  1756.         
  1757.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1758.             IRowsetUpdate * This);
  1759.         
  1760.         HRESULT ( STDMETHODCALLTYPE *DeleteRows )( 
  1761.             IRowsetUpdate * This,
  1762.             /* [in] */ HCHAPTER hReserved,
  1763.             /* [in] */ DBCOUNTITEM cRows,
  1764.             /* [size_is][in] */ const HROW rghRows[  ],
  1765.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  1766.         
  1767.         HRESULT ( STDMETHODCALLTYPE *SetData )( 
  1768.             IRowsetUpdate * This,
  1769.             /* [in] */ HROW hRow,
  1770.             /* [in] */ HACCESSOR hAccessor,
  1771.             /* [in] */ void *pData);
  1772.         
  1773.         HRESULT ( STDMETHODCALLTYPE *InsertRow )( 
  1774.             IRowsetUpdate * This,
  1775.             /* [in] */ HCHAPTER hReserved,
  1776.             /* [in] */ HACCESSOR hAccessor,
  1777.             /* [in] */ void *pData,
  1778.             /* [out] */ HROW *phRow);
  1779.         
  1780.         HRESULT ( STDMETHODCALLTYPE *GetOriginalData )( 
  1781.             IRowsetUpdate * This,
  1782.             /* [in] */ HROW hRow,
  1783.             /* [in] */ HACCESSOR hAccessor,
  1784.             /* [out] */ void *pData);
  1785.         
  1786.         HRESULT ( STDMETHODCALLTYPE *GetPendingRows )( 
  1787.             IRowsetUpdate * This,
  1788.             /* [in] */ HCHAPTER hReserved,
  1789.             /* [in] */ DBPENDINGSTATUS dwRowStatus,
  1790.             /* [out][in] */ DBCOUNTITEM *pcPendingRows,
  1791.             /* [size_is][size_is][out] */ HROW **prgPendingRows,
  1792.             /* [size_is][size_is][out] */ DBPENDINGSTATUS **prgPendingStatus);
  1793.         
  1794.         HRESULT ( STDMETHODCALLTYPE *GetRowStatus )( 
  1795.             IRowsetUpdate * This,
  1796.             /* [in] */ HCHAPTER hReserved,
  1797.             /* [in] */ DBCOUNTITEM cRows,
  1798.             /* [size_is][in] */ const HROW rghRows[  ],
  1799.             /* [size_is][out] */ DBPENDINGSTATUS rgPendingStatus[  ]);
  1800.         
  1801.         HRESULT ( STDMETHODCALLTYPE *Undo )( 
  1802.             IRowsetUpdate * This,
  1803.             /* [in] */ HCHAPTER hReserved,
  1804.             /* [in] */ DBCOUNTITEM cRows,
  1805.             /* [size_is][in] */ const HROW rghRows[  ],
  1806.             /* [out][in] */ DBCOUNTITEM *pcRowsUndone,
  1807.             /* [size_is][size_is][out] */ HROW **prgRowsUndone,
  1808.             /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus);
  1809.         
  1810.         HRESULT ( STDMETHODCALLTYPE *Update )( 
  1811.             IRowsetUpdate * This,
  1812.             /* [in] */ HCHAPTER hReserved,
  1813.             /* [in] */ DBCOUNTITEM cRows,
  1814.             /* [size_is][in] */ const HROW rghRows[  ],
  1815.             /* [out][in] */ DBCOUNTITEM *pcRows,
  1816.             /* [size_is][size_is][out] */ HROW **prgRows,
  1817.             /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus);
  1818.         
  1819.         END_INTERFACE
  1820.     } IRowsetUpdateVtbl;
  1821.     interface IRowsetUpdate
  1822.     {
  1823.         CONST_VTBL struct IRowsetUpdateVtbl *lpVtbl;
  1824.     };
  1825.     
  1826. #ifdef COBJMACROS
  1827. #define IRowsetUpdate_QueryInterface(This,riid,ppvObject)
  1828.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1829. #define IRowsetUpdate_AddRef(This)
  1830.     (This)->lpVtbl -> AddRef(This)
  1831. #define IRowsetUpdate_Release(This)
  1832.     (This)->lpVtbl -> Release(This)
  1833. #define IRowsetUpdate_DeleteRows(This,hReserved,cRows,rghRows,rgRowStatus)
  1834.     (This)->lpVtbl -> DeleteRows(This,hReserved,cRows,rghRows,rgRowStatus)
  1835. #define IRowsetUpdate_SetData(This,hRow,hAccessor,pData)
  1836.     (This)->lpVtbl -> SetData(This,hRow,hAccessor,pData)
  1837. #define IRowsetUpdate_InsertRow(This,hReserved,hAccessor,pData,phRow)
  1838.     (This)->lpVtbl -> InsertRow(This,hReserved,hAccessor,pData,phRow)
  1839. #define IRowsetUpdate_GetOriginalData(This,hRow,hAccessor,pData)
  1840.     (This)->lpVtbl -> GetOriginalData(This,hRow,hAccessor,pData)
  1841. #define IRowsetUpdate_GetPendingRows(This,hReserved,dwRowStatus,pcPendingRows,prgPendingRows,prgPendingStatus)
  1842.     (This)->lpVtbl -> GetPendingRows(This,hReserved,dwRowStatus,pcPendingRows,prgPendingRows,prgPendingStatus)
  1843. #define IRowsetUpdate_GetRowStatus(This,hReserved,cRows,rghRows,rgPendingStatus)
  1844.     (This)->lpVtbl -> GetRowStatus(This,hReserved,cRows,rghRows,rgPendingStatus)
  1845. #define IRowsetUpdate_Undo(This,hReserved,cRows,rghRows,pcRowsUndone,prgRowsUndone,prgRowStatus)
  1846.     (This)->lpVtbl -> Undo(This,hReserved,cRows,rghRows,pcRowsUndone,prgRowsUndone,prgRowStatus)
  1847. #define IRowsetUpdate_Update(This,hReserved,cRows,rghRows,pcRows,prgRows,prgRowStatus)
  1848.     (This)->lpVtbl -> Update(This,hReserved,cRows,rghRows,pcRows,prgRows,prgRowStatus)
  1849. #endif /* COBJMACROS */
  1850. #endif  /* C style interface */
  1851. HRESULT STDMETHODCALLTYPE IRowsetUpdate_GetOriginalData_Proxy( 
  1852.     IRowsetUpdate * This,
  1853.     /* [in] */ HROW hRow,
  1854.     /* [in] */ HACCESSOR hAccessor,
  1855.     /* [out] */ void *pData);
  1856. void __RPC_STUB IRowsetUpdate_GetOriginalData_Stub(
  1857.     IRpcStubBuffer *This,
  1858.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1859.     PRPC_MESSAGE _pRpcMessage,
  1860.     DWORD *_pdwStubPhase);
  1861. HRESULT STDMETHODCALLTYPE IRowsetUpdate_GetPendingRows_Proxy( 
  1862.     IRowsetUpdate * This,
  1863.     /* [in] */ HCHAPTER hReserved,
  1864.     /* [in] */ DBPENDINGSTATUS dwRowStatus,
  1865.     /* [out][in] */ DBCOUNTITEM *pcPendingRows,
  1866.     /* [size_is][size_is][out] */ HROW **prgPendingRows,
  1867.     /* [size_is][size_is][out] */ DBPENDINGSTATUS **prgPendingStatus);
  1868. void __RPC_STUB IRowsetUpdate_GetPendingRows_Stub(
  1869.     IRpcStubBuffer *This,
  1870.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1871.     PRPC_MESSAGE _pRpcMessage,
  1872.     DWORD *_pdwStubPhase);
  1873. HRESULT STDMETHODCALLTYPE IRowsetUpdate_GetRowStatus_Proxy( 
  1874.     IRowsetUpdate * This,
  1875.     /* [in] */ HCHAPTER hReserved,
  1876.     /* [in] */ DBCOUNTITEM cRows,
  1877.     /* [size_is][in] */ const HROW rghRows[  ],
  1878.     /* [size_is][out] */ DBPENDINGSTATUS rgPendingStatus[  ]);
  1879. void __RPC_STUB IRowsetUpdate_GetRowStatus_Stub(
  1880.     IRpcStubBuffer *This,
  1881.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1882.     PRPC_MESSAGE _pRpcMessage,
  1883.     DWORD *_pdwStubPhase);
  1884. HRESULT STDMETHODCALLTYPE IRowsetUpdate_Undo_Proxy( 
  1885.     IRowsetUpdate * This,
  1886.     /* [in] */ HCHAPTER hReserved,
  1887.     /* [in] */ DBCOUNTITEM cRows,
  1888.     /* [size_is][in] */ const HROW rghRows[  ],
  1889.     /* [out][in] */ DBCOUNTITEM *pcRowsUndone,
  1890.     /* [size_is][size_is][out] */ HROW **prgRowsUndone,
  1891.     /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus);
  1892. void __RPC_STUB IRowsetUpdate_Undo_Stub(
  1893.     IRpcStubBuffer *This,
  1894.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1895.     PRPC_MESSAGE _pRpcMessage,
  1896.     DWORD *_pdwStubPhase);
  1897. HRESULT STDMETHODCALLTYPE IRowsetUpdate_Update_Proxy( 
  1898.     IRowsetUpdate * This,
  1899.     /* [in] */ HCHAPTER hReserved,
  1900.     /* [in] */ DBCOUNTITEM cRows,
  1901.     /* [size_is][in] */ const HROW rghRows[  ],
  1902.     /* [out][in] */ DBCOUNTITEM *pcRows,
  1903.     /* [size_is][size_is][out] */ HROW **prgRows,
  1904.     /* [size_is][size_is][out] */ DBROWSTATUS **prgRowStatus);
  1905. void __RPC_STUB IRowsetUpdate_Update_Stub(
  1906.     IRpcStubBuffer *This,
  1907.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1908.     PRPC_MESSAGE _pRpcMessage,
  1909.     DWORD *_pdwStubPhase);
  1910. #endif  /* __IRowsetUpdate_INTERFACE_DEFINED__ */
  1911. #ifndef __IRowsetIdentity_INTERFACE_DEFINED__
  1912. #define __IRowsetIdentity_INTERFACE_DEFINED__
  1913. /* interface IRowsetIdentity */
  1914. /* [unique][uuid][object] */ 
  1915. EXTERN_C const IID IID_IRowsetIdentity;
  1916. #if defined(__cplusplus) && !defined(CINTERFACE)
  1917.     
  1918.     MIDL_INTERFACE("0c733a09-2a1c-11ce-ade5-00aa0044773d")
  1919.     IRowsetIdentity : public IUnknown
  1920.     {
  1921.     public:
  1922.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsSameRow( 
  1923.             /* [in] */ HROW hThisRow,
  1924.             /* [in] */ HROW hThatRow) = 0;
  1925.         
  1926.     };
  1927.     
  1928. #else  /* C style interface */
  1929.     typedef struct IRowsetIdentityVtbl
  1930.     {
  1931.         BEGIN_INTERFACE
  1932.         
  1933.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1934.             IRowsetIdentity * This,
  1935.             /* [in] */ REFIID riid,
  1936.             /* [iid_is][out] */ void **ppvObject);
  1937.         
  1938.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1939.             IRowsetIdentity * This);
  1940.         
  1941.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1942.             IRowsetIdentity * This);
  1943.         
  1944.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsSameRow )( 
  1945.             IRowsetIdentity * This,
  1946.             /* [in] */ HROW hThisRow,
  1947.             /* [in] */ HROW hThatRow);
  1948.         
  1949.         END_INTERFACE
  1950.     } IRowsetIdentityVtbl;
  1951.     interface IRowsetIdentity
  1952.     {
  1953.         CONST_VTBL struct IRowsetIdentityVtbl *lpVtbl;
  1954.     };
  1955.     
  1956. #ifdef COBJMACROS
  1957. #define IRowsetIdentity_QueryInterface(This,riid,ppvObject)
  1958.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1959. #define IRowsetIdentity_AddRef(This)
  1960.     (This)->lpVtbl -> AddRef(This)
  1961. #define IRowsetIdentity_Release(This)
  1962.     (This)->lpVtbl -> Release(This)
  1963. #define IRowsetIdentity_IsSameRow(This,hThisRow,hThatRow)
  1964.     (This)->lpVtbl -> IsSameRow(This,hThisRow,hThatRow)
  1965. #endif /* COBJMACROS */
  1966. #endif  /* C style interface */
  1967. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetIdentity_RemoteIsSameRow_Proxy( 
  1968.     IRowsetIdentity * This,
  1969.     /* [in] */ HROW hThisRow,
  1970.     /* [in] */ HROW hThatRow,
  1971.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1972. void __RPC_STUB IRowsetIdentity_RemoteIsSameRow_Stub(
  1973.     IRpcStubBuffer *This,
  1974.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1975.     PRPC_MESSAGE _pRpcMessage,
  1976.     DWORD *_pdwStubPhase);
  1977. #endif  /* __IRowsetIdentity_INTERFACE_DEFINED__ */
  1978. #ifndef __IRowsetNotify_INTERFACE_DEFINED__
  1979. #define __IRowsetNotify_INTERFACE_DEFINED__
  1980. /* interface IRowsetNotify */
  1981. /* [unique][uuid][object] */ 
  1982. EXTERN_C const IID IID_IRowsetNotify;
  1983. #if defined(__cplusplus) && !defined(CINTERFACE)
  1984.     
  1985.     MIDL_INTERFACE("0c733a83-2a1c-11ce-ade5-00aa0044773d")
  1986.     IRowsetNotify : public IUnknown
  1987.     {
  1988.     public:
  1989.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE OnFieldChange( 
  1990.             /* [in] */ IRowset *pRowset,
  1991.             /* [in] */ HROW hRow,
  1992.             /* [in] */ DBORDINAL cColumns,
  1993.             /* [size_is][in] */ DBORDINAL rgColumns[  ],
  1994.             /* [in] */ DBREASON eReason,
  1995.             /* [in] */ DBEVENTPHASE ePhase,
  1996.             /* [in] */ BOOL fCantDeny) = 0;
  1997.         
  1998.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE OnRowChange( 
  1999.             /* [in] */ IRowset *pRowset,
  2000.             /* [in] */ DBCOUNTITEM cRows,
  2001.             /* [size_is][in] */ const HROW rghRows[  ],
  2002.             /* [in] */ DBREASON eReason,
  2003.             /* [in] */ DBEVENTPHASE ePhase,
  2004.             /* [in] */ BOOL fCantDeny) = 0;
  2005.         
  2006.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE OnRowsetChange( 
  2007.             /* [in] */ IRowset *pRowset,
  2008.             /* [in] */ DBREASON eReason,
  2009.             /* [in] */ DBEVENTPHASE ePhase,
  2010.             /* [in] */ BOOL fCantDeny) = 0;
  2011.         
  2012.     };
  2013.     
  2014. #else  /* C style interface */
  2015.     typedef struct IRowsetNotifyVtbl
  2016.     {
  2017.         BEGIN_INTERFACE
  2018.         
  2019.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2020.             IRowsetNotify * This,
  2021.             /* [in] */ REFIID riid,
  2022.             /* [iid_is][out] */ void **ppvObject);
  2023.         
  2024.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2025.             IRowsetNotify * This);
  2026.         
  2027.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2028.             IRowsetNotify * This);
  2029.         
  2030.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *OnFieldChange )( 
  2031.             IRowsetNotify * This,
  2032.             /* [in] */ IRowset *pRowset,
  2033.             /* [in] */ HROW hRow,
  2034.             /* [in] */ DBORDINAL cColumns,
  2035.             /* [size_is][in] */ DBORDINAL rgColumns[  ],
  2036.             /* [in] */ DBREASON eReason,
  2037.             /* [in] */ DBEVENTPHASE ePhase,
  2038.             /* [in] */ BOOL fCantDeny);
  2039.         
  2040.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *OnRowChange )( 
  2041.             IRowsetNotify * This,
  2042.             /* [in] */ IRowset *pRowset,
  2043.             /* [in] */ DBCOUNTITEM cRows,
  2044.             /* [size_is][in] */ const HROW rghRows[  ],
  2045.             /* [in] */ DBREASON eReason,
  2046.             /* [in] */ DBEVENTPHASE ePhase,
  2047.             /* [in] */ BOOL fCantDeny);
  2048.         
  2049.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *OnRowsetChange )( 
  2050.             IRowsetNotify * This,
  2051.             /* [in] */ IRowset *pRowset,
  2052.             /* [in] */ DBREASON eReason,
  2053.             /* [in] */ DBEVENTPHASE ePhase,
  2054.             /* [in] */ BOOL fCantDeny);
  2055.         
  2056.         END_INTERFACE
  2057.     } IRowsetNotifyVtbl;
  2058.     interface IRowsetNotify
  2059.     {
  2060.         CONST_VTBL struct IRowsetNotifyVtbl *lpVtbl;
  2061.     };
  2062.     
  2063. #ifdef COBJMACROS
  2064. #define IRowsetNotify_QueryInterface(This,riid,ppvObject)
  2065.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2066. #define IRowsetNotify_AddRef(This)
  2067.     (This)->lpVtbl -> AddRef(This)
  2068. #define IRowsetNotify_Release(This)
  2069.     (This)->lpVtbl -> Release(This)
  2070. #define IRowsetNotify_OnFieldChange(This,pRowset,hRow,cColumns,rgColumns,eReason,ePhase,fCantDeny)
  2071.     (This)->lpVtbl -> OnFieldChange(This,pRowset,hRow,cColumns,rgColumns,eReason,ePhase,fCantDeny)
  2072. #define IRowsetNotify_OnRowChange(This,pRowset,cRows,rghRows,eReason,ePhase,fCantDeny)
  2073.     (This)->lpVtbl -> OnRowChange(This,pRowset,cRows,rghRows,eReason,ePhase,fCantDeny)
  2074. #define IRowsetNotify_OnRowsetChange(This,pRowset,eReason,ePhase,fCantDeny)
  2075.     (This)->lpVtbl -> OnRowsetChange(This,pRowset,eReason,ePhase,fCantDeny)
  2076. #endif /* COBJMACROS */
  2077. #endif  /* C style interface */
  2078. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetNotify_RemoteOnFieldChange_Proxy( 
  2079.     IRowsetNotify * This,
  2080.     /* [in] */ IRowset *pRowset,
  2081.     /* [in] */ HROW hRow,
  2082.     /* [in] */ DBORDINAL cColumns,
  2083.     /* [size_is][in] */ DBORDINAL *rgColumns,
  2084.     /* [in] */ DBREASON eReason,
  2085.     /* [in] */ DBEVENTPHASE ePhase,
  2086.     /* [in] */ BOOL fCantDeny);
  2087. void __RPC_STUB IRowsetNotify_RemoteOnFieldChange_Stub(
  2088.     IRpcStubBuffer *This,
  2089.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2090.     PRPC_MESSAGE _pRpcMessage,
  2091.     DWORD *_pdwStubPhase);
  2092. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetNotify_RemoteOnRowChange_Proxy( 
  2093.     IRowsetNotify * This,
  2094.     /* [in] */ IRowset *pRowset,
  2095.     /* [in] */ DBCOUNTITEM cRows,
  2096.     /* [size_is][in] */ const HROW *rghRows,
  2097.     /* [in] */ DBREASON eReason,
  2098.     /* [in] */ DBEVENTPHASE ePhase,
  2099.     /* [in] */ BOOL fCantDeny);
  2100. void __RPC_STUB IRowsetNotify_RemoteOnRowChange_Stub(
  2101.     IRpcStubBuffer *This,
  2102.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2103.     PRPC_MESSAGE _pRpcMessage,
  2104.     DWORD *_pdwStubPhase);
  2105. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetNotify_RemoteOnRowsetChange_Proxy( 
  2106.     IRowsetNotify * This,
  2107.     /* [in] */ IRowset *pRowset,
  2108.     /* [in] */ DBREASON eReason,
  2109.     /* [in] */ DBEVENTPHASE ePhase,
  2110.     /* [in] */ BOOL fCantDeny);
  2111. void __RPC_STUB IRowsetNotify_RemoteOnRowsetChange_Stub(
  2112.     IRpcStubBuffer *This,
  2113.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2114.     PRPC_MESSAGE _pRpcMessage,
  2115.     DWORD *_pdwStubPhase);
  2116. #endif  /* __IRowsetNotify_INTERFACE_DEFINED__ */
  2117. #ifndef __IRowsetIndex_INTERFACE_DEFINED__
  2118. #define __IRowsetIndex_INTERFACE_DEFINED__
  2119. /* interface IRowsetIndex */
  2120. /* [unique][uuid][object][local] */ 
  2121. typedef DWORD DBSEEK;
  2122. enum DBSEEKENUM
  2123.     { DBSEEK_INVALID = 0,
  2124. DBSEEK_FIRSTEQ = 0x1,
  2125. DBSEEK_LASTEQ = 0x2,
  2126. DBSEEK_AFTEREQ = 0x4,
  2127. DBSEEK_AFTER = 0x8,
  2128. DBSEEK_BEFOREEQ = 0x10,
  2129. DBSEEK_BEFORE = 0x20
  2130.     } ;
  2131. #define DBSEEK_GE DBSEEK_AFTEREQ
  2132. #define DBSEEK_GT DBSEEK_AFTER
  2133. #define DBSEEK_LE DBSEEK_BEFOREEQ
  2134. #define DBSEEK_LT DBSEEK_BEFORE
  2135. typedef DWORD DBRANGE;
  2136. enum DBRANGEENUM
  2137.     { DBRANGE_INCLUSIVESTART = 0,
  2138. DBRANGE_INCLUSIVEEND = 0,
  2139. DBRANGE_EXCLUSIVESTART = 0x1,
  2140. DBRANGE_EXCLUSIVEEND = 0x2,
  2141. DBRANGE_EXCLUDENULLS = 0x4,
  2142. DBRANGE_PREFIX = 0x8,
  2143. DBRANGE_MATCH = 0x10
  2144.     } ;
  2145. //@@@+ V2.0
  2146. #if( OLEDBVER >= 0x0200 )
  2147. enum DBRANGEENUM20
  2148.     { DBRANGE_MATCH_N_SHIFT = 0x18,
  2149. DBRANGE_MATCH_N_MASK = 0xff
  2150.     } ;
  2151. #endif // OLEDBVER >= 0x0200
  2152. //@@@- V2.0
  2153. EXTERN_C const IID IID_IRowsetIndex;
  2154. #if defined(__cplusplus) && !defined(CINTERFACE)
  2155.     
  2156.     MIDL_INTERFACE("0c733a82-2a1c-11ce-ade5-00aa0044773d")
  2157.     IRowsetIndex : public IUnknown
  2158.     {
  2159.     public:
  2160.         virtual HRESULT STDMETHODCALLTYPE GetIndexInfo( 
  2161.             /* [out][in] */ DBORDINAL *pcKeyColumns,
  2162.             /* [size_is][size_is][out] */ DBINDEXCOLUMNDESC **prgIndexColumnDesc,
  2163.             /* [out][in] */ ULONG *pcIndexPropertySets,
  2164.             /* [size_is][size_is][out] */ DBPROPSET **prgIndexPropertySets) = 0;
  2165.         
  2166.         virtual HRESULT STDMETHODCALLTYPE Seek( 
  2167.             /* [in] */ HACCESSOR hAccessor,
  2168.             /* [in] */ DBORDINAL cKeyValues,
  2169.             /* [in] */ void *pData,
  2170.             /* [in] */ DBSEEK dwSeekOptions) = 0;
  2171.         
  2172.         virtual HRESULT STDMETHODCALLTYPE SetRange( 
  2173.             /* [in] */ HACCESSOR hAccessor,
  2174.             /* [in] */ DBORDINAL cStartKeyColumns,
  2175.             /* [in] */ void *pStartData,
  2176.             /* [in] */ DBORDINAL cEndKeyColumns,
  2177.             /* [in] */ void *pEndData,
  2178.             /* [in] */ DBRANGE dwRangeOptions) = 0;
  2179.         
  2180.     };
  2181.     
  2182. #else  /* C style interface */
  2183.     typedef struct IRowsetIndexVtbl
  2184.     {
  2185.         BEGIN_INTERFACE
  2186.         
  2187.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2188.             IRowsetIndex * This,
  2189.             /* [in] */ REFIID riid,
  2190.             /* [iid_is][out] */ void **ppvObject);
  2191.         
  2192.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2193.             IRowsetIndex * This);
  2194.         
  2195.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2196.             IRowsetIndex * This);
  2197.         
  2198.         HRESULT ( STDMETHODCALLTYPE *GetIndexInfo )( 
  2199.             IRowsetIndex * This,
  2200.             /* [out][in] */ DBORDINAL *pcKeyColumns,
  2201.             /* [size_is][size_is][out] */ DBINDEXCOLUMNDESC **prgIndexColumnDesc,
  2202.             /* [out][in] */ ULONG *pcIndexPropertySets,
  2203.             /* [size_is][size_is][out] */ DBPROPSET **prgIndexPropertySets);
  2204.         
  2205.         HRESULT ( STDMETHODCALLTYPE *Seek )( 
  2206.             IRowsetIndex * This,
  2207.             /* [in] */ HACCESSOR hAccessor,
  2208.             /* [in] */ DBORDINAL cKeyValues,
  2209.             /* [in] */ void *pData,
  2210.             /* [in] */ DBSEEK dwSeekOptions);
  2211.         
  2212.         HRESULT ( STDMETHODCALLTYPE *SetRange )( 
  2213.             IRowsetIndex * This,
  2214.             /* [in] */ HACCESSOR hAccessor,
  2215.             /* [in] */ DBORDINAL cStartKeyColumns,
  2216.             /* [in] */ void *pStartData,
  2217.             /* [in] */ DBORDINAL cEndKeyColumns,
  2218.             /* [in] */ void *pEndData,
  2219.             /* [in] */ DBRANGE dwRangeOptions);
  2220.         
  2221.         END_INTERFACE
  2222.     } IRowsetIndexVtbl;
  2223.     interface IRowsetIndex
  2224.     {
  2225.         CONST_VTBL struct IRowsetIndexVtbl *lpVtbl;
  2226.     };
  2227.     
  2228. #ifdef COBJMACROS
  2229. #define IRowsetIndex_QueryInterface(This,riid,ppvObject)
  2230.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2231. #define IRowsetIndex_AddRef(This)
  2232.     (This)->lpVtbl -> AddRef(This)
  2233. #define IRowsetIndex_Release(This)
  2234.     (This)->lpVtbl -> Release(This)
  2235. #define IRowsetIndex_GetIndexInfo(This,pcKeyColumns,prgIndexColumnDesc,pcIndexPropertySets,prgIndexPropertySets)
  2236.     (This)->lpVtbl -> GetIndexInfo(This,pcKeyColumns,prgIndexColumnDesc,pcIndexPropertySets,prgIndexPropertySets)
  2237. #define IRowsetIndex_Seek(This,hAccessor,cKeyValues,pData,dwSeekOptions)
  2238.     (This)->lpVtbl -> Seek(This,hAccessor,cKeyValues,pData,dwSeekOptions)
  2239. #define IRowsetIndex_SetRange(This,hAccessor,cStartKeyColumns,pStartData,cEndKeyColumns,pEndData,dwRangeOptions)
  2240.     (This)->lpVtbl -> SetRange(This,hAccessor,cStartKeyColumns,pStartData,cEndKeyColumns,pEndData,dwRangeOptions)
  2241. #endif /* COBJMACROS */
  2242. #endif  /* C style interface */
  2243. HRESULT STDMETHODCALLTYPE IRowsetIndex_GetIndexInfo_Proxy( 
  2244.     IRowsetIndex * This,
  2245.     /* [out][in] */ DBORDINAL *pcKeyColumns,
  2246.     /* [size_is][size_is][out] */ DBINDEXCOLUMNDESC **prgIndexColumnDesc,
  2247.     /* [out][in] */ ULONG *pcIndexPropertySets,
  2248.     /* [size_is][size_is][out] */ DBPROPSET **prgIndexPropertySets);
  2249. void __RPC_STUB IRowsetIndex_GetIndexInfo_Stub(
  2250.     IRpcStubBuffer *This,
  2251.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2252.     PRPC_MESSAGE _pRpcMessage,
  2253.     DWORD *_pdwStubPhase);
  2254. HRESULT STDMETHODCALLTYPE IRowsetIndex_Seek_Proxy( 
  2255.     IRowsetIndex * This,
  2256.     /* [in] */ HACCESSOR hAccessor,
  2257.     /* [in] */ DBORDINAL cKeyValues,
  2258.     /* [in] */ void *pData,
  2259.     /* [in] */ DBSEEK dwSeekOptions);
  2260. void __RPC_STUB IRowsetIndex_Seek_Stub(
  2261.     IRpcStubBuffer *This,
  2262.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2263.     PRPC_MESSAGE _pRpcMessage,
  2264.     DWORD *_pdwStubPhase);
  2265. HRESULT STDMETHODCALLTYPE IRowsetIndex_SetRange_Proxy( 
  2266.     IRowsetIndex * This,
  2267.     /* [in] */ HACCESSOR hAccessor,
  2268.     /* [in] */ DBORDINAL cStartKeyColumns,
  2269.     /* [in] */ void *pStartData,
  2270.     /* [in] */ DBORDINAL cEndKeyColumns,
  2271.     /* [in] */ void *pEndData,
  2272.     /* [in] */ DBRANGE dwRangeOptions);
  2273. void __RPC_STUB IRowsetIndex_SetRange_Stub(
  2274.     IRpcStubBuffer *This,
  2275.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2276.     PRPC_MESSAGE _pRpcMessage,
  2277.     DWORD *_pdwStubPhase);
  2278. #endif  /* __IRowsetIndex_INTERFACE_DEFINED__ */
  2279. #ifndef __ICommand_INTERFACE_DEFINED__
  2280. #define __ICommand_INTERFACE_DEFINED__
  2281. /* interface ICommand */
  2282. /* [unique][uuid][object] */ 
  2283. EXTERN_C const IID IID_ICommand;
  2284. #if defined(__cplusplus) && !defined(CINTERFACE)
  2285.     
  2286.     MIDL_INTERFACE("0c733a63-2a1c-11ce-ade5-00aa0044773d")
  2287.     ICommand : public IUnknown
  2288.     {
  2289.     public:
  2290.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
  2291.         
  2292.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Execute( 
  2293.             /* [in] */ IUnknown *pUnkOuter,
  2294.             /* [in] */ REFIID riid,
  2295.             /* [out][in] */ DBPARAMS *pParams,
  2296.             /* [out] */ DBROWCOUNT *pcRowsAffected,
  2297.             /* [iid_is][out] */ IUnknown **ppRowset) = 0;
  2298.         
  2299.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDBSession( 
  2300.             /* [in] */ REFIID riid,
  2301.             /* [iid_is][out] */ IUnknown **ppSession) = 0;
  2302.         
  2303.     };
  2304.     
  2305. #else  /* C style interface */
  2306.     typedef struct ICommandVtbl
  2307.     {
  2308.         BEGIN_INTERFACE
  2309.         
  2310.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2311.             ICommand * This,
  2312.             /* [in] */ REFIID riid,
  2313.             /* [iid_is][out] */ void **ppvObject);
  2314.         
  2315.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2316.             ICommand * This);
  2317.         
  2318.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2319.             ICommand * This);
  2320.         
  2321.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Cancel )( 
  2322.             ICommand * This);
  2323.         
  2324.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Execute )( 
  2325.             ICommand * This,
  2326.             /* [in] */ IUnknown *pUnkOuter,
  2327.             /* [in] */ REFIID riid,
  2328.             /* [out][in] */ DBPARAMS *pParams,
  2329.             /* [out] */ DBROWCOUNT *pcRowsAffected,
  2330.             /* [iid_is][out] */ IUnknown **ppRowset);
  2331.         
  2332.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDBSession )( 
  2333.             ICommand * This,
  2334.             /* [in] */ REFIID riid,
  2335.             /* [iid_is][out] */ IUnknown **ppSession);
  2336.         
  2337.         END_INTERFACE
  2338.     } ICommandVtbl;
  2339.     interface ICommand
  2340.     {
  2341.         CONST_VTBL struct ICommandVtbl *lpVtbl;
  2342.     };
  2343.     
  2344. #ifdef COBJMACROS
  2345. #define ICommand_QueryInterface(This,riid,ppvObject)
  2346.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2347. #define ICommand_AddRef(This)
  2348.     (This)->lpVtbl -> AddRef(This)
  2349. #define ICommand_Release(This)
  2350.     (This)->lpVtbl -> Release(This)
  2351. #define ICommand_Cancel(This)
  2352.     (This)->lpVtbl -> Cancel(This)
  2353. #define ICommand_Execute(This,pUnkOuter,riid,pParams,pcRowsAffected,ppRowset)
  2354.     (This)->lpVtbl -> Execute(This,pUnkOuter,riid,pParams,pcRowsAffected,ppRowset)
  2355. #define ICommand_GetDBSession(This,riid,ppSession)
  2356.     (This)->lpVtbl -> GetDBSession(This,riid,ppSession)
  2357. #endif /* COBJMACROS */
  2358. #endif  /* C style interface */
  2359. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommand_RemoteCancel_Proxy( 
  2360.     ICommand * This,
  2361.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2362. void __RPC_STUB ICommand_RemoteCancel_Stub(
  2363.     IRpcStubBuffer *This,
  2364.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2365.     PRPC_MESSAGE _pRpcMessage,
  2366.     DWORD *_pdwStubPhase);
  2367. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommand_RemoteExecute_Proxy( 
  2368.     ICommand * This,
  2369.     /* [in] */ IUnknown *pUnkOuter,
  2370.     /* [in] */ REFIID riid,
  2371.     /* [in] */ HACCESSOR hAccessor,
  2372.     /* [in] */ DB_UPARAMS cParamSets,
  2373.     /* [unique][in] */ GUID *pGuid,
  2374.     /* [in] */ ULONG ulGuidOffset,
  2375.     /* [unique][in] */ RMTPACK *pInputParams,
  2376.     /* [unique][out][in] */ RMTPACK *pOutputParams,
  2377.     /* [in] */ DBCOUNTITEM cBindings,
  2378.     /* [size_is][unique][in] */ DBBINDING *rgBindings,
  2379.     /* [size_is][unique][out][in] */ DBSTATUS *rgStatus,
  2380.     /* [unique][out][in] */ DBROWCOUNT *pcRowsAffected,
  2381.     /* [iid_is][unique][out][in] */ IUnknown **ppRowset);
  2382. void __RPC_STUB ICommand_RemoteExecute_Stub(
  2383.     IRpcStubBuffer *This,
  2384.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2385.     PRPC_MESSAGE _pRpcMessage,
  2386.     DWORD *_pdwStubPhase);
  2387. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommand_RemoteGetDBSession_Proxy( 
  2388.     ICommand * This,
  2389.     /* [in] */ REFIID riid,
  2390.     /* [iid_is][out] */ IUnknown **ppSession,
  2391.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2392. void __RPC_STUB ICommand_RemoteGetDBSession_Stub(
  2393.     IRpcStubBuffer *This,
  2394.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2395.     PRPC_MESSAGE _pRpcMessage,
  2396.     DWORD *_pdwStubPhase);
  2397. #endif  /* __ICommand_INTERFACE_DEFINED__ */
  2398. #ifndef __IMultipleResults_INTERFACE_DEFINED__
  2399. #define __IMultipleResults_INTERFACE_DEFINED__
  2400. /* interface IMultipleResults */
  2401. /* [unique][uuid][object] */ 
  2402. typedef DB_LRESERVE DBRESULTFLAG;
  2403. enum DBRESULTFLAGENUM
  2404.     { DBRESULTFLAG_DEFAULT = 0,
  2405. DBRESULTFLAG_ROWSET = 1,
  2406. DBRESULTFLAG_ROW = 2
  2407.     } ;
  2408. EXTERN_C const IID IID_IMultipleResults;
  2409. #if defined(__cplusplus) && !defined(CINTERFACE)
  2410.     
  2411.     MIDL_INTERFACE("0c733a90-2a1c-11ce-ade5-00aa0044773d")
  2412.     IMultipleResults : public IUnknown
  2413.     {
  2414.     public:
  2415.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetResult( 
  2416.             /* [in] */ IUnknown *pUnkOuter,
  2417.             /* [in] */ DBRESULTFLAG lResultFlag,
  2418.             /* [in] */ REFIID riid,
  2419.             /* [out] */ DBROWCOUNT *pcRowsAffected,
  2420.             /* [iid_is][out] */ IUnknown **ppRowset) = 0;
  2421.         
  2422.     };
  2423.     
  2424. #else  /* C style interface */
  2425.     typedef struct IMultipleResultsVtbl
  2426.     {
  2427.         BEGIN_INTERFACE
  2428.         
  2429.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2430.             IMultipleResults * This,
  2431.             /* [in] */ REFIID riid,
  2432.             /* [iid_is][out] */ void **ppvObject);
  2433.         
  2434.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2435.             IMultipleResults * This);
  2436.         
  2437.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2438.             IMultipleResults * This);
  2439.         
  2440.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetResult )( 
  2441.             IMultipleResults * This,
  2442.             /* [in] */ IUnknown *pUnkOuter,
  2443.             /* [in] */ DBRESULTFLAG lResultFlag,
  2444.             /* [in] */ REFIID riid,
  2445.             /* [out] */ DBROWCOUNT *pcRowsAffected,
  2446.             /* [iid_is][out] */ IUnknown **ppRowset);
  2447.         
  2448.         END_INTERFACE
  2449.     } IMultipleResultsVtbl;
  2450.     interface IMultipleResults
  2451.     {
  2452.         CONST_VTBL struct IMultipleResultsVtbl *lpVtbl;
  2453.     };
  2454.     
  2455. #ifdef COBJMACROS
  2456. #define IMultipleResults_QueryInterface(This,riid,ppvObject)
  2457.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2458. #define IMultipleResults_AddRef(This)
  2459.     (This)->lpVtbl -> AddRef(This)
  2460. #define IMultipleResults_Release(This)
  2461.     (This)->lpVtbl -> Release(This)
  2462. #define IMultipleResults_GetResult(This,pUnkOuter,lResultFlag,riid,pcRowsAffected,ppRowset)
  2463.     (This)->lpVtbl -> GetResult(This,pUnkOuter,lResultFlag,riid,pcRowsAffected,ppRowset)
  2464. #endif /* COBJMACROS */
  2465. #endif  /* C style interface */
  2466. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMultipleResults_RemoteGetResult_Proxy( 
  2467.     IMultipleResults * This,
  2468.     /* [in] */ IUnknown *pUnkOuter,
  2469.     /* [in] */ DBRESULTFLAG lResultFlag,
  2470.     /* [in] */ REFIID riid,
  2471.     /* [unique][out][in] */ DBROWCOUNT *pcRowsAffected,
  2472.     /* [iid_is][unique][out][in] */ IUnknown **ppRowset,
  2473.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2474. void __RPC_STUB IMultipleResults_RemoteGetResult_Stub(
  2475.     IRpcStubBuffer *This,
  2476.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2477.     PRPC_MESSAGE _pRpcMessage,
  2478.     DWORD *_pdwStubPhase);
  2479. #endif  /* __IMultipleResults_INTERFACE_DEFINED__ */
  2480. #ifndef __IConvertType_INTERFACE_DEFINED__
  2481. #define __IConvertType_INTERFACE_DEFINED__
  2482. /* interface IConvertType */
  2483. /* [unique][uuid][object] */ 
  2484. typedef DWORD DBCONVERTFLAGS;
  2485. enum DBCONVERTFLAGSENUM
  2486.     { DBCONVERTFLAGS_COLUMN = 0,
  2487. DBCONVERTFLAGS_PARAMETER = 0x1
  2488.     } ;
  2489. //@@@+ V2.0
  2490. #if( OLEDBVER >= 0x0200 )
  2491. enum DBCONVERTFLAGSENUM20
  2492.     { DBCONVERTFLAGS_ISLONG = 0x2,
  2493. DBCONVERTFLAGS_ISFIXEDLENGTH = 0x4,
  2494. DBCONVERTFLAGS_FROMVARIANT = 0x8
  2495.     } ;
  2496. #endif // OLEDBVER >= 0x0200
  2497. //@@@- V2.0
  2498. EXTERN_C const IID IID_IConvertType;
  2499. #if defined(__cplusplus) && !defined(CINTERFACE)
  2500.     
  2501.     MIDL_INTERFACE("0c733a88-2a1c-11ce-ade5-00aa0044773d")
  2502.     IConvertType : public IUnknown
  2503.     {
  2504.     public:
  2505.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CanConvert( 
  2506.             /* [in] */ DBTYPE wFromType,
  2507.             /* [in] */ DBTYPE wToType,
  2508.             /* [in] */ DBCONVERTFLAGS dwConvertFlags) = 0;
  2509.         
  2510.     };
  2511.     
  2512. #else  /* C style interface */
  2513.     typedef struct IConvertTypeVtbl
  2514.     {
  2515.         BEGIN_INTERFACE
  2516.         
  2517.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2518.             IConvertType * This,
  2519.             /* [in] */ REFIID riid,
  2520.             /* [iid_is][out] */ void **ppvObject);
  2521.         
  2522.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2523.             IConvertType * This);
  2524.         
  2525.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2526.             IConvertType * This);
  2527.         
  2528.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CanConvert )( 
  2529.             IConvertType * This,
  2530.             /* [in] */ DBTYPE wFromType,
  2531.             /* [in] */ DBTYPE wToType,
  2532.             /* [in] */ DBCONVERTFLAGS dwConvertFlags);
  2533.         
  2534.         END_INTERFACE
  2535.     } IConvertTypeVtbl;
  2536.     interface IConvertType
  2537.     {
  2538.         CONST_VTBL struct IConvertTypeVtbl *lpVtbl;
  2539.     };
  2540.     
  2541. #ifdef COBJMACROS
  2542. #define IConvertType_QueryInterface(This,riid,ppvObject)
  2543.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2544. #define IConvertType_AddRef(This)
  2545.     (This)->lpVtbl -> AddRef(This)
  2546. #define IConvertType_Release(This)
  2547.     (This)->lpVtbl -> Release(This)
  2548. #define IConvertType_CanConvert(This,wFromType,wToType,dwConvertFlags)
  2549.     (This)->lpVtbl -> CanConvert(This,wFromType,wToType,dwConvertFlags)
  2550. #endif /* COBJMACROS */
  2551. #endif  /* C style interface */
  2552. /* [call_as] */ HRESULT STDMETHODCALLTYPE IConvertType_RemoteCanConvert_Proxy( 
  2553.     IConvertType * This,
  2554.     /* [in] */ DBTYPE wFromType,
  2555.     /* [in] */ DBTYPE wToType,
  2556.     /* [in] */ DBCONVERTFLAGS dwConvertFlags,
  2557.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2558. void __RPC_STUB IConvertType_RemoteCanConvert_Stub(
  2559.     IRpcStubBuffer *This,
  2560.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2561.     PRPC_MESSAGE _pRpcMessage,
  2562.     DWORD *_pdwStubPhase);
  2563. #endif  /* __IConvertType_INTERFACE_DEFINED__ */
  2564. #ifndef __ICommandPrepare_INTERFACE_DEFINED__
  2565. #define __ICommandPrepare_INTERFACE_DEFINED__
  2566. /* interface ICommandPrepare */
  2567. /* [unique][uuid][object] */ 
  2568. EXTERN_C const IID IID_ICommandPrepare;
  2569. #if defined(__cplusplus) && !defined(CINTERFACE)
  2570.     
  2571.     MIDL_INTERFACE("0c733a26-2a1c-11ce-ade5-00aa0044773d")
  2572.     ICommandPrepare : public IUnknown
  2573.     {
  2574.     public:
  2575.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Prepare( 
  2576.             /* [in] */ ULONG cExpectedRuns) = 0;
  2577.         
  2578.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Unprepare( void) = 0;
  2579.         
  2580.     };
  2581.     
  2582. #else  /* C style interface */
  2583.     typedef struct ICommandPrepareVtbl
  2584.     {
  2585.         BEGIN_INTERFACE
  2586.         
  2587.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2588.             ICommandPrepare * This,
  2589.             /* [in] */ REFIID riid,
  2590.             /* [iid_is][out] */ void **ppvObject);
  2591.         
  2592.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2593.             ICommandPrepare * This);
  2594.         
  2595.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2596.             ICommandPrepare * This);
  2597.         
  2598.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Prepare )( 
  2599.             ICommandPrepare * This,
  2600.             /* [in] */ ULONG cExpectedRuns);
  2601.         
  2602.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Unprepare )( 
  2603.             ICommandPrepare * This);
  2604.         
  2605.         END_INTERFACE
  2606.     } ICommandPrepareVtbl;
  2607.     interface ICommandPrepare
  2608.     {
  2609.         CONST_VTBL struct ICommandPrepareVtbl *lpVtbl;
  2610.     };
  2611.     
  2612. #ifdef COBJMACROS
  2613. #define ICommandPrepare_QueryInterface(This,riid,ppvObject)
  2614.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2615. #define ICommandPrepare_AddRef(This)
  2616.     (This)->lpVtbl -> AddRef(This)
  2617. #define ICommandPrepare_Release(This)
  2618.     (This)->lpVtbl -> Release(This)
  2619. #define ICommandPrepare_Prepare(This,cExpectedRuns)
  2620.     (This)->lpVtbl -> Prepare(This,cExpectedRuns)
  2621. #define ICommandPrepare_Unprepare(This)
  2622.     (This)->lpVtbl -> Unprepare(This)
  2623. #endif /* COBJMACROS */